Skip to content

Commit

Permalink
set battery efficiency directly with action energy from controller
Browse files Browse the repository at this point in the history
  • Loading branch information
kingsleynweye committed Mar 8, 2024
1 parent 531cb99 commit bd60317
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions citylearn/energy_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -834,18 +834,23 @@ def charge(self, energy: float):
Energy to charge if (+) or discharge if (-) in [kWh].
"""

action_energy = energy

if energy >= 0:
energy_wrt_degrade = self.degraded_capacity - self.energy_init
energy = min(self.get_max_input_power(), self.available_nominal_power, energy_wrt_degrade, energy)
max_input_power = self.get_max_input_power()
energy = min(max_input_power, self.available_nominal_power, energy_wrt_degrade, energy)
self.efficiency = self.get_current_efficiency(min(action_energy, max_input_power))

else:
soc_limit_wrt_dod = 1.0 - self.depth_of_discharge
soc_init = self.soc[self.time_step - 1]
soc_difference = soc_init - soc_limit_wrt_dod
energy_limit_wrt_dod = max(soc_difference*self.capacity*self.round_trip_efficiency, 0.0)*-1
energy = max(-self.get_max_output_power(), energy_limit_wrt_dod, energy)
max_output_power = self.get_max_output_power()
energy = max(-max_output_power, energy_limit_wrt_dod, energy)
self.efficiency = self.get_current_efficiency(min(abs(action_energy), max_output_power))

self.efficiency = self.get_current_efficiency(energy)
super().charge(energy)
degraded_capacity = max(self.degraded_capacity - self.degrade(), 0.0)
self._capacity_history.append(degraded_capacity)
Expand Down

0 comments on commit bd60317

Please sign in to comment.