Buildings.ThermalZones.ISO13790.BaseClasses

Package with base classes for Buildings.Fluid

Information

This package contains base classes that are used to construct the models in IBPSA.ThermalZones.ISO13790.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

Package Content

Name Description
Buildings.ThermalZones.ISO13790.BaseClasses.GainMass GainMass Mass node heat flow
Buildings.ThermalZones.ISO13790.BaseClasses.GainSurface GainSurface Surface node heat flow
Buildings.ThermalZones.ISO13790.BaseClasses.GlazedElements GlazedElements Solar gains through glazed elements
Buildings.ThermalZones.ISO13790.BaseClasses.OpaqueElements OpaqueElements Solar gains through opaque elements

Buildings.ThermalZones.ISO13790.BaseClasses.GainMass Buildings.ThermalZones.ISO13790.BaseClasses.GainMass

Mass node heat flow

Buildings.ThermalZones.ISO13790.BaseClasses.GainMass

Information

This model calculates the heat gains injected to the mass node. More information can be found in the documentation of Buildings.ThermalZones.ISO13790.Zone5R1C.Zone

Parameters

TypeNameDefaultDescription
AreaATot Total area of building's surfaces facing the thermal zone [m2]
RealfacMas Effective mass area factor
AreaAFlo Floor area [m2]

Connectors

TypeNameDescription
input RealInputintSenGaiInternal sensible heat gains [W]
input RealInputsolGaiSolar gains [W]
output RealOutputmasGaiHeat gain to mass node [W]

Modelica definition

model GainMass "Mass node heat flow" Modelica.Units.SI.Area AMas "Effective mass area (see Table 12 in standard)"; parameter Modelica.Units.SI.Area ATot "Total area of building's surfaces facing the thermal zone"; parameter Real facMas "Effective mass area factor"; parameter Modelica.Units.SI.Area AFlo "Floor area"; Modelica.Blocks.Interfaces.RealInput intSenGai(final unit="W") "Internal sensible heat gains"; Modelica.Blocks.Interfaces.RealInput solGai(final unit="W") "Solar gains"; Modelica.Blocks.Interfaces.RealOutput masGai(final unit="W") "Heat gain to mass node"; equation AMas = facMas*AFlo; masGai=((AMas/ATot)*(0.5*intSenGai + solGai)); end GainMass;

Buildings.ThermalZones.ISO13790.BaseClasses.GainSurface Buildings.ThermalZones.ISO13790.BaseClasses.GainSurface

Surface node heat flow

Buildings.ThermalZones.ISO13790.BaseClasses.GainSurface

Information

This model calculates the heat gains injected to the surface node. More information can be found in the documentation of Buildings.ThermalZones.ISO13790.Zone5R1C.Zone

Parameters

TypeNameDefaultDescription
AreaATot Total area of building's surfaces facing the thermal zone [m2]
ThermalConductanceHWinGai Thermal conductance through windows [W/K]
RealfacMas Effective mass area factor
AreaAFlo Floor area [m2]

Connectors

TypeNameDescription
input RealInputintSenGaiInternal sensible heat gains [W]
input RealInputsolGaiSolar gains [W]
output RealOutputsurGaiHeat gain to surface node [W]

Modelica definition

model GainSurface "Surface node heat flow" Modelica.Units.SI.Area AMas "Effective mass area (see Table 12 in standard)"; parameter Modelica.Units.SI.Area ATot "Total area of building's surfaces facing the thermal zone"; parameter Modelica.Units.SI.ThermalConductance HWinGai "Thermal conductance through windows"; parameter Real facMas "Effective mass area factor"; parameter Modelica.Units.SI.Area AFlo "Floor area"; Modelica.Blocks.Interfaces.RealInput intSenGai(final unit="W") "Internal sensible heat gains"; Modelica.Blocks.Interfaces.RealInput solGai(final unit="W") "Solar gains"; Modelica.Blocks.Interfaces.RealOutput surGai(final unit="W") "Heat gain to surface node"; equation AMas = facMas*AFlo; surGai= (1 - AMas/ATot - HWinGai/(9.1*ATot))*(0.5*intSenGai + solGai); end GainSurface;

Buildings.ThermalZones.ISO13790.BaseClasses.GlazedElements Buildings.ThermalZones.ISO13790.BaseClasses.GlazedElements

Solar gains through glazed elements

Buildings.ThermalZones.ISO13790.BaseClasses.GlazedElements

Information

This model calculates the heat flow by solar gains through each glazed element k. The heat flow is given by

Φsol,k =Fsh,k Isol,k gfac (1-Fframe) Awin,k

where Fsh,k is the shading reduction factor which is set to 1 by default, Isol,k is the solar irradiance per square meter of surface area, gfac is the total solar energy transmittance of the trasparent element, Fframe is the frame area fraction, and Awin,k is the overall area of the glazed element in square meters.

Additionally, an extra heat flow is modeled to represent the thermal radiation emitted towards the sky as

Φr,k =hr ΔTsky Rse Uk Ak

where hr is the external radiative heat transfer coefficient which is approximated as 5 ε W/m2K (where ε is the emissivity for the thermal radiation of the external surface), and ΔTsky is the average temperature difference between the external air temperature and the apparent sky temperature.

Parameters

TypeNameDefaultDescription
Integern  
AreaAWin[:] Area of windows [m2]
RealcoeFac[:] Coefficient of g-factor reduction
CoefficientOfHeatTransferUWin U-value of windows [W/(m2.K)]
AnglesurTil[:] Tilt angle of surfaces [rad]
AnglesurAzi[:] Azimuth angle of surfaces [rad]
Realeps0.9Emissivity of external surface
ThermalInsulancesurRes0.04External surface heat resistance [m2.K/W]
RealgFac Energy transmittance of glazings
RealwinFra Frame fraction of windows
RealshaRedFac1Shading reduction factor [1]

Connectors

TypeNameDescription
BusweaBus 
output RealOutputsolRadWinSolar radiation through windows

Modelica definition

model GlazedElements "Solar gains through glazed elements" parameter Integer n; parameter Modelica.Units.SI.Area AWin[:] "Area of windows"; parameter Real coeFac[:] "Coefficient of g-factor reduction"; parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "U-value of windows"; parameter Modelica.Units.SI.Angle surTil[:] "Tilt angle of surfaces"; parameter Modelica.Units.SI.Angle surAzi[:] "Azimuth angle of surfaces"; parameter Real eps=0.9 "Emissivity of external surface"; parameter Modelica.Units.SI.ThermalInsulance surRes=0.04 "External surface heat resistance"; parameter Real gFac "Energy transmittance of glazings"; parameter Real winFra "Frame fraction of windows"; parameter Real shaRedFac( final min=0, final unit="1")= 1 "Shading reduction factor"; Buildings.BoundaryConditions.WeatherData.Bus weaBus; BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[n]( final til=surTil, final azi=surAzi) "Direct solar irradiation on surface"; Modelica.Blocks.Math.Gain solRad[n](final k=AWin*gFac*shaRedFac*(1 - winFra)) "Solar radiation trasmitted through windows"; Modelica.Blocks.Interfaces.RealOutput solRadWin "Solar radiation through windows"; BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[n]( final til=surTil, final azi=surAzi) "Diffuse solar irradiation on surface"; Modelica.Blocks.Math.Gain theRadWin[n](each k=5*eps*11*0.5) "Extra thermal radiation through windows"; Modelica.Blocks.Math.Add addWin[n](each k2=-1) "Total solar gains through windows"; Modelica.Blocks.Math.Product HDirAng[n] "Direct solar irradiation considering incident angle of surface"; Utilities.Math.Polynomial polynomial[n](each a=coeFac) "Ratio of direct solar irradiation considering incident angle of surface"; protected Modelica.Blocks.Math.Add irr[n] "Total of direct and diffuse radiation on surface"; Modelica.Blocks.Math.MultiSum multiSum(nu=n) "Sum of all orientations"; protected Modelica.Blocks.Sources.RealExpression facWin[n](y=UWin*AWin*surRes) "factor"; equation for i in 1:n loop connect(weaBus,HDifTil[i].weaBus); end for; for i in 1:n loop connect(weaBus,HDirTil[i].weaBus); end for; connect(multiSum.y, solRadWin); connect(irr.y, solRad.u); connect(facWin.y,theRadWin. u); connect(theRadWin.y, addWin.u2); connect(addWin.y, multiSum.u); connect(solRad.y, addWin.u1); connect(HDirTil.H, HDirAng.u2); connect(HDifTil.H, irr.u2); connect(HDirAng.y, irr.u1); connect(HDirTil.inc, polynomial.u); connect(polynomial.y, HDirAng.u1); end GlazedElements;

Buildings.ThermalZones.ISO13790.BaseClasses.OpaqueElements Buildings.ThermalZones.ISO13790.BaseClasses.OpaqueElements

Solar gains through opaque elements

Buildings.ThermalZones.ISO13790.BaseClasses.OpaqueElements

Information

This model calculates the heat flow by solar gains through each opaque building element k. The heat flow is given by

Φsol,k =Fsh,k Isol,k αk Rse Uk Ak - Ff Φr,k

where Fsh,k is the shading reduction factor, Isol,k is the solar irradiance per square meter of surface area, αk is the dimensionless absportion coefficient for solar radiation of the opaque element, Rse is the external surface heat resistance of the opaque element in (m K/W), and Ak is the area of the opaque element.

The view factor between the building element and the sky Ff is set to 1 for roofs and 0.5 for external walls. The extra heat flow due to thermal radiation to the sky is given by

Φr,k =hr ΔTsky Rse Uk Ak

where hr is the external radiative heat transfer coefficent which is approximated as 5 ε W/m2K (where ε is the emissivity for the thermal radiation of the external surface), and ΔTsky is the average temperature difference between the external air temperature and the apparent sky temperature.

Parameters

TypeNameDefaultDescription
Integern  
AreaAWal[:] Area of external walls [m2]
AreaARoo Area of roof [m2]
CoefficientOfHeatTransferUWal U-value of external walls [W/(m2.K)]
CoefficientOfHeatTransferURoo U-value of roof [W/(m2.K)]
AnglesurTil[:] Tilt angle of surfaces [rad]
AnglesurAzi[:] Azimuth angle of surfaces [rad]
Realeps0.9Emissivity of external surface
Realalp0.6Absorption coefficient
ThermalInsulancesurRes0.04External surface heat resistance [m2.K/W]

Connectors

TypeNameDescription
BusweaBus 
output RealOutputySolar radiation through windows

Modelica definition

model OpaqueElements "Solar gains through opaque elements" parameter Integer n; parameter Modelica.Units.SI.Area AWal[:] "Area of external walls"; parameter Modelica.Units.SI.Area ARoo "Area of roof"; parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWal "U-value of external walls"; parameter Modelica.Units.SI.CoefficientOfHeatTransfer URoo "U-value of roof"; parameter Modelica.Units.SI.Angle surTil[:] "Tilt angle of surfaces"; parameter Modelica.Units.SI.Angle surAzi[:] "Azimuth angle of surfaces"; parameter Real eps=0.9 "Emissivity of external surface"; parameter Real alp=0.6 "Absorption coefficient"; parameter Modelica.Units.SI.ThermalInsulance surRes=0.04 "External surface heat resistance"; Buildings.BoundaryConditions.WeatherData.Bus weaBus; BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[n]( final til=surTil, final azi=surAzi); Modelica.Blocks.Math.Gain solRadOpa[n](final k=AWal*alp*UWal*surRes) "Solar radiation on vertical opaque surfaces"; Modelica.Blocks.Interfaces.RealOutput y "Solar radiation through windows"; BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil [n]( final til=surTil, final azi=surAzi); Modelica.Blocks.Math.Add irrOpa[n] "Total of direct and diffuse radiation on surface"; Modelica.Blocks.Math.Add addOpa[n](each k2=-1) "Total solar gains through vertical walls"; Modelica.Blocks.Math.Gain theRadOpa[n](each k=5*eps*11*0.5) "Extra thermal radiation through walls"; Modelica.Blocks.Math.Add irrRoo "Total of direct and diffuse radiation on the south facade"; Modelica.Blocks.Math.Gain solRadRoo(final k=ARoo*alp*URoo*surRes) "Solar radiation on roof"; Modelica.Blocks.Math.Gain theRadRoo(final k=5*eps*11*1) "Extra thermal radiation through roof"; Modelica.Blocks.Math.Add addRoo(k2=-1) "Total solar gains through roof"; Modelica.Blocks.Math.MultiSum multiSum(nu=n); Modelica.Blocks.Math.Add addTot "Total of direct and diffuse radiation on the south facade"; protected Modelica.Blocks.Sources.RealExpression facOpa[n](y=UWal*AWal*surRes) "factor"; BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTilRoo(til=0, azi= 0); BoundaryConditions.SolarIrradiation.DiffusePerez HDifTilRof(til=0, azi=0); protected Modelica.Blocks.Sources.RealExpression facRoo(y=URoo*ARoo*surRes) "factor"; equation for i in 1:n loop connect(weaBus,HDifTil[i].weaBus); end for; for i in 1:n loop connect(weaBus,HDirTil[i].weaBus); end for; connect(HDirTil.H, irrOpa.u1); connect(HDifTil.H, irrOpa.u2); connect(irrOpa.y, solRadOpa.u); connect(HDirTilRoo.H, irrRoo.u1); connect(HDifTilRof.H, irrRoo.u2); connect(HDirTilRoo.weaBus, weaBus); connect(HDifTilRof.weaBus, weaBus); connect(irrRoo.y, solRadRoo.u); connect(facRoo.y, theRadRoo.u); connect(addOpa.y, multiSum.u); connect(solRadOpa.y, addOpa.u1); connect(theRadRoo.y, addRoo.u2); connect(solRadRoo.y, addRoo.u1); connect(addTot.y, y); connect(addRoo.y, addTot.u2); connect(multiSum.y, addTot.u1); connect(facOpa.y, theRadOpa.u); connect(theRadOpa.y, addOpa.u2); end OpaqueElements;