From 615a461ddc778bf1d9cd25a36ad527d998b76303 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 17 Nov 2017 13:53:47 +0100 Subject: [PATCH] add condition in measured speed cycle: if the remaining interval to the next sampling point is too low, reduce the current simulation interval and thus prolong the next one --- .../Impl/MeasuredSpeedDrivingCycle.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs index 424e42675a..cf4ae6f835 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs @@ -38,6 +38,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.Models.Connector.Ports; using TUGraz.VectoCore.Models.Connector.Ports.Impl; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; @@ -134,6 +135,18 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl DeltaT = CycleIterator.RightSample.Time - absTime }; } + if (Constants.SimulationSettings.MeasuredSpeedTargetTimeInterval.IsEqual(dt)) { + if ((CycleIterator.RightSample.Time - (absTime + dt)) > 0 && (CycleIterator.RightSample.Time - (absTime + dt)) / + Constants.SimulationSettings.MeasuredSpeedTargetTimeInterval < 0.5) { + // the remaining simulation interval would be below 0.5 seconds (i.e., half of MeasuredSpeedTargetTimeInterval) + // reduce the current simulation interval to extend the remaining interval + return new ResponseFailTimeInterval { + AbsTime = absTime, + Source = this, + DeltaT = (CycleIterator.RightSample.Time - absTime)/2 + }; + } + } // calc acceleration from speed diff vehicle to cycle var targetSpeed = CycleIterator.RightSample.VehicleTargetSpeed; -- GitLab