From 48b72cef8364fedc3060c89ad20dee18dba1f285 Mon Sep 17 00:00:00 2001 From: ahalev Date: Sat, 30 Sep 2023 01:22:24 -0700 Subject: [PATCH] check for increments of 1 --- .../battery/transition_models/decay_transition_model.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pymgrid/modules/battery/transition_models/decay_transition_model.py b/src/pymgrid/modules/battery/transition_models/decay_transition_model.py index 6e22ef5c..5c3a39b9 100644 --- a/src/pymgrid/modules/battery/transition_models/decay_transition_model.py +++ b/src/pymgrid/modules/battery/transition_models/decay_transition_model.py @@ -16,6 +16,7 @@ def __init__(self, decay_rate=0.999**(1/24)): """ self.decay_rate = decay_rate self.initial_step = None + self._previous_step = 0 def reset(self, current_step=0): self.initial_step = current_step @@ -24,9 +25,11 @@ def _current_efficiency(self, efficiency, current_step): return efficiency * (self.decay_rate ** (current_step-self.initial_step)) def _update_step(self, current_step): - if self.initial_step is None or current_step <= self.initial_step: + if self.initial_step is None or current_step <= self.initial_step or current_step != self._previous_step + 1: self.reset(current_step) + self._previous_step = current_step + def transition(self, external_energy_change, efficiency, current_step, **kwargs): self._update_step(current_step) current_efficiency = self._current_efficiency(efficiency, current_step)