🏢 Real estate — office building operations Live model
You are the facility manager of a five-storey office building with a heavy concrete structure, a rooftop cooling plant, a heat pump and a central air handler. Every 15 minutes the model works out the heat flowing between outdoor air, room air, surfaces and the building's mass (the ISO 13790 hourly method), what the plant must supply, the electricity it draws, how much CO₂ the occupants breathe out and how comfortable they feel (PMV/PPD, ISO 7730). Educational simulation only — tariff and building figures are illustrative, not engineering or financial advice.
What you will learn
Why a heavy building answers slowly: its structure stores heat, so warm-up, cool-down and pre-cooling take hours, not minutes.
How ventilation sets indoor CO₂ — and why the room lags the crowd by about an hour.
How a demand charge works and how setpoints, start times and thermal storage shave the peak without making people uncomfortable.
Simulator
Time 0 min
✓Comfortable (PMV −0.5…+0.5)
↓Too cool (PMV below −0.5)
!Too warm (PMV +0.5…+1)
‼Hot (PMV above +1)
❄Cooling
♨Heating
•About 12 people
Controls
Room air temperature the plant cools to while in occupied mode. Lower before people arrive to pre-cool the structure; raise during the tariff peak.
Room air temperature the heat pump holds in occupied mode. Kept at least 1 °C below the cooling setpoint.
Clock hour when occupied mode begins (staff arrive from 07:30, ventilation from 08:00, stop at 18:00). Before 08:00 the outdoor-air dampers stay shut so the plant only warms or cools the building. Outside occupied mode the building floats between 15 and 30 °C. The start command latches: once the plant has started for the day, changing this does nothing until after 18:00.
Fixed = design flow for 250 people (2,125 L/s). Demand-controlled = 2.5 L/s per person present + 0.3 L/s per m². Purge = 100 % outdoor air (6,000 L/s) — lowest CO₂, highest heating or cooling cost.
When the outdoor air is cooler than the room and cooling is needed, bring in more of it (up to 6,000 L/s) instead of running the compressor.
Caps the cooling and heating output at this share of capacity. Cuts the electrical peak, but the room drifts if the load is larger.
Indicators
Billing peak demand
0kW
normal
Predicted dissatisfied (PPD)
20%
warning
Indoor CO₂
450ppm
normal
Building demand (15-min)
0kW
normal
Thermal sensation (PMV)
-0.84
Room air temperature
21.9 °C
Operative temperature
21.9 °C
Surface temperature
21.9 °C
Structure temperature
22.0 °C
Outdoor temperature
16.9 °C
Electricity used
0 kWh
People in the building
0
Outdoor air
0 L/s
Cooling delivered
0 kW
Heating delivered
0 kW
Plant COP
0.00
Setpoint not met by
0.0 K
Trend
Crisis scenarios
Level 1 · Seminar crowd on a cold day
It is a cold spring day (around 0–6 °C). At 13:00 about 400 guests arrive for a seminar in the building and leave at 17:00 — the house will hold some 600 people instead of 210. Keep indoor CO₂ at or below 1,000 ppm all working day, without wasting energy or pushing up the demand peak. Ventilation is on fixed design flow.
Indoor CO₂ ≤ 1,000 ppm all working day
Electricity used ≤ 1,110 kWh
Demand never above 120 kW
Level 2 · Monday morning after a cold weekend
Monday, midnight, −7 °C on average. All weekend the building was held at its 15 °C setback, so the concrete structure is at about 14 °C. Staff arrive from 07:30. The plant is scheduled to start at 07:00 as usual. Make the building comfortable from 08:00 (PPD ≤ 10 %) while keeping the morning demand peak and the energy bill in check.
PPD ≤ 10 % from 08:00 to 12:00
Demand never above 195 kW
Electricity used ≤ 1,760 kWh by 14:00
Level 3 · Summer peak and the demand charge
A heat-wave day: 24 °C at dawn, 36 °C in the afternoon, strong sun. The tariff's demand charge is set by the highest 15-minute demand between 13:00 and 17:00. Keep that peak at or below 148 kW while the occupants stay comfortable (average PPD ≤ 9.5 %, never above 15 %) and the day's electricity stays near what you would use anyway. The plant starts at 07:00 with a 24 °C setpoint.
Demand ≤ 148 kW during 13:00–17:00
Average PPD ≤ 9.5 % in working hours
PPD never above 15 %
Electricity used ≤ 1,920 kWh
Basis — the model behind the numbers
Every relation the simulator uses, with its source. Constants marked as assumptions are illustrative calibrations.
The building as a small heat network: room air and inner surfaces have no storage, the concrete structure does. Heat flows through each link in proportion to the temperature difference.
Standard values for a heavy building: the structure stores 260 kJ per kelvin for every m² of floor and is tightly coupled to the room surfaces. Half of the internal heat goes straight into the air, the rest and the sunshine land on surfaces and mass.
Fanger's comfort model balances the heat a person produces against what they lose by convection, radiation, sweat and breath. PMV 0 is neutral; ±0.5 is the usual comfort band, where about 10 % are still dissatisfied.
CO₂ in a well-mixed building: occupants add it, outdoor air dilutes it. The level heads for C_out + N·G/Q with a time constant V/Q — about an hour and a half at design flow.
V·dC/dt = Q(C_out − C) + N·G, G = 0.0048 L/s; C_ss = C_out + N·G/Q, τ = V/Q[6][5][7]
Internal heat: people, lights and office equipment; sunshine through the windows peaks in the early afternoon.
Φ_int = 75 W·N + lights 7 W/m² + plugs 10 W/m²·(0.25 + 0.75·N/250); Φ_sol = 100 kW·sin(π(h − 6)/13)·cloud[8]Assumption: the building size, envelope, plant capacities, heat-gain densities, the Carnot fraction, fan power, schedules and weather are illustrative values for a generic office; the heat-balance, comfort, ventilation and CO₂ relations are the published ones.
A chiller works harder the hotter it is outside, a heat pump the colder it is — both modelled as a fixed fraction of the ideal (Carnot) efficiency.
COP_cool = 0.45·T_e/(T_c − T_e), T_e = 5 °C, T_c = θo + 12 K; COP_heat = 0.45·T_c/(T_c − T_e), T_c = 45 °C, T_e = θo − 8 K[9]Assumption: the building size, envelope, plant capacities, heat-gain densities, the Carnot fraction, fan power, schedules and weather are illustrative values for a generic office; the heat-balance, comfort, ventilation and CO₂ relations are the published ones.
The meter records the average power of every 15 minutes; a demand charge bills the highest one, so a single bad quarter-hour sets the charge.
P = Q_cool/COP_cool + Q_heat/COP_heat + fans (6 kW + 1.5 kW per m³/s outdoor air) + lights + plugs; billing demand = max over 15-min intervals of P[11]Assumption: the building size, envelope, plant capacities, heat-gain densities, the Carnot fraction, fan power, schedules and weather are illustrative values for a generic office; the heat-balance, comfort, ventilation and CO₂ relations are the published ones.
Pre-cooling stores 'cold' in the concrete overnight, when the chiller is efficient and demand is low; in the afternoon the cool structure soaks up heat the plant would otherwise remove.
cool the mass before the peak (θm ↓), then raise the setpoint: H_ms(θs − θm) absorbs part of the afternoon gain instead of the plant[10]
Optimal start: the colder the structure and the weather, the longer the recovery from setback, so the plant must start that much earlier.
recovery time after setback grows with (θ_set − θm) and with colder weather; plant start = occupancy − recovery time[12][1]
Other operating constants used by the model.
5,000 m² office, 3 m storeys · windows 800 m² at U 1.8 (H_w 1,440 W/K), opaque envelope 1,000 W/K, infiltration 0.1 ACH · cooling capacity 350 kW, heat pump 300 kW (thermal) · unoccupied limits 15/30 °C · occupancy 07:30–18:30, attendance ~ N(85 %, 5 %) · outdoor temperature cosine + N(0, 0.8 K) hourly · RH 50 %, 0.1 m/s, 1.2 metAssumption: the building size, envelope, plant capacities, heat-gain densities, the Carnot fraction, fan power, schedules and weather are illustrative values for a generic office; the heat-balance, comfort, ventilation and CO₂ relations are the published ones.
Randomness: a seeded mulberry32 generator; distributions used — uniform, exponential (inverse CDF), normal (Box–Muller), Poisson (Knuth). The seed is shown and shareable.
J. E. Seem, P. R. Armstrong, C. E. Hancock — Algorithms for predicting recovery time from night setback (optimal start) — ASHRAE Transactions 95(2), 1989