@sh.add_function(dsp, outputs=['alternator_current_model'])
def calibrate_alternator_current_model(
alternator_currents, on_engine, times, service_battery_state_of_charges,
service_battery_charging_statuses, motive_powers, accelerations,
service_battery_initialization_time):
"""
Calibrates an alternator current model that predicts alternator current [A].
:param alternator_currents:
Alternator currents [A].
:type alternator_currents: numpy.array
:param on_engine:
If the engine is on [-].
:type on_engine: numpy.array
:param times:
Time vector [s].
:type times: numpy.array
:param service_battery_state_of_charges:
State of charge of the service battery [%].
:type service_battery_state_of_charges: numpy.array
:param service_battery_charging_statuses:
Service battery charging statuses (0: Discharge, 1: Charging, 2: BERS,
3: Initialization) [-].
:type service_battery_charging_statuses: numpy.array
:param motive_powers:
Motive power [kW].
:type motive_powers: numpy.array
:param accelerations:
Acceleration vector [m/s2].
:type accelerations: numpy.array
:param service_battery_initialization_time:
Service battery initialization time delta [s].
:type service_battery_initialization_time: float
:return:
Alternator current model.
:rtype: callable
"""
return AlternatorCurrentModel().fit(
alternator_currents, on_engine, times, service_battery_state_of_charges,
service_battery_charging_statuses, motive_powers, accelerations,
init_time=service_battery_initialization_time
)