diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs index bea99479f4b34027f0fe134735e2090e2208eafb..adb2f1401bf8f88750eb5dc4c91842ea8260a164 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs @@ -143,6 +143,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter if (data.LossMap == null && useEfficiencyFallback) { axleLossMap = TransmissionLossMapReader.Create(data.Efficiency, data.Ratio, "AxleGear"); } else { + if (data.LossMap == null) + throw new Exception("LossMap for AxleGear is missing."); axleLossMap = TransmissionLossMapReader.Create(data.LossMap, data.Ratio, "AxleGear"); } if (axleLossMap == null) { diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index 96dfeee4584008519c09735c203a6cda7bac2b9b..532aee372e9da258a7e36edea05199432ca455f1 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -115,7 +115,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var engine = new CombustionEngine(container, data.EngineData, pt1Disabled: true); var idleController = GetIdleController(data.PTO, engine); - powertrain.AddComponent(engine, idleController, container) + powertrain.AddComponent(engine, idleController) .AddAuxiliaries(container, data); return container; @@ -146,7 +146,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var engine = new CombustionEngine(container, data.EngineData); var idleController = GetIdleController(data.PTO, engine); - powertrain.AddComponent(engine, idleController, container) + powertrain.AddComponent(engine, idleController) .AddAuxiliaries(container, data); _modData.HasTorqueConverter = data.GearboxData.Type.AutomaticTransmission(); @@ -173,7 +173,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl .AddComponent(new CycleClutch(container)); var engine = new CombustionEngine(container, data.EngineData); - powertrain.AddComponent(engine, GetIdleController(data.PTO, engine), container) + powertrain.AddComponent(engine, GetIdleController(data.PTO, engine)) .AddAuxiliaries(container, data); return container; @@ -205,7 +205,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var idleController = GetIdleController(data.PTO, engine); cycle.IdleController = idleController as IdleControllerSwitcher; - powertrain.AddComponent(engine, idleController, container) + powertrain.AddComponent(engine, idleController) .AddAuxiliaries(container, data); _modData.HasTorqueConverter = data.GearboxData.Type.AutomaticTransmission(); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs index 60dd67a49fb885c2654ed684b760e36154039097..f399f17c7e159a8d55cd190f4bd0ea88078f75e1 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs @@ -49,7 +49,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl /// </summary> public class PowertrainDrivingCycle : StatefulProviderComponent<PowertrainDrivingCycle.DummyState, ISimulationOutPort, ITnInPort, ITnOutPort>, - IDrivingCycleInfo, ISimulationOutPort, ITnInProvider + IDrivingCycleInfo, ISimulationOutPort, ITnInProvider, ITnInPort { public class DummyState {} diff --git a/VectoCore/VectoCore/Utils/ProviderExtensions.cs b/VectoCore/VectoCore/Utils/ProviderExtensions.cs index 0eb11c65e20e444df066a28b6f938d572e8b833e..2da24048abdea1f8759c38db1bf3ce7c883ce4bf 100644 --- a/VectoCore/VectoCore/Utils/ProviderExtensions.cs +++ b/VectoCore/VectoCore/Utils/ProviderExtensions.cs @@ -94,10 +94,14 @@ namespace TUGraz.VectoCore.Utils } public static CombustionEngine AddComponent(this IPowerTrainComponent prev, CombustionEngine next, - IIdleController idleController, IVehicleContainer container) + IIdleController idleController = null) { prev.InPort().Connect(next.OutPort()); + if (idleController == null) { + idleController = next.IdleController; + } + var clutch = prev as IClutch; if (clutch != null) { clutch.IdleController = idleController; diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs index 5ec64c0977ad1b510293baf904608168ddebf82e..92dd53ef330a1ed3dcbdb06107a0445bedb78347 100644 --- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs @@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Tests.Integration .AddComponent(new AxleGear(container, axleGearData)) .AddComponent(new DummyRetarder(container)) .AddComponent(new ATGearbox(container, gearboxData, new ATShiftStrategy(gearboxData, container))) - .AddComponent(engine, null, container); + .AddComponent(engine); var aux = new EngineAuxiliary(container); aux.AddConstant("", 0.SI<Watt>()); diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs index 58c13d773afa0938350a375a7af645b2392800cb..a5b06d00f6b2a71c86164c6dfc3141e985518f48 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs @@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.Tests.Integration .AddComponent(new DummyRetarder(container)) .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) .AddComponent(new Clutch(container, engineData)) - .AddComponent(engine, null, container); + .AddComponent(engine); var aux = new BusAuxiliariesAdapter(container, AdvancedAuxFile, "Coach", vehicleData.TotalVehicleWeight(), engineData.ConsumptionMap, engineData.IdleSpeed); diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs index 163f6a994972e47bd2ce167e8f81a1890b2d61a0..e766329acc85b7e02b819eeb6ac2e731d22ceafd 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs @@ -98,7 +98,7 @@ namespace TUGraz.VectoCore.Tests.Integration .AddComponent(new DummyRetarder(container)) .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) .AddComponent(clutch) - .AddComponent(engine, null, container); + .AddComponent(engine); var aux = new EngineAuxiliary(container); aux.AddConstant("", 0.SI<Watt>()); diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs index c40bb4b769ba521de3d1e61acb6624c7b77792fa..0c72d1788bd7632c57ce429111510aff3615e162 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs @@ -90,7 +90,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns .AddComponent(new AxleGear(container, axleGearData)) .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) .AddComponent(new Clutch(container, engineData)) - .AddComponent(new CombustionEngine(container, engineData), null, container); + .AddComponent(new CombustionEngine(container, engineData)); cyclePort.Initialize(); @@ -146,7 +146,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns .AddComponent(new AxleGear(container, axleGearData)) .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) .AddComponent(new Clutch(container, engineData)) - .AddComponent(new CombustionEngine(container, engineData), null, container); + .AddComponent(new CombustionEngine(container, engineData)); cyclePort.Initialize(); @@ -216,7 +216,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns .AddComponent(new AxleGear(container, axleGearData)) .AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container))) .AddComponent(new Clutch(container, engineData)) - .AddComponent(new CombustionEngine(container, engineData), null, container); + .AddComponent(new CombustionEngine(container, engineData)); cyclePort.Initialize(); diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs index cd4ae9eb25891fdbc4af866b365af01dfcc8d7c3..50d20f6e7f5890c0fefd27372d402e3c04bfe69f 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs @@ -83,7 +83,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns .AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia)) .AddComponent(new AxleGear(container, axleGearData)) .AddComponent(new Clutch(container, engineData)) - .AddComponent(engine, null, container); + .AddComponent(engine); var gbx = new MockGearbox(container); @@ -131,7 +131,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns .AddComponent(new Brakes(container)) .AddComponent(new AxleGear(container, axleGearData)) .AddComponent(new Clutch(container, engineData)) - .AddComponent(new CombustionEngine(container, engineData), null, container); + .AddComponent(new CombustionEngine(container, engineData)); //engine.IdleController.RequestPort = clutch.IdleControlPort; var gbx = new MockGearbox(container); @@ -202,7 +202,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns .AddComponent(new Brakes(container)) .AddComponent(new AxleGear(container, axleGearData)) .AddComponent(new Clutch(container, engineData)) - .AddComponent(new CombustionEngine(container, engineData), null, container); + .AddComponent(new CombustionEngine(container, engineData)); //engine.IdleController.RequestPort = clutch.IdleControlPort; var gbx = new MockGearbox(container); diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs index 6704bad3a447b769cbe0211b1bc2b5457a4892e4..83d65c1a60c0f76486f3e68145a1db42343d28c9 100644 --- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs @@ -119,7 +119,7 @@ namespace TUGraz.VectoCore.Tests.Integration .AddComponent(new DummyRetarder(container)) .AddComponent(new Gearbox(container, gearboxData, gbxStrategy)) .AddComponent(clutch) - .AddComponent(engine, null, container); + .AddComponent(engine); var aux = new EngineAuxiliary(container); aux.AddConstant("", 0.SI<Watt>()); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs index 8d23f7038bc7b89b9ab78c73391511f22449f297..2642fba0c99b40d74ba9fc055b9944254859408f 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs @@ -174,14 +174,14 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var ratios = new[] { 14.93, 11.64, 9.02, 7.04, 5.64, 4.4, 3.39, 2.65, 2.05, 1.6, 1.28, 1.0 }; return new GearboxData { Gears = ratios.Select((ratio, i) => - Tuple.Create((uint)i, - new GearData { - MaxTorque = 2300.SI<NewtonMeter>(), - LossMap = TransmissionLossMapReader.ReadFromFile(!ratio.IsEqual(1.0) ? directlossMap : indirectLossMap, ratio, - string.Format("Gear {0}", i)), - Ratio = ratio, - ShiftPolygon = ShiftPolygonReader.ReadFromFile(ShiftPolygonFile) - })) + Tuple.Create((uint)i, + new GearData { + MaxTorque = 2300.SI<NewtonMeter>(), + LossMap = TransmissionLossMapReader.ReadFromFile(!ratio.IsEqual(1.0) ? directlossMap : indirectLossMap, ratio, + string.Format("Gear {0}", i)), + Ratio = ratio, + ShiftPolygon = ShiftPolygonReader.ReadFromFile(ShiftPolygonFile) + })) .ToDictionary(k => k.Item1 + 1, v => v.Item2) }; }