Thermal Engine User Guide
Overview
The ThermalEngine is a wrapper around the thermohl library that enables comprehensive cable thermal modeling. It allows you to compute cable temperatures under various environmental and operational conditions, supporting both steady-state and transient thermal analysis.
Key Concepts
What is the ThermalEngine?
The ThermalEngine computes the temperature distribution in power transmission cables based on:
- Cable properties (resistance, thermal conductivity, dimensions)
- Operational parameters (electrical current)
- Environmental conditions (ambient temperature, wind speed, wind angle, solar radiation)
- Geographic location and time (latitude, longitude, altitude, month, day, hour)
Thermal Calculations Supported
- Steady-State Temperature: Calculates cable temperature when conditions are constant
- Steady-State Intensity: Calculates maximum allowable current for a target temperature
- Transient Temperature: Calculates temperature variations over time with changing conditions
Installation and Basic Setup
Initialization
1 2 3 4 5 | |
Setting Input Parameters
Use the set() method to configure all input parameters. All inputs must be numpy arrays:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Parameters Reference
| Parameter | Type | Unit | Description |
|---|---|---|---|
cable_array |
CableArray | - | Cable properties (diameter, resistance, thermal conductivity, etc.) |
latitude |
np.ndarray | degrees | Geographic latitude |
longitude |
np.ndarray | degrees | Geographic longitude |
altitude |
np.ndarray | meters | Altitude above sea level |
azimuth |
np.ndarray | degrees | Cable direction (0°=North, 90°=East, 180°=South, 270°=West) |
month |
np.ndarray | 1-12 | Month of the year |
day |
np.ndarray | 1-31 | Day of the month |
hour |
np.ndarray | 0-23 | Hour of the day |
intensity |
np.ndarray | Amperes | Electrical current through the cable |
ambient_temp |
np.ndarray | °C | Ambient air temperature |
wind_speed |
np.ndarray | m/s | Wind speed magnitude |
wind_angle |
np.ndarray | degrees | Wind direction (0°=North, 90°=East) |
nebulosity |
np.ndarray | 0-8 | Nebulosity level: from 0 (not cloudy at all) to 8 (very cloudy) |
solar_irradiance |
np.ndarray | None | W/m² | Solar radiation (optional, auto-calculated if None) |
Features and Usage
1. Single Location/Condition
Calculate thermal conditions for a single set of conditions (using single-element arrays):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
2. Array Inputs (Multiple Locations/Conditions)
Process multiple conditions simultaneously. All arrays must have the same length:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
3. Steady-State Temperature Calculation
Calculate the cable temperature at equilibrium for given operating conditions:
1 2 3 4 5 6 7 8 9 | |
Output columns:
t_avg: Average cable temperaturet_surf: Surface temperaturet_core: Core temperature (highest temperature in the conductor)
4. Steady-State Intensity Calculation
Calculate the maximum allowable current to maintain a target temperature:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Use case: Determine the maximum current a line can carry while maintaining safe temperature limits.
5. Transient Temperature Calculation
Simulate temperature evolution over time with time-varying conditions:
1 2 3 4 | |
Output format:
time: Time stepid: Cable/condition IDt_avg: Average temperature at that timet_surf: Surface temperature at that timet_core: Core temperature at that time
Customize the forecast:
1 2 3 4 5 6 7 8 9 10 | |
6. Dynamic Parameter Updates
Modify parameters after initialization without resetting the entire engine. Note: All values must be numpy arrays with the same length:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
7. Wind-Cable Angle Calculation
Automatically compute the angle between wind direction and cable orientation:
1 2 3 | |
This is important because wind cooling effectiveness depends on the wind direction relative to the cable.
8. String Representations
Inspect engine configuration using string representations:
1 2 3 4 5 6 7 8 9 10 | |
Technical Notes
Default Parameters
- Target Temperature: 65°C (can be modified via
thermal_engine.target_temperature) - Power Model: RTE (Réseau de Transport d'Électricité)
- Heat Equation: 3-Temperature model (core, surface, average)
- Solar Irradiance: Automatically calculated if not provided
Temperature Output Interpretation
- t_core: Highest temperature in the conductor (most critical)
- t_surf: Temperature at cable surface
- t_avg: Average temperature across the conductor
Typically: t_core > t_avg > t_surf
Wind Angle Conventions
- 0° = Wind from North
- 90° = Wind from East
- 180° = Wind from South
- 270° = Wind from West
Cable Azimuth Conventions
- 0° = Cable oriented North-South (wind blows perpendicular = maximum cooling)
- 90° = Cable oriented East-West
- The most effective cooling occurs when wind is perpendicular to the cable (90° wind-cable angle)
Limitations and Future Enhancements
Currently implemented: - Steady-state temperature and intensity calculations - Transient temperature analysis - Multi-location/condition analysis - Automatic solar irradiance calculation
Not yet implemented: - Normal wind mode - Custom thermal parameters per cable - Integration with cable catalogs for direct lookup - Visualization tools
See the code comments for planned improvements.