@sh.add_function(
dsp, inputs_kwargs=True, outputs=['gear_box_mean_efficiency_guess']
)
@sh.add_function(dsp, outputs=['gear_box_mean_efficiency_guess'], weight=90)
def calculate_gear_box_mean_efficiency_guess(
motive_powers, final_drive_mean_efficiency, gear_box_loss_model, times,
gear_box_speeds_in, gear_box_speeds_out, min_engine_on_speed,
gears=None):
"""
Calculate gear box mean efficiency guess [-].
:param motive_powers:
Motive power [kW].
:type motive_powers: numpy.array
:param final_drive_mean_efficiency:
Final drive mean efficiency [-].
:type final_drive_mean_efficiency: float
:param gear_box_loss_model:
Gear box loss model.
:type gear_box_loss_model: GearBoxLosses
:param times:
Time vector [s].
:type times: numpy.array
:param gear_box_speeds_in:
Engine speed vector [RPM].
:type gear_box_speeds_in: numpy.array
:param gear_box_speeds_out:
Wheel speed vector [RPM].
:type gear_box_speeds_out: numpy.array
:param min_engine_on_speed:
Minimum engine speed to consider the engine to be on [RPM].
:type min_engine_on_speed: float
:param gears:
Gear vector [-].
:type gears: numpy.array, optional
:return:
Gear box mean efficiency guess [-].
:rtype: float
"""
from ..electrics.motors.p4 import calculate_motor_p4_electric_powers as func
powers_out = func(motive_powers, final_drive_mean_efficiency)
torques = calculate_gear_box_torques(
powers_out, gear_box_speeds_out, gear_box_speeds_in, min_engine_on_speed
)
torques_in = calculate_gear_box_efficiencies_torques_temperatures(
gear_box_loss_model, times, powers_out, gear_box_speeds_in,
gear_box_speeds_out, torques, 100, gears
)[1]
powers_in = calculate_gear_box_powers_in(torques_in, gear_box_speeds_in)
return identify_gear_box_mean_efficiency(powers_in, powers_out)