From 0bb1a19f1dd03b89a5fcb6947741512f45c51e3b Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <quaritsch@ivt.tugraz.at> Date: Mon, 6 Mar 2023 14:03:31 +0100 Subject: [PATCH] hybrid strategy: bugfix vehicle propulsion torque limits and AT gearbox --- .../Strategies/HybridStrategy.cs | 17 +++++++++++++---- .../P2 Group 5_LimitVehiclePropTq.vecto | 1 - .../P3 APT Group 5_LimitVehiclePropTq.vecto | 1 - 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs index 943ffed1da..b27574109a 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs @@ -572,8 +572,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies dryRunResponse.ElectricMotor.AvgDrivetrainSpeed; var gbxOutTqV = dryRunResponse.Gearbox.OutputTorque - emTq; - var prevGbxSpeed = (DataBus.GearboxInfo as AbstractGearbox<GearboxState>).PreviousState - .OutAngularVelocity; + var prevGbxSpeed = GetPrevGbxSpeed(); var gbxLoss = ModelData.GearboxData.Gears[gear.Gear].LossMap .GetTorqueLoss((dryRunResponse.Gearbox.OutputSpeed + prevGbxSpeed) / 2.0, gbxOutTqV); gbxInTq = gbxOutTqV / ModelData.GearboxData.Gears[gear.Gear].Ratio + gbxLoss.Value; @@ -597,8 +596,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies gbxInTorque = anglInTorque; } var gear = dryRunResponse.Gearbox.Gear; - var prevGbxSpeed = (DataBus.GearboxInfo as AbstractGearbox<GearboxState>).PreviousState - .OutAngularVelocity; + var prevGbxSpeed = GetPrevGbxSpeed(); var gbxLoss = ModelData.GearboxData.Gears[gear.Gear].LossMap .GetTorqueLoss((dryRunResponse.Gearbox.OutputSpeed + prevGbxSpeed) / 2.0, gbxInTorque); gbxInTq = gbxInTorque / ModelData.GearboxData.Gears[gear.Gear].Ratio + gbxLoss.Value; @@ -609,6 +607,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies return gbxInTq; } + private PerSecond GetPrevGbxSpeed() + { + switch (DataBus.GearboxInfo) { + case Gearbox gbx: + return gbx.PreviousState.OutAngularVelocity; + case ATGearbox atGbx: + return atGbx.PreviousState.OutAngularVelocity; + default: throw new VectoException("Unsupported gearbox type!"); + } + } + public void OperatingpointChangedDuringRequest(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, bool dryRun, IResponse retVal) diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P2/P2 Group 5_LimitVehiclePropTq.vecto b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P2/P2 Group 5_LimitVehiclePropTq.vecto index 1d9670246f..cd2de67757 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P2/P2 Group 5_LimitVehiclePropTq.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P2/P2 Group 5_LimitVehiclePropTq.vecto @@ -17,7 +17,6 @@ "AuxiliaryAssembly": "Classic", "AuxiliaryVersion": "CLASSIC", "AdvancedAuxiliaryFilePath": "", - "Aux": [], "Padd": 3000.0, "Padd_electric": 0.0, "VACC": "Vehicle\\Truck.vacc", diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P3_APT/P3 APT Group 5_LimitVehiclePropTq.vecto b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P3_APT/P3 APT Group 5_LimitVehiclePropTq.vecto index 66759402c4..a739bc00dc 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P3_APT/P3 APT Group 5_LimitVehiclePropTq.vecto +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/2nd_AmendmDeclMode/JSON/P_HEV/Group5_P3_APT/P3 APT Group 5_LimitVehiclePropTq.vecto @@ -17,7 +17,6 @@ "AuxiliaryAssembly": "Classic", "AuxiliaryVersion": "CLASSIC", "AdvancedAuxiliaryFilePath": "", - "Aux": [], "Padd": 3000.0, "Padd_electric": 0.0, "VACC": "Vehicle\\Truck.vacc", -- GitLab