Buildings.Fluid.SolarCollectors.Validation

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
Buildings.Fluid.SolarCollectors.Validation.EN12975NPanels EN12975NPanels Validation model for collector according to EN12975 with different settings for nPanel
Buildings.Fluid.SolarCollectors.Validation.EN12975_Series EN12975_Series Validation model for collector according to EN12975 with different panels in series
Buildings.Fluid.SolarCollectors.Validation.ExtremeAmbientConditions ExtremeAmbientConditions Validation model for to ensure that collectors do not freeze or boil
Buildings.Fluid.SolarCollectors.Validation.FlatPlate FlatPlate Validation model for FlatPlate
Buildings.Fluid.SolarCollectors.Validation.FlatPlateNPanels FlatPlateNPanels Validation model for flat plate collector with different settings for nPanel

Buildings.Fluid.SolarCollectors.Validation.EN12975NPanels Buildings.Fluid.SolarCollectors.Validation.EN12975NPanels

Validation model for collector according to EN12975 with different settings for nPanel

Buildings.Fluid.SolarCollectors.Validation.EN12975NPanels

Information

This model validates the solar collector model Buildings.Fluid.SolarCollectors.EN12975 for the case where the number of panels is 1 for the instance solCol and 10 for the instance solCol1. The instances difHeaGai and difHeaLos compare the heat gain and heat loss between the two models. The output of these blocks should be zero, except for rounding errors.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
replaceable package MediumBuildings.Media.WaterMedium in the system
IntegernPanels10Number of panels
C_VerificationModeldatSolCol  

Connectors

TypeNameDescription
replaceable package MediumMedium in the system

Modelica definition

model EN12975NPanels "Validation model for collector according to EN12975 with different settings for nPanel" extends Modelica.Icons.Example; replaceable package Medium = Buildings.Media.Water "Medium in the system"; parameter Integer nPanels=10 "Number of panels"; Buildings.Fluid.SolarCollectors.EN12975 solCol( redeclare package Medium = Medium, per=datSolCol, shaCoe=0, azi=0, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, rho=0.2, nColType=Buildings.Fluid.SolarCollectors.Types.NumberSelection.Number, nPanels=1, nSeg=30, til=0.78539816339745) "Flat plate solar collector model, has been modified for validation purposes"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"), computeWetBulbTemperature=false) "Weather data file reader"; Buildings.Fluid.Sources.Boundary_pT sou( redeclare package Medium = Medium, use_p_in=false, p(displayUnit="Pa") = 101325, nPorts=1) "Outlet for water flow"; Buildings.Fluid.Sources.MassFlowSource_T bou( nPorts=1, redeclare package Medium = Medium, use_m_flow_in=true, use_T_in=false, T=303.15) "Inlet for water flow, at a prescribed flow rate and temperature"; Buildings.Fluid.SolarCollectors.EN12975 solCol1( redeclare package Medium = Medium, per=datSolCol, shaCoe=0, azi=0, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, rho=0.2, nColType=Buildings.Fluid.SolarCollectors.Types.NumberSelection.Number, nSeg=30, til=0.78539816339745, nPanels=nPanels) "Flat plate solar collector model, has been modified for validation purposes"; Buildings.Fluid.Sources.Boundary_pT sou1( redeclare package Medium = Medium, use_p_in=false, p(displayUnit="Pa") = 101325, nPorts=1) "Outlet for water flow"; Buildings.Fluid.Sources.MassFlowSource_T bou1( nPorts=1, redeclare package Medium = Medium, use_m_flow_in=true, use_T_in=false, T=303.15) "Inlet for water flow, at a prescribed flow rate and temperature"; Modelica.Blocks.Math.Gain gaiNPan(k=nPanels) "Gain for number of panels"; Modelica.Blocks.Sources.RealExpression difHeaGai(y=solCol.heaGai[30].Q_flow - solCol1.heaGai[30].Q_flow/nPanels) "Difference in heat gain at last panel between model with 1 and with 30 panels"; Modelica.Blocks.Sources.RealExpression difHeaLos(y=solCol.QLos[30].Q_flow - solCol1.QLos[30].Q_flow/nPanels) "Difference in heat loss at last panel between model with 1 and with 30 panels"; Modelica.Blocks.Sources.Constant m_flow_nominal(k=datSolCol.A*datSolCol.mperA_flow_nominal) "Nominal flow rate for one panel"; parameter Data.Concentrating.C_VerificationModel datSolCol; equation connect(weaDat.weaBus, solCol1.weaBus); connect(bou1.ports[1], solCol1.port_a); connect(sou1.ports[1], solCol1.port_b); connect(gaiNPan.y, bou1.m_flow_in); connect(solCol.port_a, bou.ports[1]); connect(solCol.port_b, sou.ports[1]); connect(solCol.weaBus, weaDat.weaBus); connect(m_flow_nominal.y, bou.m_flow_in); connect(gaiNPan.u, m_flow_nominal.y); end EN12975NPanels;

Buildings.Fluid.SolarCollectors.Validation.EN12975_Series Buildings.Fluid.SolarCollectors.Validation.EN12975_Series

Validation model for collector according to EN12975 with different panels in series

Buildings.Fluid.SolarCollectors.Validation.EN12975_Series

Information

This model validates the solar collector model Buildings.Fluid.SolarCollectors.EN12975 for the case where one model has multiple panels in series, versus the case where two models are in series, each having one panel. The output of the block dT must be zero, as both cases must have the same outlet temperatures.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
replaceable package MediumBuildings.Media.WaterMedium in the system
MassFlowRatem_flow_nominalsolCol.datSolCol.A*solCol.da...Nominal mass flow rate [kg/s]

Connectors

TypeNameDescription
replaceable package MediumMedium in the system

Modelica definition

model EN12975_Series "Validation model for collector according to EN12975 with different panels in series" extends Modelica.Icons.Example; replaceable package Medium = Buildings.Media.Water "Medium in the system"; parameter Modelica.Units.SI.MassFlowRate m_flow_nominal=solCol.datSolCol.A* solCol.datSolCol.mperA_flow_nominal "Nominal mass flow rate"; model collector extends Buildings.Fluid.SolarCollectors.EN12975( redeclare final package Medium = Buildings.Media.Water, final show_T = true, final per=datSolCol, final shaCoe=0, final azi=0, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final rho=0.2, final nColType=Buildings.Fluid.SolarCollectors.Types.NumberSelection.Number, nPanels=1, final til=0.78539816339745, final C=385*perPar.mDry, final use_shaCoe_in=false, final sysConfig=Buildings.Fluid.SolarCollectors.Types.SystemConfiguration.Series); parameter SolarCollectors.Data.GenericSolarCollector datSolCol( final ATyp=Types.Area.Aperture, A=4.302, V=4.4/1000, final dp_nominal = 100, final mperA_flow_nominal=0.0241, final y_intercept=0.720, final IAMDiff=0.133, final C1=2.8312, final C2=0.00119, final B0=0, final B1=0, mDry=484, final slope=0, final G_nominal = 1000, final dT_nominal = 20) "Performance data"; end collector; collector solCol( nPanels=2, nSeg=6) "Flat plate solar collector model, has been modified for validation purposes"; collector solCol1( nSeg=3, nPanels=1) "Flat plate solar collector model, has been modified for validation purposes"; collector solCol2( nSeg=3, nPanels=1) "Flat plate solar collector model, has been modified for validation purposes"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"), computeWetBulbTemperature=false) "Weather data file reader"; Buildings.Fluid.Sources.Boundary_pT sou( redeclare package Medium = Medium, use_p_in=false, p(displayUnit="Pa") = 101325, nPorts=1) "Outlet for water flow"; Buildings.Fluid.Sources.MassFlowSource_T bou( nPorts=1, redeclare package Medium = Medium, use_T_in=false, m_flow=m_flow_nominal, T=303.15) "Inlet for water flow, at a prescribed flow rate and temperature"; Buildings.Fluid.Sources.Boundary_pT sou1( redeclare package Medium = Medium, use_p_in=false, p(displayUnit="Pa") = 101325, nPorts=1) "Outlet for water flow"; Buildings.Fluid.Sources.MassFlowSource_T bou1( nPorts=1, redeclare package Medium = Medium, use_T_in=false, m_flow=m_flow_nominal, T=303.15) "Inlet for water flow, at a prescribed flow rate and temperature"; Sensors.TemperatureTwoPort senTem( redeclare package Medium = Medium, tau=0, m_flow_nominal=m_flow_nominal) "Temperature sensor"; Sensors.TemperatureTwoPort senTem1( redeclare package Medium = Medium, tau=0, m_flow_nominal=m_flow_nominal) "Temperature sensor"; Modelica.Blocks.Math.Add dT(final k2=-1) "Temperature difference (must be zero)"; equation connect(weaDat.weaBus, solCol1.weaBus); connect(bou1.ports[1], solCol1.port_a); connect(solCol.port_a, bou.ports[1]); connect(solCol.weaBus, weaDat.weaBus); connect(solCol2.port_a, solCol1.port_b); connect(weaDat.weaBus, solCol2.weaBus); connect(solCol.port_b, senTem.port_a); connect(senTem.port_b, sou.ports[1]); connect(sou1.ports[1], senTem1.port_b); connect(senTem1.port_a, solCol2.port_b); connect(dT.u1, senTem.T); connect(senTem1.T, dT.u2); end EN12975_Series;

Buildings.Fluid.SolarCollectors.Validation.ExtremeAmbientConditions Buildings.Fluid.SolarCollectors.Validation.ExtremeAmbientConditions

Validation model for to ensure that collectors do not freeze or boil

Buildings.Fluid.SolarCollectors.Validation.ExtremeAmbientConditions

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

TypeNameDefaultDescription
replaceable package MediumBuildings.Media.Water (T_min...Medium in the system

Connectors

TypeNameDescription
replaceable package MediumMedium in the system
BusweaBus 

Modelica definition

model ExtremeAmbientConditions "Validation model for to ensure that collectors do not freeze or boil" extends Modelica.Icons.Example; replaceable package Medium = Buildings.Media.Water(T_min=273.15, T_max=273.15+100) "Medium in the system"; 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, azi=0.3, til=0.5, T_start=313.15) "Flat plate solar collector model using the ASHRAE model"; 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, azi=0.3, til=0.5, per=Buildings.Fluid.SolarCollectors.Data.Concentrating.C_VerificationModel(), T_start=313.15) "Flat plate solar collector model using the EN 12975 model"; Sources.MassFlowSource_T sou( redeclare package Medium = Medium, nPorts=1, m_flow=0) "Inlet boundary conditions"; Sources.Boundary_pT sou1( redeclare package Medium = Medium, p(displayUnit="Pa"), use_p_in=false, nPorts=2) "Inlet boundary conditions"; Modelica.Blocks.Sources.Ramp TAmb( offset=273.15 + 40, height=-100, duration=10*3600) "Ambient temperature"; Modelica.Blocks.Sources.Ramp HSol( duration=12*3600, height=1000, startTime=10*3600) "Solar irradiation"; Sources.MassFlowSource_T sou2( redeclare package Medium = Medium, nPorts=1, m_flow=0) "Inlet boundary conditions"; BoundaryConditions.WeatherData.Bus weaBus; Modelica.Blocks.Sources.Constant const(k=0) "Constant that outputs zero"; Modelica.Blocks.Sources.Constant solTim(k=12*3600) "Solar time"; Modelica.Blocks.Sources.Constant lat(k=0.656593) "Location latitude"; Modelica.Blocks.Sources.Constant alt(k=2) "Location altitude"; Modelica.Blocks.Sources.Constant const1(k=0) "Constant that outputs zero"; 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(solTim.y, weaBus.solTim); connect(HSol.y, weaBus.HDirNor); connect(solEn.weaBus, weaBus); connect(lat.y, weaBus.lat); connect(alt.y, weaBus.alt); connect(const1.y, weaBus.cloTim); end ExtremeAmbientConditions;

