Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 32f53cbb authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

Merge branch 'hm_feature/vecto-42-epto-bus-aux' into 'tug-dev'

Enable use of Busaux AND electric auxiliaries

See merge request vecto/vecto!8
parents e61e656f eac8e44f
Branches tug-dev
Tags
No related merge requests found
...@@ -946,6 +946,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -946,6 +946,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(engine, idleController) .AddComponent(engine, idleController)
.AddAuxiliariesSerialHybrid(container, data); .AddAuxiliariesSerialHybrid(container, data);
var dcdc = new DCDCConverter(container,
data.DCDCData.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) { if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) {
throw new VectoException("BusAux must be supplied from REESS!"); throw new VectoException("BusAux must be supplied from REESS!");
...@@ -957,8 +962,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -957,8 +962,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
: (ISimpleBattery)new NoBattery(container); : (ISimpleBattery)new NoBattery(container);
busAux.ElectricStorage = electricStorage; busAux.ElectricStorage = electricStorage;
if (data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) { if (data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) {
var dcdc = new DCDCConverter(container,
data.DCDCData.DCDCEfficiency);
busAux.DCDCConverter = dcdc; busAux.DCDCConverter = dcdc;
es.Connect(dcdc); es.Connect(dcdc);
} }
...@@ -967,10 +970,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -967,10 +970,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
} else { } else {
throw new VectoException("BusAux data set but no BusAux component found!"); throw new VectoException("BusAux data set but no BusAux component found!");
} }
} else {
AddElectricAuxiliaries(data, container, es, cycle);
} }
AddElectricAuxiliaries(data, container, es, cycle, dcdc);
return container; return container;
...@@ -982,10 +986,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -982,10 +986,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
/// <param name="container"></param> /// <param name="container"></param>
/// <param name="es"></param> /// <param name="es"></param>
/// <param name="cycle"></param> /// <param name="cycle"></param>
/// <param name="cycle"></param>
private static void AddElectricAuxiliaries(VectoRunData data, VehicleContainer container, ElectricSystem es, private static void AddElectricAuxiliaries(VectoRunData data, VehicleContainer container, ElectricSystem es,
DistanceBasedDrivingCycle cycle) DistanceBasedDrivingCycle cycle, DCDCConverter dcdc)
{ {
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency); //var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
es.Connect(dcdc); es.Connect(dcdc);
var elAux = new ElectricAuxiliaries(container); var elAux = new ElectricAuxiliaries(container);
...@@ -1109,7 +1114,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1109,7 +1114,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
new DummyEngineInfo(container); new DummyEngineInfo(container);
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) { if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) {
throw new VectoException("BusAux must be supplied from REESS!"); throw new VectoException("BusAux must be supplied from REESS!");
...@@ -1119,36 +1124,14 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1119,36 +1124,14 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
var busAux = new BusAuxiliariesAdapter(container, auxCfg); var busAux = new BusAuxiliariesAdapter(container, auxCfg);
var electricStorage = new NoBattery(container); var electricStorage = new NoBattery(container);
busAux.ElectricStorage = electricStorage; busAux.ElectricStorage = electricStorage;
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
busAux.DCDCConverter = dcdc; busAux.DCDCConverter = dcdc;
es.Connect(dcdc); es.Connect(dcdc);
em.BusAux = busAux; em.BusAux = busAux;
} else { }
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); AddElectricAuxiliaries(data, container, es, cycle, dcdc);
//dcdc.Initialize();
}
return container; return container;
...@@ -1168,11 +1151,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1168,11 +1151,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
IElectricMotor em = _PWheelBEVBuilders[position].Invoke(data, container, es, powertrain); IElectricMotor em = _PWheelBEVBuilders[position].Invoke(data, container, es, powertrain);
var dcdc = new DCDCConverter(container, data.BusAuxiliaries.ElectricalUserInputsConfig.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
AddBEVBusAuxiliaries(data, container, es, em); AddBEVBusAuxiliaries(data, container, es, em,dcdc);
} }
else { else {
AddElectricAuxiliaries(data, container, es, null); AddElectricAuxiliaries(data, container, es, null,dcdc);
} }
return container; return container;
...@@ -1327,11 +1311,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1327,11 +1311,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
IElectricMotor em = _MeasuredSpeedBEVBuilders[position].Invoke(data, container, es, powertrain); IElectricMotor em = _MeasuredSpeedBEVBuilders[position].Invoke(data, container, es, powertrain);
var dcdc = new DCDCConverter(container, data.BusAuxiliaries.ElectricalUserInputsConfig.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
AddBEVBusAuxiliaries(data, container, es, em); AddBEVBusAuxiliaries(data, container, es, em, dcdc);
} }
else { else {
AddElectricAuxiliaries(data, container, es, null); AddElectricAuxiliaries(data, container, es, null, dcdc);
} }
return container; return container;
...@@ -1426,7 +1411,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1426,7 +1411,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
es.Connect(aux); es.Connect(aux);
} }
private static void AddBEVBusAuxiliaries(VectoRunData data, VehicleContainer container, ElectricSystem es, IElectricMotor em) private static void AddBEVBusAuxiliaries(VectoRunData data, VehicleContainer container, ElectricSystem es, IElectricMotor em, DCDCConverter dcdc)
{ {
if (data.BusAuxiliaries == null) { if (data.BusAuxiliaries == null) {
return; return;
...@@ -1437,7 +1422,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1437,7 +1422,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
} }
var busAux = new BusAuxiliariesAdapter(container, data.BusAuxiliaries); var busAux = new BusAuxiliariesAdapter(container, data.BusAuxiliaries);
var dcdc = new DCDCConverter(container, data.BusAuxiliaries.ElectricalUserInputsConfig.DCDCEfficiency);
busAux.DCDCConverter = dcdc; busAux.DCDCConverter = dcdc;
busAux.ElectricStorage = new NoBattery(container); busAux.ElectricStorage = new NoBattery(container);
...@@ -1480,11 +1465,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1480,11 +1465,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
new ATClutchInfo(container); new ATClutchInfo(container);
new DummyEngineInfo(container); new DummyEngineInfo(container);
var dcdc = new DCDCConverter(container, data.BusAuxiliaries.ElectricalUserInputsConfig.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
AddBEVBusAuxiliaries(data, container, es, em); AddBEVBusAuxiliaries(data, container, es, em, dcdc);
} }
else { else {
AddElectricAuxiliaries(data, container, es, null); AddElectricAuxiliaries(data, container, es, null, dcdc);
} }
return container; return container;
...@@ -1525,11 +1511,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1525,11 +1511,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
new DummyAxleGearInfo(container); new DummyAxleGearInfo(container);
} }
var dcdc = new DCDCConverter(container, data.BusAuxiliaries.ElectricalUserInputsConfig.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
AddBEVBusAuxiliaries(data, container, es, em); AddBEVBusAuxiliaries(data, container, es, em, dcdc);
} }
else { else {
AddElectricAuxiliaries(data, container, es, null); AddElectricAuxiliaries(data, container, es, null,dcdc);
} }
return container; return container;
...@@ -1668,6 +1655,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1668,6 +1655,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
} }
new DummyEngineInfo(container); new DummyEngineInfo(container);
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) { if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) {
throw new VectoException("BusAux must be supplied from REESS!"); throw new VectoException("BusAux must be supplied from REESS!");
...@@ -1677,14 +1665,14 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1677,14 +1665,14 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
var busAux = new BusAuxiliariesAdapter(container, auxCfg); var busAux = new BusAuxiliariesAdapter(container, auxCfg);
var electricStorage = new NoBattery(container); var electricStorage = new NoBattery(container);
busAux.ElectricStorage = electricStorage; busAux.ElectricStorage = electricStorage;
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
busAux.DCDCConverter = dcdc; busAux.DCDCConverter = dcdc;
es.Connect(dcdc); es.Connect(dcdc);
em.BusAux = busAux; em.BusAux = busAux;
} else {
AddElectricAuxiliaries(data, container, es, cycle);
} }
AddElectricAuxiliaries(data, container, es, cycle, dcdc);
return container; return container;
} }
...@@ -1767,6 +1755,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1767,6 +1755,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(engine, idleController) .AddComponent(engine, idleController)
.AddAuxiliaries(container, data); .AddAuxiliaries(container, data);
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
if (data.BusAuxiliaries != null) { if (data.BusAuxiliaries != null) {
if (container.BusAux is BusAuxiliariesAdapter busAux) { if (container.BusAux is BusAuxiliariesAdapter busAux) {
if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) { if (!data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) {
...@@ -1776,13 +1765,13 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1776,13 +1765,13 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
var auxCfg = data.BusAuxiliaries; var auxCfg = data.BusAuxiliaries;
var electricStorage = new NoBattery(container); var electricStorage = new NoBattery(container);
busAux.ElectricStorage = electricStorage; busAux.ElectricStorage = electricStorage;
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
busAux.DCDCConverter = dcdc; busAux.DCDCConverter = dcdc;
es.Connect(dcdc); es.Connect(dcdc);
//em.BusAux = busAux; //em.BusAux = busAux;
} }
} else { } else {
AddElectricAuxiliaries(data, container, es, cycle);
AddElectricAuxiliaries(data, container, es, cycle,dcdc);
} }
...@@ -1904,7 +1893,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -1904,7 +1893,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(new Brakes(container)); .AddComponent(new Brakes(container));
var pos = data.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item1; var pos = data.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item1;
AddElectricAuxiliaries(data, container, es, null); var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
AddElectricAuxiliaries(data, container, es, null,dcdc);
switch (pos) { switch (pos) {
case PowertrainPosition.BatteryElectricE4: case PowertrainPosition.BatteryElectricE4:
//-->Engine E4 //-->Engine E4
...@@ -2001,8 +1991,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -2001,8 +1991,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(GetRetarder(RetarderType.AxlegearInputRetarder, data.Retarder, container)) .AddComponent(GetRetarder(RetarderType.AxlegearInputRetarder, data.Retarder, container))
.AddComponent(gearbox) .AddComponent(gearbox)
.AddComponent(em); .AddComponent(em);
var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
AddElectricAuxiliaries(data, container, es, null); AddElectricAuxiliaries(data, container, es, null, dcdc);
} }
/// <summary> /// <summary>
...@@ -2198,7 +2188,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -2198,7 +2188,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(data.GearboxData is null ? null : GetSimpleGearbox(container, data)) .AddComponent(data.GearboxData is null ? null : GetSimpleGearbox(container, data))
.AddComponent(GetElectricMachine(data.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item1, .AddComponent(GetElectricMachine(data.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item1,
data.ElectricMachinesData, container, es, new SimpleElectricMotorControl())); data.ElectricMachinesData, container, es, new SimpleElectricMotorControl()));
AddElectricAuxiliaries(data, container, es, null); var dcdc = new DCDCConverter(container, data.DCDCData.DCDCEfficiency);
AddElectricAuxiliaries(data, container, es, null,dcdc);
if (data.AxleGearData == null) { if (data.AxleGearData == null) {
new DummyAxleGearInfo(container); // necessary for certain IEPC configurations new DummyAxleGearInfo(container); // necessary for certain IEPC configurations
} }
......
...@@ -56,7 +56,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -56,7 +56,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
foreach (var auxId in _auxData.Keys) { foreach (var auxId in _auxData.Keys) {
var id = $"{auxId}_el"; var id = $"{auxId}_el";
if (_auxColumnName.ContainsKey(auxId)) {
continue;
}
_auxColumnName.Add(auxId, id); //use column name as ID _auxColumnName.Add(auxId, id); //use column name as ID
VehicleContainer.AddAuxiliary(id); VehicleContainer.AddAuxiliary(id);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment