 
| Name | Description | 
|---|---|
|  BlackBody | Calculate black body sky temperature | 
|  Examples | Collection of models that illustrate model use and test models | 
 Buildings.BoundaryConditions.SkyTemperature.BlackBody
Buildings.BoundaryConditions.SkyTemperature.BlackBody 
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 | 
|---|---|---|---|
| SkyTemperatureCalculation | calTSky | SkyTemperatureCalculation.Te... | Computation of black-body sky temperature | 
| 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 | radHorIR | Horizontal infrared irradiation [W/m2] | 
block BlackBody "Calculate black body sky temperature"
  extends Modelica.Blocks.Interfaces.BlockIcon;
  import Buildings.BoundaryConditions.Types.SkyTemperatureCalculation;
  parameter Buildings.BoundaryConditions.Types.SkyTemperatureCalculation calTSky=
    SkyTemperatureCalculation.TemperaturesAndSkyCover 
    "Computation of black-body sky temperature";
  Modelica.Blocks.Interfaces.RealInput TDryBul(
    final quantity="ThermodynamicTemperature",
    final unit="K",
    displayUnit="degC") "Dry bulb temperature at ground level";
  Modelica.Blocks.Interfaces.RealInput TDewPoi(
    final quantity="ThermodynamicTemperature",
    final unit="K",
    displayUnit="degC") "Dew point temperature";
  Modelica.Blocks.Interfaces.RealInput nOpa "Opaque sky cover";
  Modelica.Blocks.Interfaces.RealOutput TBlaSky(
    final quantity="ThermodynamicTemperature",
    displayUnit="degC",
    final unit="K") "Black-body sky temperature";
  Modelica.Blocks.Interfaces.RealInput radHorIR(
    unit="W/m2",
    min=0,
    nominal=100) "Horizontal infrared irradiation"; 
protected 
  Modelica.SIunits.Temperature TDewPoiK "Dewpoint temperature";
  Modelica.SIunits.Emissivity epsSky "Black-body absorptivity of sky";
  Real nOpa10(min=0, max=10) "Opaque sky cover";
algorithm 
  if calTSky == Buildings.BoundaryConditions.Types.SkyTemperatureCalculation.TemperaturesAndSkyCover then
    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);
  else
    TDewPoiK := 273.15;
    nOpa10   := 0.0;
    epsSky   := 0.0;
    TBlaSky  := (radHorIR/Modelica.Constants.sigma)^0.25;
  end if;
end BlackBody;