diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index b48d42aea685af81c6bc72bc2e766edc70d4b145..ab6ae0a2bcef0a5719c75e7527b18a329394fe19 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -656,29 +656,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl throw new VectoException("BusAux data set but no BusAux component found!"); } } else { - var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency); - - es.Connect(dcdc); - var elAux = new ElectricAuxiliaries(container); - - IEPTO epto = null; - if (data.PTO?.PTOCycle != null) - { - var pevPTOController = GetPEV_SHEVIdleController(data.PTO, container); - cycle.IdleController = pevPTOController; - var eptoAux = new EPTO(pevPTOController); - elAux.AddAuxiliary(eptoAux); - epto = eptoAux; - } - - elAux.AddAuxiliaries(data.Aux.Where(x => x.ConnectToREESS && x.ID != Constants.Auxiliaries.IDs.Cond)); - if (data.Aux.Any(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)) - { - elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond), epto)); - } - - dcdc.Connect(elAux); - dcdc.Initialize(); + AddElectricAuxiliaries(data, container, es, cycle); } ctl.GenSet.AddComponent(GetElectricMachine(PowertrainPosition.GEN, data.ElectricMachinesData, container, es, @@ -688,6 +666,39 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl return container; } + /// <summary> + /// Adds electric auxilaries and EPTO to the powertrain + /// </summary> + /// <param name="data"></param> + /// <param name="container"></param> + /// <param name="es"></param> + /// <param name="cycle"></param> + private static void AddElectricAuxiliaries(VectoRunData data, VehicleContainer container, ElectricSystem es, + DistanceBasedDrivingCycle cycle) + { + var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency); + + es.Connect(dcdc); + var elAux = new ElectricAuxiliaries(container); + + IEPTO epto = null; + if (data.PTO?.PTOCycle != null) { + var pevPTOController = GetPEV_SHEVIdleController(data.PTO, container); + cycle.IdleController = pevPTOController; + var eptoAux = new EPTO(pevPTOController); + elAux.AddAuxiliary(eptoAux); + epto = eptoAux; + } + + elAux.AddAuxiliaries(data.Aux.Where(x => x.ConnectToREESS && x.ID != Constants.Auxiliaries.IDs.Cond)); + if (data.Aux.Any(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)) { + elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond), + epto)); + } + + dcdc.Connect(elAux); + dcdc.Initialize(); + } /// <summary> @@ -788,7 +799,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl if (data.BusAuxiliaries != null) { - if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) { throw new VectoException("BusAux must be supplied from REESS!"); } @@ -802,33 +812,34 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl es.Connect(dcdc); em.BusAux = busAux; } else { - var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency); - - es.Connect(dcdc); - var elAux = new ElectricAuxiliaries(container); - - IEPTO epto = null; - if (data.PTO?.PTOCycle != null) - { - var pevPTOController = GetPEV_SHEVIdleController(data.PTO, container); - cycle.IdleController = pevPTOController; - var eptoAux = new EPTO(pevPTOController); - elAux.AddAuxiliary(eptoAux); - epto = eptoAux; - } - - elAux.AddAuxiliaries(data.Aux.Where(x => x.ConnectToREESS && x.ID != Constants.Auxiliaries.IDs.Cond)); - if (data.Aux.Any(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)) { - elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond), epto)); - } + AddElectricAuxiliaries(data, container, es, cycle); + //var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency); + + // es.Connect(dcdc); + //var elAux = new ElectricAuxiliaries(container); + + //IEPTO epto = null; + //if (data.PTO?.PTOCycle != null) + //{ + // var pevPTOController = GetPEV_SHEVIdleController(data.PTO, container); + // cycle.IdleController = pevPTOController; + // var eptoAux = new EPTO(pevPTOController); + // elAux.AddAuxiliary(eptoAux); + // epto = eptoAux; + //} + + //elAux.AddAuxiliaries(data.Aux.Where(x => x.ConnectToREESS && x.ID != Constants.Auxiliaries.IDs.Cond)); + //if (data.Aux.Any(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)) { + // elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond), epto)); + //} - dcdc.Connect(elAux); + //dcdc.Connect(elAux); - dcdc.Initialize(); + //dcdc.Initialize(); } @@ -999,6 +1010,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl busAux.DCDCConverter = dcdc; es.Connect(dcdc); em.BusAux = busAux; + } else { + AddElectricAuxiliaries(data, container, es, cycle); } return container; @@ -1092,12 +1105,17 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl busAux.DCDCConverter = dcdc; es.Connect(dcdc); em.BusAux = busAux; + } else { + AddElectricAuxiliaries(data, container, es, cycle); } ctl.GenSet.AddComponent(GetElectricMachine(PowertrainPosition.GEN, data.ElectricMachinesData, container, es, ctl)) .AddComponent(engine, idleController) .AddAuxiliaries(container, data); + + + return container; }