modelBuildingTimeSeries

Building model with heating and/or cooling loads provided as time series

Extends from Buildings.DHC.Loads.BaseClasses.PartialBuilding (Partial class for building model).

Information

This is a simplified building model where the space heating and cooling loads are provided as time series. In order to approximate the emission characteristic of the building HVAC system, this model uses idealized fan coil models that are parameterized with the peak load, determined from the provided time series, and design values of the hot water and chilled water supply and return temperatures.

The time series that provide the loads are read from the file filNam. This file must have columns as shown in this example:

#1
#Heating, cooling and domestic hot water loads
#
#First column: Seconds in the year (loads are hourly)
#Second column: cooling loads in Watts (as negative numbers).
#Third column: space heating loads in Watts
#Fourth column: domestic hot water loads in Watts
#
#Peak space cooling load = -146960 Watts
#Peak space heating load = 167690 Watts
#Peak water heating load = 9390 Watts
double tab1(8760,4)
0;0;18230;0
3600;0;17520;0
7200;0;20170;0
10800;0;22450;0
[further rows omitted]
Specificallly, the format must be as follows:
  • The first column must be the time of the year in seconds.
  • If have_chiWat = true, then the next column must be the space cooling load in Watts. Note that cooling is a negative number.
    If have_chiWat = false, this column must be present but it will be ignored, and hence it can be set to any number such as 0.
  • If have_heaWat = true, the next column must be the space heating load in Watts.
    If have_heaWat = false, this column must be present but it will be ignored, and hence it can be set to any number such as 0.
  • If have_hotWat = true, the next column must be the domestic hot water load in Watts.
    If have_hotWat = false, this column must be present but it will be ignored, and hence it can be set to any number such as 0.

The entry double tab1(8760,4) shows how many columns and rows are present.

The header also needs to contain the lines that start with #Peak as shown in the example above.

Implementation details

The total space heating (resp. cooling) load is split between facMulHea (resp. facMulCoo) identical terminal units with heat transfer performance approximated based on design specifications of a reference terminal unit. It is not expected that the user modifies the default values that are proposed for facMulHea and facMulCoo unless detailed design data are available for the building HVAC system. In that latter case, the following set of parameters should be modified consistently to match the design data.

  • Hot water (resp. chilled water) supply and return temperature T_aHeaWat_nominal and T_bHeaWat_nominal (resp. T_aChiWat_nominal and T_bChiWat_nominal)
  • Terminal unit entering air temperature T_aLoaHea_nominal (resp. T_aLoaCoo_nominal) and humidity ratio w_aLoaCoo_nominal
  • Terminal unit air mass flow rate mLoaHea_flow_nominal (resp. mLoaCoo_flow_nominal)
  • Terminal unit scaling factor facMulHea (resp. facMulCoo)

For reference, the default reference terminal unit performance is based on manufacturer data (Carrier fan coil model 42NL/NH) at selection conditions as specified in the "Advanced" tab.

Parameters

