diff --git a/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs index 09a46b3711a68bedb4689b4cd2ba26e4b0fb4715..74e60329be0a396ddeb88f970b11d125667a2eaa 100644 --- a/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs +++ b/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs @@ -181,6 +181,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Auxiliaries.Signals.ClutchEngaged = DataBus.ClutchClosed(absTime); Auxiliaries.Signals.EngineDrivelinePower = (float)(torquePowerTrain * angularSpeed / 1000).Value(); Auxiliaries.Signals.EngineDrivelineTorque = (float)torquePowerTrain.Value(); + Auxiliaries.Signals.Internal_Engine_Power = + (float)((torqueEngine * angularSpeed - DataBus.BrakePower) / 1000).Value(); if (DataBus.DrivingBehavior == DrivingBehavior.Coasting) { // make sure smart aux are _not_ enabled for now // set internal_engine_power a little bit lower so there is no excessive power for smart aux diff --git a/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs b/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs index 321168a5d9f5b096ce516b4419a8e4e164799df9..540c0b2fda597ed7f244dc64aa657c90e764a861 100644 --- a/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs +++ b/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs @@ -1,6 +1,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using NUnit.Framework; using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; @@ -21,26 +22,8 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries public void AuxDemandtest(double vehicleWeight, double engineSpeedRpm, double driveLinePower, double internalPower, double expectedPowerDemand) { - var auxFilePath = @"TestData\Integration\BusAuxiliaries\AdvAuxTest.aaux"; - var engineFLDFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vfld"; - var engineFCMapFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vmap"; - - var vehicle = new VehicleContainer(); - var fcMap = FuelConsumptionMap.ReadFromFile(engineFCMapFilePath); - var fld = EngineFullLoadCurve.ReadFromFile(engineFLDFilePath); - var modelData = new CombustionEngineData() { - ConsumptionMap = fcMap, - FullLoadCurve = fld, - IdleSpeed = 560.SI<PerSecond>() - }; - - var engine = new CombustionEngine(vehicle, modelData); - //new Vehicle(vehicle, new VehicleData()); - var driver = new MockDriver(vehicle) { VehicleStopped = false }; - var gbx = new MockGearbox(vehicle) { Gear = 1 }; - - var busAux = new BusAuxiliariesAdapter(vehicle, auxFilePath, "Coach", vehicleWeight.SI<Kilogram>(), - fcMap, modelData.IdleSpeed); + MockDriver driver; + var busAux = CreateBusAuxAdapterForTesting(vehicleWeight, out driver); var engineDrivelinePower = (driveLinePower * 1000).SI<Watt>(); @@ -53,6 +36,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries Assert.AreEqual(expectedPowerDemand, (torque * engineSpeed).Value(), 1e-4); } + [Test] public void AuxFCConsumptionTest() { @@ -60,28 +44,8 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries var engineSpeedRpm = 1256; var internalPower = 148; - - var auxFilePath = @"TestData\Integration\BusAuxiliaries\AdvAuxTest.aaux"; - var engineFLDFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vfld"; - var engineFCMapFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vmap"; - - var vehicle = new VehicleContainer(); - var fcMap = FuelConsumptionMap.ReadFromFile(engineFCMapFilePath); - var fld = EngineFullLoadCurve.ReadFromFile(engineFLDFilePath); - var modelData = new CombustionEngineData() { - ConsumptionMap = fcMap, - FullLoadCurve = fld, - IdleSpeed = 560.SI<PerSecond>() - }; - - var engine = new CombustionEngine(vehicle, modelData); - //new Vehicle(vehicle, new VehicleData()); - var driver = new MockDriver(vehicle) { VehicleStopped = false }; - var gbx = new MockGearbox(vehicle) { Gear = 1 }; - - var busAux = new BusAuxiliariesAdapter(vehicle, auxFilePath, "Coach", 12000.SI<Kilogram>(), - fcMap, modelData.IdleSpeed); - + MockDriver driver; + var busAux = CreateBusAuxAdapterForTesting(12000, out driver); var engineDrivelinePower = (driveLinePower * 1000).SI<Watt>(); var engineSpeed = engineSpeedRpm.RPMtoRad(); @@ -122,5 +86,31 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries Assert.AreEqual(162.4655, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001); } + + + public static BusAuxiliariesAdapter CreateBusAuxAdapterForTesting(double vehicleWeight, out MockDriver driver) + { + var auxFilePath = @"TestData\Integration\BusAuxiliaries\AdvAuxTest.aaux"; + var engineFLDFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vfld"; + var engineFCMapFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vmap"; + + var vehicle = new VehicleContainer(); + var fcMap = FuelConsumptionMap.ReadFromFile(engineFCMapFilePath); + var fld = EngineFullLoadCurve.ReadFromFile(engineFLDFilePath); + var modelData = new CombustionEngineData() { + ConsumptionMap = fcMap, + FullLoadCurve = fld, + IdleSpeed = 560.SI<PerSecond>() + }; + + var engine = new CombustionEngine(vehicle, modelData); + //new Vehicle(vehicle, new VehicleData()); + driver = new MockDriver(vehicle) { VehicleStopped = false, DrivingBehavior = DrivingBehavior.Braking }; + var gbx = new MockGearbox(vehicle) { Gear = 1 }; + var brakes = new MockBrakes(vehicle); + var busAux = new BusAuxiliariesAdapter(vehicle, auxFilePath, "Coach", vehicleWeight.SI<Kilogram>(), + fcMap, modelData.IdleSpeed); + return busAux; + } } } \ No newline at end of file diff --git a/VectoCoreTest/Utils/MockBrakes.cs b/VectoCoreTest/Utils/MockBrakes.cs new file mode 100644 index 0000000000000000000000000000000000000000..e15984ca019b54c5bd4289b128890752bf355e36 --- /dev/null +++ b/VectoCoreTest/Utils/MockBrakes.cs @@ -0,0 +1,22 @@ +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.SimulationComponent; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.Tests.Utils +{ + public class MockBrakes : VectoSimulationComponent, IBrakes + { + public MockBrakes(IVehicleContainer vehicle) : base(vehicle) + { + BrakePower = 0.SI<Watt>(); + } + + public Watt BrakePower { get; set; } + + protected override void DoWriteModalResults(IModalDataContainer container) {} + + protected override void DoCommitSimulationStep() {} + } +} \ No newline at end of file diff --git a/VectoCoreTest/Utils/MockDriver.cs b/VectoCoreTest/Utils/MockDriver.cs index 850dcaa305b279aa049892c05d0dee439a939b07..84367abcb57a0958bce63e3718d59accf0fcbfc3 100644 --- a/VectoCoreTest/Utils/MockDriver.cs +++ b/VectoCoreTest/Utils/MockDriver.cs @@ -48,7 +48,10 @@ namespace TUGraz.VectoCore.Tests.Utils public RequestData LastRequest; - public MockDriver(IVehicleContainer container) : base(container) {} + public MockDriver(IVehicleContainer container) : base(container) + { + DrivingBehavior = DrivingBehavior.Accelerating; + } protected override void DoWriteModalResults(IModalDataContainer container) {} @@ -116,9 +119,6 @@ namespace TUGraz.VectoCore.Tests.Utils public bool VehicleStopped { get; set; } - public DrivingBehavior DrivingBehavior - { - get { return DrivingBehavior.Accelerating; } - } + public DrivingBehavior DrivingBehavior { get; set; } } } \ No newline at end of file diff --git a/VectoCoreTest/VectoCoreTest.csproj b/VectoCoreTest/VectoCoreTest.csproj index c070e3a203a5de1976f6c149c117068a067de4af..5dbc501bbd7582eaabdf9a885b6a3a764b1f8fdc 100644 --- a/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCoreTest/VectoCoreTest.csproj @@ -78,6 +78,7 @@ <Compile Include="FileIO\SimulationDataReaderTest.cs" /> <Compile Include="GraphProgram.cs" /> <Compile Include="Integration\BusAuxiliaries\AuxDemandTest.cs" /> + <Compile Include="Integration\BusAuxiliaries\BusAdapterTest.cs" /> <Compile Include="Integration\BusAuxiliaries\SimpleCycleTest.cs" /> <Compile Include="Integration\CoachAdvancedAuxPowertrain.cs" /> <Compile Include="Integration\CoachPowerTrain.cs" /> @@ -101,6 +102,7 @@ <Compile Include="Integration\Truck40tPowerTrain.cs" /> <Compile Include="Models\SimulationComponent\GearboxPowertrainTest.cs" /> <Compile Include="Utils\InputDataHelper.cs" /> + <Compile Include="Utils\MockBrakes.cs" /> <Compile Include="Utils\MockEngineDataProvider.cs" /> <Compile Include="Utils\MockSimulationDataFactory.cs" /> <Compile Include="Utils\MockVairVehicleContainer.cs" />