From 177461722c6c4a9d4064eca46721e29703ba254d Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 29 May 2020 09:10:06 +0200 Subject: [PATCH] combustion engine: consider max speed per gear only if tc is locked. max tc speed is handled in tc anyway --- .../Models/SimulationComponent/Impl/CombustionEngine.cs | 8 +++++--- .../Models/SimulationComponent/Impl/TorqueConverter.cs | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs index 3ea854218a..7f44e2ec0e 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs @@ -332,9 +332,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected virtual PerSecond GetEngineSpeedLimit(Second absTime) { - return DataBus.Gear == 0 || !DataBus.ClutchClosed(absTime) - ? ModelData.FullLoadCurves[0].N95hSpeed - : VectoMath.Min(DataBus.GetGearData(DataBus.Gear).MaxSpeed, ModelData.FullLoadCurves[0].N95hSpeed); + if (DataBus.Gear == 0 || !DataBus.ClutchClosed(absTime) || !DataBus.TCLocked) { + return ModelData.FullLoadCurves[0].N95hSpeed; + } + + return VectoMath.Min(DataBus.GetGearData(DataBus.Gear).MaxSpeed, ModelData.FullLoadCurves[0].N95hSpeed); } public virtual IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs index 3e9dcfb487..efb7e558e5 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TorqueConverter.cs @@ -363,7 +363,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl operatingPoint.InAngularVelocity); } - var maxInputSpeed = VectoMath.Min(VectoMath.Min(ModelData.TorqueConverterSpeedLimit, DataBus.EngineN95hSpeed), DataBus.GetGearData(DataBus.Gear).MaxSpeed); + var maxInputSpeed = VectoMath.Min(ModelData.TorqueConverterSpeedLimit, DataBus.EngineN95hSpeed); if (operatingPoint.InAngularVelocity.IsGreater(maxInputSpeed)) { operatingPoint = ModelData.FindOperatingPoint(maxInputSpeed, outAngularVelocity); } -- GitLab