diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs index c9c30009eb506810106e3665c88041e2ecbb9a25..91ffad2f5135ba0e3462d5df684bebad8aa68a29 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs @@ -374,7 +374,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (!dryRun) { CurrentState.IceSwitchedOn = iceOn; - CurrentState.ICEOnSpeed = DataBus.EngineInfo.EngineSpeed; + CurrentState.ICEOnSpeed = DataBus.EngineInfo?.EngineSpeed; CurrentState.EMSpeed = emSpeed; CurrentState.EMTorque = emOff ? null : emTorque; CurrentState.EmTorqueMap = emTorqueMap; diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs index a5622e6202cdc5ecc629a7b5f2c2b68d61033dea..644197b8c6d7ba1d4260eab778f9d8c4564f8bf8 100644 --- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs @@ -277,7 +277,7 @@ namespace TUGraz.VectoCore.OutputData E_EM = r.Field<Watt>(string.Format(ModalResultField.P_EM_mech_.GetCaption(), emPos.GetName())) * dt }; - }).Where(x => x.EM_off.IsEqual(0) && x.E_EM.IsSmaller(0)).Sum(x => x.E_EM); + }).Where(x => x.EM_off.IsEqual(0) && x.E_EM.IsSmaller(0)).Sum(x => x.E_EM) ?? 0.SI<WattSecond>(); return -_eEmDrive.GetOrAdd(emPos, _ => eEmDrive); } } @@ -300,7 +300,7 @@ namespace TUGraz.VectoCore.OutputData E_EM = r.Field<Watt>(string.Format(ModalResultField.P_EM_mech_.GetCaption(), emPos.GetName())) * dt }; - }).Where(x => x.EM_off.IsEqual(0) && x.E_EM.IsGreater(0)).Sum(x => x.E_EM); + }).Where(x => x.EM_off.IsEqual(0) && x.E_EM.IsGreater(0)).Sum(x => x.E_EM) ?? 0.SI<WattSecond>(); return _eEmRecuperate.GetOrAdd(emPos, _ => eEmRecup); } } @@ -387,7 +387,7 @@ namespace TUGraz.VectoCore.OutputData }); var eMech = 0.SI<WattSecond>(); var eEl = 0.SI<WattSecond>(); - foreach (var entry in selected.Where(x => x.P_em.IsGreater(0) && !x.EM_off.IsEqual(0))) { + foreach (var entry in selected.Where(x => x.P_em.IsGreater(0) && x.EM_off.IsEqual(0))) { eMech += entry.E_mech; eEl += entry.E_el; } diff --git a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs index 190a47b6deb99a84a88d9cf41fe91d35b8cc69c7..4c7eec9bc69935a663a82177b6277ea3c39b6c96 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs @@ -108,6 +108,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation new ZeroMileageCounter(container); new DummyDriverInfo(container); var aux = new EngineAuxiliary(container); + new MockEngine(container); var hdvClass = VehicleClass.Class5; var mission = MissionType.LongHaul; @@ -159,6 +160,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var container = new VehicleContainer(ExecutionMode.Engineering, dataWriter); //var port = new MockTnOutPort(); var aux = new EngineAuxiliary(container); + new MockEngine(container); var constPower = 1200.SI<Watt>(); aux.AddConstant("CONSTANT", constPower); @@ -194,6 +196,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var cycle = new MockDrivingCycle(container, data); var aux = new EngineAuxiliary(container); + new MockEngine(container); aux.AddCycle("CYCLE"); container.ModalData.AddAuxiliary("CYCLE"); @@ -229,7 +232,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var cycle = new MockDrivingCycle(container, data); var aux = new EngineAuxiliary(container); - + new MockEngine(container); aux.AddCycle("CYCLE"); var constPower = 1200.SI<Watt>(); diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs index 3425be82fd5865c6476e814eda75b6c5742cfc0c..61ebd645060df5cc22713548d901acc0c11499aa 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs @@ -196,7 +196,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent public PerSecond EngineN95hSpeed { get; set; } public PerSecond EngineN80hSpeed { get; set; } - public bool EngineOn => throw new System.NotImplementedException(); + public bool EngineOn { get; set; } protected override void DoWriteModalResults(Second time, Second simulationInterval, IModalDataContainer container) { diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index e9502c85ba4b5465fb10cd0202fb9e52b8fcdd0f..3faf7e0509d51e23b4518f239cdcfed63201f7b3 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -451,6 +451,15 @@ <None Include="TestData\Components\AT_GBX\GearboxSerial8Spd.vgbx"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Components\ElectricMotor\vem_P_inverter_DC_90_coarse.vemo"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Components\ElectricMotor\vem_P_inverter_DC_90_fine.vemo"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Components\ElectricMotor\vem_P_inverter_DC_std.vemo"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Components\GearshiftLinesVoith.vgsv"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None>