Description
(in progress)
A simplified hydraulic model of a district heating substation, built in Python with Codex. The simulation prioritizes realistic system behaviour and process values over full fluid-dynamic accuracy, with the scope currently focused on components relevant to monitoring and control.
The heating and domestic hot water systems operate against simulated consumption nodes, with demand varying based on factors like outdoor temperature and time of day. Domestic hot water demand, for example, follows a daily consumption profile with higher demand during mornings and evenings and lower demand during working hours.
The main goal is to expose the simulated process through an OPC UA server for integration with SCADA software such as Ignition, allowing process values to be monitored and setpoints to be adjusted externally.
Planned features include hidden fault injection, such as sensor/actuator failures, filter obstruction, pressure loss and so on, to generate alarms in the SCADA interface and create realistic troubleshooting scenarios.