Example models integrating multiple components
Information
This package contains advanced examples illustrating the use of the models in
Buildings.Experimental.DHC.Loads.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
| Name |
Description |
CouplingRCZ1Valve
|
Example illustrating the coupling of a building model to heating water and chilled water loops |
CouplingRCZ6
|
Example illustrating the coupling of a building model to heating water and chilled water loops |
CouplingSpawnZ1
|
Example illustrating the coupling of a building model to heating water and chilled water loops |
CouplingSpawnZ6
|
Example illustrating the coupling of a building model to heating water and chilled water loops |
CouplingTimeSeries
|
Example illustrating the coupling of a building model to heating water and chilled water loops |
CouplingTimeSeriesSingleLoop
|
Example illustrating the coupling of a building model to heating water or chilled water loops |
BaseClasses
|
Package with base classes |
Example illustrating the coupling of a building model to heating water and chilled water loops
Information
This example illustrates the use of
Buildings.Experimental.DHC.Loads.BaseClasses.PartialBuilding,
Buildings.Experimental.DHC.Loads.BaseClasses.PartialTerminalUnit
and
Buildings.Experimental.DHC.Loads.BaseClasses.FlowDistribution
in a configuration with
-
a one-zone building model based on a one-element reduced order model, and
-
secondary pumps and mixing valves controlling the heating and chilled water
supply temperature.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model CouplingRCZ1Valve
extends Modelica.Icons.Example;
Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
calTSky=Buildings.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
computeWetBulbTemperature=false,
filNam=
Modelica.Utilities.Files.loadResource(
"modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"))
;
package Medium1=
Buildings.Media.Water
;
Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingRCZ1Valve
bui(
nPorts_aHeaWat=1,
nPorts_aChiWat=1,
nPorts_bHeaWat=1,
nPorts_bChiWat=1)
;
Buildings.Fluid.Sources.Boundary_pT sinHeaWat(
redeclare final package Medium=Medium1,
nPorts=1)
;
Modelica.Blocks.Sources.RealExpression THeaWatSup(
y=bui.terUni.T_aHeaWat_nominal)
;
Modelica.Blocks.Sources.RealExpression TChiWatSup(
y=bui.terUni.T_aChiWat_nominal)
;
Buildings.Fluid.Sources.Boundary_pT sinChiWat(
redeclare final package Medium=Medium1,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT supHeaWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT supChiWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
equation
connect(weaDat.weaBus,bui.weaBus);
connect(supHeaWat.T_in,THeaWatSup.y);
connect(TChiWatSup.y,supChiWat.T_in);
connect(supHeaWat.ports[1],bui.ports_aHeaWat[1]);
connect(supChiWat.ports[1],bui.ports_aChiWat[1]);
connect(bui.ports_bHeaWat[1],sinHeaWat.ports[1]);
connect(bui.ports_bChiWat[1],sinChiWat.ports[1]);
end CouplingRCZ1Valve;
Example illustrating the coupling of a building model to heating water and chilled water loops
Information
This example illustrates the use of
Buildings.Experimental.DHC.Loads.BaseClasses.PartialBuilding,
Buildings.Experimental.DHC.Loads.BaseClasses.PartialTerminalUnit
and
Buildings.Experimental.DHC.Loads.BaseClasses.FlowDistribution
in a configuration with
-
a six-zone building model based on a two-element reduced order model (from
GeoJSON export), and
-
secondary pumps.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model CouplingRCZ6
extends Modelica.Icons.Example;
package Medium1=
Buildings.Media.Water
;
Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
calTSky=Buildings.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
computeWetBulbTemperature=false,
filNam=
Modelica.Utilities.Files.loadResource(
"modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"))
;
Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingRCZ6
bui(
nPorts_aHeaWat=1,
nPorts_aChiWat=1,
nPorts_bHeaWat=1,
nPorts_bChiWat=1)
;
Buildings.Fluid.Sources.Boundary_pT sinHeaWat(
redeclare final package Medium=Medium1,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT sinChilWat(
redeclare final package Medium=Medium1,
nPorts=1)
;
Modelica.Blocks.Sources.RealExpression THeaWatSup(
y=
max(
bui.terUni.T_aHeaWat_nominal))
;
Modelica.Blocks.Sources.RealExpression TChiWatSup(
y=
min(
bui.terUni.T_aChiWat_nominal))
;
Fluid.Sources.Boundary_pT supHeaWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Fluid.Sources.Boundary_pT supChiWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
equation
connect(weaDat.weaBus,bui.weaBus);
connect(supHeaWat.T_in,THeaWatSup.y);
connect(TChiWatSup.y,supChiWat.T_in);
connect(supHeaWat.ports[1],bui.ports_aHeaWat[1]);
connect(supChiWat.ports[1],bui.ports_aChiWat[1]);
connect(bui.ports_bHeaWat[1],sinHeaWat.ports[1]);
connect(bui.ports_bChiWat[1],sinChilWat.ports[1]);
end CouplingRCZ6;
Example illustrating the coupling of a building model to heating water and chilled water loops
Information
This example illustrates the use of
Buildings.Experimental.DHC.Loads.BaseClasses.PartialBuilding,
Buildings.Experimental.DHC.Loads.BaseClasses.PartialTerminalUnit
and
Buildings.Experimental.DHC.Loads.BaseClasses.FlowDistribution
in a configuration with
-
a one-zone building model based on an EnergyPlus envelope model, and
-
no secondary pumps.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model CouplingSpawnZ1
extends Modelica.Icons.Example;
package Medium1=
Buildings.Media.Water
;
Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingSpawnZ1
bui(
nPorts_aHeaWat=1,
nPorts_aChiWat=1,
nPorts_bHeaWat=1,
nPorts_bChiWat=1)
;
Buildings.Fluid.Sources.MassFlowSource_T supHeaWat(
use_m_flow_in=true,
redeclare final package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Modelica.Blocks.Sources.RealExpression THeaWatSup(
y=bui.terUni.T_aHeaWat_nominal)
;
Modelica.Blocks.Sources.RealExpression mHeaWat_flow(
y=bui.disFloHea.mReqTot_flow)
;
Buildings.Fluid.Sources.MassFlowSource_T supChiWat(
use_m_flow_in=true,
redeclare final package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Modelica.Blocks.Sources.RealExpression TChiWatSup(
y=bui.terUni.T_aChiWat_nominal)
;
Modelica.Blocks.Sources.RealExpression mChiWat_flow(
y=bui.disFloCoo.mReqTot_flow)
;
Buildings.Fluid.Sources.Boundary_pT sinHeaWat(
redeclare package Medium=Medium1,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT sinChiWat(
redeclare package Medium=Medium1,
nPorts=1)
;
equation
connect(THeaWatSup.y,supHeaWat.T_in);
connect(mHeaWat_flow.y,supHeaWat.m_flow_in);
connect(TChiWatSup.y,supChiWat.T_in);
connect(mChiWat_flow.y,supChiWat.m_flow_in);
connect(supHeaWat.ports[1],bui.ports_aHeaWat[1]);
connect(supChiWat.ports[1],bui.ports_aChiWat[1]);
connect(bui.ports_bHeaWat[1],sinHeaWat.ports[1]);
connect(bui.ports_bChiWat[1],sinChiWat.ports[1]);
end CouplingSpawnZ1;
Example illustrating the coupling of a building model to heating water and chilled water loops
Information
This example illustrates the use of
Buildings.Experimental.DHC.Loads.BaseClasses.PartialBuilding,
Buildings.Experimental.DHC.Loads.BaseClasses.PartialTerminalUnit
and
Buildings.Experimental.DHC.Loads.BaseClasses.FlowDistribution
in a configuration with
-
a six-zone building model based on an EnergyPlus envelope model (from
GeoJSON export), and
-
secondary pumps.
Simulation with Dymola requires minimum version 2020x and setting
Hidden.AvoidDoubleComputation=true, see
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model CouplingSpawnZ6
extends Modelica.Icons.Example;
package Medium1=
Buildings.Media.Water
;
Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingSpawnZ6
bui(
nPorts_aHeaWat=1,
nPorts_aChiWat=1,
nPorts_bHeaWat=1,
nPorts_bChiWat=1)
;
Buildings.Fluid.Sources.Boundary_pT sinHeaWat(
redeclare final package Medium=Medium1,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT sinChiWat(
redeclare final package Medium=Medium1,
nPorts=1)
;
Modelica.Blocks.Sources.RealExpression THeaWatSup(
y=
max(
bui.terUni.T_aHeaWat_nominal))
;
Modelica.Blocks.Sources.RealExpression TChiWatSup(
y=
min(
bui.terUni.T_aChiWat_nominal))
;
Fluid.Sources.Boundary_pT supHeaWat(
redeclare final package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Fluid.Sources.Boundary_pT supChiWat(
redeclare final package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
equation
connect(supHeaWat.T_in,THeaWatSup.y);
connect(TChiWatSup.y,supChiWat.T_in);
connect(supHeaWat.ports[1],bui.ports_aHeaWat[1]);
connect(supChiWat.ports[1],bui.ports_aChiWat[1]);
connect(bui.ports_bHeaWat[1],sinHeaWat.ports[1]);
connect(sinChiWat.ports[1],bui.ports_bChiWat[1]);
end CouplingSpawnZ6;
Example illustrating the coupling of a building model to heating water and chilled water loops
Information
This example illustrates the use of
Buildings.Experimental.DHC.Loads.BaseClasses.PartialBuilding,
Buildings.Experimental.DHC.Loads.BaseClasses.PartialTerminalUnit
and
Buildings.Experimental.DHC.Loads.BaseClasses.FlowDistribution
in a configuration with
-
space heating and cooling loads provided as time series, and
-
secondary pumps.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
| Type | Name | Default | Description |
| Time | perAve | 600 | Period for time averaged variables [s] |
Modelica definition
model CouplingTimeSeries
extends Modelica.Icons.Example;
package Medium1=
Buildings.Media.Water
;
parameter Modelica.Units.SI.Time perAve=600
;
Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingTimeSeries
bui(
filNam="modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissResidential_20190916.mos",
nPorts_aHeaWat=1,
nPorts_aChiWat=1,
nPorts_bHeaWat=1,
nPorts_bChiWat=1)
;
Buildings.Fluid.Sources.Boundary_pT sinHeaWat(
redeclare package Medium=Medium1,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT sinChiWat(
redeclare package Medium=Medium1,
nPorts=1)
;
Modelica.Blocks.Sources.RealExpression THeaWatSup(
y=bui.T_aHeaWat_nominal)
;
Modelica.Blocks.Sources.RealExpression TChiWatSup(
y=bui.T_aChiWat_nominal)
;
Fluid.Sources.Boundary_pT supHeaWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Fluid.Sources.Boundary_pT supChiWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Modelica.Blocks.Continuous.Integrator EHeaReq(
y(unit="J"))
;
Modelica.Blocks.Continuous.Integrator EHeaAct(
y(unit="J"))
;
Modelica.Blocks.Continuous.Integrator ECooReq(
y(unit="J"))
;
Modelica.Blocks.Continuous.Integrator ECooAct(
y(unit="J"))
;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveHeaReq_flow(y(unit=
"W"),
final delta=perAve) ;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveHeaAct_flow(y(unit=
"W"),
final delta=perAve) ;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveCooReq_flow(y(unit=
"W"),
final delta=perAve) ;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveCooAct_flow(y(unit=
"W"),
final delta=perAve) ;
equation
connect(supHeaWat.T_in,THeaWatSup.y);
connect(TChiWatSup.y,supChiWat.T_in);
connect(supHeaWat.ports[1],bui.ports_aHeaWat[1]);
connect(supChiWat.ports[1],bui.ports_aChiWat[1]);
connect(bui.ports_bHeaWat[1],sinHeaWat.ports[1]);
connect(sinChiWat.ports[1],bui.ports_bChiWat[1]);
connect(bui.QHea_flow,EHeaAct.u);
connect(bui.QReqHea_flow,EHeaReq.u);
connect(bui.QReqCoo_flow,ECooReq.u);
connect(bui.QCoo_flow,ECooAct.u);
connect(bui.QReqHea_flow,QAveHeaReq_flow.u);
connect(bui.QHea_flow,QAveHeaAct_flow.u);
connect(bui.QReqCoo_flow,QAveCooReq_flow.u);
connect(bui.QCoo_flow,QAveCooAct_flow.u);
end CouplingTimeSeries;
Example illustrating the coupling of a building model to heating water or chilled water loops
Information
This example illustrates the use of
Buildings.Experimental.DHC.Loads.BaseClasses.PartialBuilding,
Buildings.Experimental.DHC.Loads.BaseClasses.PartialTerminalUnit
and
Buildings.Experimental.DHC.Loads.BaseClasses.FlowDistribution
in a configuration with
-
a single connection with a heating water distribution system, see
component
buiHea (resp. with a chilled water distribution
system, see component buiCoo),
-
space heating and cooling loads provided as time series, and
-
secondary pumps.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
| Type | Name | Default | Description |
| Time | perAve | 600 | Period for time averaged variables [s] |
Modelica definition
model CouplingTimeSeriesSingleLoop
extends Modelica.Icons.Example;
package Medium1=
Buildings.Media.Water
;
parameter Modelica.Units.SI.Time perAve=600
;
Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingTimeSeries
buiCoo(
have_heaWat=false,
filNam="modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissResidential_20190916.mos",
nPorts_aChiWat=1,
nPorts_bChiWat=1)
;
Buildings.Fluid.Sources.Boundary_pT sinChiWat(
redeclare package Medium=Medium1,
nPorts=1)
;
Modelica.Blocks.Sources.RealExpression TChiWatSup(
y=buiCoo.T_aChiWat_nominal)
;
Fluid.Sources.Boundary_pT supChiWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Modelica.Blocks.Continuous.Integrator ECooReq(
y(unit="J"))
;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveCooReq_flow(y(unit=
"W"),
final delta=perAve) ;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveCooAct_flow(y(unit=
"W"),
final delta=perAve) ;
Modelica.Blocks.Continuous.Integrator ECooAct(
y(unit="J"))
;
Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingTimeSeries
buiHea(
have_chiWat=false,
filNam="modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissResidential_20190916.mos",
nPorts_aChiWat=1,
nPorts_bChiWat=1,
nPorts_aHeaWat=1,
nPorts_bHeaWat=1)
;
Modelica.Blocks.Sources.RealExpression THeaWatSup(
y=buiHea.T_aHeaWat_nominal)
;
Fluid.Sources.Boundary_pT supHeaWat(
redeclare package Medium=Medium1,
use_T_in=true,
nPorts=1)
;
Fluid.Sources.Boundary_pT sinHeaWat(
redeclare package Medium=Medium1,
nPorts=1)
;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveHeaReq_flow(y(unit=
"W"),
final delta=perAve) ;
Modelica.Blocks.Continuous.Integrator EHeaReq(
y(unit="J"))
;
Modelica.Blocks.Continuous.Integrator EHeaAct(
y(unit="J"))
;
Buildings.Controls.OBC.CDL.Reals.MovingAverage QAveHeaAct_flow(y(unit=
"W"),
final delta=perAve) ;
equation
connect(TChiWatSup.y,supChiWat.T_in);
connect(supChiWat.ports[1],buiCoo.ports_aChiWat[1]);
connect(sinChiWat.ports[1],buiCoo.ports_bChiWat[1]);
connect(buiCoo.QReqCoo_flow,ECooReq.u);
connect(buiCoo.QReqCoo_flow,QAveCooReq_flow.u);
connect(buiCoo.QCoo_flow,ECooAct.u);
connect(buiCoo.QCoo_flow,QAveCooAct_flow.u);
connect(THeaWatSup.y,supHeaWat.T_in);
connect(supHeaWat.ports[1],buiHea.ports_aHeaWat[1]);
connect(buiHea.ports_bHeaWat[1],sinHeaWat.ports[1]);
connect(buiHea.QReqHea_flow,EHeaReq.u);
connect(buiHea.QReqHea_flow,QAveHeaReq_flow.u);
connect(buiHea.QHea_flow,EHeaAct.u);
connect(buiHea.QHea_flow,QAveHeaAct_flow.u);
end CouplingTimeSeriesSingleLoop;