diff --git a/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs b/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs index 8b671c7eaf04c4ae656ff0d605895310501c370e..aea7bd95cc2f181a70bf6fe00150dd8f34e6e821 100644 --- a/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs +++ b/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs @@ -41,17 +41,31 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var startDistance = cycleData.Entries.First().Distance.Value(); var absTime = 0.SI<Second>(); - var response = cycle.OutPort().Request(absTime, 1.SI<Meter>()); + // waiting time of 40 seconds is split up to 3 steps: 0.5, 39, 0.5 + var response = cycle.OutPort().Request(absTime, 1.SI<Meter>()); Assert.IsInstanceOfType(response, typeof(ResponseSuccess)); - Assert.AreEqual(0, driver.LastRequest.TargetVelocity.Value(), Tolerance); Assert.AreEqual(0.028416069495827, driver.LastRequest.Gradient.Value(), 1E-12); Assert.AreEqual(0.5, driver.LastRequest.dt.Value(), Tolerance); + container.CommitSimulationStep(absTime, response.SimulationInterval); + absTime += response.SimulationInterval; + response = cycle.OutPort().Request(absTime, 1.SI<Meter>()); + Assert.IsInstanceOfType(response, typeof(ResponseSuccess)); + Assert.AreEqual(0, driver.LastRequest.TargetVelocity.Value(), Tolerance); + Assert.AreEqual(0.028416069495827, driver.LastRequest.Gradient.Value(), 1E-12); + Assert.AreEqual(39, driver.LastRequest.dt.Value(), Tolerance); container.CommitSimulationStep(absTime, response.SimulationInterval); - absTime += 40.SI<Second>(); + absTime += response.SimulationInterval; + response = cycle.OutPort().Request(absTime, 1.SI<Meter>()); + Assert.IsInstanceOfType(response, typeof(ResponseSuccess)); + Assert.AreEqual(0, driver.LastRequest.TargetVelocity.Value(), Tolerance); + Assert.AreEqual(0.028416069495827, driver.LastRequest.Gradient.Value(), 1E-12); + Assert.AreEqual(0.5, driver.LastRequest.dt.Value(), Tolerance); + container.CommitSimulationStep(absTime, response.SimulationInterval); + absTime += response.SimulationInterval; response = cycle.OutPort().Request(absTime, 1.SI<Meter>()); diff --git a/VectoCoreTest/Models/SimulationComponent/GearboxPowertrainTest.cs b/VectoCoreTest/Models/SimulationComponent/GearboxPowertrainTest.cs index 2e4b6cb58f8cf64ed45e89dd74d8eef549bcc4d8..eb0875b2b02f9896df2cacb5ef270c352927f37f 100644 --- a/VectoCoreTest/Models/SimulationComponent/GearboxPowertrainTest.cs +++ b/VectoCoreTest/Models/SimulationComponent/GearboxPowertrainTest.cs @@ -24,7 +24,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent public const string AccelerationFile = @"TestData\Components\Truck.vacc"; public const string EngineFile = @"TestData\Components\40t_Long_Haul_Truck.veng"; public const string AxleGearLossMap = @"TestData\Components\Axle.vtlm"; - public const string GearboxLossMap = @"TestData\Components\Indirect Gear.vtlm"; + public const string GearboxIndirectLoss = @"TestData\Components\Indirect Gear.vtlm"; + public const string GearboxDirectLoss = @"TestData\Components\Direct Gear.vtlm"; public const string GearboxShiftPolygonFile = @"TestData\Components\ShiftPolygons.vgbs"; public const string GearboxFullLoadCurveFile = @"TestData\Components\Gearbox.vfld"; @@ -101,7 +102,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent Assert.AreEqual(11u, container.Gear); Assert.IsInstanceOfType(retVal, typeof(ResponseSuccess)); - AssertHelper.AreRelativeEqual(1195.996.RPMtoRad(), container.EngineSpeed); + AssertHelper.AreRelativeEqual(1530.263.RPMtoRad(), container.EngineSpeed, 0.001); var absTime = 0.SI<Second>(); var ds = 1.SI<Meter>(); @@ -172,9 +173,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent Tuple.Create((uint)i, new GearData { FullLoadCurve = FullLoadCurve.ReadFromFile(GearboxFullLoadCurveFile), - LossMap = TransmissionLossMap.ReadFromFile(GearboxLossMap, ratio), + LossMap = + (i != 11) + ? TransmissionLossMap.ReadFromFile(GearboxIndirectLoss, ratio) + : TransmissionLossMap.ReadFromFile(GearboxDirectLoss, ratio), Ratio = ratio, - //ShiftPolygon = ShiftPolygon.ReadFromFile(GearboxShiftPolygonFile), ShiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon(engineData.FullLoadCurve, engineData.IdleSpeed) })) .ToDictionary(k => k.Item1 + 1, v => v.Item2), diff --git a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs index 67ab3cedabffc3951c0b87c8df7e5661f3d312b5..a0f15477d12a6ada4765b441ccb206210c809e85 100644 --- a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs +++ b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs @@ -283,9 +283,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent gearbox.OutPort().Initialize(0.SI<NewtonMeter>(), 0.SI<PerSecond>()); - var first = gearbox.OutPort().Request(absTime, dt, 1000.SI<NewtonMeter>(), 1000.RPMtoRad()); + // just for test case mock driver driver.VehicleStopped = false; - absTime += dt; foreach (var exp in expected) { var expectedT = exp.t.SI<NewtonMeter>();