diff --git a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs index 9743d5a03c8b79d474071dddda7b02441fed4dad..82a7e5350ec97e3f061857cdd5276fe85866067c 100644 --- a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs +++ b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs @@ -186,6 +186,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected override void DoWriteModalResults(IModalDataWriter writer) { + writer[ModalResultField.dist] = CurrentState.Distance; writer[ModalResultField.v_targ] = CurrentState.VehicleTargetSpeed; writer[ModalResultField.grad] = Math.Tan(CurrentState.Gradient.Value()) * 100; } diff --git a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs index 972893a7bab311094b29ff1886770fd8b910001d..18075fd45c10cf4e62547b35f992e09b43343bb2 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs @@ -118,12 +118,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (!outTorque.IsEqual(0, Constants.SimulationSettings.EngineFLDPowerTolerance)) { if (outTorque > 0) { - return new ResponseOverload { - Delta = outTorque * outEngineSpeed, - Source = this, - GearboxPowerRequest = outTorque * outEngineSpeed - }; - } + return new ResponseOverload { + Delta = outTorque * outEngineSpeed, + Source = this, + GearboxPowerRequest = outTorque * outEngineSpeed + }; + } return new ResponseUnderload { Delta = outTorque * outEngineSpeed, Source = this, diff --git a/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs b/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs index 0406972a9787124f554349ea9efe496b89d7eac2..efa3288110adea756b82a8913f34194e0ba27fb5 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using TUGraz.VectoCore.Exceptions; using TUGraz.VectoCore.Models.Connector.Ports; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation; @@ -100,7 +101,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected override void DoWriteModalResults(IModalDataWriter writer) { writer[ModalResultField.v_act] = (_previousState.Velocity + _currentState.Velocity) / 2; - writer[ModalResultField.dist] = _currentState.Distance; + + // sanity check: is the vehicle in step with the cycle? + var distance = (SI)writer[ModalResultField.dist]; + if (!distance.IsEqual(_currentState.Distance.Value(), 1e-15)) { + Log.Warn("distance diverges: {0}, distance: {1}", (distance - _currentState.Distance).Value(), distance); + } + //writer[ModalResultField.dist] = _currentState.Distance; // todo hint: take care to use correct velocity when writing the P... values in moddata } diff --git a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTest.cs b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTest.cs index a51beb17cb182e49b7e0cfa267412f691aaddb60..b5db640c961bb86469b8d03b1369753d45fee0f7 100644 --- a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTest.cs +++ b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTest.cs @@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = CreateCycleData(new[] { // <s>,<v>,<grad>,<stop> - " 0, 10, 0, 0", + " 0, 80, 0, 0", "500, 0, 0, 0", });