@sh.add_function(dsp, outputs=[
'motor_p4_front_electric_powers', 'motor_p4_rear_electric_powers',
'motor_p3_front_electric_powers', 'motor_p3_rear_electric_powers',
'motor_p2_electric_powers', 'motor_p2_planetary_electric_powers',
'motor_p1_electric_powers', 'motor_p0_electric_powers'
], weight=sh.inf(1, 0))
def identify_motors_electric_powers_v1(
final_drive_mean_efficiency, gear_box_mean_efficiency_guess,
planetary_mean_efficiency, belt_mean_efficiency, motors_efficiencies,
hybrid_modes, motive_powers, motors_maximums_powers,
motors_electric_powers, has_motor_p2_planetary):
"""
Identify motors electric power split [kW].
:param final_drive_mean_efficiency:
Final drive mean efficiency [-].
:type final_drive_mean_efficiency: float
:param gear_box_mean_efficiency_guess:
Gear box mean efficiency guess [-].
:type final_drive_mean_efficiency: float
:param planetary_mean_efficiency:
Planetary mean efficiency [-].
:type planetary_mean_efficiency: float
:param belt_mean_efficiency:
Belt mean efficiency [-].
:type belt_mean_efficiency: float
:param motors_efficiencies:
Electric motors efficiencies vector.
:type motors_efficiencies: tuple[float]
:param motive_powers:
Motive power [kW].
:type motive_powers: numpy.array
:param hybrid_modes:
Hybrid mode status (0: EV, 1: Parallel, 2: Serial).
:type hybrid_modes: numpy.array
:param motors_maximums_powers:
Maximum powers of electric motors [kW].
:type motors_maximums_powers: numpy.array
:param motors_electric_powers:
Cumulative motors electric power [kW].
:type motors_electric_powers: numpy.array
:param has_motor_p2_planetary:
Has the vehicle a motor in planetary P2?
:type has_motor_p2_planetary: bool
:return:
Motors electric powers [kW].
:rtype: tuple[numpy.array]
"""
drive_line_efficiencies = (
1.0, final_drive_mean_efficiency, gear_box_mean_efficiency_guess,
planetary_mean_efficiency, 1.0 if has_motor_p2_planetary else .99,
belt_mean_efficiency
)
return identify_motors_electric_powers(
HEV(drive_line_efficiencies, motors_efficiencies), hybrid_modes,
motive_powers, motors_maximums_powers, motors_electric_powers
)