@sh.add_function(dsp, outputs=['engine_speeds_base'])
def identify_engine_speeds_base(
times, hybrid_modes, on_engine, engine_speeds_out, gear_box_speeds_in,
idle_engine_speed):
"""
Identify the engine speed at hot condition [RPM].
:param times:
Time vector [s].
:type times: numpy.array
:param hybrid_modes:
Hybrid mode status (0: EV, 1: Parallel, 2: Serial).
:type hybrid_modes: numpy.array
:param on_engine:
If the engine is on [-].
:type on_engine: numpy.array
:param engine_speeds_out:
Engine speed [RPM].
:type engine_speeds_out: numpy.array
:param gear_box_speeds_in:
Gear box speed [RPM].
:type gear_box_speeds_in: numpy.array
:param idle_engine_speed:
Engine speed idle median and std [RPM].
:type idle_engine_speed: (float, float)
:return:
Engine speed at hot condition [RPM].
:rtype: numpy.array, float
"""
b = hybrid_modes == 2
from .conventional import calculate_engine_speeds_out_hot as func
speeds = func(gear_box_speeds_in, on_engine, idle_engine_speed)
speeds[b] = engine_speeds_out[b]
speeds[b] = co2_utl.median_filter(times, speeds, 5)[b]
return speeds