diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs index 230f4ebb439453957d1bccf563e3cd129eda84ac..88c8e5a8b6b8af06fba0f925ce9f32f6f5d58964 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs @@ -118,19 +118,19 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var absTime = 0.SI<Second>(); var gradient = 0.SI<Radian>(); var initialResponse = vehicle.Request(absTime, simulationInterval, acceleration, gradient); - var delta = initialResponse.Gearbox.GearboxPowerRequest; + var delta = initialResponse.Gearbox.PowerRequest; try { gradient = SearchAlgorithm.Search( gradient, delta, 0.1.SI<Radian>(), getYValue: response => { var r = (ResponseDryRun)response; - return r.Gearbox.GearboxPowerRequest; + return r.Gearbox.PowerRequest; }, evaluateFunction: grad => { return vehicle.Request(absTime, simulationInterval, acceleration, grad, true); }, criterion: response => { var r = (ResponseDryRun)response; - return r.Gearbox.GearboxPowerRequest.Value(); + return r.Gearbox.PowerRequest.Value(); } ); } catch (VectoSearchAbortedException) { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs index ddfacd14136f6ce14a464bd747d66ffb226995e7..bbcb6157d1186e9b7514fe96048709be35655ac8 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs @@ -123,9 +123,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = _gearbox.Initialize(gear, outTorque, outAngularVelocity); var inAngularSpeed = outAngularVelocity * ModelData.Gears[gear].Ratio; - var fullLoadPower = response.Engine.EnginePowerRequest - response.DeltaFullLoad; - var reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; - var inTorque = response.Clutch.ClutchPowerRequest / inAngularSpeed; + var fullLoadPower = response.Engine.PowerRequest - response.DeltaFullLoad; + var reserve = 1 - response.Engine.PowerRequest / fullLoadPower; + var inTorque = response.Clutch.PowerRequest / inAngularSpeed; // if in shift curve and torque reserve is provided: return the current gear if (!IsBelowDownShiftCurve(gear, inTorque, inAngularSpeed) && !IsAboveUpShiftCurve(gear, inTorque, inAngularSpeed) && @@ -163,7 +163,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = _gearbox.Initialize(gear, outTorque, outAngularVelocity); var fullLoadPower = response.Engine.DynamicFullLoadPower; //EnginePowerRequest - response.DeltaFullLoad; - var reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; + var reserve = 1 - response.Engine.PowerRequest / fullLoadPower; if (response.Engine.EngineSpeed > DataBus.EngineIdleSpeed && reserve >= ModelData.StartTorqueReserve) { _nextGear = gear; @@ -174,7 +174,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return 1; } - public override bool ShiftRequired(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, uint gear, Second lastShiftTime, IResponse response) + protected override bool DoCheckShiftRequired(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, uint gear, Second lastShiftTime, IResponse response) { // no shift when vehicle stands if (DataBus.VehicleStopped) { @@ -270,7 +270,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, currentGear); inAngularVelocity = response.Engine.EngineSpeed; //ModelData.Gears[currentGear].Ratio * outAngularVelocity; - inTorque = response.Clutch.ClutchPowerRequest / inAngularVelocity; + inTorque = response.Clutch.PowerRequest / inAngularVelocity; var maxTorque = VectoMath.Min(response.Engine.DynamicFullLoadPower / ((DataBus.EngineSpeed + response.Engine.EngineSpeed) / 2), currentGear > 1 @@ -301,13 +301,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, tryNextGear); var inAngularVelocity = ModelData.Gears[tryNextGear].Ratio * outAngularVelocity; - var inTorque = response.Clutch.ClutchPowerRequest / inAngularVelocity; + var inTorque = response.Clutch.PowerRequest / inAngularVelocity; // if next gear supplied enough power reserve: take it // otherwise take if (!IsBelowDownShiftCurve(tryNextGear, inTorque, inAngularVelocity)) { - var fullLoadPower = response.Engine.EnginePowerRequest - response.DeltaFullLoad; - var reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; + var fullLoadPower = response.Engine.PowerRequest - response.DeltaFullLoad; + var reserve = 1 - response.Engine.PowerRequest / fullLoadPower; if (reserve >= ModelData.TorqueReserve) { currentGear = tryNextGear; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyACEA.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyACEA.cs index e157a16c2bde616b7b870af503f23ce9455aa28a..734e12cdace8aafd22b914f9c22325c49e1947f4 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyACEA.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyACEA.cs @@ -145,7 +145,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } - public override bool ShiftRequired(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, uint gear, Second lastShiftTime, IResponse response) + protected override bool DoCheckShiftRequired(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, uint gear, Second lastShiftTime, IResponse response) { var cardanDemand = DataBus.CurrentAxleDemand; var currentCardanPower = cardanDemand.Item1 * cardanDemand.Item2; @@ -374,12 +374,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl respAccRsv.Engine.EngineSpeed); retVal = new GearRating( GearRatingCase.A, - (fc.Value.ConvertToGrammPerHour().Value / VectoMath.Max(respDriverDemand.Axlegear.AxlegearPowerRequest, 1.SI<Watt>())).Value() * + (fc.Value.ConvertToGrammPerHour().Value / VectoMath.Max(respDriverDemand.Axlegear.PowerRequest, 1.SI<Watt>())).Value() * 1e3, engineSpeedHighThreshold); } else { retVal = new GearRating( - GearRatingCase.B, (respAccRsv.Engine.EnginePowerRequest - respAccRsv.Engine.DynamicFullLoadPower).Value(), + GearRatingCase.B, (respAccRsv.Engine.PowerRequest - respAccRsv.Engine.DynamicFullLoadPower).Value(), engineSpeedHighThreshold); } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyOptimized.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyOptimized.cs index 7a490003e97d8d01abf64d3e130dd8470637ca10..3d0bf0e534f29a9807638247ba005b4e02115af7 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyOptimized.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyOptimized.cs @@ -115,7 +115,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, tryNextGear); var inAngularVelocity = ModelData.Gears[tryNextGear].Ratio * outAngularVelocity; - var inTorque = response.Clutch.ClutchPowerRequest / inAngularVelocity; + var inTorque = response.Clutch.PowerRequest / inAngularVelocity; // if next gear supplied enough power reserve: take it // otherwise take @@ -130,12 +130,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var pNextGearMax = DataBus.EngineStationaryFullPower(estimatedEngineSpeed); - if (!response.Engine.EnginePowerRequest.IsSmaller(pNextGearMax)) { + if (!response.Engine.PowerRequest.IsSmaller(pNextGearMax)) { continue; } - var fullLoadPower = response.Engine.EnginePowerRequest - response.DeltaFullLoad; - var reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; + var fullLoadPower = response.Engine.PowerRequest - response.DeltaFullLoad; + var reserve = 1 - response.Engine.PowerRequest / fullLoadPower; //var reserve = 1 - response.EngineTorqueDemandTotal / response.EngineStationaryFullLoadTorque; @@ -157,8 +157,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var reducedTorque = outTorque - accelerationTorque * (1 - accelerationFactor); response = RequestDryRunWithGear(absTime, dt, reducedTorque, outAngularVelocity, tryNextGear); - fullLoadPower = response.Engine.EnginePowerRequest - response.DeltaFullLoad; - reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; + fullLoadPower = response.Engine.PowerRequest - response.DeltaFullLoad; + reserve = 1 - response.Engine.PowerRequest / fullLoadPower; if (reserve < ModelData.TorqueReserve) { continue; } else { @@ -254,7 +254,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl //var response = RequestDryRunWithGear(absTime, dt, DataBus.VehicleSpeed, DataBus.DriverAcceleration, tryNextGear); var inAngularVelocity = ModelData.Gears[tryNextGear].Ratio * outAngularVelocity; - var inTorque = response.Clutch.ClutchPowerRequest / inAngularVelocity; + var inTorque = response.Clutch.PowerRequest / inAngularVelocity; if (IsAboveUpShiftCurve(tryNextGear, inTorque, inAngularVelocity)) { continue; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs index 97239457c2bbdb577eb7630397bf920b84ec3b10..bdcadaa91cf0df7b1aced984531eb3c4aecd0f6b 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs @@ -118,7 +118,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl #endregion - public override bool ClutchClosed(Second absTime) + public override bool GearEngaged(Second absTime) { return absTime.IsGreater(DataBus.AbsTime) || !(CurrentState.Disengaged || (DataBus.DriverBehavior == DrivingBehavior.Halted || (DisengageGearbox && !ModelData.ATEcoRollReleaseLockupClutch))); @@ -208,10 +208,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseDryRun(this) { Engine = { EngineSpeed = response.Engine.EngineSpeed, - EnginePowerRequest = response.Engine.EnginePowerRequest, + PowerRequest = response.Engine.PowerRequest, }, Gearbox = { - GearboxPowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, } }; } @@ -254,7 +254,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl retVal = new ResponseFailTimeInterval(this) { DeltaT = ModelData.PowershiftShiftTime, Gearbox = { - GearboxPowerRequest = + PowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0 } }; @@ -267,7 +267,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } } while (loop && ++count < 2); - retVal.Gearbox.GearboxPowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0; + retVal.Gearbox.PowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0; return retVal; } @@ -366,7 +366,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl // if gearbox is disengaged the 0[W]-line is the limit for drag and full load. return new ResponseDryRun(this) { Gearbox = { - GearboxPowerRequest = outTorque * avgAngularVelocity, + PowerRequest = outTorque * avgAngularVelocity, }, DeltaDragLoad = outTorque * avgAngularVelocity, DeltaFullLoad = outTorque * avgAngularVelocity, @@ -377,7 +377,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseOverload(this) { Delta = outTorque * avgAngularVelocity, Gearbox = { - GearboxPowerRequest = outTorque * avgAngularVelocity + PowerRequest = outTorque * avgAngularVelocity } }; } @@ -387,7 +387,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseUnderload(this) { Delta = outTorque * avgAngularVelocity, Gearbox = { - GearboxPowerRequest = outTorque * avgAngularVelocity + PowerRequest = outTorque * avgAngularVelocity } }; } @@ -395,7 +395,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Log.Debug("Invoking IdleController..."); var retval = IdleController.Request(absTime, dt, 0.SI<NewtonMeter>(), null); - retval.Clutch.ClutchPowerRequest = 0.SI<Watt>(); + retval.Clutch.PowerRequest = 0.SI<Watt>(); // no dry-run - update state var effectiveRatio = ModelData.Gears[Gear].Ratio; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs index bbecafe73c3169a2dd14c00d76ff827a766d37d7..7432e9f7cd51c0959aa377821a1fe37bcdb05e77 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategyOptimized.cs @@ -288,11 +288,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl //var response = RequestDryRunWithGear(absTime, dt, vehicleSpeedPostShift, DataBus.DriverAcceleration, next); - if (!response.Engine.EnginePowerRequest.IsSmaller(pNextGearMax)) { + if (!response.Engine.PowerRequest.IsSmaller(pNextGearMax)) { continue; } - var inTorque = response.Engine.EnginePowerRequest / inAngularVelocity; + var inTorque = response.Engine.PowerRequest / inAngularVelocity; // if next gear supplied enough power reserve: take it // otherwise take @@ -300,8 +300,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl continue; } - var fullLoadPower = response.Engine.EnginePowerRequest - response.DeltaFullLoad; - var reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; + var fullLoadPower = response.Engine.PowerRequest - response.DeltaFullLoad; + var reserve = 1 - response.Engine.PowerRequest / fullLoadPower; if (reserve < ModelData.TorqueReserve) { var accelerationFactor = outAngularVelocity * ModelData.Gears[currentGear].Ratio < fld[0].NTq98hSpeed @@ -319,8 +319,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl response = RequestDryRunWithGear(absTime, dt, reducedTorque, outAngularVelocity, next); //response = RequestDryRunWithGear(absTime, dt, vehicleSpeedPostShift, DataBus.DriverAcceleration * accelerationFactor, next); - fullLoadPower = response.Engine.EnginePowerRequest - response.DeltaFullLoad; - reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; + fullLoadPower = response.Engine.PowerRequest - response.DeltaFullLoad; + reserve = 1 - response.Engine.PowerRequest / fullLoadPower; if (reserve < ModelData.TorqueReserve) { continue; } @@ -412,7 +412,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = RequestDryRunWithGear(absTime, dt, outTorque, outAngularVelocity, next); var inAngularVelocity = ModelData.Gears[next.Gear].Ratio * outAngularVelocity; - var inTorque = response.Engine.EnginePowerRequest / inAngularVelocity; + var inTorque = response.Engine.PowerRequest / inAngularVelocity; if (!IsAboveUpShiftCurve(next.Gear, inTorque, inAngularVelocity, next.TorqueConverterLocked.Value)) { if (double.IsNaN(fcCurrent)) { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Angledrive.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Angledrive.cs index fa5416a989e7d9783433985e9144e61f06280d97..7c9a1d017eb265228095d70204475f42f18c9c42 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Angledrive.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Angledrive.cs @@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl bool dryRun = false) { var retVal = base.Request(absTime, dt, outTorque, outAngularVelocity, dryRun); - retVal.Angledrive.AngledrivePowerRequest = outTorque * (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2.0; + retVal.Angledrive.PowerRequest = outTorque * (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2.0; return retVal; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs index a568e53585ba4e19c653b152d4c892b702ff5b65..720c808f16008ef10a6534f017fa4f31ec78028f 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs @@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public override IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) { var retVal = base.Initialize(outTorque, outAngularVelocity); - retVal.Axlegear.AxlegearPowerRequest = outTorque * outAngularVelocity; + retVal.Axlegear.PowerRequest = outTorque * outAngularVelocity; retVal.Axlegear.CardanTorque = PreviousState.InTorque; return retVal; } @@ -56,7 +56,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl bool dryRun = false) { var retVal = base.Request(absTime, dt, outTorque, outAngularVelocity, dryRun); - retVal.Axlegear.AxlegearPowerRequest = outTorque * (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2.0; + retVal.Axlegear.PowerRequest = outTorque * (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2.0; retVal.Axlegear.CardanTorque = CurrentState.InTorque; return retVal; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs index 0d67ecc8245390d7ea61359dad5584528a7a95de..051e6abd59c9b90fab5a3cf21a0a32cae91fd4dc 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs @@ -221,7 +221,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl DeltaEngineSpeed = avgEngineSpeed - engineSpeedLimit, Engine = { EngineSpeed = angularVelocity, - EnginePowerRequest = torqueOut * avgEngineSpeed, + PowerRequest = torqueOut * avgEngineSpeed, DynamicFullLoadPower = dynamicFullLoadPower, EngineTorqueDemand = torqueOut, EngineTorqueDemandTotal = totalTorqueDemand, @@ -268,7 +268,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Delta = deltaFull * avgEngineSpeed, Engine = { EngineSpeed = angularVelocity, - EnginePowerRequest = totalTorqueDemand * avgEngineSpeed, + PowerRequest = totalTorqueDemand * avgEngineSpeed, DynamicFullLoadPower = dynamicFullLoadPower, EngineTorqueDemand = torqueOut, EngineTorqueDemandTotal = totalTorqueDemand, @@ -287,7 +287,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl AbsTime = absTime, Delta = deltaDrag * avgEngineSpeed, Engine = { - EnginePowerRequest = totalTorqueDemand * avgEngineSpeed, + PowerRequest = totalTorqueDemand * avgEngineSpeed, DynamicFullLoadPower = dynamicFullLoadPower, EngineTorqueDemand = torqueOut, EngineTorqueDemandTotal = totalTorqueDemand, @@ -304,7 +304,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseSuccess(this) { Engine = { - EnginePowerRequest = totalTorqueDemand * avgEngineSpeed, + PowerRequest = totalTorqueDemand * avgEngineSpeed, EngineTorqueDemand = torqueOut, EngineTorqueDemandTotal = totalTorqueDemand, EngineStationaryFullLoadTorque = stationaryFullLoadTorque, @@ -348,7 +348,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseSuccess(this) { Engine = { - EnginePowerRequest = PreviousState.EnginePower, + PowerRequest = PreviousState.EnginePower, DynamicFullLoadPower = PreviousState.DynamicFullLoadTorque * PreviousState.EngineSpeed, EngineSpeed = outAngularVelocity, EngineTorqueDemand = outTorque, diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs index a60611c2842345d89827a87e2a3819e433cac77c..38bf3ebcf074cf975a064b75a3c13fc23b61739c 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs @@ -125,7 +125,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl PreviousState.InertiaTorqueLossOut = 0.SI<NewtonMeter>(); PreviousState.Gear = Gear; - response.Gearbox.GearboxPowerRequest = inTorque * inAngularVelocity; + response.Gearbox.PowerRequest = inTorque * inAngularVelocity; return response; } @@ -167,7 +167,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ? RequestDisengaged(absTime, dt, outTorque, outAngularVelocity, dryRun) : RequestEngaged(absTime, dt, outTorque, outAngularVelocity, dryRun); - retVal.Gearbox.GearboxPowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2; + retVal.Gearbox.PowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2; return retVal; } @@ -235,7 +235,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } if (dryRun) { var dryRunResponse = HandleDryRunRequest(absTime, dt, torqueConverterLocked, inTorque, inAngularVelocity); - dryRunResponse.Gearbox.GearboxPowerRequest = outTorque * avgOutAngularVelocity; + dryRunResponse.Gearbox.PowerRequest = outTorque * avgOutAngularVelocity; return dryRunResponse; } @@ -257,7 +257,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl CurrentState.InAngularVelocity); } var response = NextComponent.Request(absTime, dt, inTorque, inAngularVelocity); - response.Gearbox.GearboxPowerRequest = outTorque * avgOutAngularVelocity; + response.Gearbox.PowerRequest = outTorque * avgOutAngularVelocity; return response; } @@ -313,7 +313,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl // if gearbox is disengaged the 0-line is the limit for drag and full load return new ResponseDryRun(this) { Gearbox = { - GearboxPowerRequest = outTorque * avgOutAngularVelocity, + PowerRequest = outTorque * avgOutAngularVelocity, }, DeltaDragLoad = outTorque * avgOutAngularVelocity, DeltaFullLoad = outTorque * avgOutAngularVelocity, @@ -325,7 +325,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseOverload(this) { Delta = outTorque * avgOutAngularVelocity, Gearbox = { - GearboxPowerRequest = outTorque * avgOutAngularVelocity + PowerRequest = outTorque * avgOutAngularVelocity } }; } @@ -334,7 +334,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseUnderload(this) { Delta = outTorque * avgOutAngularVelocity, Gearbox = { - GearboxPowerRequest = outTorque * avgOutAngularVelocity + PowerRequest = outTorque * avgOutAngularVelocity } }; } @@ -360,7 +360,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl disengagedResponse.Engine.EngineSpeed); } } - disengagedResponse.Gearbox.GearboxPowerRequest = outTorque * avgOutAngularVelocity; + disengagedResponse.Gearbox.PowerRequest = outTorque * avgOutAngularVelocity; CurrentState.SetState(0.SI<NewtonMeter>(), disengagedResponse.Engine.EngineSpeed, 0.SI<NewtonMeter>(), outAngularVelocity); CurrentState.Gear = Gear; @@ -499,7 +499,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } } - public override bool ClutchClosed(Second absTime) + public override bool GearEngaged(Second absTime) { return (DataBus.DriverBehavior == DrivingBehavior.Braking ? DataBus.CycleData.LeftSample.Gear @@ -526,7 +526,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public override IGearbox Gearbox { get; set; } - public override bool ShiftRequired(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, uint gear, Second lastShiftTime, IResponse response) + protected override bool DoCheckShiftRequired(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, uint gear, Second lastShiftTime, IResponse response) { return false; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs index 131977144741a26f4786277c3467f1e1784bcd59..4a9f36f81031794c2e3bd41a17fde45127393964 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -744,7 +744,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var nextResp = NextComponent.Request(absTime, operatingPoint.SimulationInterval, operatingPoint.Acceleration, gradient, true); - deltaPower = nextResp.Gearbox.GearboxPowerRequest; + deltaPower = nextResp.Gearbox.PowerRequest; }). Case<ResponseEngineSpeedTooHigh>(r => { IterationStatistics.Increment(this, "SearchBrakingPower"); @@ -752,10 +752,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var nextResp = NextComponent.Request(absTime, operatingPoint.SimulationInterval, operatingPoint.Acceleration, gradient, true); - deltaPower = nextResp.Gearbox.GearboxPowerRequest; + deltaPower = nextResp.Gearbox.PowerRequest; }). Case<ResponseUnderload>(r => - deltaPower = DataBus.ClutchClosed(absTime) ? r.Delta : r.Gearbox.GearboxPowerRequest). + deltaPower = DataBus.ClutchClosed(absTime) ? r.Delta : r.Gearbox.PowerRequest). Default( r => { throw new UnexpectedResponseException("cannot use response for searching braking power!", r); @@ -766,7 +766,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl deltaPower.Abs() * (DataBus.GearboxType.AutomaticTransmission() ? 0.5 : 1), getYValue: result => { var response = (ResponseDryRun)result; - return DataBus.ClutchClosed(absTime) ? response.DeltaDragLoad : response.Gearbox.GearboxPowerRequest; + return DataBus.ClutchClosed(absTime) ? response.DeltaDragLoad : response.Gearbox.PowerRequest; }, evaluateFunction: x => { DataBus.BrakePower = x; @@ -782,7 +782,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = (ResponseDryRun)result; var delta = DataBus.ClutchClosed(absTime) ? response.DeltaDragLoad - : response.Gearbox.GearboxPowerRequest; + : response.Gearbox.PowerRequest; return delta.Value(); }, forceLineSearch: DataBus.GearboxType.AutomaticTransmission() && !DataBus.TCLocked); @@ -816,7 +816,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (searchEngineSpeed) { return r.DeltaEngineSpeed * 1.SI<NewtonMeter>(); } - return actionRoll ? r.Gearbox.GearboxPowerRequest : (coastingOrRoll ? r.DeltaDragLoad : r.DeltaFullLoad); + return actionRoll ? r.Gearbox.PowerRequest : (coastingOrRoll ? r.DeltaDragLoad : r.DeltaFullLoad); }, evaluateFunction: acc => { @@ -852,7 +852,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return r.DeltaEngineSpeed.Value(); } delta = actionRoll - ? r.Gearbox.GearboxPowerRequest + ? r.Gearbox.PowerRequest : (coastingOrRoll ? r.DeltaDragLoad : r.DeltaFullLoad); return delta.Value(); }, @@ -881,9 +881,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Watt origDelta = null; if (actionRoll) { initialResponse.Switch(). - Case<ResponseDryRun>(r => origDelta = r.Gearbox.GearboxPowerRequest). + Case<ResponseDryRun>(r => origDelta = r.Gearbox.PowerRequest). Case<ResponseOverload>(r => origDelta = r.Delta). - Case<ResponseFailTimeInterval>(r => origDelta = r.Gearbox.GearboxPowerRequest). + Case<ResponseFailTimeInterval>(r => origDelta = r.Gearbox.PowerRequest). Default(r => { throw new UnexpectedResponseException("SearchOperatingPoint: Unknown response type.", r); }); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs index 4882598ef81b5c5c97190cf76c180d1da6c97735..fee4bd8ffeed3515a9a90ac39797d13a0d2d6e00 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs @@ -39,7 +39,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (NextComponent == null) { return new ResponseSuccess(this) { Engine = { - EnginePowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, EngineSpeed = outAngularVelocity } }; @@ -175,7 +175,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ElectricMotorPowerMech = (inTorque - outTorque) * avgSpeed, }, Engine = { - EnginePowerRequest = 0.SI<Watt>(), + PowerRequest = 0.SI<Watt>(), EngineSpeed = outAngularVelocity }, }; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs index e8eae4d1fd1a94b56516a3e5d3253a3eb6b03795..3cb707d4262f85fa2306c2327a3d0a5001f6251b 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs @@ -43,8 +43,8 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { - public class Gearbox : AbstractGearbox<GearboxState> - { + public class Gearbox : AbstractGearbox<GearboxState>, IHybridControlledGearbox + { /// <summary> /// The shift strategy. /// </summary> @@ -61,6 +61,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected internal bool Disengaged = true; protected internal GearInfo _nextGear; + private Second _overrideDisengage; public Second LastUpshift { get; protected internal set; } @@ -71,11 +72,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl get { return _strategy?.NextGear ?? _nextGear; } } - public override bool ClutchClosed(Second absTime) + public override bool GearEngaged(Second absTime) { - return !DisengageGearbox && EngageTime.IsSmallerOrEqual(absTime, ModelData.TractionInterruption / 20); + return !DisengageGearbox && (_overrideDisengage == null || !_overrideDisengage.IsEqual(absTime)) && + EngageTime.IsSmallerOrEqual(absTime, ModelData.TractionInterruption / 20); } + // controlled by driver (PCC / EcoRoll) public override bool DisengageGearbox { get; set; } public Gearbox(IVehicleContainer container, IShiftStrategy strategy, VectoRunData runData) : base(container, runData) @@ -153,17 +156,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Gear = oldGear; return new ResponseDryRun(this) { Engine = { - EnginePowerRequest = response.Engine.EnginePowerRequest, + PowerRequest = response.Engine.PowerRequest, EngineSpeed = response.Engine.EngineSpeed, DynamicFullLoadPower = response.Engine.DynamicFullLoadPower, }, Clutch = { - ClutchPowerRequest = response.Clutch.ClutchPowerRequest, + PowerRequest = response.Clutch.PowerRequest, }, Gearbox = { - GearboxPowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, }, - DeltaFullLoad = response.Engine.EnginePowerRequest - fullLoad + DeltaFullLoad = response.Engine.PowerRequest - fullLoad }; } @@ -194,10 +197,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl EngageTime = absTime + dt; } - if (ClutchClosed(absTime) && Disengaged && !outAngularVelocity.IsEqual(0)) { + if (GearEngaged(absTime) && Disengaged && !outAngularVelocity.IsEqual(0)) { ReEngageGear(absTime, dt, outTorque, outAngularVelocity); Log.Debug("Gearbox engaged gear {0}", Gear); } + if (_overrideDisengage != null && (!_strategy?.CheckGearshiftRequired ?? false ) && !dryRun) { + var changeGear = _strategy?.ShiftRequired(absTime, dt, outTorque, outAngularVelocity, + outTorque / ModelData.Gears[Gear].Ratio, outAngularVelocity * ModelData.Gears[Gear].Ratio, Gear, + EngageTime, null) ?? false; + if (changeGear) + { + ReEngageGear(absTime, dt, outTorque, outAngularVelocity); + } + } var gear = Disengaged ? NextGear.Gear : Gear; var avgOutAngularVelocity = (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0; @@ -232,7 +244,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return RequestGearDisengaged(absTime, dt, outTorque, outAngularVelocity, inTorque, dryRun); } - return ClutchClosed(absTime) + return GearEngaged(absTime) ? RequestGearEngaged(absTime, dt, outTorque, outAngularVelocity, inTorque, inTorqueLossResult, inertiaTorqueLossOut, dryRun) : RequestGearDisengaged(absTime, dt, outTorque, outAngularVelocity, inTorque, dryRun); } @@ -270,7 +282,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var delta = inTorque * avgInAngularVelocity; return new ResponseDryRun(this) { Gearbox = { - GearboxPowerRequest = delta, + PowerRequest = delta, }, DeltaDragLoad = delta, DeltaFullLoad = delta, @@ -284,7 +296,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseFailTimeInterval(this) { DeltaT = EngageTime - absTime, Gearbox = { - GearboxPowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0 + PowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0 } }; } @@ -300,7 +312,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseOverload(this) { Delta = inTorque * avgInAngularVelocity, Gearbox = { - GearboxPowerRequest = inTorque * avgInAngularVelocity + PowerRequest = inTorque * avgInAngularVelocity } }; } @@ -309,7 +321,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseUnderload(this) { Delta = inTorque * avgInAngularVelocity, Gearbox = { - GearboxPowerRequest = inTorque * avgInAngularVelocity + PowerRequest = inTorque * avgInAngularVelocity } }; } @@ -328,7 +340,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl //CurrentState.InAngularVelocity = response.EngineSpeed; - response.Gearbox.GearboxPowerRequest = outTorque * avgAngularVelocity; + response.Gearbox.PowerRequest = outTorque * avgAngularVelocity; return response; } @@ -354,7 +366,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (dryRun) { var dryRunResponse = NextComponent.Request(absTime, dt, inTorque, inAngularVelocity, true); - dryRunResponse.Gearbox.GearboxPowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0; + dryRunResponse.Gearbox.PowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0; return dryRunResponse; } @@ -366,6 +378,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl response.Engine.EngineSpeed, Gear, EngageTime, response) ?? false; if (shiftRequired) { + if (_overrideDisengage != null) + { + EngageTime = absTime; + return RequestGearEngaged(absTime, dt, outTorque, outAngularVelocity, inTorque, inTorqueLossResult, inertiaTorqueLossOut, dryRun); + } EngageTime = absTime + ModelData.TractionInterruption; Log.Debug("Gearbox is shifting. absTime: {0}, dt: {1}, interuptionTime: {2}, out: ({3}, {4}), in: ({5}, {6})", @@ -379,14 +396,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseGearShift(this) { SimulationInterval = ModelData.TractionInterruption, Gearbox = { - GearboxPowerRequest = + PowerRequest = outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0, }, Engine = { EngineSpeed = response.Engine.EngineSpeed, EngineTorqueDemand = response.Engine.EngineTorqueDemand, EngineTorqueDemandTotal = response.Engine.EngineTorqueDemandTotal, - EnginePowerRequest = response.Engine.EnginePowerRequest + PowerRequest = response.Engine.PowerRequest } }; } @@ -406,7 +423,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl // end critical section - response.Gearbox.GearboxPowerRequest = outTorque * (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2.0; + response.Gearbox.PowerRequest = outTorque * (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2.0; return response; } @@ -464,7 +481,20 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Disengaged = true; EngageTime = -double.MaxValue.SI<Second>(); } + if (GearEngaged(DataBus.AbsTime)) + { + _overrideDisengage = null; + } base.DoCommitSimulationStep(); } + + public bool SwitchToNeutral + { + set + { + _overrideDisengage = value ? DataBus.AbsTime : null; + Disengaged = value; + } + } } } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MaxGradabilityPreprocessor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MaxGradabilityPreprocessor.cs index 453118b590eb0963183dd2067b5caf462f10a5f8..116bfd5728a573784c27dd8bd04b0b7ab947ae08 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MaxGradabilityPreprocessor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MaxGradabilityPreprocessor.cs @@ -73,7 +73,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { { var gradientMax = VectoMath.InclinationToAngle(1); var responseMax = vehicle.Initialize(vehicleSpeed, gradientMax); - var deltaMax = responseMax.Engine.EnginePowerRequest / responseMax.Engine.EngineSpeed - maxTorque; + var deltaMax = responseMax.Engine.PowerRequest / responseMax.Engine.EngineSpeed - maxTorque; if (deltaMax.IsSmaller(0)) { return gradientMax; } @@ -81,13 +81,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { var gradient = VectoMath.InclinationToAngle(0); var response = vehicle.Initialize(vehicleSpeed, gradient); - var delta = response.Engine.EnginePowerRequest / response.Engine.EngineSpeed - maxTorque; + var delta = response.Engine.PowerRequest / response.Engine.EngineSpeed - maxTorque; gradient = SearchAlgorithm.Search( gradient, delta, VectoMath.InclinationToAngle(1), getYValue: r => { var rs = r as ResponseSuccess; if (rs != null) { - return rs.Engine.EnginePowerRequest / rs.Engine.EngineSpeed - maxTorque; + return rs.Engine.PowerRequest / rs.Engine.EngineSpeed - maxTorque; } return 0.SI<NewtonMeter>(); @@ -98,7 +98,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { criterion: r => { var rs = r as ResponseSuccess; if (rs != null) { - return (rs.Engine.EnginePowerRequest / rs.Engine.EngineSpeed - maxTorque).Value(); + return (rs.Engine.PowerRequest / rs.Engine.EngineSpeed - maxTorque).Value(); } return 0; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs index fd692244b3823d445276a172795c4405716c3f19..d1af5f767aeb8a5a702036a92342285a41ee62e7 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs @@ -230,14 +230,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl DataBus.BrakePower = SearchAlgorithm.Search(DataBus.BrakePower, r.Delta, -r.Delta, getYValue: result => DataBus.ClutchClosed(absTime) ? ((ResponseDryRun)result).DeltaDragLoad - : ((ResponseDryRun)result).Gearbox.GearboxPowerRequest, + : ((ResponseDryRun)result).Gearbox.PowerRequest, evaluateFunction: x => { DataBus.BrakePower = x; return NextComponent.Request(absTime, dt, acc, gradient, true); }, criterion: y => DataBus.ClutchClosed(absTime) ? ((ResponseDryRun)y).DeltaDragLoad.Value() - : ((ResponseDryRun)y).Gearbox.GearboxPowerRequest.Value()); + : ((ResponseDryRun)y).Gearbox.PowerRequest.Value()); Log.Info( "Found operating point for braking. absTime: {0}, dt: {1}, acceleration: {2}, gradient: {3}, BrakePower: {4}", absTime, dt, acceleration, gradient, DataBus.BrakePower); @@ -277,14 +277,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl DataBus.BrakePower = SearchAlgorithm.Search(DataBus.BrakePower, r.Delta, -r.Delta, getYValue: result => DataBus.ClutchClosed(absTime) ? ((ResponseDryRun)result).DeltaDragLoad - : ((ResponseDryRun)result).Gearbox.GearboxPowerRequest, + : ((ResponseDryRun)result).Gearbox.PowerRequest, evaluateFunction: x => { DataBus.BrakePower = x; return NextComponent.Request(absTime, dt, acc, gradient, true); }, criterion: y => DataBus.ClutchClosed(absTime) ? ((ResponseDryRun)y).DeltaDragLoad.Value() - : ((ResponseDryRun)y).Gearbox.GearboxPowerRequest.Value()); + : ((ResponseDryRun)y).Gearbox.PowerRequest.Value()); Log.Info( "Found operating point for braking. absTime: {0}, dt: {1}, acceleration: {2}, gradient: {3}, BrakePower: {4}", absTime, dt, acceleration, gradient, DataBus.BrakePower); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs index 32110e49795260bbe2d53bd665af1ca938c9a571..cf876d7395f75138befad7162f375ead5c926713 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs @@ -57,7 +57,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { DeltaDragLoad = 0.SI<Watt>(), Engine = { EngineTorqueDemandTotal = 0.SI<NewtonMeter>(), - EnginePowerRequest = 0.SI<Watt>(), + PowerRequest = 0.SI<Watt>(), DynamicFullLoadPower = 0.SI<Watt>(), DragPower = 0.SI<Watt>(), EngineSpeed = 0.RPMtoRad(), @@ -69,7 +69,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { return new ResponseSuccess(this) { Engine = { - EnginePowerRequest = 0.SI<Watt>(), + PowerRequest = 0.SI<Watt>(), DynamicFullLoadPower = 0.SI<Watt>(), EngineTorqueDemandTotal = 0.SI<NewtonMeter>(), DragPower = 0.SI<Watt>(), diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs index d9a9e5e9fd5f7b831cf69b6364980723d331ffa5..306eaa07de6ee33ff4746fd6b7c0f45a84aa501a 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs @@ -177,7 +177,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Engine = { EngineTorqueDemand = inTorque, EngineSpeed = engineResponse.Engine.EngineSpeed, - EnginePowerRequest = engineResponse.Engine.EnginePowerRequest + PowerRequest = engineResponse.Engine.PowerRequest } }; } @@ -209,7 +209,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl EngineTorqueDemand = inTorque, EngineSpeed = dryOperatingPointMax?.InAngularVelocity ?? dryOperatingPointMin?.InAngularVelocity ?? 0.RPMtoRad(), - EnginePowerRequest = engineResponse.Engine.EnginePowerRequest + PowerRequest = engineResponse.Engine.PowerRequest } }; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCombustionEngine.cs index 70744a68e257aec125ea895e42b00c72574fcd8e..5a6cf7c2b45090d9618eac9584fef6e2ed394541 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCombustionEngine.cs @@ -70,7 +70,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseSuccess(this) { Engine = { - EnginePowerRequest = PreviousState.EnginePower, + PowerRequest = PreviousState.EnginePower, EngineSpeed = outAngularVelocity } }; @@ -115,7 +115,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl DeltaDragLoad = deltaDrag * avgEngineSpeed, DeltaEngineSpeed = 0.RPMtoRad(), Engine = { - EnginePowerRequest = torqueOut * avgEngineSpeed, + PowerRequest = torqueOut * avgEngineSpeed, DynamicFullLoadPower = fullLoadTorque * avgEngineSpeed, DragPower = fullDragTorque * avgEngineSpeed, EngineSpeed = angularVelocity, @@ -158,7 +158,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl AbsTime = absTime, Delta = deltaFull * avgEngineSpeed, Engine = { - EnginePowerRequest = totalTorqueDemand * avgEngineSpeed, + PowerRequest = totalTorqueDemand * avgEngineSpeed, DynamicFullLoadPower = fullLoadTorque * avgEngineSpeed, DragPower = CurrentState.FullDragTorque * avgEngineSpeed, EngineSpeed = angularVelocity, @@ -174,7 +174,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl AbsTime = absTime, Delta = deltaDrag * avgEngineSpeed, Engine = { - EnginePowerRequest = totalTorqueDemand * avgEngineSpeed, + PowerRequest = totalTorqueDemand * avgEngineSpeed, DynamicFullLoadPower = fullLoadTorque * avgEngineSpeed, DragPower = CurrentState.FullDragTorque * avgEngineSpeed, EngineSpeed = angularVelocity, @@ -187,7 +187,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseSuccess(this) { Engine = { - EnginePowerRequest = totalTorqueDemand * avgEngineSpeed, + PowerRequest = totalTorqueDemand * avgEngineSpeed, DynamicFullLoadPower = fullLoadTorque * avgEngineSpeed, DragPower = CurrentState.FullDragTorque * avgEngineSpeed, EngineSpeed = angularVelocity, diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs index abe168ed7cab64ce226ed410553664f81bdc50a0..2fcb83348dd7e11d992803d77bd823a7f2b044f0 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs @@ -198,7 +198,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var response = Initialize(gear, wheelStartTorque, wheelStartSpeed); var fullLoadPower = response.Engine.DynamicFullLoadPower; //EnginePowerRequest - response.DeltaFullLoad; - var reserve = 1 - response.Engine.EnginePowerRequest / fullLoadPower; + var reserve = 1 - response.Engine.PowerRequest / fullLoadPower; if (response.Engine.EngineSpeed > DataBus.EngineIdleSpeed && reserve >= RunData.GearboxData.StartTorqueReserve) { StartGear = gear; @@ -224,15 +224,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return new ResponseDryRun(this) { Engine = { - EnginePowerRequest = response.Engine.EnginePowerRequest, + PowerRequest = response.Engine.PowerRequest, EngineSpeed = response.Engine.EngineSpeed, DynamicFullLoadPower = response.Engine.DynamicFullLoadPower, }, Clutch = { - ClutchPowerRequest = response.Clutch.ClutchPowerRequest, + PowerRequest = response.Clutch.PowerRequest, }, Gearbox = { - GearboxPowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, } //DeltaFullLoad = response.EnginePowerRequest - fullLoad }; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs index eee4eb1cd35501314e29ce3b60ff75ab28cb5fc2..a7d3338dd4f0f3f159e4fe7350a70712a0a3648c 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs @@ -133,14 +133,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var acceleration = 0.SI<MeterPerSquareSecond>(); var absTime = 0.SI<Second>(); var initialResponse = vehicle.Request(absTime, simulationInterval, acceleration, gradient); - var delta = initialResponse.Gearbox.GearboxPowerRequest; + var delta = initialResponse.Gearbox.PowerRequest; try { var time = absTime; acceleration = SearchAlgorithm.Search( acceleration, delta, Constants.SimulationSettings.OperatingPointInitialSearchIntervalAccelerating, getYValue: response => { var r = (ResponseDryRun)response; - return r.Gearbox.GearboxPowerRequest; + return r.Gearbox.PowerRequest; }, evaluateFunction: acc => { var response = vehicle.Request(time, simulationInterval, acc, gradient, true); @@ -149,7 +149,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl }, criterion: response => { var r = (ResponseDryRun)response; - return r.Gearbox.GearboxPowerRequest.Value() * 100; + return r.Gearbox.PowerRequest.Value() * 100; }, abortCriterion: (response, cnt) => { var r = (ResponseDryRun)response; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Wheels.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Wheels.cs index 1fdf710917765df308383e9330bee28b6584c2af..73e3312961abc7ac7c99f11219a5e47d5bd699cc 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Wheels.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Wheels.cs @@ -82,7 +82,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var retVal = NextComponent.Request(absTime, dt, CurrentState.TorqueIn, CurrentState.AngularVelocity, dryRun); - retVal.Wheels.WheelsPowerRequest = CurrentState.TorqueIn * avgAngularSpeed; + retVal.Wheels.PowerRequest = CurrentState.TorqueIn * avgAngularSpeed; return retVal; } diff --git a/VectoCore/VectoCore/Utils/SearchAlgorithm.cs b/VectoCore/VectoCore/Utils/SearchAlgorithm.cs index 12941bb4824864c3d03fe306820922d4aa45fe9b..d2a2f466f254bd50405438c65f2fbdfe92521ef7 100644 --- a/VectoCore/VectoCore/Utils/SearchAlgorithm.cs +++ b/VectoCore/VectoCore/Utils/SearchAlgorithm.cs @@ -297,7 +297,7 @@ namespace TUGraz.VectoCore.Utils row["delta"] = entry.delta; row["AuxPower"] = response.Engine.AuxiliariesPowerDemand == null ? -1 : response.Engine.AuxiliariesPowerDemand.Value(); row["engineSpeed"] = response.Engine.EngineSpeed == null ? -1 : response.Engine.EngineSpeed.Value(); - row["enginePower"] = response.Engine.EnginePowerRequest == null ? -1 : response.Engine.EnginePowerRequest.Value(); + row["enginePower"] = response.Engine.PowerRequest == null ? -1 : response.Engine.PowerRequest.Value(); table.Rows.Add(row); } diff --git a/VectoCore/VectoCoreTest/Utils/MockPorts.cs b/VectoCore/VectoCoreTest/Utils/MockPorts.cs index 14cb48750be0c28bfe07809542331d111e6d785b..5050a0427f45093a965b5c822ed236467f89a81c 100644 --- a/VectoCore/VectoCoreTest/Utils/MockPorts.cs +++ b/VectoCore/VectoCoreTest/Utils/MockPorts.cs @@ -60,15 +60,15 @@ namespace TUGraz.VectoCore.Tests.Utils if (dryRun) { return new ResponseDryRun(this) { Gearbox = { - GearboxPowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, }, Engine = { - EnginePowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, EngineSpeed = outAngularVelocity, DynamicFullLoadPower = (outTorque + 2300.SI<NewtonMeter>()) * outAngularVelocity, }, Clutch = { - ClutchPowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, }, DeltaFullLoad = (outTorque - 2300.SI<NewtonMeter>()) * outAngularVelocity, DeltaDragLoad = (outTorque - -100.SI<NewtonMeter>()) * outAngularVelocity @@ -77,14 +77,14 @@ namespace TUGraz.VectoCore.Tests.Utils return new ResponseSuccess(this) { Gearbox = { - GearboxPowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, }, Engine = { - EnginePowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, EngineSpeed = outAngularVelocity, }, Clutch = { - ClutchPowerRequest = outTorque * outAngularVelocity, + PowerRequest = outTorque * outAngularVelocity, }, }; } @@ -93,10 +93,10 @@ namespace TUGraz.VectoCore.Tests.Utils { return new ResponseSuccess(this) { Clutch = { - ClutchPowerRequest = outTorque * (outAngularVelocity ?? 0.SI<PerSecond>()), + PowerRequest = outTorque * (outAngularVelocity ?? 0.SI<PerSecond>()), }, Engine = { - EnginePowerRequest = outTorque * (outAngularVelocity ?? 0.SI<PerSecond>()), + PowerRequest = outTorque * (outAngularVelocity ?? 0.SI<PerSecond>()), EngineSpeed = outAngularVelocity, } };