Skip to content

Commit 97fd03d

Browse files
authored
Merge pull request #2183 from LKuemmel/fix
round values for 1A control steps
2 parents 1d26a84 + 6bd28ca commit 97fd03d

3 files changed

Lines changed: 8 additions & 12 deletions

File tree

packages/control/algorithm/surplus_controlled.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -136,19 +136,15 @@ def _fix_deviating_evse_current(self, chargepoint: Chargepoint) -> float:
136136
genutzten Soll-Strom hochgeregelt werden. Wenn Fahrzeuge entgegen der Norm mehr Ladeleistung beziehen, als
137137
freigegeben, wird entsprechend weniger freigegeben, da sonst uU die untere Grenze für die Abschaltschwelle
138138
nicht erreicht wird.
139-
Wenn die Soll-Stromstärke nicht angepasst worden ist, nicht den ungenutzten EVSE-Strom aufschlagen. Wenn das
140-
Auto nur in 1A-Schritten regeln kann, rundet es und lädt immer etwas mehr oder weniger als Soll-Strom. Schlägt
141-
man den EVSE-Strom auf, pendelt die Regelung um diesen 1A-Schritt."""
142-
MAX_DEVIATION = 1.1
139+
Wenn die Soll-Stromstärke nicht angepasst worden ist, nicht den ungenutzten EVSE-Strom aufschlagen."""
143140
evse_current = chargepoint.data.get.evse_current
144141
if evse_current and chargepoint.data.set.current != chargepoint.data.set.current_prev:
145142
offset = evse_current - max(chargepoint.data.get.currents)
146-
if abs(offset) >= MAX_DEVIATION:
147-
current_with_offset = chargepoint.data.set.current + offset
148-
current = min(current_with_offset, chargepoint.data.control_parameter.required_current)
149-
if current != chargepoint.data.set.current:
150-
log.debug(f"Ungenutzten Soll-Strom aufschlagen ergibt {current}A.")
151-
chargepoint.data.set.current = current
143+
current_with_offset = chargepoint.data.set.current + offset
144+
current = min(current_with_offset, chargepoint.data.control_parameter.required_current)
145+
if current != chargepoint.data.set.current:
146+
log.debug(f"Ungenutzten Soll-Strom aufschlagen ergibt {current}A.")
147+
chargepoint.data.set.current = current
152148

153149
def check_submode_pv_charging(self) -> None:
154150
evu_counter = data.data.counter_all_data.get_evu_counter()

packages/control/algorithm/surplus_controlled_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def test_set_required_current_to_max(phases: int,
106106
[
107107
pytest.param(None, 6, 6, id="Kein Soll-Strom aus der EVSE ausgelesen"),
108108
pytest.param(13, 13, 13, id="Auto lädt mit Soll-Stromstärke"),
109-
pytest.param(12.5, 12.5, 12.5, id="Auto lädt mit 0.5A Abweichung von der Soll-Stromstärke"),
109+
pytest.param(12.5, 12.5, 12.0, id="Auto lädt mit 0.5A Abweichung von der Soll-Stromstärke"),
110110
pytest.param(11.8, 11.8, 10.600000000000001, id="Auto lädt mit mehr als Soll-Stromstärke"),
111111
pytest.param(14.2, 14.2, 15.399999999999999, id="Auto lädt mit weniger als Soll-Stromstärke"),
112112
pytest.param(15, 15, 16,

packages/modules/internal_chargepoint_handler/chargepoint_module.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def __init__(self, local_charge_point_num: int,
5757

5858
def set_current(self, current: float) -> None:
5959
with SingleComponentUpdateContext(self.fault_state, update_always=False):
60-
formatted_current = int(current*100) if self._precise_current else int(current)
60+
formatted_current = round(current*100) if self._precise_current else round(current)
6161
if self.set_current_evse != formatted_current:
6262
self._client.evse_client.set_current(formatted_current)
6363

0 commit comments

Comments
 (0)