Name | Description |
---|---|
BlackBody | Calculate black body sky temperature |
Examples | Collection of models that illustrate model use and test models |
This component computes the black-body sky temperature.
For calTSky = 0
, the model uses horizontal infrared irradiation.
Otherwise, it uses dry buld temperature, dew point temperature and opaque sky cover.
Extends from Modelica.Blocks.Interfaces.BlockIcon (Basic graphical layout of input/output block).
Type | Name | Default | Description |
---|---|---|---|
Integer | calTSky | 0: Use radHor; 1: Use TDry, TDewPoi and nOpa |
Type | Name | Description |
---|---|---|
input RealInput | TDryBul | Dry bulb temperature at ground level [K] |
input RealInput | TDewPoi | Dew point temperature [K] |
input RealInput | nOpa | Opaque sky cover |
output RealOutput | TBlaSky | Black-body sky temperature [K] |
input RealInput | radHor | Horizontal infrared irradiation [W/m2] |
block BlackBody "Calculate black body sky temperature" extends Modelica.Blocks.Interfaces.BlockIcon; parameter Integer calTSky(min=0, max=1) "0: Use radHor; 1: Use TDry, TDewPoi and nOpa";Modelica.Blocks.Interfaces.RealInput TDryBul( final quantity="Temperature", final unit="K", displayUnit="degC") "Dry bulb temperature at ground level"; Modelica.Blocks.Interfaces.RealInput TDewPoi( final quantity="Temperature", final unit="K", displayUnit="degC") "Dew point temperature"; Modelica.Blocks.Interfaces.RealInput nOpa "Opaque sky cover"; Modelica.Blocks.Interfaces.RealOutput TBlaSky( final quantity="Temperature", displayUnit="degC", final unit="K") "Black-body sky temperature"; Modelica.Blocks.Interfaces.RealInput radHor(unit="W/m2", min=0, nominal=100) "Horizontal infrared irradiation"; protected Modelica.SIunits.Temperature TDewPoiK "Dewpoint temperature"; Modelica.SIunits.Emissivity epsSky "Black-body emissivity of sky"; Real nOpa10(min=0, max=10) "Opaque sky cover"; algorithm if calTSky == 1 then TBlaSky := (radHor/Modelica.Constants.sigma)^0.25; else TDewPoiK := Buildings.Utilities.Math.Functions.smoothMin(TDryBul, TDewPoi, 0.1); nOpa10 := 10*nOpa "Input nOpa is scaled to [0,1] instead of [0,10]"; epsSky := (0.787 + 0.764*Modelica.Math.log(-TDewPoiK/Modelica.Constants.T_zero))*(1 + 0.0224*nOpa10 - 0.0035*(nOpa10^2) + 0.00028*(nOpa10^3)); TBlaSky := TDryBul*(epsSky^0.25); end if;end BlackBody;