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  
Buildings.ThermalZones.ISO13790.BaseClasses.OpaqueElements OpaqueElements  

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


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 0.9 by deafult, 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. The model neglects the extra heat flow due to thermal radiation to the sky from the building.

Parameters

TypeNameDefaultDescription
Integern  
RealAWin[:] Area of windows
RealsurTil[:] Tilt angle of surfaces
RealsurAzi[:] Azimuth angle of surfaces
RealgFac Energy transmittance of glazings
RealwinFra Frame fraction of windows
RealshaRedFac0.9Shading reduction factor [1]

Connectors

TypeNameDescription
BusweaBus 
output RealOutputsolRadWinSolar radiation through windows

Modelica definition

model GlazedElements parameter Integer n; parameter Real AWin[:] "Area of windows"; parameter Real surTil[:] "Tilt angle of surfaces"; parameter Real surAzi[:] "Azimuth angle of surfaces"; parameter Real gFac "Energy transmittance of glazings"; parameter Real winFra "Frame fraction of windows"; parameter Real shaRedFac( final min=0, final unit="1")= 0.9 "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"; 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"; protected Modelica.Blocks.Math.Add irr[n] "Total of direct and diffuse radiation on surface"; Modelica.Blocks.Math.MultiSum multiSum(final nu=n) "Sum of all orientations"; 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(solRad.y, multiSum.u); connect(multiSum.y, solRadWin); connect(HDirTil.H,irr. u1); connect(HDifTil.H,irr. u2); connect(irr.y, solRad.u); end GlazedElements;

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


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 form 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  
RealAWal[:] Area of external walls
RealARoo Area of roof
RealUWal U-value of external walls
RealURoo U-value of roof
RealsurTil[:] Tilt angle of surfaces
RealsurAzi[:] Azimuth angle of surfaces
Realeps0.9Emissivity of external surface
Realalp0.6Absorption coefficient
RealsurRes0.04External surface heat resistance

Connectors

TypeNameDescription
BusweaBus 
output RealOutputySolar radiation through windows

Modelica definition

model OpaqueElements parameter Integer n; parameter Real AWal[:] "Area of external walls"; parameter Real ARoo "Area of roof"; parameter Real UWal "U-value of external walls"; parameter Real URoo "U-value of roof"; parameter Real surTil[:] "Tilt angle of surfaces"; parameter Real surAzi[:] "Azimuth angle of surfaces"; parameter Real eps=0.9 "Emissivity of external surface"; parameter Real alp=0.6 "Absorption coefficient"; parameter Real 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 of direct and diffuse radiation on vertical surfaces"; 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 of direct and diffuse radiation on the 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;