Dynamic heat pump simulator

Explore continuous vs intermittent heating, temperature set-backs and schedules.

Please help improve this open source heat pump simulator, see source code below.


Name Mean temp Max temp Electric Heat COP Cost Solar offset Solar saving Agile (2024)
Baseline {{ baseline.mean_room_temp | toFixed(2) }} °C {{ baseline.max_room_temp | toFixed(2) }} °C {{ baseline.elec_kwh | toFixed(3) }} kWh {{ baseline.heat_kwh | toFixed(3) }} kWh {{ (baseline.heat_kwh/baseline.elec_kwh) | toFixed(2) }} £{{ baseline.total_cost | toFixed(2) }} {{ baseline.solar_elec_kwh | toFixed(3) }} kWh £{{ baseline.solar_cost | toFixed(2) }} £{{ baseline.agile_cost | toFixed(2) }}
Current {{ results.mean_room_temp | toFixed(2) }} °C {{ results.max_room_temp | toFixed(2) }} °C {{ results.elec_kwh | toFixed(3) }} kWh {{ results.heat_kwh | toFixed(3) }} kWh {{ (results.heat_kwh/results.elec_kwh) | toFixed(2) }} £{{ results.total_cost | toFixed(2) }} {{ results.solar_elec_kwh | toFixed(3) }} kWh £{{ results.solar_cost | toFixed(2) }} £{{ results.agile_cost | toFixed(2) }}
Saving {{ (results.mean_room_temp-baseline.mean_room_temp) | toFixed(2) }} °C {{ (results.max_room_temp-baseline.max_room_temp) | toFixed(2) }} °C {{ (results.elec_kwh-baseline.elec_kwh)*-1 | toFixed(3) }} kWh ({{ ((results.elec_kwh-baseline.elec_kwh)/baseline.elec_kwh*-100) | toFixed(1) }}%) {{ (results.heat_kwh-baseline.heat_kwh)*-1 | toFixed(3) }} kWh ({{ ((results.heat_kwh-baseline.heat_kwh)/baseline.heat_kwh*-100) | toFixed(1) }}%) {{ ((results.heat_kwh/results.elec_kwh)-(baseline.heat_kwh/baseline.elec_kwh)) | toFixed(2) }} £{{ (results.total_cost-baseline.total_cost)*-1 | toFixed(2) }} {{ (results.solar_elec_kwh-baseline.solar_elec_kwh) | toFixed(3) }} kWh £{{ (results.solar_cost-baseline.solar_cost) | toFixed(2) }} £{{ (results.agile_cost-baseline.agile_cost)*-1 | toFixed(2) }}
Weighted flow temperature Weighted outside temperature Weighted (flowT - outsideT) Weighted average % carnot
Full simulation {{ stats.flowT_weighted | toFixed(2) }} °C {{ stats.outsideT_weighted | toFixed(2) }} °C {{ stats.flowT_minus_outsideT_weighted | toFixed(2) }} °C {{ stats.wa_prc_carnot*100 | toFixed(1) }} %
Selected window only {{ stats.window_flowT_weighted | toFixed(2) }} °C {{ stats.window_outsideT_weighted| toFixed(2) }} °C {{ stats.window_flowT_minus_outsideT_weighted | toFixed(2) }} °C

Schedule

Time Set point Price
°C
Show target temperature on graph
Degree hours above set point when heat pump is running {{ stats.degree_hours_above_setpoint.toFixed(1) }}
Degree hours below set point {{ stats.degree_hours_below_setpoint.toFixed(1) }}
Room temp reached maximum of: {{ max_room_temp | toFixed(2) }} °C.

DHW Schedule

DHW not implemented yet, this just blocks out hot water period to see impact on room temperatures. Increase duration to enable.

Time Set point Duration
°C
seconds

Building fabric

W
W/K
Proportion W/K kWh/K
%
W/K
kWh/K


Kp
Ki
Kp
Ki
Kd

Curve automatically selected based on building heat loss, internal gains and heat emitter spec.

Limit by room set point
°C
%
Limit by room set point
°C

W
K
%
kW
W
L
%
W
W

°C
°C

Outside temperature percentiles

Use the following design temperatures when choosing design flow temperature for heat emitters.

Percentile Outside Temperature (°C)
99.6% {{ outsideT_996.toFixed(1) }} °C
99.0% {{ outsideT_990.toFixed(1) }} °C

Internal gains:

Body heat (approx 60W per person), Electric consumption for lights, appliances and cooking ~210W (5 kWh/d), solar gains could be added here too.

W

Solar gains:

Scale PV dataset for solar gains

kW

Solar gains utilisation:

Useful vs total gains

{{ results.utilised_solar_gains_kwh.toFixed(0) }} / {{ results.solar_gains_kwh.toFixed(0) }} kWh

Solar PV electrical output:

Scale PV dataset output to offset heat pump electricity consumption

kW