diff --git a/VectoCore/VectoCore/Models/SimulationComponent/DCDCConverter.cs b/VectoCore/VectoCore/Models/SimulationComponent/DCDCConverter.cs index 8e5438aa9848389e7d14db6d3368aada1fddab81..324aa905f869d4a08ba7c3b1e081e179a17556eb 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/DCDCConverter.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/DCDCConverter.cs @@ -37,18 +37,20 @@ namespace TUGraz.VectoCore.Models.SimulationComponent public Watt PowerDemand(Second absTime, Second dt, bool dryRun) { - - var dischargeEnergy = (-DataBus.BatteryInfo.MaxDischargePower(dt) * dt); - var chargeEnergy = (-DataBus.BatteryInfo.MaxChargePower(dt) * dt); - var efficiency = PreviousState.ConsumedEnergy > 0 ? 1 / Efficiency : Efficiency; //WHY ? - - var electricConsumersPower = _electricConsumers.Sum(aux => aux.PowerDemand(absTime, dt, dryRun)).DefaultIfNull(0); + var energyDemand = PreviousState.ConsumedEnergy + electricConsumersPower * dt; + - var powerDemand = PreviousState.ConsumedEnergy / dt * efficiency + electricConsumersPower / Efficiency; + var efficiency = energyDemand > 0 ? 1 / Efficiency : Efficiency; + + var powerDemand = energyDemand / dt * efficiency; + + + + var dischargeEnergy = (-DataBus.BatteryInfo.MaxDischargePower(dt) * dt); + var chargeEnergy = (-DataBus.BatteryInfo.MaxChargePower(dt) * dt); - if (!dryRun) { CurrentState.ElectricAuxPower = electricConsumersPower; @@ -59,13 +61,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent return powerDemand; } - //if ((PreviousState.ConsumedEnergy * efficiency).IsBetween(chargeEnergy, dischargeEnergy)) { - // return (PreviousState.ConsumedEnergy / dt * efficiency) + electricConsumersPower / Efficiency; - //} - - // write in mod-file for post-processing correction if (!dryRun) { - CurrentState.MissingEnergy = powerDemand * dt; + CurrentState.MissingEnergy = energyDemand; } return 0.SI<Watt>();