Package with base classes for Buildings.Fluid.SolarCollectors
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).
Name | Description |
---|---|
ASHRAEHeatLoss | Calculate the heat loss of a solar collector per ASHRAE standard 93 |
ASHRAESolarGain | Calculate the solar heat gain of a solar collector per ASHRAE Standard 93 |
EN12975HeatLoss | Calculate the heat loss of a solar collector per EN12975 |
EN12975SolarGain | Model calculating solar gains per the EN12975 standard |
PartialHeatLoss | Partial heat loss model on which ASHRAEHeatLoss and EN12975HeatLoss are based |
PartialParameters | Partial model for parameters |
PartialSolarCollector | Partial model for solar collectors |
IAM | Function for incident angle modifer |
Examples | Collection of models that illustrate model use and test models |
Calculate the heat loss of a solar collector per ASHRAE standard 93
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 QLos[i]
indicates that heat
is being lost to the environment.
This model calculates the heat lost from a multiple-segment model using ratings data based solely on the inlet temperature. As a result, the slope from the ratings data is converted to a UA value which, for a given number of segments, yields the same heat loss as the ratings data would at nominal conditions. The first three equations, which perform calculations at nominal conditions without a UA value, are based on equations 6.17.1 through 6.17.3 in Duffie and Beckman (2006). The UA value is identified using the system of equations below:
QUse,nom = Gnom Ac FR(τα) +
FRUL Ac (TIn,nom - TEnv,nom
)
TFluid,nom[nSeg]=TIn,nom+QUse,nom/(m
Flow,nomCp)
QLos,nom=-FRUL Ac (TIn,nom
-TEnv,nom)
TFluid,nom[i] = TFluid,nom[i-1] + (Gnom F
R(τα) Ac/nSeg - UA/nSeg (TFluid,nom[i-1]
-TEnv,nom))/(mFlow,nom cp)
QLoss,UA=UA/nSeg (TFluid,nom[i]-TEnv,nom)
sum(QLoss,UA[1:nSeg])=QLoss,nom
where QUse,nom is the useful heat gain at nominal conditions, Gnom is the nominal solar irradiance, Ac is the area of the collector, FR(τα) is the collector maximum efficiency, FR UL is the collector heat loss coefficient,TIn,nom is the nominal inlet temperature, T Env,nom is the ambient temperature at nominal conditions, T Fluid,nom[i] is the temperature of fluid in a given segment of the collector, mFlow,nom is the fluid flow at nominal conditions, Cp is the specific heat of the heated fluid, Q Loss,nom is the heat loss identified using the default value UA is the identified heat loss coefficient for a multiple-segment equivalent solar collector, nSeg is the number of segments in the simulation, and Q Loss,UA is the heat loss identified using the UA value.
The effective UA value is calculated at the beginning of the simulation and used as a constant through the rest of the simulation. The actual heat loss from the collector is calculated using
-QLoss[i] = UA/nSeg (TFluid[i] - TEnv)
where QLoss[i] is the heat loss from a given segment, UA is the heat loss coefficient for a multiple segments model, nSeg is the number of segments in the simulation, TFluid[i] is the temperature of the fluid in a given segment, and TEnv is the temperature of the surrounding air.
This model reduces the heat loss rate to 0 W when the fluid temperature is within 1 degree C of the minimum temperature of the medium model. The calucation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
J.A. Duffie and W.A. Beckman 2006, Solar Engineering of Thermal Processes (3rd Edition),
John Wiley & Sons, Inc.
ASHRAE 93-2010 -- Methods of Testing to Determine the Thermal Performance of Solar
Collectors (ANSI approved)
Extends from Buildings.Fluid.SolarCollectors.BaseClasses.PartialHeatLoss (Partial heat loss model on which ASHRAEHeatLoss and EN12975HeatLoss are based).
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
Real | y_intercept | Y intercept (Maximum efficiency) | |
replaceable package Medium | PartialMedium | Medium in the component | |
CoefficientOfHeatTransfer | slope | Slope from ratings data [W/(m2.K)] | |
Nominal condition | |||
Irradiance | G_nominal | Irradiance at nominal conditions [W/m2] | |
TemperatureDifference | dT_nominal | Ambient temperature at nomincal conditions [K] | |
MassFlowRate | m_flow_nominal | Fluid flow rate at nominal conditions [kg/s] |
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[nSeg] | Limited heat loss rate at current conditions [W] |
Calculate the solar heat gain of a solar collector per ASHRAE Standard 93
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 555 - 559 in the referenced EnergyPlus documentation.
The solar radiation absorbed by the panel is identified using Eq 559 from the EnergyPlus documentation. It is
QFlow[i]=Ac/nSeg (FR(τα) K(τα)net (GDir (1-shaCoe)+GDif,Sky+GDif,Gnd))
where QFlow[i] is the heat gain in each segment, A c 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, GDif,Sky is the diffuse solar radiation from the sky, and GDif,Gnd 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 (parameter: 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 556 from the EnergyPlus documentation. It is
K(τα),net=(GBeam K(τα), Beam+GDif,Sky K(τα),Sky+GDif,Gnd K(τα),Gnd) / (Gbeam+GDif,Sky+G Dif,Gnd)
where K(τα),net is the net incidence angle modified, GBeam is the beam radiation, K(τα),Beam is the incidence angle modifier for beam radiation, GDif,Sky is the diffuse radiation from the sky, K(τα),Sky is the incidence angle modifier for radiation from the sky, GDif, Gnd 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 555 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 557 and 558 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 calucation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
EnergyPlus 7.0.0 Engineering Reference,
October 13, 2011.
ASHRAE 93-2010 -- Methods of Testing to Determine the Thermal Performance of Solar
Collectors (ANSI approved)
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block), SolarCollectors.BaseClasses.PartialParameters (Partial model for parameters).
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
Real | y_intercept | Y intercept (Maximum efficiency) | |
Real | B0 | 1st incident angle modifer coefficient | |
Real | B1 | 2nd incident angle modifer coefficient | |
Angle | til | Surface tilt [rad] | |
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the system | |
Shading | |||
Boolean | use_shaCoe_in | false | Enable input connector for shaCoe |
Real | shaCoe | 0 | Shading coefficient 0.0: no shading, 1.0: full shading |
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] |
Calculate the heat loss of a solar collector per EN12975
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 QLos[i]
indicates that
heat is being lost to the environment.
This model calculates the heat lost from a multiple-segment model using ratings data based on the mean collector temperature. As a result, the slope from the ratings data must be converted to a UA value which, for a given number of segments, returns the same heat loss as the ratings data would at nominal conditions. The UA value is identified using the system of equations below:
QUse,nom = Gnom Ac FR
(τα) - C1 Ac (TMean,nom-
TEnv,nom)-C2 Ac (TMean,nom
-TEnv,nom)2
TFluid,nom[nSeg]=TMean,nom+QUse,nom/
(mFlow,nom Cp)
QLos,nom=-C1 Ac (TMean,nom-T
Env,nom)-C2 Ac (TMean,nom-
TEnv,nom)2
TFluid,nom[i] = TFluid,nom[i-1] + (Gnom
FR(τα) Ac/nSeg - UA/nSeg (TFluid,
nom[i-1]-TEnv,nom))/(mFlow,nom cp
)
QLoss,UA=UA/nSeg (TFluid,nom[i]-TEnv,nom
)
sum(QLoss,UA[1:nSeg])=QLoss,nom
where QUse,nom is the useful heat gain at nominal conditions,Gnom is the nominal solar irradiance, Ac is the area of the collector, FR (τα) is the collector maximum efficiency, C1 is the collector heat loss coefficient, C2 is the temperature dependance of the heat loss coefficient, TMean, nom is the nominal mean temperature of the solar collector, T Env,nom is the ambient temperature at nominal conditions, TFluid,nom[i] is the temperature of fluid in a given segment of the collector, mFlow,nom is the fluid flow at nominal conditions, Cp is the specific heat of the heated fluid, QLoss,nom is the heat loss identified using the default value UA is the identified heat loss coefficient for a multiple-segment equivalent solar collector, nSeg is the number of segments in the simulation, and QLoss,UA is the heat loss identified using the UA value.
The effective UA value is calculated at the beginning of the simulation and used as a constant through the rest of the simulation. The actual heat loss from the collector is calculated using
QLoss[i] = UA/nSeg (TFluid[i] - TEnv).
where QLoss[i] is the heat loss from a given segment, UA is the heat loss coefficient for a multiple segments model, nSeg is the number of segments in the simulation,TFluid [i] is the temperature of the fluid in a given segment, and TEnv is the temperature of the surrounding air.
This model reduces the heat loss rate to 0 W when the fluid temperature is within 1 degree C of the minimum temperature of the medium model. The calucation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
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).
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
Real | y_intercept | Y intercept (Maximum efficiency) | |
replaceable package Medium | PartialMedium | Medium in the component | |
CoefficientOfHeatTransfer | C1 | C1 from ratings data [W/(m2.K)] | |
Real | C2 | C2 from ratings data [W/(m2.K2)] | |
Nominal condition | |||
Irradiance | G_nominal | Irradiance at nominal conditions [W/m2] | |
TemperatureDifference | dT_nominal | Ambient temperature at nomincal conditions [K] | |
MassFlowRate | m_flow_nominal | Fluid flow rate at nominal conditions [kg/s] |
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[nSeg] | Limited heat loss rate at current conditions [W] |
Model calculating solar gains per the EN12975 standard
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 performs calculations using ratings data from EN12975. The solar heat gain is calculated using Equation 559 in the referenced EnergyPlus documentation. The calculation is modified somewhat to use coefficients from EN12975.
The equation used to calculate solar gain is a modified version of Eq 559 from the EnergyPlus documentation. It is
QFlow[i] = Ac/nSeg FR(τα) (K (τα),Beam GBeam (1-shaCoe)+KDiff G Diff),
where QFlow[i] is the heat gained in each segment, A
c is the area of the collector, nSeg
is the number of
segments in the collector, FR(τα) is the maximum
efficiency of the collector, K(τα),Beam is the
incidence angle modifier for beam radiation, GBeam is the
current beam radiation on the collector, shaCoe
is the shading
coefficient, KDiff is the incidence angle modifier for
diffuse radiation and GDiff 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
using the parameter nSeg
. The area of an individual segment is
identified by dividing the collector area by the total number of segments. The
parameter shaCoe
is used to define the percentage of the collector
which 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 for beam radiation is calculated using Eq 555 from the EnergyPlus documentation, as
K(τα),Beam=1+b0 (1/cos(θ)-1)+b1 (1/cos(θ)-1)2,
where K(τα),Beam is the incidence angle modifier for beam radiation, b0 is the first incidence angle modifier coefficient, θ is the incidence angle and b1 is the second incidence angle modifier coefficient.
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 calucation is performed using the Buildings.Utilities.Math.Functions.smoothHeaviside function.
EnergyPlus 7.0.0 Engineering Reference,
October 13, 2011.
CEN 2006, European Standard 12975-1:2006, European Committee for Standardization
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block), SolarCollectors.BaseClasses.PartialParameters (Partial model for parameters).
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
Real | y_intercept | Y intercept (Maximum efficiency) | |
Real | B0 | 1st incident angle modifer coefficient | |
Real | B1 | 2nd incident angle modifer coefficient | |
Real | iamDiff | Incidence angle modifier for diffuse radiation | |
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the system | |
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 |
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] |
Partial heat loss model on which ASHRAEHeatLoss and EN12975HeatLoss are based
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 for the extending classes.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block), SolarCollectors.BaseClasses.PartialParameters (Partial model for parameters).
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
Real | y_intercept | Y intercept (Maximum efficiency) | |
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the component | |
Nominal condition | |||
Irradiance | G_nominal | Irradiance at nominal conditions [W/m2] | |
TemperatureDifference | dT_nominal | Ambient temperature at nomincal conditions [K] | |
MassFlowRate | m_flow_nominal | Fluid flow rate at nominal conditions [kg/s] |
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[nSeg] | Limited heat loss rate at current conditions [W] |
Partial model for parameters
Partial parameters used in all solar collector models
Type | Name | Default | Description |
---|---|---|---|
Area | A_c | Area of the collector [m2] | |
Integer | nSeg | 3 | Number of segments |
Real | y_intercept | Y intercept (Maximum efficiency) |
Partial model for solar collectors
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.
1. As mentioned in the reference, the SRCC incident angle modifier equation
coefficients are only valid for incident angles of 60 degrees or less.
Because these curves behave poorly for angles greater than 60 degrees
the model does not calculatue either direct or diffuse solar radiation gains
when the incidence angle is greater than 60 degrees.
2. By default, the estimated heat capacity of the collector without fluid is
calculated based on the dry mass and the specific heat capacity of copper.
EnergyPlus 7.0.0 Engineering Reference,
October 13, 2011.
CEN 2006, European Standard 12975-1:2006, European Committee for Standardization
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 transporting fluid between two ports without storing mass or energy).
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 | lat | Latitude [rad] | |
Angle | azi | Surface azimuth [rad] | |
Angle | til | Surface tilt [rad] | |
Real | rho | Ground reflectance | |
HeatCapacity | C | 385*perPar.mDry | Heat capacity of solar collector without fluid (default: cp_copper*mDry*nPanels) [J/K] |
Nominal condition | |||
Pressure | dp_nominal | dp_nominal_final | Pressure [Pa] |
MassFlowRate | m_flow_nominal | perPar.mperA_flow_nominal*pe... | Nominal mass flow rate [kg/s] |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
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 |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
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 | true | =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 | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
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 |
Function for incident angle modifer
This function computes the incidence angle modifier for solar insolation striking the surface of the solar thermal collector. It is calculated using Eq 555 in the EnergyPlus 7.0.0 Engineering Reference.
As stated in EnergyPlus7.0.0 the incidence angle equation performs poorly at angles greater than 60 degrees. This model outputs 0 whenever the incidence angle is greater than 60 degrees.
EnergyPlus 7.0.0 Engineering Reference, October 13, 2011.
Type | Name | Default | Description |
---|---|---|---|
Angle | incAng | Incident angle [rad] | |
Real | B0 | 1st incident angle modifer coefficient | |
Real | B1 | 2nd incident angle modifer coefficient |
Type | Name | Description |
---|---|---|
Real | incAngMod | Incident angle modifier coefficient |