@sh.add_function(dsp, outputs=['r_dynamic'])
def identify_r_dynamic(
velocity_speed_ratios, gear_box_ratios, final_drive_ratios):
"""
Identifies the dynamic radius of the wheels [m].
:param velocity_speed_ratios:
Constant velocity speed ratios of the gear box [km/(h*RPM)].
:type velocity_speed_ratios: dict[int | float]
:param gear_box_ratios:
Gear box ratios [-].
:type gear_box_ratios: dict[int, float | int]
:param final_drive_ratios:
Final drive ratios [-].
:type final_drive_ratios: dict[int, float | int]
:return:
Dynamic radius of the wheels [m].
:rtype: float
"""
from co2mpas.utils import reject_outliers
from .gear_box.mechanical import calculate_speed_velocity_ratios
svr = calculate_speed_velocity_ratios(
gear_box_ratios, final_drive_ratios, 1
)
r = [svr[k] * vs for k, vs in velocity_speed_ratios.items() if k]
r_dynamic = reject_outliers(r)[0]
return r_dynamic