District Heating
Run a city heat network with gas boilers, a thermal accumulator, trunk pumps and four customer substations, each with seasonal demand and its own pipe delay.
A city district heating network. The heat plant has three gas boilers, two primary pumps and a thermal accumulator. Two trunk pumps feed four customer substations: a hospital, a university, a residential block and an office park.
Each substation has its own design load and pipe delay. A change in plant supply reaches the hospital after 4 minutes and the office park after 28. Outdoor temperature follows a daily and a seasonal cycle starting on 1 January, so heat demand follows the weather. Run it at --speed 60 or higher to see the day move.
The boilers regulate supply to a 90 °C setpoint and keep a 40 % base-load firing floor (min_firing_pct). The network holds its supply temperature overnight, and the substations keep their delta-T around the clock.
Boiler hours span the lifecycle: boiler-001 at 6,500, boiler-002 at 3,000 and boiler-003 at 200. Substation hours run from 500 (office) to 8,500 (residential).
What's running
| Area | Assets |
|---|---|
| Heat plant | 3 hot-water boilers, 2 primary pumps, accumulator tank |
| Network | 2 trunk network pumps |
| Customers | 4 heat substations: hospital, university, residential, office park |
| Model | Count | Assets |
|---|---|---|
hot-water-boiler | 3 | boiler-001 to boiler-003 (2,500 kW, 90 °C supply, 6 bar) |
centrifugal-pump | 4 | primary-pump-001, primary-pump-002, network-pump-001, network-pump-002 |
storage-tank | 1 | accumulator-001 (100 m³) |
heat-substation | 4 | see below |
| Substation | Design load | Pipe delay |
|---|---|---|
sub-hospital-001 | 1,800 kW | 4 min |
sub-university-001 | 2,500 kW | 10 min |
sub-residential-001 | 1,200 kW | 18 min |
sub-office-001 | 600 kW | 28 min |
Hierarchy
city-energy / north-network
├── heat-plant
│ ├── boilers: boiler-001, boiler-002, boiler-003
│ └── primary-loop: primary-pump-001, primary-pump-002, accumulator-001
├── network
│ └── trunk-main: network-pump-001, network-pump-002
└── customers
├── hospital: sub-hospital-001
├── university: sub-university-001
├── residential: sub-residential-001
└── office-park: sub-office-001Boilers feed the substations
Every substation's network_supply_temp input is bound to boiler-001
supply_temperature. A boiler fault or trip reaches each substation's
primary_supply_temp after its own pipe delay, and delta_t uses that
temperature. The substation reads the boiler's value from the previous
simulation step. Stop boiler-001 and the substations' heat_delivered_kw
falls to zero and secondary_supply_temp sags once the cold water arrives.
What to watch
outdoor_temperatureandheat_demand_kwon every substation. Demand follows degree-days plus a daily occupancy profile.primary_supply_tempagainstboiler-001supply_temperature. The first lags the second bypipe_delay_min, so the office park reacts about 24 minutes after the hospital.delta_t(primary supply minus return), the network operator's efficiency metric.control_valve_position,primary_flowandsecondary_supply_tempagainstsecondary_supply_setpoint.- Boiler
supply_temperatureandfiring_rate, and accumulator level.
Faults to try
Commands assume miravo start -t district-heating.
miravo inject sub-hospital-001 hx_foulingHeat exchanger fouling. hx_approach_temp rises by about 9 K over 30 simulated minutes, delta_t falls, and the valve opens to push more flow.
miravo inject sub-residential-001 low_delta_tBypass or short-circuit. Primary return rises 15 K, delta_t falls from about 50 K to about 35 K, and primary_flow rises about 40 % because the same heat needs more flow at a lower delta-T.
miravo inject sub-university-001 valve_stuckControl valve pinned at 40 %. secondary_supply_temp drifts below secondary_supply_setpoint as demand moves.
miravo inject boiler-001 scale_buildupBoiler scale build-up. supply_temperature drops about 7 % for 15 minutes. The hospital's primary_supply_temp follows after about 4 minutes and the office park's after about 28.
Clear any of them with --clear, for example miravo inject sub-hospital-001 hx_fouling --clear.
Launch
Console ⭢ Catalog ⭢ District Heating ⭢ Launch. No restart required.
Verified
In Catalog, District Heating shows 12 assets and 4 models. The Assets page keeps updating after launch.
Next
Heat substation model
Members, faults, and parameters of the customer substation.
Connect a protocol
Hook a downstream system to the running factory.
Map into Litmus Edge
Map this template into Litmus Edge.
Was this page useful?
Last updated on
Backup Power
Run a Tier III data center backup plant with diesel generators, fuel storage, cooling, wear and faults, served over MQTT, OPC UA and Modbus TCP.
Pharma Cleanroom
Run a GMP sterile suite with Grade B, C, D and gowning cleanrooms, a pressure cascade, make-up air, a chilled-water plant, and door and filter faults.
Miravo