Skip to content

Switchgear temperature model

switchgear_temp

switchgear_temp(
    data: InputProfile, switchgear: Switchgear
) -> Series

Simulate the temperature profile of a circuit breaker component.

This function simulates the temperature profile of the most critical thermal point of a certain circuit breaker for a specific ambient temperature profile, load profile and circuit breaker specifications. Since the switchgears still follow a minimal thermal model, the solution for any component in the switchgears can be modeled similarly. Hence, the thermal profile can be modeled for a circuit breaker, or disconnector. It just depends on the provided specifications. In particular, the measured temperature rise.

Parameters:

Name Type Description Default
data InputProfile

input profile containing the ambient temperature profile and load profile, coupled to a datetime index.

required
switchgear Switchgear

Switchgear object containing the rated current, measured temperature rise, temperature rise exponent, and thermal time constant.

required

Returns:

Type Description
Series

np.ndarray array of modeled temperatures for the circuit breaker at each timestep in the ambient temperature profile

Source code in switchgear_thermal_model/thermal_model.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
def switchgear_temp(data: InputProfile, switchgear: Switchgear) -> pd.Series:
    """Simulate the temperature profile of a circuit breaker component.

    This function simulates the temperature profile of the most critical thermal
    point of a certain circuit breaker for a specific ambient temperature
    profile, load profile and circuit breaker specifications. Since the
    switchgears still follow a minimal thermal model, the solution for any
    component in the switchgears can be modeled similarly. Hence, the thermal
    profile can be modeled for a circuit breaker, or disconnector. It just
    depends on the provided specifications. In particular, the measured
    temperature rise.

    Args:
        data (InputProfile): input profile containing the ambient temperature
            profile and load profile, coupled to a datetime index.
        switchgear (Switchgear): Switchgear object containing the rated current,
            measured temperature rise, temperature rise exponent, and thermal time
            constant.

    Returns:
        np.ndarray
            array of modeled temperatures for the circuit breaker at each timestep
            in the ambient temperature profile
    """
    initial_temperature = data.ambient_temperature_profile[0]
    modeled_temperature = np.zeros(len(data.ambient_temperature_profile))

    modeled_temperature[0] = initial_temperature
    normalised_load = data.load_profile / switchgear.rated_current
    temperature_asymptote = (
        switchgear.measured_temperature_rise * (normalised_load**switchgear.temp_rise_exp)
        + data.ambient_temperature_profile
    )
    exponent = 1 - np.exp(-data.dt / switchgear.thermal_time_constant)

    for i in range(1, len(data.ambient_temperature_profile)):
        new_temperature = (temperature_asymptote[i] - modeled_temperature[i - 1]) * exponent[i] + modeled_temperature[
            i - 1
        ]

        modeled_temperature[i] = new_temperature

    return pd.Series(modeled_temperature, index=data.datetime_index)