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

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

make testcases for electric PS postprocessing work

adapt implementation S-HEV correction
parent 7e70fa95
No related branches found
No related tags found
No related merge requests found
......@@ -93,7 +93,7 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
{
var em = runData.ElectricMachinesData?.FirstOrDefault(x => x.Item1 != PowertrainPosition.GEN);
if (em != null) {
if (em != null && runData.OVCMode != VectoRunData.OvcHevMode.ChargeDepleting) {
var deltaEReess = modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int) - r.WorkBusAux_elPS_SoC_Corr;
var startSoc = modData.REESSStartSoC();
var endSoc = modData.REESSEndSoC();
......@@ -294,13 +294,11 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
ApplyElectricPS_FuelCorrection(modData, runData, r);
} else {
// parallel or serial hybrid
if (busAux.ElectricalUserInputsConfig.ConnectESToREESS &&
busAux.ElectricalUserInputsConfig.AlternatorType.IsOneOf(AlternatorType.None,
AlternatorType.Conventional)) {
// case C1, C2a
if (busAux.ElectricalUserInputsConfig.ConnectESToREESS) {
// case C1, C2a, C3a
ApplyElectricPS_Electric(modData, runData, r);
} else {
// case C2b, C3a, C3b
// case C2b, C3b
ApplyElectricPS_FuelCorrection(modData, runData, r);
}
......
......@@ -38,21 +38,28 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
protected override void SetReesCorrectionDemand(IModalDataContainer modData, VectoRunData runData,
CorrectedModalData r)
{
var deltaEReess = modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int);
var startSoc = modData.REESSStartSoC();
var endSoc = modData.REESSEndSoC();
var emEff = 0.0;
if (endSoc < startSoc) {
var etaReessChg = modData.WorkREESSChargeInternal().Value() / modData.WorkREESSChargeTerminal().Value();
emEff = 1.0 / etaReessChg;
}
if (endSoc > startSoc) {
var etaReessDischg = modData.WorkREESSDischargeTerminal().Value() / modData.WorkREESSDischargeInternal().Value();
emEff = etaReessDischg;
}
r.DeltaEReessMech = double.IsNaN(emEff) ? 0.SI<WattSecond>() : -deltaEReess * emEff;
}
if (runData.OVCMode != VectoRunData.OvcHevMode.ChargeDepleting) {
var deltaEReess = modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int) - r.WorkBusAux_elPS_SoC_Corr;
var startSoc = modData.REESSStartSoC();
var endSoc = modData.REESSEndSoC();
var emEff = 0.0;
if (endSoc < startSoc) {
var etaReessChg = modData.WorkREESSChargeInternal().Value() /
modData.WorkREESSChargeTerminal().Value();
emEff = 1.0 / etaReessChg;
}
if (endSoc > startSoc) {
var etaReessDischg = modData.WorkREESSDischargeTerminal().Value() /
modData.WorkREESSDischargeInternal().Value();
emEff = etaReessDischg;
}
r.DeltaEReessMech = double.IsNaN(emEff) ? 0.SI<WattSecond>() : -deltaEReess * emEff;
} else {
r.DeltaEReessMech = 0.SI<WattSecond>();
}
}
protected override FuelConsumptionCorrection SetFuelConsumptionCorrection(IModalDataContainer modData, VectoRunData runData,
CorrectedModalData r, IFuelProperties fuel)
......
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