diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs index 0bf68183d4f28870f6832e42dc404ef4796969a0..15508ae4b279afb73672461b8ae5bedd750646d7 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs @@ -200,7 +200,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Log.Debug("Dynamic FullLoad: torque: {0}, power: {1}", dynamicFullLoadTorque, dynamicFullLoadPower); - ValidatePowerDemand(totalTorqueDemand, dynamicFullLoadTorque, fullDragTorque); + //ValidatePowerDemand(totalTorqueDemand, dynamicFullLoadTorque, fullDragTorque); // get max. torque as limited by gearbox. gearbox only limits torqueOut! var gearboxFullLoad = DataBus.GearMaxTorque; @@ -328,7 +328,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl /// <summary> /// Validates the requested power demand [W]. /// </summary> - protected virtual void ValidatePowerDemand(NewtonMeter torqueDemand, NewtonMeter dynamicFullLoadTorque, NewtonMeter fullDragTorque) + protected virtual void ValidatePowerDemand(NewtonMeter torqueDemand, NewtonMeter dynamicFullLoadTorque, + NewtonMeter fullDragTorque) { if (fullDragTorque.IsGreater(0) && torqueDemand < 0) { throw new VectoSimulationException("P_engine_drag > 0! Tq_drag: {0}, Tq_eng: {1}, n_eng_avg: {2} [1/min] ", @@ -347,6 +348,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected override void DoWriteModalResults(IModalDataContainer container) { + ValidatePowerDemand(CurrentState.EngineTorque, CurrentState.DynamicFullLoadTorque, CurrentState.FullDragTorque); + var avgEngineSpeed = (PreviousState.EngineSpeed + CurrentState.EngineSpeed) / 2.0; if (avgEngineSpeed.IsSmaller(EngineIdleSpeed, DataBus.ExecutionMode == ExecutionMode.Engineering ? 20.RPMtoRad() : 1e-3.RPMtoRad())) {