diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs index 10e1f7f2c138fc20c69a1af96d7831518a029c28..27504f7576c321db725a4cded1d00efc7508206d 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs @@ -56,11 +56,16 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen result.MinICEOnTime = 10.SI<Second>(); result.ICEStartPenaltyFactor = 0.1; result.CostFactorSOCExponent = 1; - - result.EquivalenceFactor = - DeclarationData.HEVStrategyParameters.LookupEquivalenceFactor(missionType, - vehicleClass, loading, result.MaxSoC - result.MinSoC); + if (ovcMode == VectoRunData.OvcHevMode.ChargeSustaining) { + result.EquivalenceFactor = + DeclarationData.HEVStrategyParameters.LookupEquivalenceFactor(missionType, + vehicleClass, loading, result.MaxSoC - result.MinSoC); + } else { + result.EquivalenceFactor = DeclarationData.HEVStrategyParameters.PHEVChargeDepletingEquivalenceFactor; + } + + result.EquivalenceFactorCharge = result.EquivalenceFactor * 0.85; result.EquivalenceFactorDischarge = result.EquivalenceFactor / 0.85; diff --git a/VectoCore/VectoCore/Models/Declaration/InitEquivalenceFactors.cs b/VectoCore/VectoCore/Models/Declaration/InitEquivalenceFactors.cs index 6369ed54c36defe7ee15e9d63c8f7084b4274b7a..ecffa11367253e3ef4742cc74d19501e27598b0e 100644 --- a/VectoCore/VectoCore/Models/Declaration/InitEquivalenceFactors.cs +++ b/VectoCore/VectoCore/Models/Declaration/InitEquivalenceFactors.cs @@ -24,8 +24,8 @@ namespace TUGraz.VectoCore.Models.Declaration new Dictionary<int, InitEquivalenceFactors>(3); private readonly IList<int> _socRanges = new List<int>{ 10, 20, 40 }; - - private readonly Slope _slope; + public double PHEVChargeDepletingEquivalenceFactor => 0.01; + private readonly Slope _slope; protected HEVStrategyParameters(string vehicle) { @@ -37,7 +37,9 @@ namespace TUGraz.VectoCore.Models.Declaration _slope = new Slope(vehicle); } - /// <summary> + + + /// <summary> /// Looks up the initial equivalence factor. /// </summary> /// <param name="mission"></param>