Skip to content

Add airco heating - #3496

Open
jort-wolda wants to merge 5 commits into
masterfrom
add-airco-heating
Open

jort-wolda wants to merge 5 commits into
masterfrom
add-airco-heating

Conversation

@jort-wolda

@jort-wolda jort-wolda commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Context

Two new heating technologies have been added. This makes it possible to model air conditioning as a heating technology. Either as a hybrid (with a gas combi boiler back-up) or as a full electric solution with a heat pump boiler for water heating.

So far these new technologies can only be used for households.

Implemented changes

  • Added 8 nodes: 2 converter nodes for water heating, 2 for space heating and all have their respective aggregator nodes
  • Added edges between all relevant nodes
  • Changed position of existing nodes so it doesn't overlap
  • Created new input sliders which let you set the technology shares
  • Created new input sliders which let you change the capacity of the new technologies
  • Added queries for existing space heating charts, to also include the airco data
  • Added queries to incorporate the new technologies in the households space heating merit order

Related

Closes issue ...

Goes with pull requests:

Checklist

  • I have tested these changes
  • I have updated documentation as needed
  • I have tagged the relevant people for review

- renamed the nodes and edges for arco + gas to include the word 'hybrid'. This way, fever can recognize it as a combined producer.
- Made queries to include airco heating in the existing chart: Number of residences per space heating technology
- Made queries to include airco heating in the residential space heating merit order
- Added inputs to let users change the capacities of airco heating
- Added new technologies to households_hot_water_producer_order
- ht_deliver_system instead of mt
- Renamed inputs to align with existing naming convention
- Made some changes to node values (heat_output_capacity of 4 nodes)
- Added two edges that have no real function as of right now as the demand is hardcoded to be zero. This is for the hybrid airco + heat pump, the water heater only runs on gas but since it is modelled as a hybrid with (0) demand for electricity and ambient heat. The electricity and ambient heat edges are added.
@mabijkerk

Copy link
Copy Markdown
Member

I had AI review this PR and have the following feedback. @jort-wolda could you look into this:

1. Hot water gas efficiency is ignored in the future year (bug)

graphs/energy/nodes/households/households_water_heater_hybrid_airconditioning_combined_network_gas.ad:5

The node sets output.useable_heat = 0.9 as a single value. ETEngine handles any node with hybrid in its key as a hybrid heat pump (HHPAdapter). That code only reads per-carrier output efficiencies and uses 1.0 when there is just one value. It also forces the node's output conversion to 1.0.

Effect: in the future year the combi boiler makes hot water at 100% efficiency instead of 90%, so household gas demand for hot water comes out about 10% too low. The present year still uses 0.9, so the two years don't match.

Fix: use per-carrier efficiencies, like the existing hybrid does:

- output.useable_heat.ambient_heat = 1.0
- output.useable_heat.electricity = 1.0
- output.useable_heat.network_gas = 0.9

2. Airco capacity slider also shrinks the separate heat pump boiler

inputs/demand/households/households_technologies/households_heater_airconditioning_with_heat_pump_boiler_heat_output_capacity.ad:11

The airco and the heat pump boiler are two separate devices: the space heater has no fever.alias_of, and the boiler has its own capacity (0.7 kW electric, 7.8 kW heat). The capacity input still does two things to the boiler:

  • copies the airco's kW onto the boiler's heat_output_capacity
  • scales the boiler's fever.capacity.electricity by the airco's relative change

Effect: lowering the airco from 8 kW to 4 kW halves the boiler's electric capacity (0.7 → 0.35 kW), which can leave households short of hot water. This pattern was copied from the regular air heat pump, where space heating and hot water are one device, so it's correct there but not here.

Fix: only update the space heater (and its fever capacity) in this input. If the boiler needs its own capacity slider, add a separate input for it.

3. Airco technologies are not in the shared heat pump inputs (known issue, to be fixed later)

inputs/costs_efficiencies/investment_costs_electric_heat_pumps.ad:3

The new airco nodes aren't included in the inputs that act on all household heat pumps:

  • investment_costs_electric_heat_pumps
  • flexibility_heat_pump_space_heating_cop_cutoff_gas
  • flexibility_heat_pump_water_heating_cop_cutoff

Effect: changing heat pump investment costs or the COP cutoff affects every heat pump except the airco technologies.

Known limitation, will be fixed in a follow-up.

4. Default capacities of the space and water heater nodes don't match

graphs/energy/nodes/households/households_water_heater_hybrid_airconditioning_combined_network_gas.ad:39

For the airco + combi boiler, the space heater defaults to heat_output_capacity = 0.003984 (3.98 kW) and the water heater to 0.01980 (19.8 kW). The capacity input writes the same value to both. This PR aligned the existing hybrid to an identical 0.0046 on both nodes for this reason.

Effect: as soon as the capacity slider is touched, even at its start value, the water heater drops from 19.8 to about 4 kW, and capacity-based outputs (such as installed capacity) jump.

Fix: give both nodes the same default heat_output_capacity.

@jort-wolda

Copy link
Copy Markdown
Contributor Author

1. Hot water gas efficiency

Fixed, had to replace '- output.useable_heat = 0.9' by '- output.useable_heat.network_gas = 0.9'.

2. Airco capacity slider

For hybrid air_water heat pumps, the capacity slider reduces the capacity of both the heat pump and the gas boiler as well. In that sense it is consistent to reduce the heat pump boiler with the airco too, you reduce the capacity of the entire heating system with these sliders. It would be good to separate this, but the current modelling choice is actually more consistent with the rest of the heaters. If decided, could be changed easily.

3. Investment costs and COP cutoff

Known, out of scope

4. Default capacities

This is an issue that arose with the last commit. Changed it now so that both follow the heat_output_capacity of the space heater. This is the convention for other hybrids as well. However, it is a somewhat odd convention in my opinion. Another possible solution is to have the slider not use update() but update_with_factor(), so that both capacities can change and will do so with respect to their original capacity. Since it heat_output_capacity does not influence the fever calculation it does not to matter much.
It should be looked into further what the actual effects are of having different values for heat_output_capacity for space and water of the same hybrid unit in general. For now sticking to convention.

- Added 'output.useable_heat.network_gas = 0.9' to the water heater hybrid node
- Alligned heat_output_capacity of water heater parts to the space heater parts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants