This commit is contained in:
+10
-5
@@ -52,7 +52,8 @@ final class BatterieRegler
|
||||
float $netzleistungW,
|
||||
float $istleistungW,
|
||||
float $maxLadenW,
|
||||
float $maxEntladenW
|
||||
float $maxEntladenW,
|
||||
?float $maxNachladenW = null
|
||||
): array {
|
||||
self::pruefeLadezustandsgrenzen($reserve, 0.0);
|
||||
if ($minimum < 0.0 || $minimum > 100.0 || $minimum > $reserve) {
|
||||
@@ -61,12 +62,16 @@ final class BatterieRegler
|
||||
);
|
||||
}
|
||||
self::pruefeLeistungsgrenzen($maxLadenW, $maxEntladenW);
|
||||
if ($maxNachladenW !== null && $maxNachladenW < 0.0) {
|
||||
throw new InvalidArgumentException('Maximale Nachladeleistung darf nicht negativ sein.');
|
||||
}
|
||||
|
||||
if (!$aktiv || !$enelixSteuert) {
|
||||
return [0];
|
||||
}
|
||||
|
||||
$maxLaden = (int) floor($maxLadenW);
|
||||
$maxNachladen = (int) floor(min($maxLadenW, $maxNachladenW ?? $maxLadenW));
|
||||
$maxEntladen = (int) floor($maxEntladenW);
|
||||
if ($peakbetrieb) {
|
||||
if ($ladezustand > $reserve && !$hystereseAktiv) {
|
||||
@@ -80,10 +85,10 @@ final class BatterieRegler
|
||||
return self::leistungsbereich(-$maxEntladen, 0);
|
||||
}
|
||||
if ($ladezustand > $minimum) {
|
||||
return self::leistungsbereich(-$maxEntladen, $maxLaden);
|
||||
return self::leistungsbereich(-$maxEntladen, $maxNachladen);
|
||||
}
|
||||
|
||||
return self::leistungsbereich(0, $maxLaden);
|
||||
return self::leistungsbereich(0, $maxNachladen);
|
||||
}
|
||||
|
||||
if ($ladezustand > 99.0) {
|
||||
@@ -93,10 +98,10 @@ final class BatterieRegler
|
||||
return self::leistungsbereich(-$maxEntladen, $maxLaden);
|
||||
}
|
||||
if ($ladezustand >= $reserve && $hystereseAktiv) {
|
||||
return self::leistungsbereich(0, $maxLaden);
|
||||
return self::leistungsbereich(0, $maxNachladen);
|
||||
}
|
||||
|
||||
return [$maxLaden];
|
||||
return [$maxNachladen];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user