From dc3559a451ed0f7e8d8ec605fc3aa25f8403f244 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 8 Aug 2016 13:02:16 +0200 Subject: [PATCH] update tests due to changes in vecto core --- .../Integration/CoachAdvancedAuxPowertrain.cs | 26 +-- .../Integration/CoachPowerTrain.cs | 27 ++- .../SimulationRuns/FullPowertrain.cs | 63 +++--- .../SimulationRuns/MinimalPowertrain.cs | 50 ++--- .../Integration/Truck40tPowerTrain.cs | 23 +-- .../Models/SimulationComponent/ClutchTest.cs | 6 +- .../CombustionEngineTest.cs | 8 +- .../Models/SimulationComponent/DriverTest.cs | 12 +- .../TorqueConverterDataTest.cs | 192 +++++++++++++++--- .../TestData/Components/AT_GBX/Gearbox.vgbx | 2 +- .../Components/AT_GBX/TorqueConverter.vtcc | 29 ++- VectoCore/VectoCoreTest/Utils/MockGearbox.cs | 8 +- .../VectoCoreTest/Utils/MockIdleController.cs | 4 +- VectoCore/VectoCoreTest/Utils/MockPorts.cs | 33 +-- 14 files changed, 306 insertions(+), 177 deletions(-) diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs index a0f7f95359..bc4a4b808f 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs @@ -44,6 +44,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Utils; +using TUGraz.VectoCore.Utils; using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels; namespace TUGraz.VectoCore.Tests.Integration @@ -85,27 +86,22 @@ namespace TUGraz.VectoCore.Tests.Integration var cycle = new DistanceBasedDrivingCycle(container, cycleData); var engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); - - dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(container)); - tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData)); - tmp = Port.AddComponent(tmp, new DummyRetarder(container)); - tmp = Port.AddComponent(tmp, - new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))); - tmp = Port.AddComponent(tmp, clutch); + + cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(container, vehicleData)) + .AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(container)) + .AddComponent(new AxleGear(container, axleGearData)) + .AddComponent(new DummyRetarder(container)) + .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) + .AddComponent(new Clutch(container, engineData)) + .AddComponent(engine); var aux = new BusAuxiliariesAdapter(container, AdvancedAuxFile, "Coach", vehicleData.TotalVehicleWeight(), engineData.ConsumptionMap, engineData.IdleSpeed); engine.Connect(aux.Port()); - Port.AddComponent(tmp, engine); - - engine.IdleController.RequestPort = clutch.IdleControlPort; - return container; } diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs index 5a1f392feb..b832d2801c 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs @@ -45,6 +45,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Utils; +using TUGraz.VectoCore.Utils; using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels; namespace TUGraz.VectoCore.Tests.Integration @@ -87,27 +88,23 @@ namespace TUGraz.VectoCore.Tests.Integration var cycle = new DistanceBasedDrivingCycle(container, cycleData); var engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); - - dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(container)); - tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData)); - tmp = Port.AddComponent(tmp, new DummyRetarder(container)); - tmp = Port.AddComponent(tmp, - new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))); - tmp = Port.AddComponent(tmp, clutch); + var clutch = new Clutch(container, engineData); + + var tmp = cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(container, vehicleData)) + .AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(container)) + .AddComponent(new AxleGear(container, axleGearData)) + .AddComponent(new DummyRetarder(container)) + .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) + .AddComponent(clutch) + .AddComponent(engine); var aux = new EngineAuxiliary(container); aux.AddConstant("", 0.SI<Watt>()); engine.Connect(aux.Port()); - Port.AddComponent(tmp, engine); - - engine.IdleController.RequestPort = clutch.IdleControlPort; - return container; } diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs index 4a1f4743e7..3baaded391 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs @@ -82,18 +82,16 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var cycle = new DistanceBasedDrivingCycle(container, cycleData); var cyclePort = cycle.OutPort(); - dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(container)); - tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData)); - var gbx = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container)); - tmp = Port.AddComponent(tmp, gbx); - var engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); - tmp = Port.AddComponent(tmp, clutch); - Port.AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + + cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(container, vehicleData)) + .AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(container)) + .AddComponent(new AxleGear(container, axleGearData)) + .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) + .AddComponent(new Clutch(container, engineData)) + .AddComponent(new CombustionEngine(container, engineData)); + cyclePort.Initialize(); @@ -140,19 +138,16 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var driverData = CreateDriverData(AccelerationFile); var cycle = new DistanceBasedDrivingCycle(container, cycleData); + var cyclePort = cycle.OutPort(); - dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(container)); - tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData)); - var gbx = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container)); - tmp = Port.AddComponent(tmp, gbx); - var engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); - tmp = Port.AddComponent(tmp, clutch); - Port.AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(container, vehicleData)) + .AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(container)) + .AddComponent(new AxleGear(container, axleGearData)) + .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) + .AddComponent(new Clutch(container, engineData)) + .AddComponent(new CombustionEngine(container, engineData)); cyclePort.Initialize(); @@ -215,18 +210,14 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var cycle = new DistanceBasedDrivingCycle(container, cycleData); var cyclePort = cycle.OutPort(); - dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(container)); - tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData)); - tmp = Port.AddComponent(tmp, - new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))); - var engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); - tmp = Port.AddComponent(tmp, clutch); - Port.AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(container, vehicleData)) + .AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(container)) + .AddComponent(new AxleGear(container, axleGearData)) + .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) + .AddComponent(new Clutch(container, engineData)) + .AddComponent(new CombustionEngine(container, engineData)); cyclePort.Initialize(); diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs index a24ab0bced..2eff2b8a78 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs @@ -78,15 +78,12 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData); var driver = new Driver(vehicleContainer, driverData, new DefaultDriverStrategy()); - dynamic tmp = Port.AddComponent(driver, new Vehicle(vehicleContainer, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData)); - var engine = new CombustionEngine(vehicleContainer, engineData); - var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController); - tmp = Port.AddComponent(tmp, clutch); - Port.AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + driver.AddComponent(new Vehicle(vehicleContainer, vehicleData)) + .AddComponent(new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new AxleGear(vehicleContainer, axleGearData)) + .AddComponent(new Clutch(vehicleContainer, engineData)) + .AddComponent(engine); var gbx = new MockGearbox(vehicleContainer); @@ -128,16 +125,14 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var cycle = new DistanceBasedDrivingCycle(vehicleContainer, cycleData); - dynamic tmp = Port.AddComponent(cycle, new Driver(vehicleContainer, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(vehicleContainer, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(vehicleContainer)); - tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData)); - var engine = new CombustionEngine(vehicleContainer, engineData); - var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController); - tmp = Port.AddComponent(tmp, clutch); - Port.AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + cycle.AddComponent(new Driver(vehicleContainer, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(vehicleContainer, vehicleData)) + .AddComponent(new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(vehicleContainer)) + .AddComponent(new AxleGear(vehicleContainer, axleGearData)) + .AddComponent(new Clutch(vehicleContainer, engineData)) + .AddComponent(new CombustionEngine(vehicleContainer, engineData)); + //engine.IdleController.RequestPort = clutch.IdleControlPort; var gbx = new MockGearbox(vehicleContainer); @@ -201,17 +196,14 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData); var cycle = new DistanceBasedDrivingCycle(vehicleContainer, cycleData); - - dynamic tmp = Port.AddComponent(cycle, new Driver(vehicleContainer, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(vehicleContainer, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(vehicleContainer)); - tmp = Port.AddComponent(tmp, new AxleGear(vehicleContainer, axleGearData)); - var engine = new CombustionEngine(vehicleContainer, engineData); - var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController); - tmp = Port.AddComponent(tmp, clutch); - Port.AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + cycle.AddComponent(new Driver(vehicleContainer, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(vehicleContainer, vehicleData)) + .AddComponent(new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(vehicleContainer)) + .AddComponent(new AxleGear(vehicleContainer, axleGearData)) + .AddComponent(new Clutch(vehicleContainer, engineData)) + .AddComponent(new CombustionEngine(vehicleContainer, engineData)); + //engine.IdleController.RequestPort = clutch.IdleControlPort; var gbx = new MockGearbox(vehicleContainer); diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs index 66cde48821..c826fdb385 100644 --- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs @@ -47,6 +47,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Utils; +using TUGraz.VectoCore.Utils; using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels; namespace TUGraz.VectoCore.Tests.Integration @@ -97,7 +98,7 @@ namespace TUGraz.VectoCore.Tests.Integration var cycle = new DistanceBasedDrivingCycle(container, cycleData); var engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); + var clutch = new Clutch(container, engineData); IShiftStrategy gbxStrategy; switch (gbxType) { @@ -111,22 +112,20 @@ namespace TUGraz.VectoCore.Tests.Integration throw new ArgumentOutOfRangeException("gbxType", gbxType, null); } - dynamic tmp = Port.AddComponent(cycle, new Driver(container, driverData, new DefaultDriverStrategy())); - tmp = Port.AddComponent(tmp, new Vehicle(container, vehicleData)); - tmp = Port.AddComponent(tmp, new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); - tmp = Port.AddComponent(tmp, new Brakes(container)); - tmp = Port.AddComponent(tmp, new AxleGear(container, axleGearData)); - tmp = Port.AddComponent(tmp, new DummyRetarder(container)); - tmp = Port.AddComponent(tmp, new Gearbox(container, gearboxData, gbxStrategy)); - tmp = Port.AddComponent(tmp, clutch); + dynamic tmp = cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy())) + .AddComponent(new Vehicle(container, vehicleData)) + .AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) + .AddComponent(new Brakes(container)) + .AddComponent(new AxleGear(container, axleGearData)) + .AddComponent(new DummyRetarder(container)) + .AddComponent(new Gearbox(container, gearboxData, gbxStrategy)) + .AddComponent(clutch) + .AddComponent(engine); var aux = new EngineAuxiliary(container); aux.AddConstant("", 0.SI<Watt>()); engine.Connect(aux.Port()); - Port.AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; - return container; } diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs index 9657f29c1c..2d2d792763 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs @@ -69,8 +69,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var container = new VehicleContainer(ExecutionMode.Engineering); var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(CoachEngine); var gearbox = new MockGearbox(container); - var idleController = new MockIdleController(); - var clutch = new Clutch(container, engineData, idleController); + var clutch = new Clutch(container, engineData) { IdleController = new MockIdleController() }; var inPort = clutch.InPort(); var outPort = new MockTnOutPort(); @@ -96,8 +95,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(CoachEngine); var gearbox = new MockGearbox(container); var engine = new MockEngine(container); - var idleController = new MockIdleController(); - var clutch = new Clutch(container, engineData, idleController); + var clutch = new Clutch(container, engineData) { IdleController = new MockIdleController() }; var inPort = clutch.InPort(); var outPort = new MockTnOutPort(); diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs index eaf3bf38d3..28ea6c3644 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs @@ -269,7 +269,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(CoachEngine); var engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); + var clutch = new Clutch(container, engineData); var d = new MockDriver(container); @@ -282,7 +282,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent gearbox.InPort().Connect(clutch.OutPort()); clutch.InPort().Connect(engine.OutPort()); engine.Connect(aux.Port()); - engine.IdleController.RequestPort = clutch.IdleControlPort; + clutch.IdleController = engine.IdleController; // var expectedResults = VectoCSVFile.Read(TestContext.DataRow["ResultFile"].ToString()); @@ -528,7 +528,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(engineFile); engine = new CombustionEngine(container, engineData); - var clutch = new Clutch(container, engineData, engine.IdleController); + var clutch = new Clutch(container, engineData); var d = new MockDriver(container); @@ -543,7 +543,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent engine.Connect(aux.Port()); // has to be done after connecting components! - engine.IdleController.RequestPort = clutch.IdleControlPort; + clutch.IdleController = engine.IdleController; requestPort = gearbox.OutPort(); diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs index 06ba84cd14..11b4389ef1 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs @@ -75,12 +75,12 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var driver = new Driver(vehicleContainer, driverData, new DefaultDriverStrategy()); var engine = new CombustionEngine(vehicleContainer, engineData); - var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController); + var clutch = new Clutch(vehicleContainer, engineData); dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData)); tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); tmp = AddComponent(tmp, clutch); AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + clutch.IdleController = engine.IdleController; var gbx = new MockGearbox(vehicleContainer) { Gear = 1 }; @@ -131,13 +131,13 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var driver = new Driver(vehicleContainer, driverData, new DefaultDriverStrategy()); var engine = new CombustionEngine(vehicleContainer, engineData); - var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController); + var clutch = new Clutch(vehicleContainer, engineData); dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData)); tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); tmp = AddComponent(tmp, clutch); AddComponent(tmp, engine); - engine.IdleController.RequestPort = clutch.IdleControlPort; + clutch.IdleController = engine.IdleController; var gbx = new MockGearbox(vehicleContainer); gbx.Gear = 1; @@ -194,8 +194,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent dynamic tmp = AddComponent(driver, new Vehicle(vehicleContainer, vehicleData)); tmp = AddComponent(tmp, new Wheels(vehicleContainer, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)); var engine = new CombustionEngine(vehicleContainer, engineData); - var clutch = new Clutch(vehicleContainer, engineData, engine.IdleController); - engine.IdleController.RequestPort = clutch.IdleControlPort; + var clutch = new Clutch(vehicleContainer, engineData); + clutch.IdleController = engine.IdleController; tmp = AddComponent(tmp, clutch); AddComponent(tmp, engine); diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs index 2547abd7e7..87b0199039 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs @@ -1,5 +1,9 @@ -using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using NUnit.Framework; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Tests.Utils; @@ -21,37 +25,177 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData TestCase(170, 50, 1308.974, 900.0845), TestCase(190, 30, 1029.455, 539.6072), TestCase(190, 50, 1269.513, 837.2174), - TestCase(190, 70, 1465.33, 1128.088),] + TestCase(190, 70, 1465.33, 1128.088), + TestCase(530.517, 1.930, 100, 100), + ] public void TestTorqueConverterOperatingPoint(double nOut, double Pout, double nInExpected, double tqInExpected) { var tqLimit = 1600; Assert.IsTrue(nInExpected < tqLimit); var tqInput = new[] { - "0,3.935741,563.6598 ", - "0.1,3.296827,534.1364", - "0.2,2.701476,504.6129", - "0.3,2.265852,472.1372", - "0.4,1.931875,421.9474", - "0.5,1.554335,354.0435", - "0.6,1.249399,268.4255", - "0.7,1.075149,114.9037", + "0.0,1.80,377.80", + "0.1,1.71,365.21", + "0.2,1.61,352.62", + "0.3,1.52,340.02", + "0.4,1.42,327.43", + "0.5,1.33,314.84", + "0.6,1.23,302.24", + "0.7,1.14,264.46", + "0.8,1.04,226.68", + "0.9,0.95,188.90", + "1.0,0.95,0.00", }; var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", - tqInput), 1000.RPMtoRad()); - - PerSecond inAngularSpeed; - NewtonMeter inTorque; - + tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad()); var outAngularSpeed = nOut.RPMtoRad(); var outTorque = (Pout * 1000).SI<Watt>() / outAngularSpeed; - tqData.GetInputTorqueAndAngularSpeed(outTorque, outAngularSpeed, out inTorque, out inAngularSpeed); + var result = tqData.FindOperatingPoint(outTorque, outAngularSpeed); + + // TODO! + //Assert.IsTrue(inAngularSpeed.Value() < 1600.RPMtoRad().Value()); + Debug.WriteLine("n_out: {0}, P_out: {1}, n_in: {2}, Tq_in: {3}", nOut, Pout, result.InAngularVelocity, + result.InTorque); + //Assert.AreEqual(nInExpected.RPMtoRad().Value(), inAngularSpeed.Value(), 5); + //Assert.AreEqual(tqInExpected, inTorque.Value(), 10); + } + + [Test] + public void TestTorqueConverterComparisonV2() + { + var tqLimit = 1600; + + var tqInput = new[] { + "0.0,1.80,377.80", + "0.1,1.71,365.21", + "0.2,1.61,352.62", + "0.3,1.52,340.02", + "0.4,1.42,327.43", + "0.5,1.33,314.84", + "0.6,1.23,302.24", + "0.7,1.14,264.46", + "0.8,1.04,226.68", + "0.9,0.95,188.90", + "1.0,0.95,0.00", + }; + var testData = new List<Tuple<double, double>>() { + Tuple.Create(139.4087374, 72.74847642), + Tuple.Create(2275.286998, 453.9413043), + Tuple.Create(1507.256216, 1012.44118), + Tuple.Create(26.58522419, 29.25312925), + Tuple.Create(1752.83589, 328.6386397), + }; + var tqData = + TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", + tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad()); - Assert.IsTrue(inAngularSpeed.Value() < 1600.RPMtoRad().Value()); - Assert.AreEqual(nInExpected.RPMtoRad().Value(), inAngularSpeed.Value(), 5); - Assert.AreEqual(tqInExpected, inTorque.Value(), 10); + foreach (var entry in testData) { + var torqueTCOut = entry.Item1.SI<NewtonMeter>(); + var angularSpeedOut = entry.Item2.RPMtoRad(); + var result = tqData.FindOperatingPoint(torqueTCOut, angularSpeedOut); + Debug.WriteLine("n_out: {0}, tq_out: {1}, n_in: {2}, Tq_in: {3}", angularSpeedOut.Value() / Constants.RPMToRad, + torqueTCOut.Value(), result.InAngularVelocity.Value() / Constants.RPMToRad, result.InTorque.Value()); + } + } + + [Test] + public void TestTorqueConverterComparisonV2_ZF_EcoLife() + { + var tqLimit = 1600; + + var tqInput = new[] { + "0,2.29,646", + "0.1,2.16,663", + "0.2,1.99,643", + "0.3,1.84,611", + "0.4,1.67,586", + "0.5,1.51,556", + "0.6,1.35,521", + "0.7,1.21,465", + "0.8,1.07,404", + "0.9,0.99,228", + "1,0.99,0", + "1.1,0.991,-103", + "1.2,0.994,-172", + "1.3,0.994,-229", + "1.4,0.996,-286", + "1.5,0.996,-346", + "1.6,0.996,-407", + "1.7,0.996,-460", + "1.8,0.996,-546", + "1.9,0.996,-616", + "2,0.997,-685", + }; + var testData = new List<Tuple<double, double>>() { + Tuple.Create(139.4087374, 72.74847642), + Tuple.Create(2275.286998, 453.9413043), + Tuple.Create(1507.256216, 1012.44118), + Tuple.Create(26.58522419, 29.25312925), + Tuple.Create(1752.83589, 328.6386397), + }; + var tqData = + TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", + tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad()); + + foreach (var entry in testData) { + var torqueTCOut = entry.Item1.SI<NewtonMeter>(); + var angularSpeedOut = entry.Item2.RPMtoRad(); + var result = tqData.FindOperatingPoint(torqueTCOut, angularSpeedOut); + Debug.WriteLine("n_out: {0}, tq_out: {1}, n_in: {2}, Tq_in: {3}", angularSpeedOut.Value() / Constants.RPMToRad, + torqueTCOut.Value(), result.InAngularVelocity.Value() / Constants.RPMToRad, result.InTorque.Value()); + } + } + + + [Test] + public void TestTorqueConverterComparisonV2_ZF_W410_6_TP2_575_mue232() + { + var tqLimit = 1600; + + var tqInput = new[] { + "0.000,2.320,518.3", + "0.100,2.180,545.0", + "0.200,2.010,575.4", + "0.300,1.850,573.1", + "0.400,1.690,572.5", + "0.500,1.520,553.1", + "0.600,1.360,516.6", + "0.700,1.220,460.0", + "0.800,1.080,397.1", + "0.900,1.000,246.8", + "0.950,0.990,113.6", + "1.000,0.990,0.0", + "1.100,0.991,-103.0", + "1.200,0.994,-172.0", + "1.300,0.994,-229.0", + "1.400,0.996,-286.0", + "1.500,0.996,-346.0", + "1.600,0.996,-407.0", + "1.700,0.996,-460.0", + "1.800,0.996,-546.0", + "1.900,0.996,-616.0", + "2.000,0.997,-685.0", + }; + var testData = new List<Tuple<double, double>>() { + Tuple.Create(139.4087374, 72.74847642), + Tuple.Create(2275.286998, 453.9413043), + Tuple.Create(1507.256216, 1012.44118), + Tuple.Create(26.58522419, 29.25312925), + Tuple.Create(1752.83589, 328.6386397), + }; + var tqData = + TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", + tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad()); + + foreach (var entry in testData) { + var torqueTCOut = entry.Item1.SI<NewtonMeter>(); + var angularSpeedOut = entry.Item2.RPMtoRad(); + var result = tqData.FindOperatingPoint(torqueTCOut, angularSpeedOut); + Debug.WriteLine("n_out: {0}, tq_out: {1}, n_in: {2}, Tq_in: {3}", angularSpeedOut.Value() / Constants.RPMToRad, + torqueTCOut.Value(), result.InAngularVelocity.Value() / Constants.RPMToRad, result.InTorque.Value()); + } } [Test, @@ -88,17 +232,13 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", - tqInput), 1000.RPMtoRad()); - - PerSecond inAngularSpeed; - NewtonMeter inTorque; - + tqInput), 1000.RPMtoRad(), tqLimit); var outAngularSpeed = nOut.RPMtoRad(); var outTorque = (Pout * 1000).SI<Watt>() / outAngularSpeed; - tqData.GetInputTorqueAndAngularSpeed(outTorque, outAngularSpeed, out inTorque, out inAngularSpeed); + var result = tqData.FindOperatingPoint(outTorque, outAngularSpeed); - Assert.IsTrue(inAngularSpeed.Value() > tqLimit.Value()); + Assert.IsTrue(result.InAngularVelocity.Value() > tqLimit.Value()); } } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/Gearbox.vgbx b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/Gearbox.vgbx index acac788219..840f6b81ca 100644 --- a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/Gearbox.vgbx +++ b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/Gearbox.vgbx @@ -54,7 +54,7 @@ "GearboxType": "AT", "TorqueConverter": { "Enabled": true, - "File": "TorqueConverter.vtcc", + "File": "W410_6_TP2_575_mue232.vtcc", "RefRPM": 1000.0, "Inertia": 0.5 } diff --git a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/TorqueConverter.vtcc b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/TorqueConverter.vtcc index 1a329800c2..550030f28f 100644 --- a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/TorqueConverter.vtcc +++ b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/TorqueConverter.vtcc @@ -1,9 +1,22 @@ Speed Ratio, Torque Ratio,MP1000 -0,3.935741,563.6598 -0.1,3.296827,534.1364 -0.2,2.701476,504.6129 -0.3,2.265852,472.1372 -0.4,1.931875,421.9474 -0.5,1.554335,354.0435 -0.6,1.249399,268.4255 -0.7,1.075149,114.9037 +0.0,1.80,377.80 +0.1,1.71,365.21 +0.2,1.61,352.62 +0.3,1.52,340.02 +0.4,1.42,327.43 +0.5,1.33,314.84 +0.6,1.23,302.24 +0.7,1.14,264.46 +0.8,1.04,226.68 +0.9,0.95,188.90 +1.0,0.95,0.00 +1.005,1.000,0.00 +1.100,1.000,-40.34 +1.222,1.000,-80.34 +1.375,1.000,-136.11 +1.571,1.000,-216.52 +1.833,1.000,-335.19 +2.200,1.000,-528.77 +2.750,1.000,-883.40 +4.400,1.000,-2462.17 +11.000,1.000,-16540.98 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/Utils/MockGearbox.cs b/VectoCore/VectoCoreTest/Utils/MockGearbox.cs index 08008d6fcf..41859d3d5a 100644 --- a/VectoCore/VectoCoreTest/Utils/MockGearbox.cs +++ b/VectoCore/VectoCoreTest/Utils/MockGearbox.cs @@ -84,21 +84,21 @@ namespace TUGraz.VectoCore.Tests.Utils _outPort = other; } - public IResponse Request(Second absTime, Second dt, NewtonMeter torque, PerSecond angularVelocity, bool dryRun = false) + public IResponse Request(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, bool dryRun = false) { if (_outPort != null) { if (Gear > 0) { - return _outPort.Request(absTime, dt, torque, angularVelocity, dryRun); + return _outPort.Request(absTime, dt, outTorque, outAngularVelocity, dryRun); } return _outPort.Request(absTime, dt, 0.SI<NewtonMeter>(), null, dryRun); } throw new NotImplementedException(); } - public IResponse Initialize(NewtonMeter torque, PerSecond angularVelocity) + public IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) { if (_outPort != null) { - return _outPort.Initialize(torque, angularVelocity); + return _outPort.Initialize(outTorque, outAngularVelocity); } throw new NotImplementedException(); } diff --git a/VectoCore/VectoCoreTest/Utils/MockIdleController.cs b/VectoCore/VectoCoreTest/Utils/MockIdleController.cs index 0031353c96..a592aa8d80 100644 --- a/VectoCore/VectoCoreTest/Utils/MockIdleController.cs +++ b/VectoCore/VectoCoreTest/Utils/MockIdleController.cs @@ -39,13 +39,13 @@ namespace TUGraz.VectoCore.Tests.Utils { public class MockIdleController : ICombustionEngineIdleController { - public IResponse Request(Second absTime, Second dt, NewtonMeter torque, PerSecond angularVelocity, bool dryRun = false) + public IResponse Request(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, bool dryRun = false) { //throw new System.NotImplementedException(); return new ResponseSuccess(); } - public IResponse Initialize(NewtonMeter torque, PerSecond angularVelocity) + public IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) { //throw new System.NotImplementedException(); return new ResponseSuccess(); diff --git a/VectoCore/VectoCoreTest/Utils/MockPorts.cs b/VectoCore/VectoCoreTest/Utils/MockPorts.cs index 94c0e79f1f..2ab63efb9c 100644 --- a/VectoCore/VectoCoreTest/Utils/MockPorts.cs +++ b/VectoCore/VectoCoreTest/Utils/MockPorts.cs @@ -47,39 +47,42 @@ namespace TUGraz.VectoCore.Tests.Utils public NewtonMeter Torque; public PerSecond AngularVelocity; - public IResponse Request(Second absTime, Second dt, NewtonMeter torque, PerSecond angularVelocity, bool dryRun = false) + public IResponse Request(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, + bool dryRun = false) { AbsTime = absTime; Dt = dt; - Torque = torque; - AngularVelocity = angularVelocity; - Log.Debug("Request: absTime: {0}, dt: {1}, torque: {2}, angularVelocity: {3}", absTime, dt, torque, angularVelocity); + Torque = outTorque; + AngularVelocity = outAngularVelocity; + Log.Debug("Request: absTime: {0}, dt: {1}, torque: {2}, angularVelocity: {3}", absTime, dt, outTorque, + outAngularVelocity); if (dryRun) { return new ResponseDryRun { Source = this, - GearboxPowerRequest = torque * angularVelocity, - EnginePowerRequest = torque * angularVelocity, - ClutchPowerRequest = torque * angularVelocity, - DeltaFullLoad = (torque - 2300.SI<NewtonMeter>()) * angularVelocity, - DeltaDragLoad = (torque - -100.SI<NewtonMeter>()) * angularVelocity + GearboxPowerRequest = outTorque * outAngularVelocity, + EnginePowerRequest = outTorque * outAngularVelocity, + ClutchPowerRequest = outTorque * outAngularVelocity, + DeltaFullLoad = (outTorque - 2300.SI<NewtonMeter>()) * outAngularVelocity, + DeltaDragLoad = (outTorque - -100.SI<NewtonMeter>()) * outAngularVelocity }; } return new ResponseSuccess { Source = this, - GearboxPowerRequest = torque * angularVelocity, - EnginePowerRequest = torque * angularVelocity, - ClutchPowerRequest = torque * angularVelocity, + GearboxPowerRequest = outTorque * outAngularVelocity, + EnginePowerRequest = outTorque * outAngularVelocity, + ClutchPowerRequest = outTorque * outAngularVelocity, }; } - public IResponse Initialize(NewtonMeter torque, PerSecond angularVelocity) + public IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) { return new ResponseSuccess { Source = this, - EnginePowerRequest = torque * angularVelocity, - ClutchPowerRequest = torque * angularVelocity, + EnginePowerRequest = outTorque * (outAngularVelocity ?? 0.SI<PerSecond>()), + ClutchPowerRequest = outTorque * (outAngularVelocity ?? 0.SI<PerSecond>()), + EngineSpeed = outAngularVelocity, }; } -- GitLab