modelSingleZoneResidentialHydronic

Single zone residential hydronic example model

Extends from Modelica.Icons.Example (Icon for runnable examples).

Information

This is a single zone residential hydronic system model for WP 1.2 of IBPSA project 1.

Building Design and Use

Architecture

This building envelope model corresponds to the BESTEST case 900 test case. It consists of a single zone with a rectangular floor plan of 6 by 8 meters and a height of 2.7 m. The zone further consists of two south-oriented windows of 6 m2 each, which are modelled using a single window of 12 m2.

Constructions

The walls consist of 10 cm thick concrete blocks and 6 cm of foam insulation. For more details see IDEAS.Buildings.Validation.Data.Constructions.HeavyWall. The floor consists of 8 cm of concrete and 1 m of insulation, representing a perfectly insulated floor. The roof consists of a light construction and 11 cm of fibreglass.

Occupancy schedules

The zone is occupied by one person before 7 am and after 8 pm each weekday and full time during weekends.

Internal loads and schedules

There are no internal loads other than the occupants.

Climate data

The model uses a climate file containing one year of weather data for Brussels, Belgium.

HVAC System Design

Primary and secondary system designs

The model only has a primary heating system that heats the zone using a single radiator with thermostatic valve, a circulation pump and a water heater. The system is presented in Figure 1 below. The radiator nominal thermal power and heater maximum thermal power is 5 kW. The heating setpoint is set to 21 °C during occupied periods and 15 °C during unoccupied periods. The cooling setpoint is set to 24 °C during occupied peridos and 30 °C during unoccupied periods. The gas heater efficiency is computed using a polynomial curve and it uses a PI controller to modulate supply water temperature between 20 and 80 °C to track a reference for the operative zone temperature that equals the heating setpoint plus an offset of 0.1 °C by default.


image

Figure 1: System schematic.


Equipment specifications and performance maps

The heating system circulation pump has the default efficiency of the pump model, which is 49%; at the time of writing. The heater efficiency is computed using a polynomial curve.

Rule-based or local-loop controllers (if included)

The model assumes a pump with a constant head, which results in a fixed flow rate due to the fixed pressure drop coefficient of the radiator. The supply water temperature set point of the boiler is modulated using a PI controller that tracks zone operative temperature to follow the zone operative temperature setpoint, depicted as controller C1 in Figure 1 and shown in Figure 2 below. For baseline control, this setpoint is defined as the heating comfort setpoint plus an offset of 0.1 °C. The pump is switched on and off with hysteresis based on the indoor temperature with the heating set point as the low point and the cooling set point as the high point. It is assumed that the boiler exactly outputs the supply water temperature set point using an ideal controller depicted as C2 in Figure 1.


image

Figure 2: Controller C1.


Model IO's

Inputs

The model inputs are:

  • oveTSetHea_u [K] [min=288.15, max=296.15]: Zone operative temperature setpoint for heating
  • oveTSetCoo_u [K] [min=296.15, max=303.15]: Zone operative temperature setpoint for cooling
  • oveTSetSup_u [K] [min=293.15, max=353.15]: Supply temperature setpoint of the heater
  • ovePum_u [1] [min=0.0, max=1.0]: Integer signal to control the stage of the pump either on or off

Outputs

The model outputs are:

  • reaQHea_y [W] [min=None, max=None]: Heating thermal power
  • reaPPum_y [W] [min=None, max=None]: Pump electrical power
  • reaCO2RooAir_y [ppm] [min=None, max=None]: CO2 concentration in the zone
  • reaTRoo_y [K] [min=None, max=None]: Operative zone temperature
  • weaSta_reaWeaPAtm_y [Pa] [min=None, max=None]: Atmospheric pressure measurement
  • weaSta_reaWeaHGloHor_y [W/m2] [min=None, max=None]: Global horizontal solar irradiation measurement
  • weaSta_reaWeaNOpa_y [1] [min=None, max=None]: Opaque sky cover measurement
  • weaSta_reaWeaTBlaSky_y [K] [min=None, max=None]: Black-body sky temperature measurement
  • weaSta_reaWeaNTot_y [1] [min=None, max=None]: Sky cover measurement
  • weaSta_reaWeaSolAlt_y [rad] [min=None, max=None]: Solar altitude angle measurement
  • weaSta_reaWeaSolZen_y [rad] [min=None, max=None]: Solar zenith angle measurement
  • weaSta_reaWeaHHorIR_y [W/m2] [min=None, max=None]: Horizontal infrared irradiation measurement
  • weaSta_reaWeaSolTim_y [s] [min=None, max=None]: Solar time
  • weaSta_reaWeaCloTim_y [s] [min=None, max=None]: Day number with units of seconds
  • weaSta_reaWeaLon_y [rad] [min=None, max=None]: Longitude of the location
  • weaSta_reaWeaRelHum_y [1] [min=None, max=None]: Outside relative humidity measurement
  • weaSta_reaWeaSolDec_y [rad] [min=None, max=None]: Solar declination angle measurement
  • weaSta_reaWeaHDirNor_y [W/m2] [min=None, max=None]: Direct normal radiation measurement
  • weaSta_reaWeaWinDir_y [rad] [min=None, max=None]: Wind direction measurement
  • weaSta_reaWeaTWetBul_y [K] [min=None, max=None]: Wet bulb temperature measurement
  • weaSta_reaWeaTDewPoi_y [K] [min=None, max=None]: Dew point temperature measurement
  • weaSta_reaWeaWinSpe_y [m/s] [min=None, max=None]: Wind speed measurement
  • weaSta_reaWeaHDifHor_y [W/m2] [min=None, max=None]: Horizontal diffuse solar radiation measurement
  • weaSta_reaWeaLat_y [rad] [min=None, max=None]: Latitude of the location
  • weaSta_reaWeaTDryBul_y [K] [min=None, max=None]: Outside drybulb temperature measurement
  • weaSta_reaWeaCeiHei_y [m] [min=None, max=None]: Cloud cover ceiling height measurement
  • weaSta_reaWeaSolHouAng_y [rad] [min=None, max=None]: Solar hour angle measurement

Additional System Design

Lighting

No lighting model is included.

Shading

No shading model is included.

Model Implementation Details

Moist vs. dry air

The model uses moist air despite that no condensation is modelled in any of the used components.

Pressure-flow models

A simple, single circulation loop is used to model the heating system.

Infiltration models

Fixed air infiltration corresponding to an n50 value of 10 is modelled.

Scenario Information

Time Periods

The Peak Heat Day (specifier for /scenario API is 'peak_heat_day') period is:

    This testing time period is a two-week test with one-week warmup period utilizing baseline control. The two-week period is centered on the day with the maximum 15-minute system heating load in the year.
    Start Time: Day 311.
    End Time: Day 325.

The Typical Heat Day (specifier for /scenario API is 'typical_heat_day') period is:

    This testing time period is a two-week test with one-week warmup period utilizing baseline control. The two-week period is centered on the day with the maximum 15-minute system heating load that is closest from below to the median of all 15-minute maximum heating loads of all days in the year.
    Start Time: Day 334.
    End Time: Day 348.

Energy Pricing

All pricing scenarios include the same constant value for transmission fees and taxes of each commodity. The used value is the typical price that household users pay for the network, taxes and levies, as calculateed by Eurostat and obtained from: "The energy prices and costs in Europe report". For the assumed location of the test case, this value is of 0.20 EUR/kWh for electricity and of 0.03 EUR/kWh for gas.

The Constant Electricity Price (specifier for /scenario API is 'constant') profile is:

    The constant electricity price scenario uses a constant price of 0.0535 EUR/kWh, as obtained from the "Easy Indexed" deal for electricity (normal rate) in https://www.energyprice.be/products-list/Engie (accessed on June 2020). Adding up the transmission fees and taxes, the final constant electricity price is of 0.2535 EUR/kWh.

The Dynamic Electricity Price (specifier for /scenario API is 'dynamic') profile is:

    The dynamic electricity price scenario uses a dual rate of 0.0666 EUR/kWh during day time and 0.0383 EUR/kWh during night time, as obtained from the "Easy Indexed" deal for electricity (dual rate) in https://www.energyprice.be/products-list/Engie (accessed on June 2020). The on-peak daily period takes place between 7:00 a.m. and 10:00 p.m. The off-peak daily period takes place between 10:00 p.m. and 7:00 a.m. Adding up the transmission fees and taxes, the final dynamic electricity prices are of 0.2666 EUR/kWh during on-peak periods and of 0.2383 during off-peak periods.

The Highly Dynamic Electricity Price (specifier for /scenario API is 'highly_dynamic') profile is:

    The highly dynamic electricity price scenario is based on the the Belgian day-ahead energy prices as determined by the BELPEX wholescale electricity market in the year 2019. Obtained from: https://my.elexys.be/MarketInformation/SpotBelpex.aspx Notice that the same constant transmission fees and taxes of 0.20 EUR/kWh are added up on top of these prices.

The Gas Price profile is:

    The gas price is assumed constant and of 0.0198 EUR/kWh as obtained from the "Easy Indexed" deal for gas https://www.energyprice.be/products-list/Engie (accessed on June 2020). Adding up the transmission fees and taxes, the final constant gas price is of 0.0498 EUR/kWh.

Emission Factors

The Electricity Emissions Factor profile is:

The Gas Emissions Factor profile is:

Parameters

