Collection of validation models
Information
This package contains validation models for the classes in
Buildings.Fluid.SolarCollectors.
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 |
ExtremeAmbientConditions
|
Validation model for to ensure that collectors do not freeze or boil |
FlatPlate
|
Validation model for FlatPlate |
Validation model for to ensure that collectors do not freeze or boil
Information
This model validates the correct implementation of the heat transfer
to the collector when ambient temperatures are very low or irradiation is very
large.
It applies a ramp boundary condition that reduces the ambient temperature
to -60ˆC to verify that the collector fluid temperature does not
drop below Medium.T_min
.
Afterwards, the solar irradiation is increased to overheat the collector.
If the fluid temperature approaches Medium.T_max
,
then the solar heat gain is reduced to zero.
Ensuring these bounds is important as otherwise, the collector model
would trigger an assertion and the simulation would stop.
The tested collector models are
Buildings.Fluid.SolarCollectors.ASHRAE93
and
Buildings.Fluid.SolarCollectors.EN12975.
Note that the medium has been declared
as Buildings.Media.Water(T_min=273.15, T_max=273.15+100)
to set the two bounds for the water temperature.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
replaceable package Medium | Buildings.Media.Water (T_min... | Medium in the system |
Connectors
Type | Name | Description |
replaceable package Medium | Medium in the system |
Bus | weaBus | |
Modelica definition
model ExtremeAmbientConditions
extends Modelica.Icons.Example;
replaceable package Medium =
Buildings.Media.Water (T_min=273.15,T_max=273.15 +
100) ;
ASHRAE93 solAsh(
redeclare package Medium =
Medium,
shaCoe=0,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
rho=0.2,
nColType=Buildings.Fluid.SolarCollectors.Types.NumberSelection.Number,
sysConfig=Buildings.Fluid.SolarCollectors.Types.SystemConfiguration.Series,
per=
Buildings.Fluid.SolarCollectors.Data.GlazedFlatPlate.FP_GuangdongFSPTY95
(),
nPanels=1,
lat=0.73097781993588,
azi=0.3,
til=0.5,
T_start=313.15) ;
EN12975 solEn(
redeclare package Medium =
Medium,
shaCoe=0,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
rho=0.2,
nColType=Buildings.Fluid.SolarCollectors.Types.NumberSelection.Number,
sysConfig=Buildings.Fluid.SolarCollectors.Types.SystemConfiguration.Series,
nPanels=1,
lat=0.73097781993588,
azi=0.3,
til=0.5,
per=
Buildings.Fluid.SolarCollectors.Data.Concentrating.C_VerificationModel(),
T_start=313.15) ;
Sources.MassFlowSource_T sou(
redeclare package Medium =
Medium,
nPorts=1,
m_flow=0) ;
Sources.Boundary_pT sou1(
redeclare package Medium =
Medium,
p(displayUnit="Pa"),
use_p_in=false,
nPorts=2) ;
Modelica.Blocks.Sources.Ramp TAmb(
offset=273.15 + 40,
height=-100,
duration=10*3600) ;
Modelica.Blocks.Sources.Ramp HSol(
duration=12*3600,
height=1000,
startTime=10*3600) ;
Sources.MassFlowSource_T sou2(
redeclare package Medium =
Medium,
nPorts=1,
m_flow=0) ;
BoundaryConditions.WeatherData.Bus weaBus;
Modelica.Blocks.Sources.Constant const(k=0) ;
Modelica.Blocks.Sources.Constant solTim(k=12*3600) ;
equation
connect(sou.ports[1], solAsh.port_a);
connect(sou2.ports[1], solEn.port_a);
connect(solAsh.port_b, sou1.ports[1]);
connect(solEn.port_b, sou1.ports[2]);
connect(weaBus, solAsh.weaBus);
connect(TAmb.y, weaBus.TDryBul);
connect(HSol.y, weaBus.HDifHor);
connect(HSol.y, weaBus.HGloHor);
connect(const.y, weaBus.solZen);
connect(const.y, weaBus.cloTim);
connect(solTim.y, weaBus.solTim);
connect(HSol.y, weaBus.HDirNor);
connect(solEn.weaBus, weaBus);
end ExtremeAmbientConditions;
Validation model for FlatPlate
Information
This model was used to validate the
Buildings.Fluid.SolarCollectors.ASHRAE93 solar collector model
against TRNSYS data. Data files are used to ensure that the
Buildings.Fluid.SolarCollectors.ASHRAE93 solar collector model and
the TRNSYS model use the same inlet and weather conditions. The
solar collector model must reference the
Buildings.Fluid.SolarCollectors.Data.GlazedFlatPlate.FP_TRNSYSValidation
data record when comparing model results to the stored TRNSYS results.
The solar collector temperature of the Modelica model has a spike
in the morning. At this time, there is solar irradiation on the collector
but no mass flow rate, which leads to an increase in temperature.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
replaceable package Medium | Buildings.Media.Water | Medium in the system |
Connectors
Type | Name | Description |
replaceable package Medium | Medium in the system |
Modelica definition
model FlatPlate
extends Modelica.Icons.Example;
replaceable package Medium =
Buildings.Media.Water ;
Buildings.Fluid.SolarCollectors.ASHRAE93 solCol(
redeclare package Medium =
Medium,
shaCoe=0,
azi=0,
per=
Buildings.Fluid.SolarCollectors.Data.GlazedFlatPlate.FP_TRNSYSValidation
(),
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
rho=0.2,
nColType=Buildings.Fluid.SolarCollectors.Types.NumberSelection.Number,
nPanels=1,
nSeg=30,
lat=0.6457718232379,
til=0.78539816339745) ;
Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam="modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
;
Buildings.Fluid.Sources.Boundary_pT sou(
redeclare package Medium =
Medium,
use_p_in=false,
p(displayUnit="Pa") = 101325,
nPorts=1) ;
Buildings.Fluid.Sources.MassFlowSource_T bou(
nPorts=1,
redeclare package Medium =
Medium,
use_m_flow_in=true,
use_T_in=true) ;
Modelica.Blocks.Sources.CombiTimeTable datRea(
tableOnFile=true,
tableName="TRNSYS",
columns=2:5,
fileName=
Modelica.Utilities.Files.loadResource("modelica://Buildings/Fluid/SolarCollectors/Examples/ValidationData/TRNSYSAnnualData.txt"),
smoothness=Modelica.Blocks.Types.Smoothness.ConstantSegments) ;
Modelica.Blocks.Math.Add add ;
Modelica.Blocks.Sources.Constant const(k=273.15) ;
equation
connect(weaDat.weaBus, solCol.weaBus);
connect(bou.ports[1], solCol.port_a);
connect(const.y, add.u2);
connect(add.y, bou.T_in);
connect(datRea.y[1], add.u1);
connect(datRea.y[4], bou.m_flow_in);
connect(sou.ports[1], solCol.port_b);
end FlatPlate;