diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/SuperCap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SuperCap.cs index e839aec156019109d5e5cf0ee43e9d0e7e90b9b7..79f867702f8f33a5a1296551cb422323a6339d66 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/SuperCap.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SuperCap.cs @@ -52,12 +52,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public Watt MaxDischargePower(Second dt) { + var maxPower = -InternalVoltage / (4 * ModelData.InternalResistance) * InternalVoltage; + var maxPowerCurrent = maxPower / InternalVoltage; var maxDischargeCurrent = VectoMath.Max((ModelData.Capacity * ModelData.MinVoltage - PreviousState.Charge) / dt, ModelData.MaxCurrentDischarge); + maxDischargeCurrent = VectoMath.Max(maxDischargeCurrent, maxPowerCurrent); var maxDischargePower = InternalVoltage * maxDischargeCurrent + maxDischargeCurrent * ModelData.InternalResistance * maxDischargeCurrent; - var maxPower = -InternalVoltage / (4 * ModelData.InternalResistance) * InternalVoltage; return VectoMath.Max(maxDischargePower, maxPower); }