TypeNameDefaultDescription
IntegernPorts_aHeaWat (from PartialBuilding)0Number of heating water inlet ports
IntegernPorts_bHeaWat (from PartialBuilding)0Number of heating water outlet ports
IntegernPorts_aChiWat (from PartialBuilding)0Number of chilled water inlet ports
IntegernPorts_bChiWat (from PartialBuilding)0Number of chilled water outlet ports
StringfilNamFile name with thermal loads as time series
Realk0.1Gain of controller
Modelica.Units.SI.TimeTi10Time constant of integrator block
Configuration
Booleanhave_heaWat (from PartialBuilding)falseSet to true if the building has heating water system
Booleanhave_chiWat (from PartialBuilding)falseSet to true if the building has chilled water system
Booleanhave_eleHea (from PartialBuilding)falseSet to true if the building has decentralized electric heating system
Booleanhave_eleCoo (from PartialBuilding)falseSet to true if the building has decentralized electric cooling system
Booleanhave_fan (from PartialBuilding)falseSet to true if fan power is computed
Booleanhave_pum (from PartialBuilding)falseSet to true if pump power is computed
Booleanhave_weaBus (from PartialBuilding)falseSet to true to use a weather bus
Booleanhave_heaLoa (from PartialBuilding)have_heaWat or have_eleHeaSet to true if the building has heating loads
Booleanhave_cooLoa (from PartialBuilding)have_chiWat or have_eleCooSet to true if the building has cooling loads
Booleanhave_hotWatfalseSet to true if SHW load is included in the time series
Scaling
RealfacMul (from PartialBuilding)1Multiplier factor
Assumptions
BooleanallowFlowReversal (from PartialBuilding)false= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced › Scaling
RealfacMulHeaQHea_flow_nominal/(QHea_flow_nominal_ref*abs(T_aLoaHea_nominal - T_aHeaWat_nominal)/abs(T_aLoaHea_nominal_ref - T_aHeaWat_nominal_ref)*mLoaHea_flow_nominal/mLoaHea_flow_nominal_ref)Heating terminal unit multiplier factor
RealfacMulCooQCoo_flow_nominal/(QCoo_flow_nominal_ref*abs(h_aLoaCoo_nominal - hSat_nominal)/abs(h_aLoaCoo_nominal_ref - hSat_nominal_ref)*mLoaCoo_flow_nominal/mLoaCoo_flow_nominal_ref)Cooling terminal unit scaling factor
Nominal condition
Modelica.Units.SI.TemperatureT_aHeaWat_nominal323.15Heating water inlet temperature at nominal conditions
Modelica.Units.SI.TemperatureT_bHeaWat_nominalT_aHeaWat_nominal - 10Heating water outlet temperature at nominal conditions
Modelica.Units.SI.TemperatureT_aChiWat_nominal280.15Chilled water inlet temperature at nominal conditions
Modelica.Units.SI.TemperatureT_bChiWat_nominalT_aChiWat_nominal + 5Chilled water outlet temperature at nominal conditions
Modelica.Units.SI.HeatFlowRateQCoo_flow_nominalif have_chiWat then Buildings.DHC.Loads.BaseClasses.getPeakLoad(string = "#Peak space cooling load", filNam = Modelica.Utilities.Files.loadResource(filNam)) else 0Design cooling heat flow rate (<=0)
Modelica.Units.SI.HeatFlowRateQHea_flow_nominalif have_heaWat then Buildings.DHC.Loads.BaseClasses.getPeakLoad(string = "#Peak space heating load", filNam = Modelica.Utilities.Files.loadResource(filNam)) else 0Design heating heat flow rate (>=0)
Modelica.Units.SI.MassFlowRatemChiWat_flow_nominalQCoo_flow_nominal/cp_default/(T_aChiWat_nominal - T_bChiWat_nominal)Chilled water mass flow rate at nominal conditions (all units)
Modelica.Units.SI.MassFlowRatemHeaWat_flow_nominalQHea_flow_nominal/cp_default/(T_aHeaWat_nominal - T_bHeaWat_nominal)Heating water mass flow rate at nominal conditions (all units)
Advanced › Nominal condition
Modelica.Units.SI.TemperatureT_aLoaHea_nominal293.15Load side inlet temperature at nominal conditions in heating mode
Modelica.Units.SI.TemperatureT_aLoaCoo_nominal298.15Load side inlet temperature at nominal conditions in cooling mode
Modelica.Units.SI.MassFractionw_aLoaCoo_nominal0.01Load side inlet humidity ratio at nominal conditions in cooling mode
Modelica.Units.SI.MassFlowRatemLoaHea_flow_nominal0.5Load side mass flow rate at nominal conditions in heating mode (single unit)
Modelica.Units.SI.MassFlowRatemLoaCoo_flow_nominalmLoaHea_flow_nominalLoad side mass flow rate at nominal conditions in cooling mode (single unit)
Advanced › Reference terminal unit performance
Modelica.Units.SI.TemperatureT_aHeaWat_nominal_ref323.15Heating water inlet temperature at nominal conditions of reference terminal unit
Modelica.Units.SI.TemperatureT_aLoaHea_nominal_ref293.15Load side inlet temperature at nominal conditions in heating mode of reference terminal unit
Modelica.Units.SI.MassFlowRatemLoaHea_flow_nominal_ref0.5Load side mass flow rate at nominal conditions in heating mode of reference terminal unit
Modelica.Units.SI.HeatFlowRateQHea_flow_nominal_ref4.5E3Heat flow at nominal conditions in heating mode of reference terminal unit
Modelica.Units.SI.TemperatureT_aChiWat_nominal_ref279.15Chilled water inlet temperature at nominal conditions of reference terminal unit
Modelica.Units.SI.TemperatureT_aLoaCoo_nominal_ref298.15Load side inlet temperature at nominal conditions in cooling mode of reference terminal unit
Modelica.Units.SI.MassFractionw_aLoaCoo_nominal_ref0.01Load side inlet humidity ratio at nominal conditions in cooling mode of reference terminal unit
Modelica.Units.SI.MassFlowRatemLoaCoo_flow_nominal_ref0.5Load side mass flow rate at nominal conditions in cooling mode of reference terminal unit
Modelica.Units.SI.HeatFlowRateQCoo_flow_nominal_ref-5.8E3Heat flow at nominal conditions in cooling mode of reference terminal unit

Connectors

