def correct_gear_v1(
cycle_type, velocity_speed_ratios, mvl, idle_engine_speed,
plateau_acceleration=float('inf')):
"""
Returns a function to correct the gear predicted according to
:func:`correct_gear_mvl`.
:param cycle_type:
Cycle type (WLTP or NEDC).
:type cycle_type: str
:param velocity_speed_ratios:
Constant velocity speed ratios of the gear box [km/(h*RPM)].
:type velocity_speed_ratios: dict[int | float]
:param mvl:
Matrix velocity limits (upper and lower bound) [km/h].
:type mvl: OrderedDict
:param idle_engine_speed:
Engine speed idle median and std [RPM].
:type idle_engine_speed: (float, float)
:param plateau_acceleration:
Maximum acceleration to be at constant velocity [m/s2].
:type plateau_acceleration: float
:return:
A function to correct the predicted gear.
:rtype: callable
"""
mvl = _upgrade_gsm(mvl, velocity_speed_ratios, cycle_type)
mvl.plateau_acceleration = plateau_acceleration
correct_gear = CorrectGear(velocity_speed_ratios, idle_engine_speed)
correct_gear.fit_correct_gear_mvl(mvl)
correct_gear.fit_basic_correct_gear()
return correct_gear