Limit DischargePower based on nb. of batteries that are actually connected to the DC bus, not nb. of batteries that communicate
This commit is contained in:
parent
7f91d49374
commit
3b1a553be5
|
@ -1,6 +1,5 @@
|
||||||
using InnovEnergy.Lib.Devices.Battery48TL;
|
using InnovEnergy.Lib.Devices.Battery48TL;
|
||||||
using InnovEnergy.Lib.Devices.Battery48TL.DataTypes;
|
using InnovEnergy.Lib.Devices.Battery48TL.DataTypes;
|
||||||
using InnovEnergy.Lib.Devices.Trumpf.TruConvertAc;
|
|
||||||
using InnovEnergy.Lib.Devices.Trumpf.TruConvertAc.DataTypes;
|
using InnovEnergy.Lib.Devices.Trumpf.TruConvertAc.DataTypes;
|
||||||
using InnovEnergy.Lib.Units;
|
using InnovEnergy.Lib.Units;
|
||||||
using InnovEnergy.Lib.Utils;
|
using InnovEnergy.Lib.Utils;
|
||||||
|
@ -104,8 +103,8 @@ public static class Controller
|
||||||
|
|
||||||
private static EssControl LimitDischargePower(this EssControl control, StatusRecord s)
|
private static EssControl LimitDischargePower(this EssControl control, StatusRecord s)
|
||||||
{
|
{
|
||||||
var maxBatteryDischargeDelta = s.Battery?.Devices.Sum(b => b.MaxDischargePower) ?? 0;
|
var maxBatteryDischargeDelta = s.Battery?.Devices.Where(b => b.ConnectedToDcBus).Sum(b => b.MaxDischargePower) ?? 0;
|
||||||
var keepMinSocLimitDelta = s.ControlBatteryPower(s.HoldMinSocPower());
|
var keepMinSocLimitDelta = s.ControlBatteryPower(s.HoldMinSocPower());
|
||||||
|
|
||||||
return control
|
return control
|
||||||
.LimitDischargePower(maxBatteryDischargeDelta , EssLimit.DischargeLimitedByBatteryPower)
|
.LimitDischargePower(maxBatteryDischargeDelta , EssLimit.DischargeLimitedByBatteryPower)
|
||||||
|
@ -187,24 +186,9 @@ public static class Controller
|
||||||
return s.Battery?.Devices ?? Array.Empty<Battery48TlRecord>();
|
return s.Battery?.Devices ?? Array.Empty<Battery48TlRecord>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static Boolean MustDoCalibrationCharge(this StatusRecord statusRecord)
|
private static Boolean MustDoCalibrationCharge(this StatusRecord statusRecord)
|
||||||
{
|
{
|
||||||
// var config = statusRecord.Config;
|
return statusRecord.Battery?.CalibrationChargeRequested ?? false;
|
||||||
//
|
|
||||||
// if (statusRecord.Battery.Eoc)
|
|
||||||
// {
|
|
||||||
// "Batteries have reached EOC".LogInfo();
|
|
||||||
// config.LastEoc = UnixTime.Now;
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return UnixTime.Now - statusRecord.Config.LastEoc > MaxTimeWithoutEoc;
|
|
||||||
|
|
||||||
// no need to return false in case of EOC reached
|
|
||||||
// because the BMS will set the Time Since TOC to 0 as soon a battery reach EOC
|
|
||||||
// then Calibration Charge flag will be set false by the software
|
|
||||||
return statusRecord.Battery?.CalibrationChargeRequested ?? false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue