Collection of validation models
Information
This package contains validation models for the classes in
Buildings.Obsolete.DHC.ETS.Combined.Subsystems.
Note that most validation models contain simple input data
which may not be realistic, but for which the correct
output can be obtained through an analytic solution.
The examples plot various outputs, which have been verified against these
solutions. These model outputs are stored as reference data and
used for continuous validation whenever models in the library change.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
| Name |
Description |
Borefield
|
Validation of the base subsystem model with geothermal borefield |
Chiller
|
Validation of the base subsystem model with heat recovery chiller |
Validation of the base subsystem model with geothermal borefield
Information
This model validates
Buildings.Obsolete.DHC.ETS.Combined.Subsystems.Borefield.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
| Type | Name | Default | Description |
| Integer | nBorHol | 100 | Number of boreholes (must be a square number) |
| Distance | dxy | 6 | Distance in x-axis (and y-axis) between borehole axes [m] |
| Example | datBorFie | datBorFie(conDat=Buildings.F... | Borefield design data |
Modelica definition
model Borefield
extends Modelica.Icons.Example;
package Medium=
Buildings.Media.Water
;
parameter Integer nBorHol=100
;
parameter Modelica.Units.SI.Distance dxy=6
;
final parameter Modelica.Units.SI.Distance cooBor[nBorHol,2]=
Buildings.DHC.ETS.BaseClasses.computeCoordinates(
nBorHol, dxy) ;
Buildings.Obsolete.DHC.ETS.Combined.Subsystems.Borefield borFie(
redeclare final package Medium=Medium,
final datBorFie=datBorFie,
dp_nominal=5E4,
TBorWatEntMax=313.15)
;
Buildings.Fluid.Sources.Boundary_pT conWat(
redeclare package Medium=Medium,
use_T_in=true,
nPorts=2)
;
Buildings.Fluid.Sensors.TemperatureTwoPort senTInl(
redeclare final package Medium=Medium,
m_flow_nominal=borFie.pum.m_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort senTOut(
redeclare final package Medium=Medium,
m_flow_nominal=borFie.pum.m_flow_nominal)
;
parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Example datBorFie(
conDat=
Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example(
cooBor=cooBor,
dp_nominal=0))
;
Modelica.Blocks.Sources.TimeTable TInlVal(
y(
final unit="K",
displayUnit="degC"),
table=[
0,2;
2,2;
3,15;
7,15;
9,35;
10,45;
11,30;
20,30],
timeScale=1000,
offset=273.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant zer(
k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp u(
duration=1000,
startTime=2500)
;
equation
connect(senTInl.port_b,conWat.ports[1]);
connect(conWat.ports[2],senTOut.port_a);
connect(senTInl.port_a,borFie.port_a);
connect(borFie.port_b,senTOut.port_b);
connect(TInlVal.y,conWat.T_in);
connect(zer.y,borFie.yValIso_actual[2]);
connect(u.y,borFie.u);
connect(u.y,borFie.yValIso_actual[1]);
end Borefield;
Validation of the base subsystem model with heat recovery chiller
Information
This model validates
Buildings.Obsolete.DHC.ETS.Combined.Subsystems.Chiller.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
| Type | Name | Default | Description |
| Generic | datChi | datChi(QEva_flow_nominal=-1E... | Chiller performance data |
Modelica definition
model Chiller
extends Modelica.Icons.Example;
package Medium=
Buildings.Media.Water
;
parameter Buildings.Fluid.Chillers.Data.ElectricEIR.Generic datChi(
QEva_flow_nominal=-1E6,
COP_nominal=3,
PLRMax=1,
PLRMinUnl=0.3,
PLRMin=0.3,
etaMotor=1,
mEva_flow_nominal=30,
mCon_flow_nominal=30,
TEvaLvg_nominal=280.15,
capFunT={1,0,0,0,0,0},
EIRFunT={1,0,0,0,0,0},
EIRFunPLR={1,0,0},
TEvaLvgMin=276.15,
TEvaLvgMax=288.15,
TConEnt_nominal=313.15,
TConEntMin=303.15,
TConEntMax=333.15)
;
Buildings.Obsolete.DHC.ETS.Combined.Subsystems.Chiller chi(
redeclare final package Medium=Medium,
final dat=datChi,
dpCon_nominal=15E3,
dpEva_nominal=15E3)
;
Buildings.Fluid.Sources.Boundary_pT evaWat(
redeclare package Medium=Medium,
use_T_in=true,
nPorts=2)
;
Buildings.Fluid.Sources.Boundary_pT conWat(
redeclare package Medium=Medium,
use_T_in=true,
nPorts=2)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatSupSet(
k=7+273.15,
y(
final unit="K",
displayUnit="degC"))
;
Buildings.Fluid.Sensors.TemperatureTwoPort senTHeaWatSup(
redeclare final package Medium=Medium,
m_flow_nominal=datChi.mCon_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort senTChiWatSup(
redeclare final package Medium=Medium,
m_flow_nominal=datChi.mEva_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort senTHeaWatRet(
redeclare final package Medium=Medium,
m_flow_nominal=datChi.mCon_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort senTChiWatRet(
redeclare final package Medium=Medium,
m_flow_nominal=datChi.mEva_flow_nominal)
;
Modelica.Blocks.Sources.BooleanExpression uHea(
y=time < 4000)
;
Modelica.Blocks.Sources.BooleanExpression uCoo(
y=time >= 1000)
;
Modelica.Blocks.Sources.TimeTable THeaWatRet(
y(
final unit="K",
displayUnit="degC"),
table=[
0,44;
2,44;
3,34;
4.5,34;
5,14;
10,14],
timeScale=1000,
offset=273.15)
;
Modelica.Blocks.Sources.TimeTable TChiWatRet(
y(
final unit="K",
displayUnit="degC"),
table=[
0,9;
1,9;
2,14;
3,14;
4,11;
5,11],
timeScale=1000,
offset=273.15)
;
equation
connect(chi.port_bHeaWat,senTHeaWatSup.port_a);
connect(senTHeaWatSup.port_b,conWat.ports[1]);
connect(evaWat.ports[1],senTChiWatSup.port_b);
connect(senTChiWatSup.port_a,chi.port_bChiWat);
connect(conWat.ports[2],senTHeaWatRet.port_a);
connect(senTHeaWatRet.port_b,chi.port_aHeaWat);
connect(chi.port_aChiWat,senTChiWatRet.port_b);
connect(senTChiWatRet.port_a,evaWat.ports[2]);
connect(uCoo.y,chi.uCoo);
connect(uHea.y,chi.uHea);
connect(TChiWatSupSet.y,chi.TChiWatSupSet);
connect(THeaWatRet.y,conWat.T_in);
connect(TChiWatRet.y,evaWat.T_in);
end Chiller;