diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index 3ef8e0092b88a0817780a9d00e9a256d8a1166f4..38f744241354a299c71b1d89c736a6f27c6fe386 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -150,14 +150,18 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.Fan); if (data.PTO != null) { + aux.AddConstant(Constants.Auxiliaries.IDs.PTOTransmission, + DeclarationData.PTOTransmission.Lookup(data.PTO.TransmissionType).PowerDemand); container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.PTOTransmission, Constants.Auxiliaries.PowerPrefix + Constants.Auxiliaries.IDs.PTOTransmission); + aux.Add(Constants.Auxiliaries.IDs.PTOConsumer, + (n, absTime, dt, dryRun) => container.PTOActive ? null : data.PTO.LossMap.GetTorqueLoss(n) * n); container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.PTOConsumer, Constants.Auxiliaries.PowerPrefix + Constants.Auxiliaries.IDs.PTOConsumer); } - engine.Connect(aux.Port()); + engine.Connect(aux.Port()); var idleController = new CombustionEngine.CombustionEngineNoDubleclutchIdleController(engine, container); //if (data.PTO != null && data.PTO.PTOCycle != null) { @@ -356,7 +360,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl AddSwitchingAux(aux,container.ModalData,Constants.Auxiliaries.IDs.SteeringPump, auxData); AddSwitchingAux(aux,container.ModalData,Constants.Auxiliaries.IDs.ElectricSystem, auxData); AddSwitchingAux(aux, container.ModalData, Constants.Auxiliaries.IDs.PneumaticSystem, auxData); - + return aux; } diff --git a/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs b/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs index 0dd56efa2ce52a5093e0dec1295b6736dc962f16..9aef03df7918c5cd12b65d93a43f1e43dc3f84fe 100644 --- a/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs +++ b/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs @@ -88,7 +88,7 @@ namespace TUGraz.VectoCore.Tests.Integration.VTP [Category("LongRunning")] [Category("Integration")] [TestCase(@"TestData\Integration\VTPMode\GenericVehicle\class_5_generic vehicle_DECL.vecto", 0.8972, TestName = "Generic Group 5 VTP Test Declaration Mode"), - TestCase(@"TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\class_5_generic vehicle_DECL.vecto", 0.8972, TestName = "Generic Group 5 VTP Test Declaration Mode with PTO"), + TestCase(@"TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\class_5_generic vehicle_DECL.vecto", 0.8925, TestName = "Generic Group 5 VTP Test Declaration Mode with PTO"), TestCase(@"TestData\Integration\VTPMode\GenericVehicle\class_3_generic vehicle_DECL.vecto", 1.0068, TestName = "Generic Group 3 VTP Test Declaration Mode") ] public void RunVTP_Declaration(string jobFile, double expectedVTPFactor)