Buildings.Fluid.SolarCollectors.Validation.FlatPlate Buildings.Fluid.SolarCollectors.Validation.FlatPlate

Validation model for FlatPlate

Buildings.Fluid.SolarCollectors.Validation.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

TypeNameDefaultDescription
replaceable package MediumBuildings.Media.WaterMedium in the system

Connectors

TypeNameDescription
replaceable package MediumMedium in the system

Modelica definition

model FlatPlate "Validation model for FlatPlate" extends Modelica.Icons.Example; replaceable package Medium = Buildings.Media.Water "Medium in the system"; 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, til=0.78539816339745) "Flat plate solar collector model, has been modified for validation purposes"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"), computeWetBulbTemperature=false) "Weather data file reader"; Buildings.Fluid.Sources.Boundary_pT sou( redeclare package Medium = Medium, use_p_in=false, p(displayUnit="Pa") = 101325, nPorts=1) "Outlet for water flow"; Buildings.Fluid.Sources.MassFlowSource_T bou( nPorts=1, redeclare package Medium = Medium, use_m_flow_in=true, use_T_in=true) "Inlet for water flow, at a prescribed flow rate and temperature"; 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) "Data reader with inlet conditions from TRNSYS"; Modelica.Blocks.Math.Add add "Converts TRNSYS data from degree Celsius to Kelving"; Modelica.Blocks.Sources.Constant const(k=273.15) "Used to convert TRNSYS data from degree Celsius to Kelving"; 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;

Buildings.Fluid.SolarCollectors.Validation.FlatPlateNPanels Buildings.Fluid.SolarCollectors.Validation.FlatPlateNPanels

Validation model for flat plate collector with different settings for nPanel

Buildings.Fluid.SolarCollectors.Validation.FlatPlateNPanels

Information

This model validates the solar collector model Buildings.Fluid.SolarCollectors.ASHRAE93 for the case where the number of panels is 1 for the instance solCol and 10 for the instance solCol1. The instances difHeaGai and difHeaLos compare the heat gain and heat loss between the two models. The output of these blocks should be zero, except for rounding errors.

Extends from Buildings.Fluid.SolarCollectors.Validation.FlatPlate (Validation model for FlatPlate).

Parameters

TypeNameDefaultDescription
replaceable package MediumWaterMedium in the system
IntegernPanels10Number of panels

Modelica definition

model FlatPlateNPanels "Validation model for flat plate collector with different settings for nPanel" extends Buildings.Fluid.SolarCollectors.Validation.FlatPlate; parameter Integer nPanels = 10 "Number of panels"; Buildings.Fluid.SolarCollectors.ASHRAE93 solCol1( 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, nSeg=30, til=0.78539816339745, nPanels=nPanels) "Flat plate solar collector model, has been modified for validation purposes"; Buildings.Fluid.Sources.Boundary_pT sou1( redeclare package Medium = Medium, use_p_in=false, p(displayUnit="Pa") = 101325, nPorts=1) "Outlet for water flow"; Buildings.Fluid.Sources.MassFlowSource_T bou1( nPorts=1, redeclare package Medium = Medium, use_m_flow_in=true, use_T_in=true) "Inlet for water flow, at a prescribed flow rate and temperature"; Modelica.Blocks.Math.Gain gaiNPan(k=nPanels) "Gain for number of panels"; Modelica.Blocks.Sources.RealExpression difHeaGai( y=solCol.heaGai[30].Q_flow - solCol1.heaGai[30].Q_flow/nPanels) "Difference in heat gain at last panel between model with 1 and with 30 panels"; Modelica.Blocks.Sources.RealExpression difHeaLos( y=solCol.QLos[30].Q_flow - solCol1.QLos[30].Q_flow/nPanels) "Difference in heat loss at last panel between model with 1 and with 30 panels"; equation connect(weaDat.weaBus, solCol1.weaBus); connect(bou1.ports[1], solCol1.port_a); connect(add.y, bou1.T_in); connect(sou1.ports[1], solCol1.port_b); connect(gaiNPan.y, bou1.m_flow_in); connect(gaiNPan.u, datRea.y[4]); end FlatPlateNPanels;

