Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit eed910d7 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

fix calculating EM Mass: consider IEPC, handle the case no EM is present

parent 616a1558
No related branches found
No related tags found
No related merge requests found
......@@ -228,13 +228,27 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
{
var additionalMass = new List<Tuple<String, Kilogram>>();
foreach (var emData in data.Components.ElectricMachines.Entries) {
var emVoltage = emData.ElectricMachine.VoltageLevels.OrderBy(x => x.VoltageLevel).Last();
var emContPwr = emVoltage.ContinuousTorque * emVoltage.ContinuousTorqueSpeed;
var massEM = emContPwr * DeclarationData.EM_MassPerPower + DeclarationData.EM_MassElectronics + DeclarationData.EM_MassInverter;
additionalMass.Add(Tuple.Create(emData.Position.GetName(), VectoMath.Round(massEM, MidpointRounding.AwayFromZero)));
if (data.Components.ElectricMachines != null) {
foreach (var emData in data.Components.ElectricMachines.Entries) {
var emVoltage = emData.ElectricMachine.VoltageLevels.OrderBy(x => x.VoltageLevel).Last();
var emContPwr = emVoltage.ContinuousTorque * emVoltage.ContinuousTorqueSpeed;
var massEM = emContPwr * DeclarationData.EM_MassPerPower + DeclarationData.EM_MassElectronics +
DeclarationData.EM_MassInverter;
additionalMass.Add(Tuple.Create(emData.Position.GetName(),
VectoMath.Round(massEM, MidpointRounding.AwayFromZero)));
}
}
if (data.Components.IEPC != null) {
var iepc = data.Components.IEPC;
var emVoltage = iepc.VoltageLevels.OrderBy(x => x.VoltageLevel).Last();
var emContPwr = emVoltage.ContinuousTorque * emVoltage.ContinuousTorqueSpeed;
var massEM = emContPwr * DeclarationData.EM_MassPerPower + DeclarationData.EM_MassElectronics +
DeclarationData.EM_MassInverter;
additionalMass.Add(Tuple.Create("IEPC",
VectoMath.Round(massEM, MidpointRounding.AwayFromZero)));
}
var count = 0;
foreach (var reess in data.Components.ElectricStorage.ElectricStorageElements) {
if (reess.REESSPack is IBatteryPackDeclarationInputData battery) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment