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 ea3ea74d authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

update .vmod and .vsum: consistent naming of EM related fields (use drive...

update .vmod and .vsum: consistent naming of EM related fields (use drive instead of motoring, correct units, add fields for em losses and em transmission losses
.vsum: add ice off time share, correct units, adding energy demand electric aux high voltage system
parent 9479fa31
Branches
Tags
No related merge requests found
......@@ -38,6 +38,7 @@
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CSV/@EntryIndexedValue">CSV</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EPTP/@EntryIndexedValue">EPTP</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HVAC/@EntryIndexedValue">HVAC</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ICE/@EntryIndexedValue">ICE</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=JSON/@EntryIndexedValue">JSON</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=MT/@EntryIndexedValue">MT</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NS/@EntryIndexedValue">NS</s:String>
......
......@@ -380,7 +380,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
[ModalResultField(typeof(SI), caption: "n_em-{0}_avg [1/min]", outputFactor: 60 / (2 * Math.PI))] n_electricMotor_,
[ModalResultField(typeof(SI), caption: "T_em-{0} [Nm]")] T_electricMotor_,
[ModalResultField(typeof(SI), caption: "T_em-{0}_mot_max [Nm]")] T_electricMotor_drive_max_,
[ModalResultField(typeof(SI), caption: "T_em-{0}_drive_max [Nm]")] T_electricMotor_drive_max_,
[ModalResultField(typeof(SI), caption: "T_em-{0}_gen_max [Nm]")] T_electricMotor_gen_max_,
[ModalResultField(typeof(SI), caption: "P_em-{0}_in [kW]", outputFactor: 1e-3)] P_electricMotor_in_,
[ModalResultField(typeof(SI), caption: "P_em-{0}_out [kW]", outputFactor: 1e-3)] P_electricMotor_out_,
......@@ -390,6 +390,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
[ModalResultField(typeof(SI), caption: "P_em-{0}_drive_max [kW]", outputFactor: 1e-3)] P_electricMotor_drive_max_,
//[ModalResultField(typeof(SI), caption: "P_em-{0}_brake [kW]", outputFactor: 1e-3)] P_electricMotor_brake_,
[ModalResultField(typeof(SI), caption: "P_em-{0}_loss [kW]", outputFactor: 1e-3)] P_electricMotorLoss_,
[ModalResultField(typeof(SI), caption: "P_em-{0}_transm_loss [kW]", outputFactor: 1e-3)] P_electricMotorTransmissionLoss_,
[ModalResultField(typeof(SI), caption: "P_em-{0}_inertia_loss [kW]", outputFactor: 1e-3)] P_electricMotorInertiaLoss_,
[ModalResultField(typeof(SI), caption: "EM-{0}_OverloadBuffer [%]", outputFactor: 100)] ElectricMotor_OvlBuffer_,
......@@ -419,7 +420,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
[ModalResultField(typeof(SI), caption: "P_reess discharge max [kW]", outputFactor: 1e-3)] P_reess_discharge_max,
[ModalResultField(typeof(SI), caption: "U_reess_terminal [V]")] U_reess_terminal,
[ModalResultField(typeof(SI), caption: "U_0_reess [V]")] U0_reess,
[ModalResultField(typeof(SI), caption: "I_reess [kW]")] I_reess,
[ModalResultField(typeof(SI), caption: "I_reess [A]")] I_reess,
[ModalResultField(typeof(SI), caption: "E_reess [kWh]", outputFactor: 1/3600e3)] E_RESS,
}
......
......@@ -421,6 +421,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
container[ModalResultField.P_electricMotor_gen_max_, Position] = (CurrentState.DragMax ?? 0.SI<NewtonMeter>()) * avgSpeed;
container[ModalResultField.P_electricMotor_drive_max_, Position] = (CurrentState.DriveMax ?? 0.SI<NewtonMeter>()) * avgSpeed;
container[ModalResultField.P_electricMotorLoss_, Position] = (CurrentState.InTorque - CurrentState.OutTorque) * avgSpeed - (CurrentState.ElectricPowerToBattery);
container[ModalResultField.P_electricMotorTransmissionLoss_, Position] = 0.SI<Watt>();
container[ModalResultField.P_electricMotorInertiaLoss_, Position] = CurrentState.InertiaTorqueLoss * avgSpeed;
var contribution =
......
......@@ -130,10 +130,13 @@ namespace TUGraz.VectoCore.OutputData
double ElectricMotorEfficiencyDrive(PowertrainPosition emPos);
double ElectricMotorEfficiencyGenerate(PowertrainPosition emPos);
WattSecond ElectricMotorOffLosses(PowertrainPosition emPos);
WattSecond ElectricMotorLosses(PowertrainPosition emPos);
WattSecond ElectricMotorTransmissionLosses(PowertrainPosition emPos);
double BatteryStartSoC();
double BatteryEndSoC();
WattSecond BatteryLoss();
WattSecond BatteryEnergyEnd();
double REESSEndSoC();
WattSecond REESSLoss();
WattSecond REESSEnergyEnd();
}
......@@ -353,23 +356,23 @@ namespace TUGraz.VectoCore.OutputData
return data.TimeIntegral<WattSecond>(ModalResultField.P_wheel_in) / data.Duration;
}
public static WattSecond WorkBatteryChargeTerminal(this IModalDataContainer data)
public static WattSecond WorkREESSChargeTerminal(this IModalDataContainer data)
{
return data.TimeIntegral<WattSecond>(ModalResultField.P_reess_terminal, x => x.IsGreater(0));
}
public static WattSecond WorkBatteryDischargeTerminal(this IModalDataContainer data)
public static WattSecond WorkREESSDischargeTerminal(this IModalDataContainer data)
{
return -data.TimeIntegral<WattSecond>(ModalResultField.P_reess_terminal, x => x.IsSmaller(0));
}
public static WattSecond WorkBatteryChargeInternal(this IModalDataContainer data)
public static WattSecond WorkREESSChargeInternal(this IModalDataContainer data)
{
return data.TimeIntegral<WattSecond>(ModalResultField.P_reess_int, x => x.IsGreater(0));
}
public static WattSecond WorkBatteryDischargeInternal(this IModalDataContainer data)
public static WattSecond WorkREESSDischargeInternal(this IModalDataContainer data)
{
return -data.TimeIntegral<WattSecond>(ModalResultField.P_reess_int, x => x.IsSmaller(0));
}
......@@ -532,16 +535,27 @@ namespace TUGraz.VectoCore.OutputData
return data.Max<PerSecond>(ModalResultField.n_ice_avg);
}
public static Scalar EngineMaxLoadTimeShare(this IModalDataContainer data)
public static Scalar ICEMaxLoadTimeShare(this IModalDataContainer data)
{
var sum = data.GetValues(x => new {
tMax = x.Field<NewtonMeter>(ModalResultField.T_ice_full.GetName()).DefaultIfNull(-1),
tEng = x.Field<NewtonMeter>(ModalResultField.T_ice_fcmap.GetName()).DefaultIfNull(0),
dt = x.Field<Second>(ModalResultField.simulationInterval.GetName())
}).Sum(x => x.tMax.IsEqual(x.tEng, 5.SI<NewtonMeter>()) ? x.dt : 0.SI<Second>()) ?? 0.SI<Second>();
dt = x.Field<Second>(ModalResultField.simulationInterval.GetName()),
iceOn = !(x[ModalResultField.ICEOn.GetName()] is DBNull) && x.Field<bool>(ModalResultField.ICEOn.GetName())
}).Where(x => x.iceOn).Sum(x => x.tMax.IsEqual(x.tEng, 5.SI<NewtonMeter>()) ? x.dt : 0.SI<Second>()) ?? 0.SI<Second>();
return 100 * sum / data.Duration;
}
public static Scalar ICEOffTimeShare(this IModalDataContainer data)
{
var iceOff = data.GetValues(x => new {
dt = x[ModalResultField.ICEOn.GetName()] is DBNull
? 0.SI<Second>()
: x.Field<Second>(ModalResultField.simulationInterval.GetName())
}).Sum(x => x.dt) ?? 0.SI<Second>();
return 100 * iceOff / data.Duration;
}
/// <summary>
/// The following logic applies:
/// - shifting from gear A to gear B counts as gearshift (with or without traction interruption)
......
......@@ -70,6 +70,7 @@ namespace TUGraz.VectoCore.OutputData
ModalResultField.P_electricMotor_in_, ModalResultField.P_electricMotor_out_,
ModalResultField.P_electricMotor_mech_, ModalResultField.P_electricMotor_el_,
ModalResultField.P_electricMotorLoss_, ModalResultField.P_electricMotorInertiaLoss_,
ModalResultField.P_electricMotorTransmissionLoss_,
/*ModalResultField.P_electricMotor_brake_,*/ ModalResultField.P_electricMotor_drive_max_,
ModalResultField.P_electricMotor_gen_max_, ModalResultField.ElectricMotor_OvlBuffer_
};
......@@ -351,6 +352,24 @@ namespace TUGraz.VectoCore.OutputData
return selected.Where(x => x.P_em.IsEqual(0)).Sum(x => x.E_mech) ?? 0.SI<WattSecond>();
}
public WattSecond ElectricMotorLosses(PowertrainPosition emPos)
{
return Data.AsEnumerable().Cast<DataRow>().Sum(r => {
var dt = r.Field<Second>(ModalResultField.simulationInterval.GetName());
return r.Field<Watt>(string.Format(ModalResultField.P_electricMotorLoss_.GetCaption(),
emPos.GetName())) * dt;
});
}
public WattSecond ElectricMotorTransmissionLosses(PowertrainPosition emPos)
{
return Data.AsEnumerable().Cast<DataRow>().Sum(r => {
var dt = r.Field<Second>(ModalResultField.simulationInterval.GetName());
return r.Field<Watt>(string.Format(ModalResultField.P_electricMotorTransmissionLoss_.GetCaption(),
emPos.GetName())) * dt;
});
}
public PerSecond ElectricMotorAverageSpeed(PowertrainPosition emPos)
{
var integral = GetValues(x => x.Field<PerSecond>(string.Format(ModalResultField.n_electricMotor_.GetCaption(), emPos.GetName())).Value() *
......@@ -363,17 +382,17 @@ namespace TUGraz.VectoCore.OutputData
return Data.AsEnumerable().Cast<DataRow>().First().Field<SI>(ModalResultField.REESSStateOfCharge.GetName()).Value() * 100;
}
public double BatteryEndSoC()
public double REESSEndSoC()
{
return Data.AsEnumerable().Cast<DataRow>().Last().Field<SI>(ModalResultField.REESSStateOfCharge.GetName()).Value() * 100;
}
public WattSecond BatteryLoss()
public WattSecond REESSLoss()
{
return TimeIntegral<WattSecond>(ModalResultField.P_reess_loss);
}
public WattSecond BatteryEnergyEnd()
public WattSecond REESSEnergyEnd()
{
return Data.AsEnumerable().Cast<DataRow>().Last().Field<SI>(ModalResultField.E_RESS.GetName())
.Cast<WattSecond>();
......
......@@ -39,6 +39,7 @@ using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Configuration;
using TUGraz.VectoCore.InputData.Reader.ComponentData;
using TUGraz.VectoCore.InputData.Reader.Impl;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
......@@ -177,7 +178,7 @@ namespace TUGraz.VectoCore.OutputData
Table.Columns.AddRange(
new[] {
Fields.CO2_KM, Fields.CO2_TKM, Fields.CO2_M3KM, Fields.CO2_PKM, Fields.P_WHEEL, Fields.P_WHEEL_POS, Fields.P_FCMAP, Fields.P_FCMAP_POS,
Fields.E_FCMAP_POS, Fields.E_FCMAP_NEG, Fields.E_POWERTRAIN_INERTIA, Fields.E_AUX, Fields.E_CLUTCH_LOSS,
Fields.E_FCMAP_POS, Fields.E_FCMAP_NEG, Fields.E_POWERTRAIN_INERTIA, Fields.E_AUX, Fields.E_AUX_EL_HV, Fields.E_CLUTCH_LOSS,
Fields.E_TC_LOSS, Fields.E_SHIFT_LOSS, Fields.E_GBX_LOSS, Fields.E_RET_LOSS, Fields.E_ANGLE_LOSS,
Fields.E_AXL_LOSS, Fields.E_BRAKE, Fields.E_VEHICLE_INERTIA, Fields.E_WHEEL, Fields.E_AIR, Fields.E_ROLL, Fields.E_GRAD,
Fields.AirConsumed, Fields.AirGenerated, Fields.E_PS_CompressorOff, Fields.E_PS_CompressorOn,
......@@ -188,7 +189,7 @@ namespace TUGraz.VectoCore.OutputData
Fields.E_WHR_EL, Fields.E_WHR_MECH, Fields.E_AUX_ESS_MECH, Fields.E_ICE_START, Fields.NUM_ICE_STARTS, Fields.ACC,
Fields.ACC_POS, Fields.ACC_NEG, Fields.ACC_TIMESHARE, Fields.DEC_TIMESHARE, Fields.CRUISE_TIMESHARE,
Fields.MAX_SPEED, Fields.MAX_ACCELERATION, Fields.MAX_DECELERATION, Fields.AVG_ENGINE_SPEED,
Fields.MAX_ENGINE_SPEED, Fields.NUM_GEARSHIFTS, Fields.STOP_TIMESHARE, Fields.ENGINE_FULL_LOAD_TIME_SHARE,
Fields.MAX_ENGINE_SPEED, Fields.NUM_GEARSHIFTS, Fields.STOP_TIMESHARE, Fields.ICE_FULL_LOAD_TIME_SHARE, Fields.ICE_OFF_TIME_SHARE,
Fields.COASTING_TIME_SHARE, Fields.BRAKING_TIME_SHARE, Fields.AVERAGE_POS_ACC
}.Select(x => new DataColumn(x, typeof(ConvertedSI))).ToArray());
......@@ -357,7 +358,8 @@ namespace TUGraz.VectoCore.OutputData
WritePerformanceEntries(runData, modData, row);
row[Fields.ENGINE_FULL_LOAD_TIME_SHARE] = (ConvertedSI)modData.EngineMaxLoadTimeShare();
row[Fields.ICE_FULL_LOAD_TIME_SHARE] = (ConvertedSI)modData.ICEMaxLoadTimeShare();
row[Fields.ICE_OFF_TIME_SHARE] = (ConvertedSI)modData.ICEOffTimeShare();
row[Fields.COASTING_TIME_SHARE] = (ConvertedSI)modData.CoastingTimeShare();
row[Fields.BRAKING_TIME_SHARE] = (ConvertedSI)modData.BrakingTimeShare();
......@@ -686,6 +688,7 @@ namespace TUGraz.VectoCore.OutputData
row[Fields.E_FCMAP_NEG] = (-modData.TotalEngineWorkNegative()).ConvertToKiloWattHour();
row[Fields.E_POWERTRAIN_INERTIA] = modData.PowerAccelerations().ConvertToKiloWattHour();
row[Fields.E_AUX] = modData.WorkAuxiliaries().ConvertToKiloWattHour();
row[Fields.E_AUX_EL_HV] = modData.TimeIntegral<WattSecond>(ModalResultField.P_aux_el).ConvertToKiloWattHour();
row[Fields.E_CLUTCH_LOSS] = modData.WorkClutch().ConvertToKiloWattHour();
row[Fields.E_TC_LOSS] = modData.WorkTorqueConverter().ConvertToKiloWattHour();
row[Fields.E_SHIFT_LOSS] = modData.WorkGearshift().ConvertToKiloWattHour();
......@@ -724,9 +727,11 @@ namespace TUGraz.VectoCore.OutputData
Tuple.Create(Fields.E_EM_DRIVE_FORMAT, modData.TotalElectricMotorWorkDrive(em.Item1).ConvertToKiloWattHour()),
Tuple.Create(Fields.E_EM_GENERATE_FORMAT, modData.TotalElectricMotorWorkRecuperate(em.Item1).ConvertToKiloWattHour()),
Tuple.Create(Fields.E_EM_AVG_SPEED_FORMAT, modData.ElectricMotorAverageSpeed(em.Item1).ConvertToRoundsPerMinute()),
Tuple.Create(Fields.E_EM_ETA_MOT_FORMAT, new ConvertedSI(modData.ElectricMotorEfficiencyDrive(em.Item1), "")),
Tuple.Create(Fields.E_EM_ETA_DRIVE_FORMAT, new ConvertedSI(modData.ElectricMotorEfficiencyDrive(em.Item1), "")),
Tuple.Create(Fields.E_EM_ETA_GEN_FORMAT, new ConvertedSI(modData.ElectricMotorEfficiencyGenerate(em.Item1), "")),
Tuple.Create(Fields.E_EM_OFF_Loss_Format, modData.ElectricMotorOffLosses(em.Item1).ConvertToKiloWattHour())
Tuple.Create(Fields.E_EM_OFF_Loss_Format, modData.ElectricMotorOffLosses(em.Item1).ConvertToKiloWattHour()),
Tuple.Create(Fields.E_EM_LOSS_FORMAT, modData.ElectricMotorLosses(em.Item1).ConvertToKiloWattHour()),
Tuple.Create(Fields.E_EM_LOSS_TRANSM_FORMAT, modData.ElectricMotorTransmissionLosses(em.Item1).ConvertToKiloWattHour())
};
emColumns.Reverse();
foreach (var entry in emColumns) {
......@@ -760,32 +765,32 @@ namespace TUGraz.VectoCore.OutputData
var col = Table.Columns.Add(field, typeof(ConvertedSI));
col.SetOrdinal(Table.Columns[Fields.P_WHEEL].Ordinal);
}
row[Fields.E_REESS_LOSS] = modData.BatteryLoss().ConvertToKiloWattHour();
row[Fields.E_REESS_T_chg] = modData.WorkBatteryChargeTerminal().ConvertToKiloWattHour();
row[Fields.E_REESS_T_dischg] = modData.WorkBatteryDischargeTerminal().ConvertToKiloWattHour();
row[Fields.E_REESS_int_chg] = modData.WorkBatteryChargeInternal().ConvertToKiloWattHour();
row[Fields.E_REESS_int_dischg] = modData.WorkBatteryDischargeInternal().ConvertToKiloWattHour();
row[Fields.E_REESS_LOSS] = modData.REESSLoss().ConvertToKiloWattHour();
row[Fields.E_REESS_T_chg] = modData.WorkREESSChargeTerminal().ConvertToKiloWattHour();
row[Fields.E_REESS_T_dischg] = modData.WorkREESSDischargeTerminal().ConvertToKiloWattHour();
row[Fields.E_REESS_int_chg] = modData.WorkREESSChargeInternal().ConvertToKiloWattHour();
row[Fields.E_REESS_int_dischg] = modData.WorkREESSDischargeInternal().ConvertToKiloWattHour();
}
if (runData.BatteryData != null) {
row[Fields.REESS_StartSoC] = runData.BatteryData.InitialSoC * 100;
row[Fields.REESS_EndSoC] = modData.BatteryEndSoC();
row[Fields.REESS_EndSoC] = modData.REESSEndSoC();
var cellVoltage = runData.BatteryData.SOCMap.Lookup(runData.BatteryData.InitialSoC);
row[Fields.REESS_DeltaSoC] =
(modData.BatteryEnergyEnd() -
(modData.REESSEnergyEnd() -
(runData.BatteryData.InitialSoC * runData.BatteryData.Capacity * cellVoltage).Cast<WattSecond>()).ConvertToKiloWattHour();
}
if (runData.SuperCapData != null) {
row[Fields.REESS_StartSoC] = runData.SuperCapData.InitialSoC * 100;
row[Fields.REESS_EndSoC] = modData.BatteryEndSoC();
row[Fields.REESS_EndSoC] = modData.REESSEndSoC();
var initialCharge = runData.SuperCapData.Capacity *
((runData.SuperCapData.MaxVoltage - runData.SuperCapData.MinVoltage) *
runData.SuperCapData.InitialSoC +
runData.SuperCapData.MinVoltage);
row[Fields.REESS_DeltaSoC] =
(modData.BatteryEnergyEnd() -
(modData.REESSEnergyEnd() -
(initialCharge * initialCharge / runData.SuperCapData.Capacity / 2.0).Cast<WattSecond>()).ConvertToKiloWattHour();
......@@ -1186,6 +1191,8 @@ namespace TUGraz.VectoCore.OutputData
public const string E_AUX_FORMAT = "E_aux_{0} [kWh]";
public const string E_AUX = "E_aux_sum [kWh]";
public const string E_AUX_EL_HV = "E_aux_el(HV) [kWh]";
public const string E_AUX_ESS_MECH = "E_aux_ess_mech [kWh]";
public const string E_ICE_START = "E_ice_start [kWh]";
public const string NUM_ICE_STARTS = "ice_starts [-]";
......@@ -1245,9 +1252,10 @@ namespace TUGraz.VectoCore.OutputData
public const string AVG_ENGINE_SPEED = "n_eng_avg [rpm]";
public const string MAX_ENGINE_SPEED = "n_eng_max [rpm]";
public const string NUM_GEARSHIFTS = "gear shifts [-]";
public const string ENGINE_FULL_LOAD_TIME_SHARE = "Engine max. Load time share [%]";
public const string ICE_FULL_LOAD_TIME_SHARE = "ICE max. Load time share [%]";
public const string ICE_OFF_TIME_SHARE = "ICE off time share [%]";
public const string COASTING_TIME_SHARE = "CoastingTimeShare [%]";
public const string BRAKING_TIME_SHARE = "BrakingTImeShare [%]";
public const string BRAKING_TIME_SHARE = "BrakingTimeShare [%]";
public const string TIME_SHARE_PER_GEAR_FORMAT = "Gear {0} TimeShare [%]";
......@@ -1275,27 +1283,27 @@ namespace TUGraz.VectoCore.OutputData
//public const string PTO_OTHER_ELEMENTS = "PTOOtherElements";
public const string ENGINE_CERTIFICATION_NUMBER = "Engine certification number";
public const string AVERAGE_ENGINE_EFFICIENCY = "Average engine efficiency [%]";
public const string AVERAGE_ENGINE_EFFICIENCY = "Average engine efficiency [-]";
public const string TORQUE_CONVERTER_CERTIFICATION_NUMBER = "TorqueConverter certification number";
public const string TORQUE_CONVERTER_CERTIFICATION_METHOD = "Torque converter certification option";
public const string AVERAGE_TORQUE_CONVERTER_EFFICIENCY_WITH_LOCKUP =
"Average torque converter efficiency with lockup [%]";
"Average torque converter efficiency with lockup [-]";
public const string AVERAGE_TORQUE_CONVERTER_EFFICIENCY_WITHOUT_LOCKUP =
"Average torque converter efficiency w/o lockup [%]";
"Average torque converter efficiency w/o lockup [-]";
public const string GEARBOX_CERTIFICATION_NUMBER = "Gearbox certification number";
public const string GEARBOX_CERTIFICATION_METHOD = "Gearbox certification option";
public const string AVERAGE_GEARBOX_EFFICIENCY = "Average gearbox efficiency [%]";
public const string AVERAGE_GEARBOX_EFFICIENCY = "Average gearbox efficiency [-]";
public const string RETARDER_CERTIFICATION_NUMBER = "Retarder certification number";
public const string RETARDER_CERTIFICATION_METHOD = "Retarder certification option";
public const string ANGLEDRIVE_CERTIFICATION_NUMBER = "Angledrive certification number";
public const string ANGLEDRIVE_CERTIFICATION_METHOD = "Angledrive certification option";
public const string AVERAGE_ANGLEDRIVE_EFFICIENCY = "Average angledrive efficiency [%]";
public const string AVERAGE_ANGLEDRIVE_EFFICIENCY = "Average angledrive efficiency [-]";
public const string AXLEGEAR_CERTIFICATION_NUMBER = "Axlegear certification number";
public const string AXLEGEAR_CERTIFICATION_METHOD = "Axlegear certification method";
public const string AVERAGE_AXLEGEAR_EFFICIENCY = "Average axlegear efficiency [%]";
public const string AVERAGE_AXLEGEAR_EFFICIENCY = "Average axlegear efficiency [-]";
public const string AIRDRAG_CERTIFICATION_NUMBER = "AirDrag certification number";
public const string AIRDRAG_CERTIFICATION_METHOD = "AirDrag certification option";
......@@ -1304,9 +1312,11 @@ namespace TUGraz.VectoCore.OutputData
public const string E_EM_DRIVE_FORMAT = "E_EM_{0}_drive [kWh]";
public const string E_EM_GENERATE_FORMAT = "E_EM_{0}_gen [kWh]";
public const string E_EM_AVG_SPEED_FORMAT = "n_EM_{0}_avg [rpm]";
public const string E_EM_ETA_MOT_FORMAT = "η_EM_{0}_mot";
public const string E_EM_ETA_DRIVE_FORMAT = "η_EM_{0}_drive";
public const string E_EM_ETA_GEN_FORMAT = "η_EM_{0}_gen";
public const string E_EM_OFF_Loss_Format = "E_EM_{0}_off_loss [kWh]";
public const string E_EM_LOSS_FORMAT = "E_EM_{0}_loss [kWh]";
public const string E_EM_LOSS_TRANSM_FORMAT = "E_EM_{0}_transm_loss [kWh]";
public const string REESS_StartSoC = "REESS Start SoC [%]";
......
......@@ -139,7 +139,7 @@ namespace TUGraz.VectoCore.OutputData.XML
MaxSpeed = data.MaxSpeed();
MaxAcceleration = data.MaxAcceleration();
MaxDeceleration = data.MaxDeceleration();
FullLoadPercentage = data.EngineMaxLoadTimeShare();
FullLoadPercentage = data.ICEMaxLoadTimeShare();
GearshiftCount = data.GearshiftCount();
var entriesDriving = data.GetValues(
......
......@@ -301,22 +301,32 @@ namespace TUGraz.VectoCore.Tests.Utils
throw new NotImplementedException();
}
public WattSecond ElectricMotorLosses(PowertrainPosition emPos)
{
throw new NotImplementedException();
}
public WattSecond ElectricMotorTransmissionLosses(PowertrainPosition emPos)
{
throw new NotImplementedException();
}
public double BatteryStartSoC()
{
throw new NotImplementedException();
}
public double BatteryEndSoC()
public double REESSEndSoC()
{
throw new NotImplementedException();
}
public WattSecond BatteryLoss()
public WattSecond REESSLoss()
{
throw new NotImplementedException();
}
public WattSecond BatteryEnergyEnd()
public WattSecond REESSEnergyEnd()
{
throw new NotImplementedException();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment