Buildings.Fluid.SolarCollectors.BaseClasses
Package with base classes for Buildings.Fluid.SolarCollectors
Information
This package contains base classes that are used to construct the models in Buildings.Fluid.SolarCollectors.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Package Content
Name | Description |
---|---|
![]() |
Calculate the heat loss of a solar collector per ASHRAE standard 93 |
![]() |
Calculate the solar heat gain of a solar collector per ASHRAE Standard 93 |
![]() |
Calculate the heat loss of a solar collector per EN12975 |
![]() |
Model calculating solar gains per the EN12975 standard |
![]() |
Function for incident angle modifier |
![]() |
Partial heat loss model on which ASHRAEHeatLoss and EN12975HeatLoss are based |
![]() |
Partial model for parameters |
![]() |
Partial model for solar collectors |
![]() |
Collection of models that illustrate model use and test models |
Buildings.Fluid.SolarCollectors.BaseClasses.ASHRAEHeatLoss
Calculate the heat loss of a solar collector per ASHRAE standard 93
Information
This component computes the heat loss from the solar thermal collector to the environment. It is designed for use with ratings data collected in accordance with ASHRAE Standard 93. A negative heat loss indicates that heat is being lost to the environment.
Model description
This model calculates the heat loss to the ambient, for each segment i ∈ {1, ..., nseg} where nseg is the number of segments, as
Qlos,i = -slope Ac ⁄ nseg (Tenv-Tflu,i)
where slope < 0 is the slope for the heat loss as specified in the ratings data, Ac is the collector area, Tenv is the environment temperature, and Tflu,i is the fluid temperature in segment i ∈ {1, ..., nseg}.
This model reduces the heat loss rate to 0 when the fluid temperature is within 1 Kelvin of the minimum temperature of the medium model. The calculation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
Implementation
ASHRAE uses the collector fluid inlet temperature to compute the heat loss (see Duffie and Beckmann, p. 293). However, unless the environment temperature which was present during the collector rating is known, which is not the case, one cannot compute a log mean temperature difference that would improve the UA calculation. Hence, this model is using the fluid temperature of each segment to compute the heat loss to the environment.
References
ASHRAE 93-2010 -- Methods of Testing to Determine the Thermal Performance of Solar Collectors (ANSI approved).
J.A. Duffie and W.A. Beckman 2006, Solar Engineering of Thermal Processes (3rd Edition), John Wiley & Sons, Inc.
Extends from Buildings.Fluid.SolarCollectors.BaseClasses.PartialHeatLoss (Partial heat loss model on which ASHRAEHeatLoss and EN12975HeatLoss are based).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
replaceable package Medium | PartialMedium | Medium in the component | |
CoefficientOfHeatTransfer | slope | Slope from ratings data [W/(m2.K)] |
Connectors
Type | Name | Description |
---|---|---|
input RealInput | TEnv | Temperature of surrounding environment [K] |
input RealInput | TFlu[nSeg] | Temperature of the heat transfer fluid [K] |
output RealOutput | QLos_flow[nSeg] | Limited heat loss rate at current conditions [W] |
Modelica definition
Buildings.Fluid.SolarCollectors.BaseClasses.ASHRAESolarGain
Calculate the solar heat gain of a solar collector per ASHRAE Standard 93
Information
This component computes the solar heat gain of the solar thermal collector. It only calculates the solar heat gain without considering the heat loss to the environment. This model uses ratings data according to ASHRAE93. The solar heat gain is calculated using Equations 18.298-18.302 in the referenced EnergyPlus documentation.
The solar radiation absorbed by the panel is identified using Eq 18.302 from the EnergyPlus documentation. It is
Qflow[i]=Ac/nSeg (FR(τα) K(τα)net (Gdir (1-shaCoe)+Gdif+Ggnd))
where Qflow[i] is the heat gain in each segment, Ac is the area of the collector, nSeg is the user-specified number of segments in the simulation, FR(τα) is the maximum collector efficiency, K(τα)net is the incidence angle modifier, Gdir is the direct solar radiation, shaCoe is the user-specified shading coefficient, Gsky is the diffuse solar radiation from the sky, and Ggnd is the diffuse radiation from the ground.
The solar radiation equation indicates that the collector is divided into
multiple segments.
The number of segments used in the simulation is specified by the user via nSeg
.
The area of an individual segment is identified by dividing the collector area
by the total number of segments.
The term shaCoe
is used to define the percentage of the collector
that is shaded.
The incidence angle modifier used in the solar radiation equation is found using Eq 18.299 from the EnergyPlus documentation. It is
K(τα),net=(Gdir K(τα),dir +Gsky K(τα),sky +Ggnd K(τα),gnd) /(Gdir+Gsky+Ggnd)
where K(τα),net is the net incidence angle modified, Gdir is the (direct) beam radiation, K(τα),dir is the incidence angle modifier for (direct) beam radiation, Gsky is the diffuse radiation from the sky, K(τα),sky is the incidence angle modifier for radiation from the sky, Ggnd is the diffuse radiation from the ground, and K(τα),gnd is the incidence angle modifier for diffuse radiation from the ground.
Each incidence angle modifier is calculated using Eq 18.298 from the EnergyPlus documentation. It is
K(τα),x=1+b0 (1/cos(θ)-1)+b1 (1/cos(θ)-1)2
where x can refer to beam, sky or ground. θ is the incidence angle. For beam radiation θ is found via standard geometry. The incidence angle for sky and ground diffuse radiation are found using, respectively, Eq 18.300 and 18.301 from the EnergyPlus documentation. They are
θsky=59.68-0.1388 til+0.001497 til2
θgnd=90.0-0.5788 til+0.002693 til2
where θsky is the incidence angle for diffuse radiation from the sky, til is the tilt of the solar thermal collector, and θgnd is the incidence angle for diffuse radiation from the ground.
These two equations must be evaluated in degrees. The necessary unit conversions are made internally.
This model reduces the heat gain rate to 0 W when the fluid temperature is within 1 degree C of the maximum temperature of the medium model. The calculation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
References
ASHRAE 93-2010 -- Methods of Testing to Determine the Thermal Performance of Solar Collectors (ANSI approved).
EnergyPlus 23.2.0 Engineering Reference.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block), SolarCollectors.BaseClasses.PartialParameters (Partial model for parameters).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the system | |
Real | y_intercept | y intercept(maximum efficiency) [1] | |
Angle | incAngDat[:] | Incidence angle modifier spline derivative coefficients [rad] | |
Real | incAngModDat[size(incAngDat, 1)] | Incidence angle modifier spline derivative coefficients [1] | |
Angle | til | Surface tilt [rad] | |
Shading | |||
Boolean | use_shaCoe_in | false | Enable input connector for shaCoe |
Real | shaCoe | 0 | Shading coefficient 0.0: no shading, 1.0: full shading |
Connectors
Type | Name | Description |
---|---|---|
replaceable package Medium | Medium in the system | |
input RealInput | shaCoe_in | Shading coefficient |
input RealInput | TFlu[nSeg] | [K] |
input RealInput | HSkyDifTil | Diffuse solar irradiation on a tilted surfce from the sky [W/m2] |
input RealInput | HGroDifTil | Diffuse solar irradiation on a tilted surfce from the ground [W/m2] |
input RealInput | incAng | Incidence angle of the sun beam on a tilted surface [rad] |
input RealInput | HDirTil | Direct solar irradiation on a tilted surfce [W/m2] |
output RealOutput | QSol_flow[nSeg] | Solar heat gain [W] |
Modelica definition
Buildings.Fluid.SolarCollectors.BaseClasses.EN12975HeatLoss
Calculate the heat loss of a solar collector per EN12975
Information
This component computes the heat loss from the solar thermal collector to the environment. It is designed anticipating ratings data collected in accordance with EN12975. A negative heat loss indicates that heat is being lost to the environment.
This model calculates the heat loss to the ambient, for each segment i ∈ {1, ..., nseg} where nseg is the number of segments, as
Qlos,i = Ac ⁄ nseg (Tenv-Tflu,i) (a1 - a2 (Tenv-Tflu,i))
where a1 > 0 is the heat loss coefficient from EN12975 ratings data, a2 ≥ 0 is the temperature dependence of heat loss from EN12975 ratings data, Ac is the collector area, Tenv is the environment temperature and Tflu,i is the fluid temperature in segment i ∈ {1, ..., nseg}.
This model reduces the heat loss rate to 0 when the fluid temperature is within 1 Kelvin of the minimum temperature of the medium model. The calculation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
Implementation
EN 12975 uses the arithmetic average temperature of the collector fluid inlet and outlet temperature to compute the heat loss (see Duffie and Beckmann, p. 293). However, unless the environment temperature that was present during the collector rating is known, which is not the case, one cannot compute a log mean temperature difference that would improve the UA calculation. Hence, this model is using the fluid temperature of each segment to compute the heat loss to the environment. If the arithmetic average temperature were used, then segments at the collector outlet could be cooled below the ambient temperature, which violates the 2nd law of Thermodynamics.
References
CEN 2006, European Standard 12975-1:2006, European Committee for Standardization
Extends from Buildings.Fluid.SolarCollectors.BaseClasses.PartialHeatLoss (Partial heat loss model on which ASHRAEHeatLoss and EN12975HeatLoss are based).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
replaceable package Medium | PartialMedium | Medium in the component | |
CoefficientOfHeatTransfer | a1 | a1 from ratings data [W/(m2.K)] | |
Real | a2 | a2 from ratings data [W/(m2.K2)] |
Connectors
Type | Name | Description |
---|---|---|
input RealInput | TEnv | Temperature of surrounding environment [K] |
input RealInput | TFlu[nSeg] | Temperature of the heat transfer fluid [K] |
output RealOutput | QLos_flow[nSeg] | Limited heat loss rate at current conditions [W] |
Modelica definition
Buildings.Fluid.SolarCollectors.BaseClasses.EN12975SolarGain
Model calculating solar gains per the EN12975 standard
Information
This component computes the solar heat gain of the solar thermal collector. It only calculates the solar heat gain without considering the heat loss to the environment. This model uses ratings data according to EN12975. The solar heat gain is calculated using Equations 18.298 and 18.302 in the referenced EnergyPlus documentation. The calculation is modified to use coefficients from EN12975.
The equation used to calculate solar gain is a modified version of Eq 18.302 from the EnergyPlus documentation. It is
Qflow[i] = Ac/nSeg η0 (K (τα),dir Gdir (1-shaCoe)+Kdif G dif),
where Qflow[i] is the heat gained in each segment,
Ac is the area of the collector,
nSeg
is the number of segments in the collector,
η0 is the maximum efficiency of the collector,
K(τα),dir is the incidence angle modifier
for (direct) beam radiation,
Gdir is the current beam radiation on the collector,
shaCoe
is the shading coefficient,
Kdif is the incidence angle modifier
for diffuse radiation,
and Gdif is the diffuse radiation striking the surface.
The solar radiation equation indicates that the collector is divided into
multiple segments.
The number of segments used in the simulation is specified by the user via nSeg
.
The area of an individual segment is identified by dividing the collector area
by the total number of segments.
The term shaCoe
is used to define the percentage of the collector
that is shaded.
The main difference between this model and the ASHRAE model is the handling of diffuse radiation. The ASHRAE model contains calculated incidence angle modifiers for both sky and ground diffuse radiation, while this model uses a coefficient from test data for diffuse radiation.
The incidence angle modifier is calculated using Eq 18.298 from the EnergyPlus documentation. It is
K(τα),x=1+b0 (1/cos(θ)-1)+b1 (1/cos(θ)-1)2
where K(τα),dir is the incidence angle modifier for beam radiation, b0 is the first incidence angle modifier coefficient, b1 is the second incidence angle modifier coefficient, and θ is the incidence angle.
This model reduces the heat gain rate to 0 W when the fluid temperature is within 1 degree C of the maximum temperature of the medium model. The calculation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
References
CEN 2022, European Standard 12975:2022, European Committee for Standardization
EnergyPlus 23.2.0 Engineering Reference
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block), SolarCollectors.BaseClasses.PartialParameters (Partial model for parameters).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the system | |
Real | eta0 | Optical efficiency (maximum efficiency) [1] | |
Angle | incAngDat[:] | Incidence angle modifier spline derivative coefficients [rad] | |
Real | incAngModDat[size(incAngDat, 1)] | Incidence angle modifier spline derivative coefficients [1] | |
Real | iamDiff | Incidence angle modifier for diffuse radiation | |
Shading | |||
Boolean | use_shaCoe_in | false | Enables an input connector for shaCoe |
Real | shaCoe | 0 | Shading coefficient 0.0: no shading, 1.0: full shading |
Connectors
Type | Name | Description |
---|---|---|
replaceable package Medium | Medium in the system | |
input RealInput | shaCoe_in | Time varying input for the shading coefficient |
input RealInput | HSkyDifTil | Diffuse solar irradiation on a tilted surfce from the sky [W/m2] |
input RealInput | incAng | Incidence angle of the sun beam on a tilted surface [rad] |
input RealInput | HDirTil | Direct solar irradiation on a tilted surfce [W/m2] |
output RealOutput | QSol_flow[nSeg] | Solar heat gain [W] |
input RealInput | TFlu[nSeg] | [K] |
Modelica definition
Buildings.Fluid.SolarCollectors.BaseClasses.IAM
Function for incident angle modifier
Information
Overview
This function computes the incidence angle modifier for solar irradiation striking the surface of the solar thermal collector. It is calculated using cubic spline interpolation and measurement data for the incident angle modifier provided in data sheets.
References
EnergyPlus 23.2.0 Engineering Reference
Extends from Modelica.Icons.Function (Icon for functions).
Inputs
Type | Name | Default | Description |
---|---|---|---|
Angle | incAng | Incident angle [rad] | |
Angle | incAngDat[:] | Incident angle data [rad] | |
Real | incAngModDat[size(incAngDat, 1)] | Incident angle modifier data [1] | |
Real | dMonotone[size(incAngDat, 1)] | Incident angle modifier spline derivatives |
Outputs
Type | Name | Description |
---|---|---|
Real | incAngMod | Incident angle modifier coefficient |
Modelica definition
Buildings.Fluid.SolarCollectors.BaseClasses.PartialHeatLoss
Partial heat loss model on which ASHRAEHeatLoss and EN12975HeatLoss are based
Information
This component is a partial model used as the base for Buildings.Fluid.SolarCollectors.BaseClasses.ASHRAEHeatLoss and Buildings.Fluid.SolarCollectors.BaseClasses.EN12975HeatLoss. It contains the input, output and parameter declarations which are common to both models. More detailed information is available in the documentation of the extending classes.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block), SolarCollectors.BaseClasses.PartialParameters (Partial model for parameters).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the component |
Connectors
Type | Name | Description |
---|---|---|
replaceable package Medium | Medium in the component | |
input RealInput | TEnv | Temperature of surrounding environment [K] |
input RealInput | TFlu[nSeg] | Temperature of the heat transfer fluid [K] |
output RealOutput | QLos_flow[nSeg] | Limited heat loss rate at current conditions [W] |
Modelica definition
Buildings.Fluid.SolarCollectors.BaseClasses.PartialParameters
Partial model for parameters
Information
Partial parameters used in all solar collector models
Parameters
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
Modelica definition
Buildings.Fluid.SolarCollectors.BaseClasses.PartialSolarCollector
Partial model for solar collectors
Information
This component is a partial model of a solar thermal collector. It can be expanded to create solar collector models based on either ASHRAE93 or EN12975 ratings data.
References
EnergyPlus 23.2.0 Engineering Reference
Extends from Buildings.Fluid.Interfaces.LumpedVolumeDeclarations (Declarations for lumped volumes), Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters (Parameters for flow resistance for models with two ports), Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nSeg | 3 | Number of segments used to discretize the collector model |
Angle | azi | Surface azimuth (0 for south-facing; -90 degree for east-facing; +90 degree for west facing [rad] | |
Angle | til | Surface tilt (0 for horizontally mounted collector) [rad] | |
Real | rho | Ground reflectance [1] | |
HeatCapacity | CTot | if per.CTyp == Buildings.Flu... | Heat capacity of solar collector with fluid [J/K] |
GenericASHRAE93 | per | redeclare parameter Building... | Performance data |
Nominal condition | |||
PressureDifference | dp_nominal | dp_nominal_final | Pressure difference [Pa] |
MassFlowRate | m_flow_nominal | m_flow_nominal_final | Nominal mass flow rate [kg/s] |
Shading | |||
Boolean | use_shaCoe_in | false | Enables an input connector for shaCoe |
Real | shaCoe | 0 | Shading coefficient. 0.0: no shading, 1.0: full shading |
Area declarations | |||
NumberSelection | nColType | Buildings.Fluid.SolarCollect... | Selection of area specification format |
Integer | nPanels | 0 | Desired number of panels in the simulation |
Area | totalArea | 0 | Total area of panels in the simulation [m2] |
Configuration declarations | |||
SystemConfiguration | sysConfig | Buildings.Fluid.SolarCollect... | Selection of system configuration |
Integer | nPanelsPar | 0 | Number of array panels in parallel |
Dynamics | |||
Conservation equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Real | mSenFac | 1 | Factor for scaling the sensible thermal mass of the volume |
Advanced | |||
Dynamics | |||
Dynamics | massDynamics | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state |
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Initialization | |||
AbsolutePressure | p_start | Medium.p_default | Start value of pressure [Pa] |
Temperature | T_start | Medium.T_default | Start value of temperature [K] |
MassFraction | X_start[Medium.nX] | Medium.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C_start[Medium.nC] | fill(0, Medium.nC) | Start value of trace substances |
ExtraProperty | C_nominal[Medium.nC] | fill(1E-2, Medium.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Flow resistance | |||
Boolean | computeFlowResistance | (abs(dp_nominal) > Modelica.... | =true, compute flow resistance. Set to false to assume no friction |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Assumptions | |||
Boolean | allowFlowReversal | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | shaCoe_in | Shading coefficient |
Bus | weaBus | Weather data bus |