@sh.add_function(dsp, outputs=['ems_data'])
def calculate_ems_data(
ems_model, times, motive_powers, final_drive_speeds_in,
motors_maximums_powers, gear_box_speeds_in, engine_speeds_parallel,
idle_engine_speed):
"""
Calculate EMS decision data.
:param ems_model:
Energy Management Strategy model.
:type ems_model: EMS
:param times:
Time vector [s].
:type times: numpy.array
:param motive_powers:
Motive power [kW].
:type motive_powers: numpy.array
:param final_drive_speeds_in:
Final drive speed in [RPM].
:type final_drive_speeds_in: numpy.array
:param motors_maximums_powers:
Maximum powers of electric motors [kW].
:type motors_maximums_powers: numpy.array
:param gear_box_speeds_in:
Gear box speed [RPM].
:type gear_box_speeds_in: numpy.array
:param engine_speeds_parallel:
Hypothetical engine speed in parallel mode [RPM].
:type engine_speeds_parallel: numpy.array
:param idle_engine_speed:
Engine speed idle median and std [RPM].
:type idle_engine_speed: (float, float)
:return:
EMS decision data.
:rtype: dict
"""
return ems_model(
times, motive_powers, final_drive_speeds_in, motors_maximums_powers,
gear_box_speeds_in, engine_speeds_parallel, idle_engine_speed
)