@sh.add_function(dsp, outputs=['service_battery_status_model'])
def define_service_battery_status_model(
service_battery_state_of_charge_balance,
service_battery_state_of_charge_balance_window):
"""
Defines the service battery charging status model.
:param service_battery_state_of_charge_balance:
Service battery state of charge balance [%].
:type service_battery_state_of_charge_balance: float
:param service_battery_state_of_charge_balance_window:
Service battery state of charge balance [%].
:type service_battery_state_of_charge_balance_window: float
:return:
A function that predicts the service battery charging status.
:rtype: callable
"""
m = service_battery_state_of_charge_balance
w = service_battery_state_of_charge_balance_window / 2
return BatteryStatusModel(
charge_pred=lambda x: [x[0][0] == 1],
bers_pred=lambda x: [x[0][0] < 0],
min_soc=m - w, max_soc=m + w
)