TypeNameDefaultDescription
Setpoints
Modelica.Units.SI.TemperatureTSetCooUno273.15 + 30Unoccupied cooling setpoint
Modelica.Units.SI.TemperatureTSetCooOcc273.15 + 24Occupied cooling setpoint
Modelica.Units.SI.TemperatureTSetHeaUno273.15 + 15Unoccupied heating setpoint
Modelica.Units.SI.TemperatureTSetHeaOcc273.15 + 21Occupied heating setpoint

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealOutputQThermal power use of heater
Modelica.Blocks.Interfaces.RealOutputTZoneZone operative temperature

Components

TypeNameDefaultDescription
StringtestModelica.Utilities.Files.loadResource("modelica://IDEAS/Resources/weatherdata/Uccle.TMY")This is to ensure that the weather file is loaded when encapsulating this model into an FMU
IDEAS.BoundaryConditions.SimInfoManagersimSimulation information manager for climate data
Modelica.Units.SI.Efficiencyeta{-6.017763e-11, 2.130271e-8, -3.058709e-6, 2.266453e-4, -9.048470e-3, 1.805752e-1, -4.540036e-1}*{TCorr^(6 - i) for i in 0:6}Boiler efficiency
RealTCorrmin(max(pump.heatPort.T - 273.15, 25), 75)Temperature within validity range of correlation
IDEAS.Buildings.Validation.Cases.Case900Templatecase900TemplateCase 900 BESTEST model
IDEAS.Fluid.HeatExchangers.Radiators.RadiatorEN442_2radRadiator
IDEAS.Fluid.HeatExchangers.Heater_TheaIdeal heater - pressure drop merged into radiator
Fluid.Movers.FlowControlled_dppumpHydronic pump
IDEAS.Fluid.Sources.Boundary_pTbouAbsolute pressure boundary
Utilities.Time.CalendarTimecalTim
Modelica.Blocks.Sources.RealExpressionyOccFixed schedule of 1 occupant between 7 am and 8 pm
IDEAS.Utilities.IO.SignalExchange.ReadreaTRooBlock for reading the operative zone temperature
IDEAS.Utilities.IO.SignalExchange.OverwriteoveTSetSupBlock for overwriting supply temperature control signal
Modelica.Blocks.Sources.ConstantoffSetOffset above heating temperature setpoint to ensure comfort
Utilities.IO.SignalExchange.ReadreaQHeaBlock for outputting the thermal power
Utilities.IO.SignalExchange.ReadreaPPumBlock for reading the pump electrical power
Modelica.Blocks.Math.RealToIntegerrealToInteger
Controls.Discrete.HysteresisReleaseconHysteresis controller for emission system
Utilities.IO.SignalExchange.OverwriteovePumBlock for overwriting pump control signal
Utilities.IO.SignalExchange.ReadreaCO2RooAirBlock for reading CO2 concentration in the zone
Modelica.Blocks.Sources.RealExpressionQGasPrimary gas thermal power
Utilities.IO.SignalExchange.OverwriteoveTSetCooOverwrite for zone cooling setpoint
Utilities.IO.SignalExchange.OverwriteoveTSetHeaOverwrite for zone heating setpoint
Modelica.Blocks.Sources.RealExpressionTSetCooCooling temperature setpoint with setback
Modelica.Blocks.Sources.RealExpressionTSetHeaHeating temperature setpoint with setback
Modelica.Blocks.Continuous.LimPIDconPIPI controller for the boiler supply water temperature
Modelica.Blocks.Math.Addadd
Utilities.IO.SignalExchange.WeatherStationweaStaBOPTEST weather station

Contents

NameDescription
MediumWaterWater medium
MediumAirAir medium

Revisions

  • October 30, 2024, by Lucas Verleyen:
    Updates according to IBPSA.
    See #1383 (and IBPSA, #1926).
  • December 2, 2021, by David Blum:
    Remove read blocks for control signals. This is for BOPTEST issue #364.
  • June 23, 2021, by David Blum:
    Add schematics to documentation and move heating set point offset to before overwrite block. This is for #1220.
  • April 22, 2021, by Javier Arroyo:
    Add time period documentation.
  • April 2, 2021 by Javier Arroyo
    Add CO2 to air medium.
  • February 22, 2021 by Javier Arroyo
    Add transmission fees and taxes to pricing scenarios.
  • December 1, 2020 by David Blum:
    Added weather station.
  • June 12, 2020 by Javier Arroyo:
    Implemented PI controller for boiler supply temperature.
  • June 2, 2020 by Javier Arroyo:
    Implemented temperature setpoint setback.
  • March 21, 2019 by Filip Jorissen:
    Revised implementation based on first review for #996.
  • January 22nd, 2019 by Filip Jorissen:
    Revised implementation by adding external inputs.
  • May 2, 2018 by Filip Jorissen:
    First implementation.