TypeNameDefaultDescription
Buildings.BoundaryConditions.WeatherData.BusweaBus (from PartialBuilding)Weather data bus
Modelica.Fluid.Interfaces.FluidPorts_a[nPorts_aHeaWat]ports_aHeaWat (from PartialBuilding)Heating water inlet ports
Modelica.Fluid.Interfaces.FluidPorts_b[nPorts_bHeaWat]ports_bHeaWat (from PartialBuilding)Heating water outlet ports
Modelica.Fluid.Interfaces.FluidPorts_a[nPorts_aChiWat]ports_aChiWat (from PartialBuilding)Chilled water inlet ports
Modelica.Fluid.Interfaces.FluidPorts_b[nPorts_bChiWat]ports_bChiWat (from PartialBuilding)Chilled water outlet ports
Modelica.Blocks.Interfaces.RealOutputQHea_flow (from PartialBuilding)Total heating heat flow rate transferred to the loads (>=0)
Modelica.Blocks.Interfaces.RealOutputQCoo_flow (from PartialBuilding)Total cooling heat flow rate transferred to the loads (<=0)
Modelica.Blocks.Interfaces.RealOutputPHea (from PartialBuilding)Power drawn by decentralized heating system
Modelica.Blocks.Interfaces.RealOutputPCoo (from PartialBuilding)Power drawn by decentralized cooling system
Modelica.Blocks.Interfaces.RealOutputPFan (from PartialBuilding)Power drawn by fan motors
Modelica.Blocks.Interfaces.RealOutputPPum (from PartialBuilding)Power drawn by pump motors
Buildings.Controls.OBC.CDL.Interfaces.RealOutputQReqHotWat_flowSHW load
Buildings.Controls.OBC.CDL.Interfaces.RealOutputQReqHea_flowHeating load
Buildings.Controls.OBC.CDL.Interfaces.RealOutputQReqCoo_flowCooling load

Components

TypeNameDefaultDescription
Fluid.BaseClasses.MassFlowRateMultiplier[nPorts_aHeaWat]mulHeaWatInl (from PartialBuilding)Mass flow rate multiplier
Fluid.BaseClasses.MassFlowRateMultiplier[nPorts_aChiWat]mulChiWatInl (from PartialBuilding)Mass flow rate multiplier
Fluid.BaseClasses.MassFlowRateMultiplier[nPorts_bHeaWat]mulHeaWatOut (from PartialBuilding)Mass flow rate multiplier
Fluid.BaseClasses.MassFlowRateMultiplier[nPorts_bChiWat]mulChiWatOut (from PartialBuilding)Mass flow rate multiplier
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulQHea_flow (from PartialBuilding)Scaling
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulQCoo_flow (from PartialBuilding)Scaling
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulPHea (from PartialBuilding)Scaling
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulPCoo (from PartialBuilding)Scaling
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulPFan (from PartialBuilding)Scaling
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulPPum (from PartialBuilding)Scaling
Modelica.Blocks.Sources.CombiTimeTableloaReader for thermal loads (y[1] is cooling load, y[2] is space heating load, y[3] is domestic water heat load)
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantminTSetMinimum temperature set point
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantmaxTSetMaximum temperature set point
Buildings.DHC.Loads.BaseClasses.Validation.BaseClasses.FanCoil2PipeHeatingterUniHea
Buildings.DHC.Loads.BaseClasses.FlowDistributiondisFloHeaHeating water distribution system
Buildings.DHC.Loads.BaseClasses.FlowDistributiondisFloCooChilled water distribution system
Buildings.DHC.Loads.BaseClasses.Validation.BaseClasses.FanCoil2PipeCoolingterUniCoo
Buildings.Controls.OBC.CDL.Reals.AddaddPPumSum pump power
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantnoCooNo cooling system
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantnoHeaNo heating system
Buildings.Controls.OBC.CDL.Reals.AddaddPFanSum fan power
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulQReqHea_flowScaling
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulQReqCoo_flowScaling
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametermulQReqHot_flowScaling

Contents

NameDescription
Medium2

Revisions

  • May 3, 2023, by David Blum:
    Applied facMul to domestic hot water load.
    This is for issue 3379.
  • November 21, 2022, by David Blum:
    Scale facMulHea and facMulCoo with peak load.
    This is for issue 2302.
  • December 21, 2020, by Antoine Gautier:
    Refactored for optional hot water and multiplier factor.
    This is for issue 2291.
  • September 18, 2020, by Jianjun Hu:
    Changed flow distribution components and the terminal units to be conditional depending on if there is water-based heating, or cooling system. This is for issue 2147.
  • February 21, 2020, by Antoine Gautier:
    First implementation.