From 32abb702f744e60882439a6977dfbac29c895e08 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 18 Nov 2019 17:15:13 +0100 Subject: [PATCH] at effshift strategy: estimate current fuel consumption at the same point in time in the future as for the next gear (e.g., 0.8s, after a potential gearshift) --- .../SimulationComponent/Impl/ATShiftStrategyOptimized.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs index 826039a07d..178c85127f 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs @@ -233,6 +233,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var vDrop = DataBus.DriverAcceleration * shiftStrategyParameters.ATLookAheadTime; var vehicleSpeedPostShift = (DataBus.VehicleSpeed + vDrop * shiftStrategyParameters.VelocityDropFactor).LimitTo(0.KMPHtoMeterPerSecond(), DataBus.CycleData.LeftSample.VehicleTargetSpeed); + var outAngularVelocityEst = (outAngularVelocity * vehicleSpeedPostShift / (DataBus.VehicleSpeed + DataBus.DriverAcceleration * dt)).Cast<PerSecond>(); + var outTorqueEst = outTorque * outAngularVelocity / outAngularVelocityEst; + for (var i = 1; i <= shiftStrategyParameters.AllowedGearRangeFC; i++) { if (currentIdx + i >= GearList.Count) { @@ -259,9 +262,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var pNextGearMax = DataBus.EngineStationaryFullPower(estimatedEngineSpeed); - var outAngularVelocityEst = (outAngularVelocity* vehicleSpeedPostShift / (DataBus.VehicleSpeed + DataBus.DriverAcceleration * dt)).Cast<PerSecond>() ; - var outTorqueEst = outTorque * outAngularVelocity / outAngularVelocityEst; - var response = RequestDryRunWithGear(absTime, dt, outTorqueEst, outAngularVelocityEst, next); //var response = RequestDryRunWithGear(absTime, dt, vehicleSpeedPostShift, DataBus.DriverAcceleration, next); @@ -306,7 +306,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (fcCurrent == null) { //var responseCurrent = RequestDryRunWithGear( // absTime, dt, vehicleSpeedForGearRating, DataBus.DriverAcceleration, current); - var responseCurrent = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, current); + //var responseCurrent = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, current); + var responseCurrent = RequestDryRunWithGear(absTime, dt, outTorqueEst, outAngularVelocityEst, current); var tqCurrent = responseCurrent.EngineTorqueDemand.LimitTo( fld[currentGear].DragLoadStationaryTorque(responseCurrent.EngineSpeed), fld[currentGear].FullLoadStationaryTorque(responseCurrent.EngineSpeed)); -- GitLab