MiravoMiravo

District Heating substation

District heating customer substation with a heat exchanger, pipe transport delay from the plant, seasonal weather-driven demand, energy-balance primary flow, and fault health.

District heating substation model illustration

What it is

A district heating customer substation: a plate heat exchanger between the heat network (primary side) and a building heating loop (secondary side). Network supply temperature arrives from the plant, through an input port, after a pipe transport delay. A control valve meters primary flow to hold the secondary supply on a weather-compensated setpoint. Heat demand follows outdoor temperature by degree-days (zero at the 18 °C balance point, design_load_kw at the design day) plus a daily occupancy profile. Primary flow comes from the energy balance, flow = heat delivered / (1.163 × delta-T).

t=0 is 1 January 00:00. Outdoor temperature has a daily and a seasonal cycle, so accelerated time shows winter and summer. The plant supply comes in through the network_supply_temp input port. A template binds it to a boiler's supply_temperature member, and the substation adds its own pipe delay. Unbound, the port holds its 92 °C default.

Used in

  • district-heating: the hospital, university, residential and office customers

What it tracks

MemberDescription
runningSubstation operating state.
outdoor_temperatureSeasonal and daily weather input.
heat_demand_kwBuilding demand: degree-day space heating plus domestic hot water.
plant_supply_tempNetwork supply temperature at the plant: the network_supply_temp input, one simulation step behind its source.
primary_supply_tempPlant supply after the pipe delay and line loss.
primary_return_tempNetwork return temperature leaving the heat exchanger.
delta_tPrimary supply minus return. The network operator's efficiency metric.
hx_approach_tempHeat exchanger approach temperature. Rises with fouling.
control_valve_positionPrimary valve opening, driven by demand and secondary feedback.
primary_flowPrimary flow in m³/h, from the energy balance: heat delivered / (1.163 × primary supply-return delta-T). About 0 when stopped.
secondary_supply_setpoint / secondary_supply_tempWeather-compensated setpoint and the delivered temperature.
secondary_return_tempBuilding return temperature.
circulation_pump_speedSecondary loop pump speed.
heat_delivered_kw / heat_energy_totalHeat meter power and energy. Delivered heat is the demand, capped by the primary temperature head: capacity is 1.5 × design_load_kw at a 26 K head (primary supply minus secondary setpoint minus a 5 K approach) and falls with it. When the plant stops and the primary supply drops to about 50 °C, delivery falls toward zero and secondary_supply_temp sags below its setpoint.

Fault modes

  • hx_fouling: needs the early_wear stage, pump speed above 20 % and primary flow above 1 m³/h. Approach temperature rises 9 K and secondary supply falls 2.5 K over a 1800 s ramp, for 14400 s. Delta-T falls, the valve opens, and flow rises to carry the same heat.
  • valve_stuck: needs the degraded stage, pump speed above 20 % and valve position above 5 %. The valve is pinned at 40 % for 3600 s, so the secondary supply misses its setpoint as demand moves.
  • low_delta_t: needs the advanced_wear stage, pump speed above 20 % and delta-T above 30 K. Primary return rises 15 K for 3600 s, like a bypass or short circuit. The lower delta-T raises primary flow by about 40 %.

Key parameters

ParameterDefaultUnit
design_load_kw500kW
pipe_delay_min6min
design_outdoor_temp_c-12°C

design_outdoor_temp_c is the design day. Demand equals design_load_kw there and falls to zero 30 K above it. The monthly mean outdoor temperature is the design temperature plus a seasonal offset: January sits 12.5 K above it and July 31.5 K. pipe_delay_min is the transport delay of the network pipe, in minutes. The primary supply also lags by about 60 s of pipe wall response.

Input port

PortDefaultUnit
network_supply_temp92°C

Bind it per template with inputs: { network_supply_temp: { asset: <id>, member: <member> } }. district-heating binds every substation to boiler-001 supply_temperature, so a boiler fault or trip reaches each substation after its own pipe_delay_min. miravo spawn leaves it unbound.

Use cases

  • Seasonal demand and degree-day analytics under accelerated time.
  • Low delta-T detection and heat exchanger fouling analytics.
  • Transport-delay aware correlation of plant and substation data.
  • Heat-meter and energy dashboards for district heating operators.

Customize

miravo models add heat-substation --from heat-substation
miravo models inspect heat-substation

Was this page useful?

Last updated on