The Active Thermal Control System (ATCS) module is a critical subsystem for the International Space Station (ISS). Its primary functions include:
- Maintaining Internal Temperature: Removing heat from the pressurized cabin to sustain a stable environment.
- Supporting Electrical Power System (EPS): Removing excess heat generated by the EPS.
This repository provides a simulation of the ATCS module, focusing on heat removal from the pressurized cabin. The simulation is implemented using ROS 2, with nodes representing various subsystems and processes of ATCS.
The simulation is built around two main ROS 2 nodes:
-
System Temperature Node (
coldplate_system
)- Monitors the temperature of the cold plate/heat exchanger.
- Triggers the cooling process when the temperature exceeds a critical level.
- Publishes real-time data, including:
- Cold plate temperature.
- Internal coolant (water) temperature.
- External coolant (ammonia) temperature.
-
Cooling Process Node (
cooling_process
)- Simulates the cooling process, involving:
- Activation of pumps for the Internal ATCS (IATCS) and External ATCS (EATCS).
- Heat transfer between the IATCS and EATCS loops.
- Responds to temperature reduction requests.
- Logs alerts in case of cooling system inactivation.
- Simulates the cooling process, involving:
- The
coldplate_system
node simulates temperature increases in the cold plate due to load variations. - Publishes temperature data to the
/coldplate_temperature
topic.
- When the temperature exceeds a critical threshold:
- Logs a warning.
- Sends a request to the
cooling_process
node to reduce the temperature.
- The
cooling_process
node simulates:- Heat absorption from the cold plate to the internal coolant (water).
- Heat exchange from water to the external coolant (ammonia) and finally to the radiator outside the ISS.
- Returns the updated temperatures for the cold plate, water, and ammonia.
- The
coldplate_system
node updates the cold plate temperature based on the response from thecooling_process
node. - Resumes publishing the updated data.
/coldplate_temperature
- Type:
sensor_msgs/msg/Temperature
- Description: Publishes real-time data, including:
- Temperature (°C) with variance.
- Type:
/Cooling
(Cooling Process Node):- Type:
thermal_control/srv/Cooling
- Description: Handles temperature reduction requests.
- Request:
temperature
: Current cold plate temperature (°C).
- Response:
success
: Boolean indicating if cooling was successful.message
: Status message describing the result.reduced_temperature
: Updated cold plate temperature.water_temperature
: Updated internal coolant temperature.ammonia_temperature
: Updated external coolant temperature.
- Request:
- Type:
- Cold Plate Temperature: 45°C
- Target Cold Plate Temperature: 30°C
- Initial Coolant Temperatures:
- Water: 4°C
- Ammonia: -40°C
- Radiator: -270°C
- Specific Heat Capacity (Aluminum): 900 J/kg·K
- Mass of Cold Plate: 1 kg
- Heat Exchange Efficiency (CP-Water): 0.95
- Heat Transfer Coefficient (CP-Water): 200 W/m²·K
- Contact Area (CP-Water): 0.1 m²
- Specific Heat Capacity (Water): 4184 J/kg·K
- Specific Heat Capacity (Ammonia): 4500 J/kg·K
- Mass Flow Rate (Water): 1 kg/s
- Mass Flow Rate (Ammonia): 1 kg/s
- Heat Exchange Efficiency: 0.95
- Heat Transfer Coefficient (Water-Ammonia): 150 W/m²·K
- Contact Area (Water-Ammonia): 0.1 m²
- Stefan-Boltzmann Constant: 5.67e-8 W/m²·K⁴
- Radiator Emissivity: 0.9
- Radiator Area: 0.1 m²
colcon build
source install/setup.bash
ros2 launch thermal_control thermals.launch.py
[coldplate_system-1] [INFO] [1736625440.136587250] [coldplate_system]: Cold Plate Temperature: 48.50°C
[coldplate_system-1] [INFO] [1736625440.637731724] [coldplate_system]: Cold Plate Temperature: 49.00°C
[coldplate_system-1] [INFO] [1736625441.136917492] [coldplate_system]: Cold Plate Temperature: 49.50°C
[coldplate_system-1] [INFO] [1736625441.642691919] [coldplate_system]: Cold Plate Temperature: 50.00°C
[coldplate_system-1] [WARN] [1736625441.642796660] [coldplate_system]: Temperature exceeds 50°C. Activating cooling system...
[cooling_process-2] [INFO] [1736625441.643222008] [cooling_process]: Received cooling request: Current Temp = 50.00°C, Target Temp = 30.00°C
[coldplate_system-1] [INFO] [1736625441.643703795] [coldplate_system]: Cooling completed successfully. Cold Plate Temperature: 49.03°C
[coldplate_system-1] Water Temperature: 4.06°C
[coldplate_system-1] Ammonia Temperature: -39.86°C