diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index 0a179ae85a7b0c8c29b425a04f0cbbbe9bd79a80..96e80a328e1c6fc34a35d7c6e0fc92751502517c 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -470,6 +470,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl .AddAuxiliaries(container, data); if (data.ElectricMachinesData.Any(x => x.Item1 == PowertrainPosition.HybridP1)) { + // this has to be done _after_ the powertrain is connected together so that the cluch already has its nextComponent set (necessary in the idle controlelr) if (gearbox is ATGearbox atGbx) { atGbx.IdleController = idleController; } else { @@ -964,14 +965,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var ctl = new SimpleHybridController(container, es) { Gearbox = gbx, Engine = engine }; var idleController = GetIdleController(data.PTO, engine, container); var clutch = data.GearboxData.Type.ManualTransmission() ? new SwitchableClutch(container, data.EngineData) : null; - if (data.ElectricMachinesData.Any(x => x.Item1 == PowertrainPosition.HybridP1)) { - if (gearbox is ATGearbox atGbx) { - atGbx.IdleController = idleController; - new ATClutchInfo(container); - } else { - clutch.IdleController = idleController; - } - } + var vehicle = new Vehicle(container, data.VehicleData, data.AirdragData); @@ -1005,6 +999,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl .AddComponent(engine, idleController) .AddAuxiliaries(container, data); + if (data.ElectricMachinesData.Any(x => x.Item1 == PowertrainPosition.HybridP1)) { + // this has to be done _after_ the powertrain is connected together so that the cluch already has its nextComponent set (necessary in the idle controlelr) + if (gearbox is ATGearbox atGbx) { + atGbx.IdleController = idleController; + new ATClutchInfo(container); + } else { + clutch.IdleController = idleController; + } + } + if (data.BusAuxiliaries != null) { if (!(container.BusAux is BusAuxiliariesAdapter busAux)) { throw new VectoException("BusAux data set but no BusAux component found!"); diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs index 615ed911f1317b1f755f7dc7177444f962862d49..923f507498fbac11bfb7e995df1266badfbe7ed5 100644 --- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs +++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs @@ -370,28 +370,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS (4488, 4591, WithinSegment, Accelerate), // len: 103m (4591, 4606, WithinSegment, Roll), // len: 15m (4606, 4667, WithinSegment, Accelerate), // len: 61m - (4667, 4679, WithinSegment, Roll), // len: 12m - (4679, 4721, WithinSegment, Accelerate), // len: 42m + (4667, 4678, WithinSegment, Roll), // len: 11m + (4678, 4721, WithinSegment, Accelerate), // len: 43m (4721, 4730, WithinSegment, Roll), // len: 9m - (4730, 4762, WithinSegment, Accelerate), // len: 32m - (4762, 4769, WithinSegment, Roll), // len: 7m - (4769, 4796, WithinSegment, Accelerate), // len: 27m - (4796, 4801, WithinSegment, Roll), // len: 5m - (4801, 4930, WithinSegment, Accelerate), // len: 129m - (4930, 4937, WithinSegment, Roll), // len: 7m - (4937, 5053, WithinSegment, Accelerate), // len: 116m - (5053, 5065, WithinSegment, Roll), // len: 12m - (5065, 5099, WithinSegment, Accelerate), // len: 34m - (5099, 5113, WithinSegment, Roll), // len: 14m - (5113, 5227, WithinSegment, Accelerate), // len: 114m - (5227, 5245, WithinSegment, Roll), // len: 18m - (5245, 5364, WithinSegment, Accelerate), // len: 119m - (5364, 5692, UseCase2, Coast), // len: 328m - (5692, 5947, WithinSegment, Coast), // len: 255m - (5947, 6120, WithinSegment, Brake), // len: 173m - (6120, 6132, WithinSegment, Coast), // len: 12m - (6132, 6520, OutsideSegment, Coast), // len: 388m - (6520, 1e6, OutsideSegment, Accelerate)); + (4730, 4758, WithinSegment, Accelerate), // len: 28m + (4758, 4765, WithinSegment, Roll), // len: 7m + (4765, 4799, WithinSegment, Accelerate), // len: 34m + (4799, 4804, WithinSegment, Roll), // len: 5m + (4804, 4932, WithinSegment, Accelerate), // len: 128m + (4932, 4939, WithinSegment, Roll), // len: 7m + (4939, 5050, WithinSegment, Accelerate), // len: 111m + (5050, 5062, WithinSegment, Roll), // len: 12m + (5062, 5095, WithinSegment, Accelerate), // len: 33m + (5095, 5109, WithinSegment, Roll), // len: 14m + (5109, 5231, WithinSegment, Accelerate), // len: 122m + (5231, 5250, WithinSegment, Roll), // len: 19m + (5250, 5369, WithinSegment, Accelerate), // len: 119m + (5369, 5674, UseCase2, Coast), // len: 305m + (5674, 5929, WithinSegment, Coast), // len: 255m + (5929, 6114, WithinSegment, Brake), // len: 185m + (6114, 6127, WithinSegment, Coast), // len: 13m + (6127, 6515, OutsideSegment, Coast), // len: 388m + (6515, 1e6, OutsideSegment, Accelerate)); [TestCase] public void Class5_PCC123_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name, @@ -525,28 +525,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS (4488, 4591, WithinSegment, Accelerate), // len: 103m (4591, 4606, WithinSegment, Roll), // len: 15m (4606, 4667, WithinSegment, Accelerate), // len: 61m - (4667, 4679, WithinSegment, Roll), // len: 12m - (4679, 4721, WithinSegment, Accelerate), // len: 42m + (4667, 4678, WithinSegment, Roll), // len: 11m + (4678, 4721, WithinSegment, Accelerate), // len: 43m (4721, 4730, WithinSegment, Roll), // len: 9m - (4730, 4762, WithinSegment, Accelerate), // len: 32m - (4762, 4769, WithinSegment, Roll), // len: 7m - (4769, 4796, WithinSegment, Accelerate), // len: 27m - (4796, 4801, WithinSegment, Roll), // len: 5m - (4801, 4930, WithinSegment, Accelerate), // len: 129m - (4930, 4937, WithinSegment, Roll), // len: 7m - (4937, 5053, WithinSegment, Accelerate), // len: 116m - (5053, 5065, WithinSegment, Roll), // len: 12m - (5065, 5099, WithinSegment, Accelerate), // len: 34m - (5099, 5113, WithinSegment, Roll), // len: 14m - (5113, 5227, WithinSegment, Accelerate), // len: 114m - (5227, 5245, WithinSegment, Roll), // len: 18m - (5245, 5364, WithinSegment, Accelerate), // len: 119m - (5364, 5692, UseCase2, Coast), // len: 328m - (5692, 5751, WithinSegment, Coast), // len: 59m - (5751, 6124, WithinSegment, Brake), // len: 373m - (6124, 6136, WithinSegment, Coast), // len: 12m - (6136, 6409, OutsideSegment, Coast), // len: 273m - (6409, 1e6, OutsideSegment, Accelerate)); + (4730, 4758, WithinSegment, Accelerate), // len: 28m + (4758, 4765, WithinSegment, Roll), // len: 7m + (4765, 4799, WithinSegment, Accelerate), // len: 34m + (4799, 4804, WithinSegment, Roll), // len: 5m + (4804, 4932, WithinSegment, Accelerate), // len: 128m + (4932, 4939, WithinSegment, Roll), // len: 7m + (4939, 5050, WithinSegment, Accelerate), // len: 111m + (5050, 5062, WithinSegment, Roll), // len: 12m + (5062, 5095, WithinSegment, Accelerate), // len: 33m + (5095, 5109, WithinSegment, Roll), // len: 14m + (5109, 5231, WithinSegment, Accelerate), // len: 122m + (5231, 5250, WithinSegment, Roll), // len: 19m + (5250, 5369, WithinSegment, Accelerate), // len: 119m + (5369, 5674, UseCase2, Coast), // len: 305m + (5674, 5746, WithinSegment, Coast), // len: 72m + (5746, 6130, WithinSegment, Brake), // len: 384m + (6130, 6404, OutsideSegment, Coast), // len: 274m + (6404, 1e6, OutsideSegment, Accelerate)); + [TestCase] public void Class5_PCC12_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name, @@ -669,26 +669,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS (4488, 4591, OutsideSegment, Accelerate), // len: 103m (4591, 4606, OutsideSegment, Roll), // len: 15m (4606, 4667, OutsideSegment, Accelerate), // len: 61m - (4667, 4679, OutsideSegment, Roll), // len: 12m - (4679, 4721, OutsideSegment, Accelerate), // len: 42m + (4667, 4678, OutsideSegment, Roll), // len: 11m + (4678, 4721, OutsideSegment, Accelerate), // len: 43m (4721, 4730, OutsideSegment, Roll), // len: 9m - (4730, 4762, OutsideSegment, Accelerate), // len: 32m - (4762, 4769, OutsideSegment, Roll), // len: 7m - (4769, 4796, OutsideSegment, Accelerate), // len: 27m - (4796, 4801, OutsideSegment, Roll), // len: 5m - (4801, 4930, OutsideSegment, Accelerate), // len: 129m - (4930, 4937, OutsideSegment, Roll), // len: 7m - (4937, 5053, OutsideSegment, Accelerate), // len: 116m - (5053, 5065, OutsideSegment, Roll), // len: 12m - (5065, 5099, OutsideSegment, Accelerate), // len: 34m - (5099, 5113, OutsideSegment, Roll), // len: 14m - (5113, 5227, OutsideSegment, Accelerate), // len: 114m - (5227, 5245, OutsideSegment, Roll), // len: 18m - (5245, 5465, OutsideSegment, Accelerate), // len: 220m - (5465, 5560, OutsideSegment, Coast), // len: 95m - (5560, 6125, OutsideSegment, Brake), // len: 565m - (6125, 6410, OutsideSegment, Coast), // len: 285m - (6410, 1e6, OutsideSegment, Accelerate)); + (4730, 4758, OutsideSegment, Accelerate), // len: 28m + (4758, 4765, OutsideSegment, Roll), // len: 7m + (4765, 4799, OutsideSegment, Accelerate), // len: 34m + (4799, 4804, OutsideSegment, Roll), // len: 5m + (4804, 4932, OutsideSegment, Accelerate), // len: 128m + (4932, 4939, OutsideSegment, Roll), // len: 7m + (4939, 5050, OutsideSegment, Accelerate), // len: 111m + (5050, 5062, OutsideSegment, Roll), // len: 12m + (5062, 5095, OutsideSegment, Accelerate), // len: 33m + (5095, 5109, OutsideSegment, Roll), // len: 14m + (5109, 5231, OutsideSegment, Accelerate), // len: 122m + (5231, 5250, OutsideSegment, Roll), // len: 19m + (5250, 5459, OutsideSegment, Accelerate), // len: 209m + (5459, 5554, OutsideSegment, Coast), // len: 95m + (5554, 6131, OutsideSegment, Brake), // len: 577m + (6131, 6404, OutsideSegment, Coast), // len: 273m + (6404, 1e6, OutsideSegment, Accelerate)); + + [TestCase] public void Class5_NoADAS_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name, @@ -830,26 +832,26 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS (4488, 4591, OutsideSegment, Accelerate), // len: 103m (4591, 4606, OutsideSegment, Roll), // len: 15m (4606, 4667, OutsideSegment, Accelerate), // len: 61m - (4667, 4679, OutsideSegment, Roll), // len: 12m - (4679, 4721, OutsideSegment, Accelerate), // len: 42m + (4667, 4678, OutsideSegment, Roll), // len: 11m + (4678, 4721, OutsideSegment, Accelerate), // len: 43m (4721, 4730, OutsideSegment, Roll), // len: 9m - (4730, 4762, OutsideSegment, Accelerate), // len: 32m - (4762, 4769, OutsideSegment, Roll), // len: 7m - (4769, 4796, OutsideSegment, Accelerate), // len: 27m - (4796, 4801, OutsideSegment, Roll), // len: 5m - (4801, 4930, OutsideSegment, Accelerate), // len: 129m - (4930, 4937, OutsideSegment, Roll), // len: 7m - (4937, 5053, OutsideSegment, Accelerate), // len: 116m - (5053, 5065, OutsideSegment, Roll), // len: 12m - (5065, 5099, OutsideSegment, Accelerate), // len: 34m - (5099, 5113, OutsideSegment, Roll), // len: 14m - (5113, 5227, OutsideSegment, Accelerate), // len: 114m - (5227, 5245, OutsideSegment, Roll), // len: 18m - (5245, 5465, OutsideSegment, Accelerate), // len: 220m - (5465, 5560, OutsideSegment, Coast), // len: 95m - (5560, 6125, OutsideSegment, Brake), // len: 565m - (6125, 6410, OutsideSegment, Coast), // len: 285m - (6410, 1e6, OutsideSegment, Accelerate)); + (4730, 4758, OutsideSegment, Accelerate), // len: 28m + (4758, 4765, OutsideSegment, Roll), // len: 7m + (4765, 4799, OutsideSegment, Accelerate), // len: 34m + (4799, 4804, OutsideSegment, Roll), // len: 5m + (4804, 4932, OutsideSegment, Accelerate), // len: 128m + (4932, 4939, OutsideSegment, Roll), // len: 7m + (4939, 5050, OutsideSegment, Accelerate), // len: 111m + (5050, 5062, OutsideSegment, Roll), // len: 12m + (5062, 5095, OutsideSegment, Accelerate), // len: 33m + (5095, 5109, OutsideSegment, Roll), // len: 14m + (5109, 5231, OutsideSegment, Accelerate), // len: 122m + (5231, 5250, OutsideSegment, Roll), // len: 19m + (5250, 5459, OutsideSegment, Accelerate), // len: 209m + (5459, 5554, OutsideSegment, Coast), // len: 95m + (5554, 6131, OutsideSegment, Brake), // len: 577m + (6131, 6404, OutsideSegment, Coast), // len: 273m + (6404, 1e6, OutsideSegment, Accelerate)); [TestCase] public void Class5_EcoRollWithoutEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name, @@ -992,26 +994,26 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS (4488, 4591, OutsideSegment, Accelerate), // len: 103m (4591, 4606, OutsideSegment, Roll), // len: 15m (4606, 4667, OutsideSegment, Accelerate), // len: 61m - (4667, 4679, OutsideSegment, Roll), // len: 12m - (4679, 4721, OutsideSegment, Accelerate), // len: 42m + (4667, 4678, OutsideSegment, Roll), // len: 11m + (4678, 4721, OutsideSegment, Accelerate), // len: 43m (4721, 4730, OutsideSegment, Roll), // len: 9m - (4730, 4762, OutsideSegment, Accelerate), // len: 32m - (4762, 4769, OutsideSegment, Roll), // len: 7m - (4769, 4796, OutsideSegment, Accelerate), // len: 27m - (4796, 4801, OutsideSegment, Roll), // len: 5m - (4801, 4930, OutsideSegment, Accelerate), // len: 129m - (4930, 4937, OutsideSegment, Roll), // len: 7m - (4937, 5053, OutsideSegment, Accelerate), // len: 116m - (5053, 5065, OutsideSegment, Roll), // len: 12m - (5065, 5099, OutsideSegment, Accelerate), // len: 34m - (5099, 5113, OutsideSegment, Roll), // len: 14m - (5113, 5227, OutsideSegment, Accelerate), // len: 114m - (5227, 5245, OutsideSegment, Roll), // len: 18m - (5245, 5465, OutsideSegment, Accelerate), // len: 220m - (5465, 5560, OutsideSegment, Coast), // len: 95m - (5560, 6125, OutsideSegment, Brake), // len: 565m - (6125, 6410, OutsideSegment, Coast), // len: 285m - (6410, 1e6, OutsideSegment, Accelerate)); + (4730, 4758, OutsideSegment, Accelerate), // len: 28m + (4758, 4765, OutsideSegment, Roll), // len: 7m + (4765, 4799, OutsideSegment, Accelerate), // len: 34m + (4799, 4804, OutsideSegment, Roll), // len: 5m + (4804, 4932, OutsideSegment, Accelerate), // len: 128m + (4932, 4939, OutsideSegment, Roll), // len: 7m + (4939, 5050, OutsideSegment, Accelerate), // len: 111m + (5050, 5062, OutsideSegment, Roll), // len: 12m + (5062, 5095, OutsideSegment, Accelerate), // len: 33m + (5095, 5109, OutsideSegment, Roll), // len: 14m + (5109, 5231, OutsideSegment, Accelerate), // len: 122m + (5231, 5250, OutsideSegment, Roll), // len: 19m + (5250, 5459, OutsideSegment, Accelerate), // len: 209m + (5459, 5554, OutsideSegment, Coast), // len: 95m + (5554, 6131, OutsideSegment, Brake), // len: 577m + (6131, 6404, OutsideSegment, Coast), // len: 273m + (6404, 1e6, OutsideSegment, Accelerate)); [TestCase] public void Class5_EcoRollEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name, @@ -1158,28 +1160,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS (4488, 4591, WithinSegment, Accelerate), // len: 103m (4591, 4606, WithinSegment, Roll), // len: 15m (4606, 4667, WithinSegment, Accelerate), // len: 61m - (4667, 4679, WithinSegment, Roll), // len: 12m - (4679, 4721, WithinSegment, Accelerate), // len: 42m + (4667, 4678, WithinSegment, Roll), // len: 11m + (4678, 4721, WithinSegment, Accelerate), // len: 43m (4721, 4730, WithinSegment, Roll), // len: 9m - (4730, 4762, WithinSegment, Accelerate), // len: 32m - (4762, 4769, WithinSegment, Roll), // len: 7m - (4769, 4796, WithinSegment, Accelerate), // len: 27m - (4796, 4801, WithinSegment, Roll), // len: 5m - (4801, 4930, WithinSegment, Accelerate), // len: 129m - (4930, 4937, WithinSegment, Roll), // len: 7m - (4937, 5053, WithinSegment, Accelerate), // len: 116m - (5053, 5065, WithinSegment, Roll), // len: 12m - (5065, 5099, WithinSegment, Accelerate), // len: 34m - (5099, 5113, WithinSegment, Roll), // len: 14m - (5113, 5227, WithinSegment, Accelerate), // len: 114m - (5227, 5245, WithinSegment, Roll), // len: 18m - (5245, 5364, WithinSegment, Accelerate), // len: 119m - (5364, 5623, UseCase2, Roll), // len: 259m - (5623, 5841, WithinSegment, Coast), // len: 218m - (5841, 6113, WithinSegment, Brake), // len: 272m - (6113, 6224, WithinSegment, Coast), // len: 111m - (6224, 6514, OutsideSegment, Coast), // len: 290m - (6514, 1e6, OutsideSegment, Accelerate)); + (4730, 4758, WithinSegment, Accelerate), // len: 28m + (4758, 4765, WithinSegment, Roll), // len: 7m + (4765, 4799, WithinSegment, Accelerate), // len: 34m + (4799, 4804, WithinSegment, Roll), // len: 5m + (4804, 4932, WithinSegment, Accelerate), // len: 128m + (4932, 4939, WithinSegment, Roll), // len: 7m + (4939, 5050, WithinSegment, Accelerate), // len: 111m + (5050, 5062, WithinSegment, Roll), // len: 12m + (5062, 5095, WithinSegment, Accelerate), // len: 33m + (5095, 5109, WithinSegment, Roll), // len: 14m + (5109, 5231, WithinSegment, Accelerate), // len: 122m + (5231, 5250, WithinSegment, Roll), // len: 19m + (5250, 5369, WithinSegment, Accelerate), // len: 119m + (5369, 5618, UseCase2, Roll), // len: 249m + (5618, 5836, WithinSegment, Coast), // len: 218m + (5836, 6120, WithinSegment, Brake), // len: 284m + (6120, 6231, WithinSegment, Coast), // len: 111m + (6231, 6520, OutsideSegment, Coast), // len: 289m + (6520, 1e6, OutsideSegment, Accelerate)); [TestCase] public void Class5_PCC123EcoRollWithoutEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name, @@ -1329,28 +1331,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS (4488, 4591, WithinSegment, Accelerate), // len: 103m (4591, 4606, WithinSegment, Roll), // len: 15m (4606, 4667, WithinSegment, Accelerate), // len: 61m - (4667, 4679, WithinSegment, Roll), // len: 12m - (4679, 4721, WithinSegment, Accelerate), // len: 42m + (4667, 4678, WithinSegment, Roll), // len: 11m + (4678, 4721, WithinSegment, Accelerate), // len: 43m (4721, 4730, WithinSegment, Roll), // len: 9m - (4730, 4762, WithinSegment, Accelerate), // len: 32m - (4762, 4769, WithinSegment, Roll), // len: 7m - (4769, 4796, WithinSegment, Accelerate), // len: 27m - (4796, 4801, WithinSegment, Roll), // len: 5m - (4801, 4930, WithinSegment, Accelerate), // len: 129m - (4930, 4937, WithinSegment, Roll), // len: 7m - (4937, 5053, WithinSegment, Accelerate), // len: 116m - (5053, 5065, WithinSegment, Roll), // len: 12m - (5065, 5099, WithinSegment, Accelerate), // len: 34m - (5099, 5113, WithinSegment, Roll), // len: 14m - (5113, 5227, WithinSegment, Accelerate), // len: 114m - (5227, 5245, WithinSegment, Roll), // len: 18m - (5245, 5364, WithinSegment, Accelerate), // len: 119m - (5364, 5623, UseCase2, Roll), // len: 259m - (5623, 5841, WithinSegment, Coast), // len: 218m - (5841, 6113, WithinSegment, Brake), // len: 272m - (6113, 6225, WithinSegment, Coast), // len: 112m - (6225, 6514, OutsideSegment, Coast), // len: 289m - (6514, 1e6, OutsideSegment, Accelerate)); + (4730, 4758, WithinSegment, Accelerate), // len: 28m + (4758, 4765, WithinSegment, Roll), // len: 7m + (4765, 4799, WithinSegment, Accelerate), // len: 34m + (4799, 4804, WithinSegment, Roll), // len: 5m + (4804, 4932, WithinSegment, Accelerate), // len: 128m + (4932, 4939, WithinSegment, Roll), // len: 7m + (4939, 5050, WithinSegment, Accelerate), // len: 111m + (5050, 5062, WithinSegment, Roll), // len: 12m + (5062, 5095, WithinSegment, Accelerate), // len: 33m + (5095, 5109, WithinSegment, Roll), // len: 14m + (5109, 5231, WithinSegment, Accelerate), // len: 122m + (5231, 5250, WithinSegment, Roll), // len: 19m + (5250, 5369, WithinSegment, Accelerate), // len: 119m + (5369, 5618, UseCase2, Roll), // len: 249m + (5618, 5836, WithinSegment, Coast), // len: 218m + (5836, 6120, WithinSegment, Brake), // len: 284m + (6120, 6231, WithinSegment, Coast), // len: 111m + (6231, 6520, OutsideSegment, Coast), // len: 289m + (6520, 1e6, OutsideSegment, Accelerate)); [TestCase] public void Class5_PCC123EcoRollEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name, diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs index edbf53336df8718c56455d4d1e65f1e7611d09d9..256e38698eba6bb72805912a126df20243d9fd79 100644 --- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs +++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs @@ -391,15 +391,30 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS [TestCase] public void Class5_PCC12_CaseJ_HEV() => TestPCC(MethodBase.GetCurrentMethod().Name, - (500, 3559, OutsideSegment, Accelerate), // len: 3559m + (0, 3559, OutsideSegment, Accelerate), // len: 3559m (3559, 4563, WithinSegment, Accelerate), // len: 1004m - (5146, 5342, WithinSegment, Accelerate), // len: 196m - (5342, 5669, UseCase2, Coast), // len: 327m - (5669, 5740, WithinSegment, Coast), // len: 71m - (5740, 6113, WithinSegment, Brake), // len: 373m - (6113, 6125, WithinSegment, Coast), // len: 12m - (6125, 6398, OutsideSegment, Coast), // len: 273m - (6398, 1e6, OutsideSegment, Accelerate)); + (4563, 4582, WithinSegment, Roll), // len: 19m + (4582, 4709, WithinSegment, Accelerate), // len: 127m + (4709, 4723, WithinSegment, Roll), // len: 14m + (4723, 4789, WithinSegment, Accelerate), // len: 66m + (4789, 4800, WithinSegment, Roll), // len: 11m + (4800, 4861, WithinSegment, Accelerate), // len: 61m + (4861, 4870, WithinSegment, Roll), // len: 9m + (4870, 4931, WithinSegment, Accelerate), // len: 61m + (4931, 4940, WithinSegment, Roll), // len: 9m + (4940, 5028, WithinSegment, Accelerate), // len: 88m + (5028, 5040, WithinSegment, Roll), // len: 12m + (5040, 5079, WithinSegment, Accelerate), // len: 39m + (5079, 5093, WithinSegment, Roll), // len: 14m + (5093, 5131, WithinSegment, Accelerate), // len: 38m + (5131, 5147, WithinSegment, Roll), // len: 16m + (5147, 5344, WithinSegment, Accelerate), // len: 197m + (5344, 5671, UseCase2, Coast), // len: 327m + (5671, 5730, WithinSegment, Coast), // len: 59m + (5730, 6115, WithinSegment, Brake), // len: 385m + (6115, 6400, OutsideSegment, Coast), // len: 285m + (6400, 1e6, OutsideSegment, Accelerate)); + [TestCase] public void Class5_PCC12_CrestCoast1_HEV() => TestPCC(MethodBase.GetCurrentMethod().Name, diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs index 2c545a2d642c0da382a41797292650ce84a20ff2..a0163adc0d30125727619fb8606ad0d5e92dea8a 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs @@ -63,10 +63,10 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration xmlInputReader = _kernel.Get<IXMLInputDataReader>(); } - [TestCase(null, 1.0, 45.605835, TestName = "Engine CF - NONE"), - TestCase("CFRegPer", 1.2, 45.605835 * 1.2, TestName = "Engine CF - CFRegPer"), - TestCase("BFColdHot", 1.2, 45.605835 * 1.2, TestName = "Engine CF - BFColdHod"), - TestCase("CFNCV", 1.2, 45.605835, TestName = "Engine CF - CFNCV") // has no influence - only for documentation purpose + [TestCase(null, 1.0, 45.602745257853236d, TestName = "Engine CF - NONE"), + TestCase("CFRegPer", 1.2, 45.602745257853236d * 1.2, TestName = "Engine CF - CFRegPer"), + TestCase("BFColdHot", 1.2, 45.602745257853236d * 1.2, TestName = "Engine CF - BFColdHod"), + TestCase("CFNCV", 1.2, 45.602745257853236d, TestName = "Engine CF - CFNCV") // has no influence - only for documentation purpose ] public void TestEngineCorrectionFactors(string correctionFactor, double value, double expectedFc) { diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs index c5aef61c2f9fb2fdb95f80cda3911dbb3c563dc2..fe60239cf8c65b49c693855bbae9a497258a829e 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs @@ -75,8 +75,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration [ TestCase(Class5NG, 2, TankSystem.Liquefied, 253.8, 703.2, TestName = "Class5 LNG 2"), TestCase(Class5NG, 2, TankSystem.Compressed, 259.7, 698.6 , TestName = "Class5 CNG 2"), - TestCase(Class5NG, 6, TankSystem.Liquefied, 253.3, 701.63, TestName = "Class5 LNG 6"), - TestCase(Class5NG, 6, TankSystem.Compressed, 259.1, 696.98, TestName = "Class5 CNG 6"), + TestCase(Class5NG, 6, TankSystem.Liquefied, 253.2, 701.46, TestName = "Class5 LNG 6"), + TestCase(Class5NG, 6, TankSystem.Compressed, 259.0, 696.81, TestName = "Class5 CNG 6"), ] public void NaturalGasTankSystemTest(string filename, int runIdx, TankSystem tankSystem, double expectedFc, double expectedCo2) { diff --git a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs index 56114b7ed1cacb9a18305d46ffcaa392757856b1..79b9d6d565c556c54c3594c606f3b7110e5b914e 100644 --- a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs +++ b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs @@ -260,13 +260,13 @@ namespace TUGraz.VectoCore.Tests.Integration Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat(jobContainer.Runs.Select(r => r.ExecException))); var view = new DataView(sumData.Table, "", SummaryDataContainer.Fields.SORT, DataViewRowState.CurrentRows).ToTable(); Console.WriteLine(string.Join("; ", view.Rows.Cast<DataRow>().Select(x => x[string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble()))); - //201.36157699436848; 239.28934348331288; 169.78069143422488; 182.88228302807696; 220.0873665620844; 251.26047754498438 - Assert.AreEqual(201.36157699436848, view.Rows[0][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); - Assert.AreEqual(239.28934348331288, view.Rows[1][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); - Assert.AreEqual(169.78069143422488, view.Rows[2][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); - Assert.AreEqual(182.88228302807696, view.Rows[3][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); - Assert.AreEqual(220.0873665620844, view.Rows[4][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); - Assert.AreEqual(251.26047754498438, view.Rows[5][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); + //201.3548642491803; 239.27885601652696; 169.7345262485087; 182.825905694444; 219.40786682729086; 250.54711559861258 + Assert.AreEqual(201.3548642491803, view.Rows[0][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); + Assert.AreEqual(239.27885601652696, view.Rows[1][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); + Assert.AreEqual(169.7345262485087, view.Rows[2][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); + Assert.AreEqual(182.825905694444, view.Rows[3][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); + Assert.AreEqual(219.40786682729086, view.Rows[4][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); + Assert.AreEqual(250.54711559861258, view.Rows[5][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3); } [TestCase(EngineSpeedLimitJobATDecl)] diff --git a/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs index 6ad0a6d25d3ece17af0183cc03e6b2dfaf2a15bb..c7671f3919645ff223523ceef0fb8e4ff2e4c4db 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs @@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var run = factory.SimulationRuns().First(); var vehicleContainer = (VehicleContainer)run.GetContainer(); - Assert.AreEqual(11, vehicleContainer.SimulationComponents().Count); + Assert.AreEqual(10, vehicleContainer.SimulationComponents().Count); Assert.IsInstanceOf<Gearbox>(vehicleContainer.GearboxInfo, "gearbox not installed"); Assert.IsInstanceOf<CombustionEngine>(vehicleContainer.EngineInfo, "engine not installed"); diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs index bbe9cd9cb8c8965c2de3b474228f11f4bb68af55..25c891c1ed8069b4ed71593edbace5cce9ad0924 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs @@ -440,10 +440,14 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var i = 0; - var t1 = 21; - var t2 = 14; + var t1 = 20; + var t2 = 9; var t3 = 20; + Assert.AreEqual(19008.29074, data.First().Item2.Overload.OverloadBuffer.Value(), 1e-3); + Assert.AreEqual(100, data.First().Item2.Overload.ContinuousTorque.Value(), 1e-3); + Assert.AreEqual(3687.46233, data.First().Item2.Overload.ContinuousPowerLoss.Value(), 1e-3); + try { // energy buffer is empty - overload is available for (; i < t1; i++) { @@ -451,7 +455,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var absTime = i * dt; var response = motor.Request(absTime, dt, torque, speed); - Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2); + Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2, $"{i}"); motor.CommitSimulationStep(absTime, dt, modData); modData[ModalResultField.time] = absTime; modData.CommitSimulationStep(); @@ -465,7 +469,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var absTime = i * dt; var response = motor.Request(absTime, dt, continuousTorque, speed); - Assert.AreEqual(-100, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2); + Assert.AreEqual(-100, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2, $"{i}"); motor.CommitSimulationStep(absTime, dt, modData); modData[ModalResultField.time] = absTime; modData.CommitSimulationStep(); @@ -478,7 +482,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var absTime = i * dt; var response = motor.Request(absTime, dt, torque * 0.5, speed); - Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2); + Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2, $"{i}"); motor.CommitSimulationStep(absTime, dt, modData); modData[ModalResultField.time] = absTime; modData.CommitSimulationStep(); diff --git a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs index ce852349cf92b83f6440b1b6923d7914d487ff0c..28c966f34c055f2e50cd1c369d4b043bad60488b 100644 --- a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs +++ b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs @@ -596,8 +596,8 @@ namespace TUGraz.VectoCore.Tests.Reports ? 0.SI<Watt>() : (Watt)row[ModalResultField.P_angle_loss.GetName()]; var pAxleIn = (Watt)row[ModalResultField.P_axle_in.GetName()]; - var pLossRet = (Watt)row[ModalResultField.P_ret_loss.GetName()]; - var pRetIn = (Watt)row[ModalResultField.P_retarder_in.GetName()]; + var pLossRet = row[ModalResultField.P_ret_loss.GetName()] is DBNull ? 0.SI<Watt>() : (Watt)row[ModalResultField.P_ret_loss.GetName()]; + var pRetIn = row[ModalResultField.P_retarder_in.GetName()] is DBNull ? pAxleIn : (Watt)row[ModalResultField.P_retarder_in.GetName()]; var pGbxInertia = (Watt)row[ModalResultField.P_gbx_inertia.GetName()]; var pShiftLoss = row[ModalResultField.P_gbx_shift_loss.GetName()] is DBNull ? 0.SI<Watt>() @@ -929,8 +929,8 @@ namespace TUGraz.VectoCore.Tests.Reports ? 0.SI<Watt>() : (Watt)row[ModalResultField.P_angle_loss.GetName()]; var pAxleIn = (Watt)row[ModalResultField.P_axle_in.GetName()]; - var pLossRet = (Watt)row[ModalResultField.P_ret_loss.GetName()]; - var pRetIn = (Watt)row[ModalResultField.P_retarder_in.GetName()]; + var pLossRet = row[ModalResultField.P_ret_loss.GetName()] is DBNull ? 0.SI<Watt>() : (Watt)row[ModalResultField.P_ret_loss.GetName()]; + var pRetIn = row[ModalResultField.P_retarder_in.GetName()] is DBNull ? pAxleIn : (Watt)row[ModalResultField.P_retarder_in.GetName()]; var pGbxInertia = (Watt)row[ModalResultField.P_gbx_inertia.GetName()]; var pShiftLoss = row[ModalResultField.P_gbx_shift_loss.GetName()] is DBNull ? 0.SI<Watt>()