modelSolarRadiationExchange
Extends from Buildings.ThermalZones.Detailed.BaseClasses.PartialSurfaceInterfaceRadiative (Partial model that is used for infrared radiation balance).
Information
This model computes the distribution of the solar radiation gain to the room surfaces. Let Nw denote the number of windows, Nf the number of floor elements and Nn the number of non-floor elements such as ceiling, wall and window elements. Input to the model are the diffuse and direct solar radiosities Jidif, i ∈ {1, … , Nw} and Jidir, i ∈ {1, … , Nw} that were transmitted through the window. The total incoming solar radiation is therefore for the diffuse irradiation
Hdif = ∑i=1Nw Jdifi
and for the direct irradiation
Hdir = ∑i=1Nw Jdiri.
It is assumed that the diffuse irradiation is distributed to all surfaces proportionally to the product of surface emissivity plus transmissivity (which generally is zero except for windows) times the area. For the direct irradiation, it is assumed that it first hits the floor where some of it is absorbed, and some of it is diffusely reflected to all other surfaces. Only the first reflection is taken into account and the location of the floor patch relative to the window is neglected.
Hence, the diffuse radiation that is absorbed by each area is
Qidif = Hdif (εi+τi) Ai ⁄ ∑j=1N Aj,
where the sum is over all areas. Hence, this calculation treats the wall that contains the window identical as any other construction, which is a simplification.
Similarly, the direct radiation that is absorbed by each floor patch i ∈ {1, …, Nf}, and may be partially transmitted in the unusual case that the floor contains a window, is
Qidir = Hdir (εi+τi) Ai ⁄ ∑j=1Nf Aj.
The sum of the direct radiation that is reflected by the floor is therefore
Jf = Hdir ∑i=1Nf (1-εi-τi) Ai ⁄ ∑j=1Nf Aj.
This reflected radiosity is then distributed to all non-floor areas i ∈ {1, …, Nn} using
Qidir = Jf Ai (εi+τi) ⁄ ∑k=1Nn Ak (εk+τk)
The heat flow rate that is absorbed by each surface is
Qi = Qidif + Qidir.
For opaque surfaces, the heat flow rate Qi is set to be equal to the heat flow rate at the heat port. For the glass of the windows, the heat flow rate Qi is set to the radiosity Jouti that will strike the glass or the window shade as diffuse solar radiation.
Main assumptions
The main assumptions or simplifications are that the shaded and unshaded part of the window have the same solar absorbtance. Furthermore, if the room has electrochromic windows, the optical properties are taken from the state 1, which generally is the uncontrolled state. The error should be small as in the controlled state, there is little solar radiation entering the room, and with this simplification, the main error is that the radiation that is reflected in the room and hits the window is larger than it otherwise would be. This simplification allows lumping the solar distribution into a parameter.
The model also assumes that all radiation first hits the floor from which it is diffusely distributed to the other surfaces.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | NConExt (from ConstructionNumbers) | max(1, nConExt) | Number of elements for exterior constructions |
| Integer | NConExtWin (from ConstructionNumbers) | max(1, nConExtWin) | Number of elements for exterior constructions with windows |
| Integer | NConPar (from ConstructionNumbers) | max(1, nConPar) | Number of elements for partition constructions |
| Integer | NConBou (from ConstructionNumbers) | max(1, nConBou) | Number of elements for constructions that have their outside surface exposed to the boundary of this room |
| Integer | NSurBou (from ConstructionNumbers) | max(1, nSurBou) | Number of elements for surface heat transfer models that connect to constructions that are modeled outside of this room |
| Boolean | haveConExt (from ConstructionNumbers) | nConExt > 0 | Flag to conditionally remove components |
| Boolean | haveConExtWin (from ConstructionNumbers) | nConExtWin > 0 | Flag to conditionally remove components |
| Boolean | haveConPar (from ConstructionNumbers) | nConPar > 0 | Flag to conditionally remove components |
| Boolean | haveConBou (from ConstructionNumbers) | nConBou > 0 | Flag to conditionally remove components |
| Boolean | haveSurBou (from ConstructionNumbers) | nSurBou > 0 | Flag to conditionally remove components |
| ParameterConstruction[NConExt] | datConExt (from ConstructionRecords) | Data for exterior construction | |
| Buildings.ThermalZones.Detailed.BaseClasses.ParameterConstructionWithWindow[NConExtWin] | datConExtWin (from ConstructionRecords) | Data for exterior construction with window | |
| Buildings.ThermalZones.Detailed.BaseClasses.ParameterConstruction[NConPar] | datConPar (from ConstructionRecords) | Data for partition construction | |
| Buildings.ThermalZones.Detailed.BaseClasses.ParameterConstruction[NConBou] | datConBou (from ConstructionRecords) | Data for construction boundary | |
| Buildings.ThermalZones.Detailed.BaseClasses.OpaqueSurface[NSurBou] | surBou (from ConstructionRecords) | Record for data of surfaces whose heat conduction is modeled outside of this room | |
| HeatTransfer.Data.OpaqueConstructions.Brick120 | dummyCon (from ConstructionRecords) | Dummy construction to assign a parameter to the instance | |
| Buildings.HeatTransfer.Data.GlazingSystems.SingleClear3 | dummyGlaSys (from ConstructionRecords) | Dummy construction to assign a parameter to the instance | |
| Boolean[NConExt] | is_floorConExt | Flag to indicate if floor for exterior constructions | |
| Boolean[NConExtWin] | is_floorConExtWin | Flag to indicate if floor for constructions | |
| Boolean[NConPar] | is_floorConPar_a | Flag to indicate if floor for constructions | |
| Boolean[NConPar] | is_floorConPar_b | Flag to indicate if floor for constructions | |
| Boolean[NConBou] | is_floorConBou | Flag to indicate if floor for constructions with exterior boundary conditions exposed to outside of room model | |
| Boolean[NSurBou] | is_floorSurBou | Flag to indicate if floor for constructions that are modeled outside of this room | |
| Modelica.Units.SI.Emissivity[NConExtWin] | tauGla | Transmissivity of window | |
| Exterior constructions | |||
| Integer | nConExt (from ConstructionNumbers) | Number of exterior constructions | |
| Integer | nConExtWin (from ConstructionNumbers) | Number of window constructions | |
| Partition constructions | |||
| Integer | nConPar (from ConstructionNumbers) | Number of partition constructions | |
| Boundary constructions | |||
| Integer | nConBou (from ConstructionNumbers) | Number of constructions that have their outside surface exposed to the boundary of this room | |
| Integer | nSurBou (from ConstructionNumbers) | Number of surface heat transfer models that connect to constructions that are modeled outside of this room | |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[NConExt] | conExt (from PartialSurfaceInterface) | Heat port that connects to room-side surface of exterior constructions | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[NConExtWin] | conExtWin (from PartialSurfaceInterface) | Heat port that connects to room-side surface of exterior constructions that contain a window | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[NConExtWin] | conExtWinFra (from PartialSurfaceInterface) | Heat port that connects to room-side surface of window frame | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[NConPar] | conPar_a (from PartialSurfaceInterface) | Heat port that connects to room-side surface a of partition constructions | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[NConPar] | conPar_b (from PartialSurfaceInterface) | Heat port that connects to room-side surface b of partition constructions | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[NConBou] | conBou (from PartialSurfaceInterface) | Heat port that connects to room-side surface of constructions that expose their other surface to the outside | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[NSurBou] | conSurBou (from PartialSurfaceInterface) | Heat port to surfaces of models that compute the heat conduction outside of this room | |
| Modelica.Blocks.Interfaces.RealInput[NConExtWin] | JInDifConExtWin | Diffuse solar radiation transmitted by window per unit area | |
| Modelica.Blocks.Interfaces.RealInput[NConExtWin] | JInDirConExtWin | Direct solar radiation transmitted by window per unit area | |
| Modelica.Blocks.Interfaces.RealOutput[NConExtWin] | HOutConExtWin | Outgoing solar radiation that strikes window per unit area |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.HeatFlowRate[NConExtWin] | JOutConExtWin | Outgoing solar radiation that strikes the window |
Revisions
-
February 11, 2022, by Michael Wetter:
Change parameterisFloortois_floor, andisCeilingtois_ceiling, for consistency with naming convention. -
June 7, 2016, by Michael Wetter:
RemovedHTotas this is not needed, and refactored the model so that the diffuse irradiation is treated separately from the direct irradiation. This is for issue 451. -
August 7, 2015, by Michael Wetter:
Revised model to allow modeling of electrochromic windows. This is for issue 445. -
March 13, 2015, by Michael Wetter:
Changed model to avoid a translation error in OpenModelica. -
July 16, 2013, by Michael Wetter:
Added assignment of heat port temperature instead of heat flow rate for the cases where a construction has been conditionally removed. This is required to avoid a singularity. -
November 6, 2011, by Michael Wetter:
Fixed bug as in the old version, the absorbtance and reflectance of the infrared spectrum has been used instead of the solar spectrum. -
Dec. 1 2010, by Michael Wetter:
First implementation.