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

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

updating colums in mod file: allow adding fuel type, sumData: remove SoC columns

parent a72f8c3e
No related branches found
No related tags found
No related merge requests found
......@@ -115,32 +115,32 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
/// <summary>
/// [g/h] Fuel consumption from FC map..
/// </summary>
[ModalResultField(typeof(SI), name: "FC-Map", caption: "FC-Map [g/h]", outputFactor: 3600 * 1000)] FCMap,
[ModalResultField(typeof(SI), name: "FC-Map", caption: "FC-Map{0} [g/h]", outputFactor: 3600 * 1000)] FCMap,
/// <summary>
/// [g/h] Fuel consumption after correction for different NCV in VECTO Engine and VECTO sim. (Based on FC.)
/// </summary>
[ModalResultField(typeof(SI), name: "FC-NCVc", caption: "FC-NCVc [g/h]", outputFactor: 3600 * 1000)] FCNCVc,
[ModalResultField(typeof(SI), name: "FC-NCVc", caption: "FC-NCVc{0} [g/h]", outputFactor: 3600 * 1000)] FCNCVc,
/// <summary>
/// [g/h] Fuel consumption after WHTC Correction. (Based on FC-AUXc.)
/// </summary>
[ModalResultField(typeof(SI), name: "FC-WHTCc", caption: "FC-WHTCc [g/h]", outputFactor: 3600 * 1000)] FCWHTCc,
[ModalResultField(typeof(SI), name: "FC-WHTCc", caption: "FC-WHTCc{0} [g/h]", outputFactor: 3600 * 1000)] FCWHTCc,
/// <summary>
/// [g/h] Fuel consumption after smart auxiliary correction.
/// </summary>
[ModalResultField(typeof(SI), name: "FC-AAUX", caption: "FC-AAUX [g/h]", outputFactor: 3600 * 1000)] FCAAUX,
[ModalResultField(typeof(SI), name: "FC-AAUX", caption: "FC-AAUX{0} [g/h]", outputFactor: 3600 * 1000)] FCAAUX,
/// <summary>
/// [g/h] Fuel consumption after correction for ADAS technologies. (Based on FC-AAUXc.)
/// </summary>
[ModalResultField(typeof(SI), name: "FC-ADAS", caption: "FC-ADAS [g/h]", outputFactor: 3600 * 1000)] FCADAS,
///// <summary>
///// [g/h] Fuel consumption after correction for ADAS technologies. (Based on FC-AAUXc.)
///// </summary>
//[ModalResultField(typeof(SI), name: "FC-ADAS", caption: "FC-ADAS{0} [g/h]", outputFactor: 3600 * 1000)] FCADAS,
/// <summary>
/// [g/h] Fuel consumption after WHTC Correction. (Based on FC-ADAS.)
/// </summary>
[ModalResultField(typeof(SI), name: "FC-Final", caption: "FC-Final [g/h]", outputFactor: 3600 * 1000)] FCFinal,
[ModalResultField(typeof(SI), name: "FC-Final_mod", caption: "FC-Final_mod{0} [g/h]", outputFactor: 3600 * 1000)] FCFinal,
/// <summary>
/// [km] Travelled distance.
......
......@@ -155,6 +155,7 @@ namespace TUGraz.VectoCore.OutputData
public interface ICorrectedModalData
{
WattSecond WorkESSMissing { get; }
WattSecond WorkWHREl { get; }
WattSecond WorkWHRElMech { get; }
WattSecond WorkWHRMech { get; }
......@@ -185,16 +186,16 @@ namespace TUGraz.VectoCore.OutputData
KilogramPerSecond FC_WHR_CORR_H { get; }
KilogramPerSecond FC_AUXHTR_H { get; }
KilogramPerSecond FC_AUXHTR_H_CORR { get; }
KilogramPerSecond FC_REESS_SOC_H { get; }
KilogramPerSecond FC_REESS_SOC_CORR_H { get; }
//KilogramPerSecond FC_REESS_SOC_H { get; }
//KilogramPerSecond FC_REESS_SOC_CORR_H { get; }
KilogramPerSecond FC_FINAL_H { get; }
KilogramPerMeter FC_WHR_CORR_KM { get; }
KilogramPerMeter FC_BusAux_PS_CORR_KM { get; }
KilogramPerMeter FC_BusAux_ES_CORR_KM { get; }
KilogramPerMeter FC_AUXHTR_KM { get; }
KilogramPerMeter FC_AUXHTR_KM_CORR { get; }
KilogramPerMeter FC_REESS_SOC_KM { get; }
KilogramPerMeter FC_REESS_SOC_CORR_KM { get; }
//KilogramPerMeter FC_REESS_SOC_KM { get; }
//KilogramPerMeter FC_REESS_SOC_CORR_KM { get; }
KilogramPerMeter FC_ESS_KM { get; }
KilogramPerMeter FC_ESS_CORR_KM { get; }
......
......@@ -20,7 +20,12 @@ namespace TUGraz.VectoCore.OutputData
public ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData)
{
var r = new CorrectedModalData();
var essParams = runData.DriverData.EngineStopStart;
var r = new CorrectedModalData {
UtilityFactorDriving = essParams.UtilityFactorDriving,
UtilityFactorStandstill = essParams.UtilityFactorStandstill
};
var duration = modData.Duration;
var distance = modData.Distance;
......@@ -49,7 +54,7 @@ namespace TUGraz.VectoCore.OutputData
SetAuxHeaterDemand(modData, r, duration);
r.DeltaEReessMech = 0.SI<WattSecond>();
//r.DeltaEReessMech = 0.SI<WattSecond>();
//SetReesCorrectionDemand(modData, runData, r);
var kilogramCO2PerMeter = 0.SI<KilogramPerMeter>();
......@@ -80,7 +85,7 @@ namespace TUGraz.VectoCore.OutputData
{
var duration = modData.Duration;
var distance = modData.Distance;
var essParams = runData.DriverData.EngineStopStart;
//var essParams = runData.DriverData.EngineStopStart;
var engFuel = runData.EngineData.Fuels.First(x => x.FuelData.Equals(fuel));
var fcIceIdle = engFuel.ConsumptionMap.GetFuelConsumptionValue(
......@@ -94,8 +99,6 @@ namespace TUGraz.VectoCore.OutputData
runData.BusAuxiliaries?.PneumaticUserInputsConfig.CompressorMap
.Interpolate(runData.EngineData.IdleSpeed);
var f = new FuelConsumptionCorrection {
Fuel = fuel,
Distance = distance != null && distance.IsGreater(0) ? distance : null,
......@@ -105,26 +108,24 @@ namespace TUGraz.VectoCore.OutputData
FcModSum = modData.TotalFuelConsumption(ModalResultField.FCFinal, fuel),
FcESS_EngineStart = engLine * modData.WorkEngineStart(),
FcESS_AuxStandstill_ICEOff = r.EnergyAuxICEOffStandstill * engLine *
essParams.UtilityFactorStandstill,
FcESS_AuxStandstill_ICEOn =
r.EnergyAuxICEOnStandstill * engLine * (1 - essParams.UtilityFactorStandstill) +
fcIceIdle * r.ICEOffTimeStandstill * (1 - essParams.UtilityFactorStandstill),
FcESS_AuxStandstill_ICEOff = r.EnergyAuxICEOffStandstill_UF * engLine ,
FcESS_AuxStandstill_ICEOn = r.EnergyAuxICEOnStandstill_UF * engLine +
fcIceIdle * r.ICEOffTimeStandstill * (1 - r.UtilityFactorStandstill),
FcESS_AuxDriving_ICEOff = r.EnergyAuxICEOffDriving * engLine * essParams.UtilityFactorDriving,
FcESS_AuxDriving_ICEOn = r.EnergyAuxICEOnDriving * engLine * (1 - essParams.UtilityFactorDriving) +
fcIceIdle * r.ICEOffTimeDriving * (1 - essParams.UtilityFactorDriving),
FcESS_AuxDriving_ICEOff = r.EnergyAuxICEOffDriving_UF * engLine,
FcESS_AuxDriving_ICEOn = r.EnergyAuxICEOnDriving_UF * engLine +
fcIceIdle * r.ICEOffTimeDriving * (1 - r.UtilityFactorDriving),
FcESS_DCDCMissing = r.EnergyDCDCMissing * engLine,
FcBusAuxPSAirDemand = engLine * r.WorkBusAuxPSCorr,
FcBusAuxPSDragICEOffStandstill = comp == null
? 0.SI<Kilogram>()
: comp.PowerOff * r.ICEOffTimeStandstill * engLine * (1 - essParams.UtilityFactorStandstill),
: comp.PowerOff * r.ICEOffTimeStandstill * engLine * (1 - r.UtilityFactorStandstill),
FcBusAuxPSDragICEOffDriving = comp == null
? 0.SI<Kilogram>()
: comp.PowerOff * r.ICEOffTimeDriving * engLine * (1 - essParams.UtilityFactorDriving),
FcREESSSoc = r.DeltaEReessMech * engLine,
: comp.PowerOff * r.ICEOffTimeDriving * engLine * (1 - r.UtilityFactorDriving),
//FcREESSSoc = r.DeltaEReessMech * engLine,
FcBusAuxEs = engLine * r.WorkBusAuxESMech,
FcWHR = engLine * r.WorkWHR,
FcAuxHtr = 0.SI<Kilogram>()
......@@ -247,6 +248,14 @@ namespace TUGraz.VectoCore.OutputData
}
//public WattSecond WorkESS { get; set; }
public WattSecond WorkESSMissing
{
get
{
return EnergyAuxICEOffStandstill_UF + EnergyAuxICEOffDriving_UF + EnergyAuxICEOnDriving_UF +
EnergyAuxICEOnStandstill_UF;
}
}
public WattSecond WorkWHREl { get; set; }
public WattSecond WorkWHRElMech { get; set; }
public WattSecond WorkWHRMech { get; set; }
......@@ -286,19 +295,40 @@ namespace TUGraz.VectoCore.OutputData
public Second ICEOffTimeStandstill { get; set; }
public WattSecond EnergyAuxICEOffStandstill { get; set; }
public WattSecond EnergyAuxICEOffStandstill_UF {get
{
return EnergyAuxICEOffStandstill * UtilityFactorStandstill;
} }
public double UtilityFactorStandstill { get; set; }
public WattSecond EnergyAuxICEOnStandstill { get; set; }
public WattSecond EnergyAuxICEOnStandstill_UF
{
get { return EnergyAuxICEOnStandstill * (1 - UtilityFactorStandstill); }
}
public Watt AvgAuxPowerICEOnStandstill => ICEOffTimeStandstill.IsEqual(0) ? 0.SI<Watt>() : EnergyAuxICEOnStandstill / ICEOffTimeStandstill;
public Second ICEOffTimeDriving { get; set; }
public WattSecond EnergyAuxICEOffDriving { get; set; }
public WattSecond EnergyAuxICEOffDriving_UF { get { return EnergyAuxICEOffDriving * UtilityFactorDriving; } }
public double UtilityFactorDriving { get; set; }
public WattSecond EnergyAuxICEOnDriving { get; set; }
public WattSecond EnergyAuxICEOnDriving_UF { get
{
return EnergyAuxICEOnDriving * (1 - UtilityFactorDriving);
} }
public Watt AvgAuxPowerICEOnDriving => ICEOffTimeDriving.IsEqual(0) ? 0.SI<Watt>() : EnergyAuxICEOnDriving / ICEOffTimeDriving;
public WattSecond EnergyDCDCMissing { get; set; }
public NormLiter CorrectedAirDemand { get; set; }
public NormLiter DeltaAir { get; set; }
public WattSecond DeltaEReessMech { get; set; }
//public WattSecond DeltaEReessMech { get; set; }
#endregion
}
......@@ -334,7 +364,7 @@ namespace TUGraz.VectoCore.OutputData
}
public Kilogram FcBusAuxEs { get; set; }
public Kilogram FcWHR { get; set; }
public Kilogram FcREESSSoc { get; set; }
//public Kilogram FcREESSSoc { get; set; }
public Kilogram FcAuxHtr { get; set; }
......@@ -343,9 +373,9 @@ namespace TUGraz.VectoCore.OutputData
public Kilogram FcBusAuxPsCorr => FcEssCorr + FcBusAuxPs;
public Kilogram FcBusAuxEsCorr => FcBusAuxPsCorr + FcBusAuxEs;
public Kilogram FcWHRCorr => FcBusAuxEsCorr + FcWHR;
public Kilogram FcREESSSoCCorr => FcWHRCorr + FcREESSSoc;
//public Kilogram FcREESSSoCCorr => FcWHRCorr + FcREESSSoc;
public Kilogram FcAuxHtrCorr => FcREESSSoCCorr + FcAuxHtr;
public Kilogram FcAuxHtrCorr => FcWHRCorr + FcAuxHtr;
public Kilogram FcFinal => FcAuxHtrCorr;
......@@ -360,12 +390,12 @@ namespace TUGraz.VectoCore.OutputData
public KilogramPerSecond FC_WHR_CORR_H => Duration != null ? (FcWHRCorr / Duration) : null;
public KilogramPerSecond FC_AUXHTR_H => Duration != null ? (FcAuxHtr / Duration) : null;
public KilogramPerSecond FC_AUXHTR_H_CORR => Duration != null ? (FcAuxHtrCorr / Duration) : null;
public KilogramPerSecond FC_REESS_SOC_H => Duration != null ? FcREESSSoc / Duration : null;
public KilogramPerSecond FC_REESS_SOC_CORR_H => Duration != null ? (FcREESSSoCCorr / Duration) : null;
//public KilogramPerSecond FC_REESS_SOC_H => Duration != null ? FcREESSSoc / Duration : null;
//public KilogramPerSecond FC_REESS_SOC_CORR_H => Duration != null ? (FcREESSSoCCorr / Duration) : null;
public KilogramPerSecond FC_FINAL_H => Duration != null ? FcFinal / Duration : null;
public KilogramPerMeter FC_REESS_SOC_KM => Distance != null ? FcREESSSoc / Distance : null;
public KilogramPerMeter FC_REESS_SOC_CORR_KM => Distance != null ? (FcREESSSoCCorr / Distance) : null;
//public KilogramPerMeter FC_REESS_SOC_KM => Distance != null ? FcREESSSoc / Distance : null;
//public KilogramPerMeter FC_REESS_SOC_CORR_KM => Distance != null ? (FcREESSSoCCorr / Distance) : null;
public KilogramPerMeter FC_ESS_KM => Distance != null ? (FcESS / Distance) : null;
public KilogramPerMeter FC_ESS_CORR_KM => Distance != null ? (FcEssCorr / Distance) : null;
public KilogramPerMeter FC_WHR_CORR_KM => Distance != null ? (FcWHRCorr / Distance) : null;
......
......@@ -64,8 +64,8 @@ namespace TUGraz.VectoCore.OutputData
Fields.FC_BusAux_PS_CORR_H, Fields.FC_BusAux_PS_CORR_KM,
Fields.FC_BusAux_ES_CORR_H, Fields.FC_BusAux_ES_CORR_KM,
Fields.FCWHR_H_CORR, Fields.FCWHR_KM_CORR,
Fields.FC_HEV_SOC_H, Fields.FC_HEV_SOC_KM,
Fields.FC_HEV_SOC_CORR_H, Fields.FC_HEV_SOC_CORR_KM,
//Fields.FC_HEV_SOC_H, Fields.FC_HEV_SOC_KM,
//Fields.FC_HEV_SOC_CORR_H, Fields.FC_HEV_SOC_CORR_KM,
Fields.FC_AUXHTR_H, Fields.FC_AUXHTR_KM,
Fields.FC_AUXHTR_H_CORR, Fields.FC_AUXHTR_KM_CORR,
Fields.FCFINAL_H, Fields.FCFINAL_KM, Fields.FCFINAL_LITERPER100KM, Fields.FCFINAL_LITERPER100TKM,
......@@ -166,7 +166,7 @@ namespace TUGraz.VectoCore.OutputData
Tuple.Create(Fields.TCU_MODEL, typeof(string)),
Tuple.Create(Fields.ADAS_TECHNOLOGY_COMBINATION, typeof(string)),
Tuple.Create(Fields.PTO_TECHNOLOGY, typeof(string)),
Tuple.Create(Fields.REESS_CAPACITY, typeof(string)),
//Tuple.Create(Fields.REESS_CAPACITY, typeof(string)),
//Tuple.Create(PTO_OTHER_ELEMENTS, typeof(string)),
}.Select(x => new DataColumn(x.Item1, x.Item2)).ToArray());
......@@ -179,9 +179,9 @@ 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_AUX_EL_HV, 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.E_AXL_LOSS, Fields.E_BRAKE, Fields.E_VEHICLE_INERTIA, Fields.E_WHEEL, Fields.E_AIR, Fields.E_ROLL, Fields.E_GRAD, Fields.E_AUX_ESS_missing,
Fields.AirConsumed, Fields.AirGenerated, Fields.E_PS_CompressorOff, Fields.E_PS_CompressorOn,
Fields.E_BusAux_ES_consumed, Fields.E_BusAux_ES_generated, Fields.Delta_E_BusAux_Battery,
Fields.E_BusAux_PS_corr, Fields.E_BusAux_ES_mech_corr,
......@@ -436,9 +436,9 @@ namespace TUGraz.VectoCore.OutputData
row[FcCol(Fields.FC_BusAux_PS_CORR_H, suffix)] = fuelConsumption.FC_BusAux_PS_CORR_H?.ConvertToGrammPerHour();
row[FcCol(Fields.FC_BusAux_ES_CORR_H, suffix)] = fuelConsumption.FC_BusAux_ES_CORR_H?.ConvertToGrammPerHour();
row[FcCol(Fields.FCWHR_H_CORR, suffix)] = fuelConsumption.FC_WHR_CORR_H?.ConvertToGrammPerHour();
row[FcCol(Fields.FC_HEV_SOC_CORR_H, suffix)] = fuelConsumption.FC_REESS_SOC_CORR_H?.ConvertToGrammPerHour();
row[FcCol(Fields.FC_HEV_SOC_H, suffix)] = fuelConsumption.FC_REESS_SOC_H?.ConvertToGrammPerHour();
row[FcCol(Fields.FC_AUXHTR_H, suffix)] = fuelConsumption.FC_AUXHTR_H?.ConvertToGrammPerHour();
//row[FcCol(Fields.FC_HEV_SOC_CORR_H, suffix)] = fuelConsumption.FC_REESS_SOC_CORR_H?.ConvertToGrammPerHour();
//row[FcCol(Fields.FC_HEV_SOC_H, suffix)] = fuelConsumption.FC_REESS_SOC_H?.ConvertToGrammPerHour();
row[FcCol(Fields.FC_AUXHTR_H, suffix)] = fuelConsumption.FC_AUXHTR_H?.ConvertToGrammPerHour();
row[FcCol(Fields.FC_AUXHTR_H_CORR, suffix)] = fuelConsumption.FC_AUXHTR_H_CORR?.ConvertToGrammPerHour();
row[FcCol(Fields.FCFINAL_H, suffix)] = fuelConsumption.FC_FINAL_H?.ConvertToGrammPerHour();
......@@ -446,8 +446,8 @@ namespace TUGraz.VectoCore.OutputData
row[FcCol(Fields.FCWHR_KM_CORR, suffix)] = fuelConsumption.FC_WHR_CORR_KM?.ConvertToGrammPerKiloMeter();
row[FcCol(Fields.FC_BusAux_PS_CORR_KM, suffix)] = fuelConsumption.FC_BusAux_PS_CORR_KM?.ConvertToGrammPerKiloMeter();
row[FcCol(Fields.FC_BusAux_ES_CORR_KM, suffix)] = fuelConsumption.FC_BusAux_ES_CORR_KM?.ConvertToGrammPerKiloMeter();
row[FcCol(Fields.FC_HEV_SOC_CORR_KM, suffix)] = fuelConsumption.FC_REESS_SOC_CORR_KM?.ConvertToGrammPerKiloMeter();
row[FcCol(Fields.FC_HEV_SOC_KM, suffix)] = fuelConsumption.FC_REESS_SOC_KM?.ConvertToGrammPerKiloMeter();
//row[FcCol(Fields.FC_HEV_SOC_CORR_KM, suffix)] = fuelConsumption.FC_REESS_SOC_CORR_KM?.ConvertToGrammPerKiloMeter();
//row[FcCol(Fields.FC_HEV_SOC_KM, suffix)] = fuelConsumption.FC_REESS_SOC_KM?.ConvertToGrammPerKiloMeter();
row[FcCol(Fields.FC_AUXHTR_KM, suffix)] = fuelConsumption.FC_AUXHTR_KM?.ConvertToGrammPerKiloMeter();
row[FcCol(Fields.FC_AUXHTR_KM_CORR, suffix)] = fuelConsumption.FC_AUXHTR_KM_CORR?.ConvertToGrammPerKiloMeter();
......@@ -648,6 +648,7 @@ namespace TUGraz.VectoCore.OutputData
row[Fields.E_AIR] = modData.WorkAirResistance().ConvertToKiloWattHour();
row[Fields.E_ROLL] = modData.WorkRollingResistance().ConvertToKiloWattHour();
row[Fields.E_GRAD] = modData.WorkRoadGradientResistance().ConvertToKiloWattHour();
row[Fields.E_AUX_ESS_missing] = modData.CorrectedModalData.WorkESSMissing.ConvertToKiloWattHour();
if (runData.Cycle.CycleType == CycleType.VTP) {
row[Fields.E_WHEEL] = modData.WorkWheels().ConvertToKiloWattHour();
}
......@@ -732,10 +733,8 @@ namespace TUGraz.VectoCore.OutputData
row[Fields.ADAS_TECHNOLOGY_COMBINATION] = data.ADAS != null ? DeclarationData.ADASCombinations.Lookup(data.ADAS, gbxType).ID : "";
var cap = "";
row[Fields.REESS_CAPACITY] = cap;
//var cap = "";
//row[Fields.REESS_CAPACITY] = cap;
}
private static void WriteAirdragData(AirdragData data, DataRow row)
......@@ -1028,10 +1027,10 @@ namespace TUGraz.VectoCore.OutputData
public const string FCESS_KM_CORR = "FC-ESS_Corr{0} [g/km]";
public const string FCWHR_H_CORR = "FC-WHR_Corr{0} [g/h]";
public const string FCWHR_KM_CORR = "FC-WHR_Corr{0} [g/km]";
public const string FC_HEV_SOC_H = "FC-SoC{0} [g/h]";
public const string FC_HEV_SOC_KM = "FC-SoC{0} [g/km]";
public const string FC_HEV_SOC_CORR_H = "FC-SoC_Corr{0} [g/h]";
public const string FC_HEV_SOC_CORR_KM = "FC-SoC_Corr{0} [g/km]";
//public const string FC_HEV_SOC_H = "FC-SoC{0} [g/h]";
//public const string FC_HEV_SOC_KM = "FC-SoC{0} [g/km]";
//public const string FC_HEV_SOC_CORR_H = "FC-SoC_Corr{0} [g/h]";
//public const string FC_HEV_SOC_CORR_KM = "FC-SoC_Corr{0} [g/km]";
public const string FC_BusAux_PS_CORR_H = "FC-BusAux_PS_Corr{0} [g/h]";
......@@ -1067,7 +1066,7 @@ 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_EL_HV = "E_aux_el(HV) [kWh]";
public const string E_ICE_START = "E_ice_start [kWh]";
public const string NUM_ICE_STARTS = "ice_starts [-]";
......@@ -1110,6 +1109,8 @@ namespace TUGraz.VectoCore.OutputData
public const string E_BusAux_HVAC_Mech = "E_BusAux_HVAC_mech [kWh]";
public const string E_BusAux_HVAC_El = "E_BusAux_HVAC_el [kWh]";
public const string E_AUX_ESS_missing = "E_aux_ESS_missing [kWh]";
public const string SPECIFIC_FC = "Specific FC{0} [g/kWh] wheel pos.";
public const string ACC = "a [m/s^2]";
......@@ -1184,34 +1185,34 @@ namespace TUGraz.VectoCore.OutputData
public const string AVERAGE_POS_ACC = "a_avg_acc";
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 ETA_EM_DRIVE_FORMAT = "η_EM_{0}_drive";
public const string ETA_EM_GEN_FORMAT = "η_EM_{0}_gen";
public const string E_EM_Mot_DRIVE_FORMAT = "E_EM_{0}-em_drive [kWh]";
public const string E_EM_Mot_GENERATE_FORMAT = "E_EM_{0}-em_gen [kWh]";
public const string ETA_EM_Mot_DRIVE_FORMAT = "η_EM_{0}-em_drive";
public const string ETA_EM_Mot_GEN_FORMAT = "η_EM_{0}-em_gen";
public const string EM_AVG_SPEED_FORMAT = "n_EM_{0}-em_avg [rpm]";
public const string E_EM_OFF_Loss_Format = "E_EM_{0}_off_loss [kWh]";
public const string E_EM_LOSS_TRANSM_FORMAT = "E_EM_{0}_transm_loss [kWh]";
public const string E_EM_Mot_LOSS_FORMAT = "E_EM_{0}-em_loss [kWh]";
public const string E_EM_LOSS_FORMAT = "E_EM_{0}_loss [kWh]";
public const string E_EM_OFF_TIME_SHARE = "EM {0} off time share [%]";
public const string REESS_CAPACITY = "REESS Capacity";
public const string REESS_StartSoC = "REESS Start SoC [%]";
public const string REESS_EndSoC = "REESS End SoC [%]";
public const string REESS_DeltaEnergy = "ΔE_REESS [kWh]";
public const string E_REESS_LOSS = "E_REESS_loss [kWh]";
public const string E_REESS_T_chg = "E_REESS_T_chg [kWh]";
public const string E_REESS_T_dischg = "E_REESS_T_dischg [kWh]";
public const string E_REESS_int_chg = "E_REESS_int_chg [kWh]";
public const string E_REESS_int_dischg = "E_REESS_int_dischg [kWh]";
//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 ETA_EM_DRIVE_FORMAT = "η_EM_{0}_drive";
//public const string ETA_EM_GEN_FORMAT = "η_EM_{0}_gen";
//public const string E_EM_Mot_DRIVE_FORMAT = "E_EM_{0}-em_drive [kWh]";
//public const string E_EM_Mot_GENERATE_FORMAT = "E_EM_{0}-em_gen [kWh]";
//public const string ETA_EM_Mot_DRIVE_FORMAT = "η_EM_{0}-em_drive";
//public const string ETA_EM_Mot_GEN_FORMAT = "η_EM_{0}-em_gen";
//public const string EM_AVG_SPEED_FORMAT = "n_EM_{0}-em_avg [rpm]";
//public const string E_EM_OFF_Loss_Format = "E_EM_{0}_off_loss [kWh]";
//public const string E_EM_LOSS_TRANSM_FORMAT = "E_EM_{0}_transm_loss [kWh]";
//public const string E_EM_Mot_LOSS_FORMAT = "E_EM_{0}-em_loss [kWh]";
//public const string E_EM_LOSS_FORMAT = "E_EM_{0}_loss [kWh]";
//public const string E_EM_OFF_TIME_SHARE = "EM {0} off time share [%]";
//public const string REESS_CAPACITY = "REESS Capacity";
//public const string REESS_StartSoC = "REESS Start SoC [%]";
//public const string REESS_EndSoC = "REESS End SoC [%]";
//public const string REESS_DeltaEnergy = "ΔE_REESS [kWh]";
//public const string E_REESS_LOSS = "E_REESS_loss [kWh]";
//public const string E_REESS_T_chg = "E_REESS_T_chg [kWh]";
//public const string E_REESS_T_dischg = "E_REESS_T_dischg [kWh]";
//public const string E_REESS_int_chg = "E_REESS_int_chg [kWh]";
//public const string E_REESS_int_dischg = "E_REESS_int_dischg [kWh]";
}
}
}
......@@ -287,7 +287,7 @@ namespace TUGraz.VectoCore.Tests.Integration
// test fuel consumption not negative
Assert.IsTrue(
modFile1Hz.Rows.Cast<DataRow>()
.All(r => r.ParseDouble(ModalResultField.FCWHTCc.GetShortCaption()).IsGreaterOrEqual(0)),
.All(r => r.ParseDouble(string.Format(ModalResultField.FCWHTCc.GetShortCaption(), "")).IsGreaterOrEqual(0)),
"fuel consumption must not be negative.");
// last v_act entry must be the same as original
......
......@@ -228,18 +228,20 @@ namespace TUGraz.VectoCore.Tests.Integration
var inputDataProvider = JSONInputDataFactory.ReadJsonJob(file);
var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, fileWriter) {
WriteModalResults = true,
ActualModalData = true
//ActualModalData = true
};
var jobContainer = new JobContainer(sumData);
jobContainer.AddRuns(factory);
jobContainer.Execute();
jobContainer.WaitFinished();
//jobContainer.Runs[4].RunWorkerAsync().Wait();
Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat(jobContainer.Runs.Select(r => r.ExecException)));
}
jobContainer.Execute();
jobContainer.WaitFinished();
Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat(jobContainer.Runs.Select(r => r.ExecException)));
}
[TestCase(EngineSpeedLimitJobDecl), Category("LongRunning")]
public void TestRunEngineSpeedLimitedSimulations(string file)
......
......@@ -171,6 +171,8 @@ namespace TUGraz.VectoCore.Tests.Reports
var E_auxICEOnStandstill = (P_on * T2).Value(); // 46054.609042105534
var E_auxICEOffStandstill = (P_off * T2).Value(); // 15351.536347368512
var E_auxESSMissing = E_auxICEOnStandstill * (1 - UF_ESS_Standstill) + E_auxICEOffStandstill * UF_ESS_Standstill;
var fcEssStandStillOff = E_auxICEOffStandstill * k_engline * UF_ESS_Standstill; // 0.0003034945726763096
var fcEssStandStillOn =
(E_auxICEOnStandstill * k_engline + (fcIdle * T2).Value()) * (1 - UF_ESS_Standstill); // 0.00400097222027925
......@@ -185,6 +187,8 @@ namespace TUGraz.VectoCore.Tests.Reports
Assert.AreEqual(E_auxICEOnStandstill, corr.EnergyAuxICEOnStandstill.Value(), 1e-3);
Assert.AreEqual(E_auxICEOffStandstill, corr.EnergyAuxICEOffStandstill.Value(), 1e-3);
Assert.AreEqual(E_auxESSMissing, corr.WorkESSMissing.Value(), 1e-3);
Assert.AreEqual(0, corr.EnergyAuxICEOnDriving.Value(), 1e-3);
Assert.AreEqual(0, corr.EnergyAuxICEOffDriving.Value(), 1e-3);
......@@ -324,6 +328,8 @@ namespace TUGraz.VectoCore.Tests.Reports
var E_auxICEOnDriving = (P_on * T2).Value(); // 46054.609042105534;
var E_auxICEOffDriving = (P_off * T2).Value(); // 15351.536347368512
var E_auxESSMissing = E_auxICEOnDriving * (1 - UF_ESS_Driving) + E_auxICEOffDriving * UF_ESS_Driving;
var fcIdle =
fuel.ConsumptionMap.GetFuelConsumption(0.SI<NewtonMeter>(), runData.EngineData.IdleSpeed).Value
.Value() * fuel.FuelConsumptionCorrectionFactor; // 0.0002929177777777778
......@@ -344,6 +350,8 @@ namespace TUGraz.VectoCore.Tests.Reports
Assert.AreEqual(E_auxICEOnDriving, corr.EnergyAuxICEOnDriving.Value(), 1e-3);
Assert.AreEqual(E_auxICEOffDriving, corr.EnergyAuxICEOffDriving.Value(), 1e-3);
Assert.AreEqual(E_auxESSMissing, corr.WorkESSMissing.Value(), 1e-3);
var f = corr.FuelCorrection[fuel.FuelData.FuelType] as FuelConsumptionCorrection;
Assert.AreEqual(0, f.FcESS_AuxStandstill_ICEOff.Value(), 1e-12);
......@@ -486,6 +494,7 @@ namespace TUGraz.VectoCore.Tests.Reports
var E_auxICEOffStandstill = (P_off * T2).Value(); // 15351.536347368512
var E_ICEStart = (P_ICEStart * tStart).Value(); // 11525.53891554733
var E_auxESSMissing = E_auxICEOnStandstill * (1 - UF_ESS_Standstill) + E_auxICEOffStandstill * UF_ESS_Standstill;
var fcEssStandStillOff = E_auxICEOffStandstill * k_engline * UF_ESS_Standstill; // 0.0003034945726763096
var fcEssStandStillOn =
......@@ -503,6 +512,8 @@ namespace TUGraz.VectoCore.Tests.Reports
Assert.AreEqual(E_auxICEOffStandstill, corr.EnergyAuxICEOffStandstill.Value(), 1e-3);
Assert.AreEqual(E_ICEStart, modData.WorkEngineStart().Value());
Assert.AreEqual(E_auxESSMissing, corr.WorkESSMissing.Value(), 1e-3);
Assert.AreEqual(0, corr.EnergyAuxICEOnDriving.Value(), 1e-3);
Assert.AreEqual(0, corr.EnergyAuxICEOffDriving.Value(), 1e-3);
......
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