Skip to content

Cold Start Model

stefanosts edited this page Aug 6, 2016 · 1 revision

Inputs

Name Units Source / Comments Parameter
Delta Speed Cold RPM Default Input delta_speed_cold
Idle Speed RPM Parametric Calculated Input idle_engine_speed
Gearbox Speeds In RPM Calculated by Gearbox Model gear_box_speeds_in
Engine Status - On/Off - Calculated by Start/Stop Model on_engine
Engine Coolant Temperatures oC Calculated by Thermal Model engine_coolant_temperatures

Output

Delta Speeds Cold [RPM] / cold_start_speeds_delta

Source Code

def define_cold_start_speed_model_parametric(idle_engine_speed, delta_speed_cold):

    ds, idle = delta_speed_cold, idle_engine_speed[0]

    def model(speeds, on_engine, engine_coolant_temperatures):
        add_speeds = np.zeros_like(speeds, dtype=float)

        b = (engine_coolant_temperatures < 30.0) & on_engine
        s =  ds * (30.0 - engine_coolant_temperatures[b])
        add_speeds[b] = np.where(speeds[b] < s + idle, s, add_speeds[b])

        return add_speeds

    return model

def calculate_engine_speeds_out_hot(
        gear_box_speeds_in, on_engine, idle_engine_speed):

    s = gear_box_speeds_in.copy()

    s[np.logical_not(on_engine)] = 0

    s[on_engine & (s < idle_engine_speed[0])] = idle_engine_speed[0]

    return s

def calculate_cold_start_speeds_delta(
        cold_start_speed_model, engine_speeds_out_hot, on_engine,
        engine_coolant_temperatures):

    delta_speeds = cold_start_speed_model(
        engine_speeds_out_hot, on_engine, engine_coolant_temperatures)

    return delta_speeds