diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs index 0e5bdf015954a754c001e0a595be3849feafb608..c0ac630f8bd529014aa90aa2f564c1eaae56f2a7 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs @@ -636,7 +636,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl DrivingCycleData.DrivingCycleEntry actionEntry) { var targetSpeed = OverspeedAllowed(actionEntry.VehicleTargetSpeed) - ? actionEntry.VehicleTargetSpeed + GetOverspeed() + ? actionEntry.VehicleTargetSpeed + Driver.DriverData.OverSpeed.OverSpeed : actionEntry.VehicleTargetSpeed; var vehicleMass = Driver.DataBus.TotalMass + Driver.DataBus.ReducedMassWheels; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs index 2ebc5488cf4675fc94ec0c837d867f4450c06369..8293b68065072e05a744264579274c45a387112b 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs @@ -157,14 +157,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public Watt PowerDemandEngineOff() { - if (!DataBus.VehicleStopped) { - return Auxiliaries.Sum(x => x.Value(0.RPMtoRad())); - } var auxiliarieIgnoredDuringVehicleStop = new[] { Constants.Auxiliaries.IDs.SteeringPump, Constants.Auxiliaries.IDs.Fan, Constants.Auxiliaries.IDs.PTOConsumer, Constants.Auxiliaries.IDs.PTOTransmission }; + var auxiliarieIgnoredDuringDrive = new[] { + Constants.Auxiliaries.IDs.Fan, + }; var powerDemands = new Dictionary<string, Watt>(Auxiliaries.Count); var engineOffDemand = 0.SI<Watt>(); foreach (var item in Auxiliaries) { @@ -175,7 +175,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } powerDemands[item.Key] = value * (1-EngineStopStartUtilityFactor); - engineOffDemand += auxiliarieIgnoredDuringVehicleStop.Contains(item.Key) ? 0.SI<Watt>() : value * EngineStopStartUtilityFactor; + if (DataBus.VehicleStopped) { + engineOffDemand += auxiliarieIgnoredDuringVehicleStop.Contains(item.Key) + ? 0.SI<Watt>() + : value * EngineStopStartUtilityFactor; + } else { + engineOffDemand += auxiliarieIgnoredDuringDrive.Contains(item.Key) + ? 0.SI<Watt>() + : value * EngineStopStartUtilityFactor; + } } CurrentState.PowerDemands = powerDemands; return engineOffDemand; //powerDemands.Sum(kv => kv.Value); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs index a4ffebcf461ef9cbcbdb20314f8c14411a0aa14a..27dc2d92750609ab8d7aba776e16ae10ef57c60a 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs @@ -109,7 +109,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { container[ModalResultField.Tq_drag] = 0.SI<NewtonMeter>(); container[ModalResultField.IgnitionOn] = CurrentState.IgnitionOn; - container[ModalResultField.P_aux_ice_off] = (CurrentState.AuxPowerEngineOff ?? 0.SI<Watt>()); + container[ModalResultField.P_aux_ice_off] = (CurrentState.AuxPowerEngineOff ?? 0.SI<Watt>()) * EngineStopStartUtilityFactor; + var auxDemand = EngineAux.PowerDemandEngineOn(ModelData.IdleSpeed) / ModelData.IdleSpeed;