@sh.add_function(
dsp, inputs=['motor_p4_front_electric_powers', 'motor_p4_front_efficiency'],
outputs=['motor_p4_front_powers'], weight=5
)
@sh.add_function(
dsp, inputs=['motor_p4_rear_electric_powers', 'motor_p4_rear_efficiency'],
outputs=['motor_p4_rear_powers'], weight=5
)
def calculate_motor_p4_powers_v1(motor_p4_electric_powers, motor_p4_efficiency):
"""
Calculate motor P4 power from electric power and electric power losses [kW].
:param motor_p4_electric_powers:
Electric power of motor P4 [kW].
:type motor_p4_electric_powers: numpy.array | float
:param motor_p4_efficiency:
Motor P4 efficiency [-].
:type motor_p4_efficiency: float
:return:
Power at motor P4 [kW].
:rtype: numpy.array | float
"""
p = motor_p4_electric_powers
return p * np.where(p < 0, 1 / motor_p4_efficiency, motor_p4_efficiency)