Buildings.Fluid.SolarCollectors.Validation.EN12975_Series.collector Buildings.Fluid.SolarCollectors.Validation.EN12975_Series.collector


Buildings.Fluid.SolarCollectors.Validation.EN12975_Series.collector

Information

Extends from Buildings.Fluid.SolarCollectors.EN12975 (Model of a concentrating solar collector).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
IntegernSeg3Number of segments used to discretize the collector model
Angleazi0Surface azimuth (0 for south-facing; -90 degree for east-facing; +90 degree for west facing [rad]
Angletil0.78539816339745Surface tilt (0 for horizontally mounted collector) [rad]
Realrho0.2Ground reflectance [1]
HeatCapacityC385*perPar.mDryHeat capacity of solar collector without fluid (default: cp_copper*mDry*nPanels) [J/K]
GenericSolarCollectorperdatSolColPerformance data
GenericSolarCollectordatSolColdatSolCol(final ATyp=Types.A...Performance data
Shading
Booleanuse_shaCoe_infalseEnables an input connector for shaCoe
RealshaCoe0Shading coefficient. 0.0: no shading, 1.0: full shading
Area declarations
NumberSelectionnColTypeBuildings.Fluid.SolarCollect...Selection of area specification format
IntegernPanels1Desired number of panels in the simulation
AreatotalArea0Total area of panels in the simulation [m2]
Configuration declarations
SystemConfigurationsysConfigBuildings.Fluid.SolarCollect...Selection of system configuration
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
RealmSenFac1Factor for scaling the sensible thermal mass of the volume
Advanced
Dynamics
DynamicsmassDynamicsenergyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Ttrue= true, if actual temperature at port is computed
Initialization
AbsolutePressurep_startMedium.p_defaultStart value of pressure [Pa]
TemperatureT_startMedium.T_defaultStart value of temperature [K]
MassFractionX_start[Medium.nX]Medium.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC_start[Medium.nC]fill(0, Medium.nC)Start value of trace substances
ExtraPropertyC_nominal[Medium.nC]fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistancefalse= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM0.1Fraction of nominal flow rate where flow transitions to laminar
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
input RealInputshaCoe_inShading coefficient
BusweaBusWeather data bus

Modelica definition

model collector extends Buildings.Fluid.SolarCollectors.EN12975( redeclare final package Medium = Buildings.Media.Water, final show_T = true, final per=datSolCol, final shaCoe=0, final azi=0, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final rho=0.2, final nColType=Buildings.Fluid.SolarCollectors.Types.NumberSelection.Number, nPanels=1, final til=0.78539816339745, final C=385*perPar.mDry, final use_shaCoe_in=false, final sysConfig=Buildings.Fluid.SolarCollectors.Types.SystemConfiguration.Series); parameter SolarCollectors.Data.GenericSolarCollector datSolCol( final ATyp=Types.Area.Aperture, A=4.302, V=4.4/1000, final dp_nominal = 100, final mperA_flow_nominal=0.0241, final y_intercept=0.720, final IAMDiff=0.133, final C1=2.8312, final C2=0.00119, final B0=0, final B1=0, mDry=484, final slope=0, final G_nominal = 1000, final dT_nominal = 20) "Performance data"; end collector;