LBL logo

Buildings.Rooms

Package with models for rooms

Information

This package contains models for the heat transfer in rooms and through the building envelope. Multiple instances of these models can be connected to create a multi-zone building model. To compute the air exchange between rooms and between a room and the exterior, the room models can be connected to multi-zone air exchange models from the package Buildings.Airflow. The room models can also be linked to models of HVAC systems that are composed of the components in the package Buildings.Fluid.

Extends from Modelica.Icons.Package (Icon for standard packages).

Package Content

NameDescription
Buildings.Rooms.MixedAir MixedAir Model of a room in which the air is completely mixed
Buildings.Rooms.Constructions Constructions Package with models for constructions that are used in the room model
Buildings.Rooms.Examples Examples Collection of models that illustrate model use and test models
Buildings.Rooms.BaseClasses BaseClasses Package with base classes for Buildings.Rooms


Buildings.Rooms.MixedAir Buildings.Rooms.MixedAir

Model of a room in which the air is completely mixed

Buildings.Rooms.MixedAir

Information

The package Buildings.Rooms contains models for heat transfer through the building envelope.

The model Buildings.Rooms.MixedAir is a model of a room with completely mixed air. The room can have any number of constructions and surfaces that participate in the heat exchange through convection, conduction, infrared radiation and solar radiation.

Physical description

A description of the model assumptions and the implemention and validation of this room model can be found in Wetter et al. (2011). The room models the following physical processes:

  1. Transient or steady-state heat conduction through opaque surfaces, using the model Buildings.HeatTransfer.Conduction.MultiLayer
  2. Heat transfer through glazing system, taking into account solar radiation, infrared radiation, heat conduction and heat convection. The solar radiation is modeled using Buildings.HeatTransfer.Windows.BaseClasses.WindowRadiation. The overall heat transfer is modeled using the model Buildings.HeatTransfer.Windows.Window for the glass assembly, and the models Buildings.HeatTransfer.Windows.ExteriorHeatTransfer and Buildings.HeatTransfer.Windows.InteriorHeatTransfer for the exterior and interior heat transfer. A window can have both, an overhang and a side fin. Overhangs and side fins are modeled using Buildings.HeatTransfer.Windows.Overhang and Buildings.HeatTransfer.Windows.SideFins, respectively. These models compute the reduction in direct solar irradiation due to the external shading device.
  3. Convective heat transfer between the room air and room-facing surfaces using either a temperature-dependent heat transfer coefficient, or using a constant heat transfer coefficient, as described in Buildings.HeatTransfer.Convection.Interior.
  4. Convective heat transfer between the outside air and outside-facing surfaces using either a wind-speed, wind-direction and temperature-dependent heat transfer coefficient, or using a constant heat transfer coefficient, as described in Buildings.HeatTransfer.Convection.Exterior.
  5. Solar and infrared heat transfer between the room enclosing surfaces, and temperature, pressure and species changes inside the room volume. These effects are modeled and described in Buildings.Rooms.BaseClasses.MixedAir which consists of several sub-models.

Model instantiation

The next paragraphs describe how to instantiate a room model. To instantiate a room model,

  1. make an instance of the room model in your model,
  2. make instances of constructions from the package Buildings.HeatTransfer.Data.OpaqueConstructions to model opaque constructions such as walls, floors, ceilings and roofs,
  3. make an instance of constructions from the package Buildings.HeatTransfer.Data.GlazingSystems to model glazing systems, and
  4. enter the parameters of the room.
Entering parameters may be easiest in a textual editor. In the here presented example, we assume we made several instances of data records for the construction material by dragging them from the package Buildings.HeatTransfer.Data to create the following list of declarations:

Buildings.HeatTransfer.Data.OpaqueConstructions.Insulation100Concrete200

matLayExt "Construction material for exterior walls"

annotation (Placement(transformation(extent={{-60,140},{-40,160}})));

Buildings.HeatTransfer.Data.OpaqueConstructions.Brick120 matLayPar

"Construction material for partition walls"

annotation (Placement(transformation(extent={{-20,140},{0,160}})));

Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matLayRoo(

material={

HeatTransfer.Data.Solids.InsulationBoard(x=0.2),

HeatTransfer.Data.Solids.Concrete(x=0.2)},

final nLay=2) "Construction material for roof"

annotation (Placement(transformation(extent={{20,140},{40,160}})));

Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matLayFlo(

material={

HeatTransfer.Data.Solids.Concrete(x=0.2),

HeatTransfer.Data.Solids.InsulationBoard(x=0.1),

HeatTransfer.Data.Solids.Concrete(x=0.05)},

final nLay=3) "Construction material for floor"

annotation (Placement(transformation(extent={{60,140},{80,160}})));

Buildings.HeatTransfer.Data.GlazingSystems.DoubleClearAir13Clear glaSys(

UFra=2,

shade=Buildings.HeatTransfer.Data.Shades.Gray(),

haveExteriorShade=false,

haveInteriorShade=true) "Data record for the glazing system"

annotation (Placement(transformation(extent={{100,140},{120,160}})));

Note that construction layers are assembled from the outside to the room-side. Thus, the construction matLayRoo has an exterior insulation. This constructions can then be used in the room model.

Before we explain how to declare and parametrize a room model, we explain the different models that can be used to compute heat transfer through the room enclosing surfaces and constructions. The room model Buildings.Rooms.MixedAir contains the constructions shown in the table below. The first row of the table lists the name of the data record that is used by the user to assign the model parameters. The second row lists the name of the instance of the model that simulates the equations. The third column provides a reference to the class definition that implements the equations. The forth column describes the main applicability of the model.

Record name Model instance name Class name Description of the model
datConExt modConExt Buildings.Rooms.Constructions.Construction Exterior constructions that have no window.
datConExtWin modConExtWin Buildings.Rooms.Constructions.ConstructionWithWindow Exterior constructions that have a window. Each construction of this type must have one window.
Within the same room, all windows can either have an interior shade, an exterior shade or no shade. Each window has its own control signal for the shade. This signal is exposed by the port uSha, which has the same dimension as the number of windows. The values for uSha must be between 0 and 1. Set uSha=0 to open the shade, and uSha=1 to close the shade.
Windows can also have an overhang, side fins, both (overhang and sidefins) or no external shading device.
datConPar modConPar Buildings.Rooms.Constructions.Construction Interior constructions such as partitions within a room. Both surfaces of this construction are inside the room model and participate in the infrared and solar radiation balance. Since the view factor between these surfaces is zero, there is no infrared radiation from one surface to the other of the same construction.
datConBou modConBou Buildings.Rooms.Constructions.Construction Constructions that expose the other boundary conditions of the other surface to the outside of this room model. The heat conduction through these constructions is modeled in this room model. The surface at the port opa_b is connected to the models for convection, infrared and solar radiation exchange with this room model and with the other surfaces of this room model. The surface at the port opa_a is connected to the port surf_conBou of this room model. This could be used, for example, to model a floor inside this room and connect to other side of this floor model to a model that computes heat transfer in the soil.
surBou N/A Buildings.HeatTransfer.Data.OpaqueSurfaces.Generic Opaque surfaces of this room model whose heat transfer through the construction is modeled outside of this room model. This object is modeled using a data record that contains the area, solar and infrared emissivities and surface tilt. The surface then participates in the convection and radiation heat balance of the room model. The heat flow rate and temperature of this surface are exposed at the heat port surf_surBou. An application of this object may be to connect the port surf_surBou of this room model with the port surf_conBou of another room model in order to couple two room models. Another application would be to model a radiant ceiling outside of this room model, and connect its surface to the port surf_conBou in order for the radiant ceiling model to participate in the heat balance of this room.

With these constructions, we may define a room as follows:

Buildings.Rooms.MixedAir roo(

redeclare package Medium = MediumA,

AFlo=6*4,

hRoo=2.7,

nConExt=2,

datConExt(layers={matLayRoo, matLayExt},

A={6*4, 6*3},

til={Buildings.HeatTransfer.Types.Tilt.Ceiling, Buildings.HeatTransfer.Types.Tilt.Wall},

azi={Buildings.HeatTransfer.Types.Azimuth.S, Buildings.HeatTransfer.Types.Azimuth.W}),

nConExtWin=nConExtWin,

datConExtWin(layers={matLayExt}, A={4*3},

glaSys={glaSys},

hWin={2},

wWin={2},

fFra={0.1},

til={Buildings.HeatTransfer.Types.Tilt.Wall},

azi={Buildings.HeatTransfer.Types.Azimuth.S}),

nConPar=1,

datConPar(layers={matLayPar}, each A=10,

each til=Buildings.HeatTransfer.Types.Tilt.Wall),

nConBou=1,

datConBou(layers={matLayFlo}, each A=6*4,

each til=Buildings.HeatTransfer.Types.Tilt.Floor),

nSurBou=1,

surBou(each A=6*3, each absIR=0.9, each absSol=0.9, each til=Buildings.HeatTransfer.Types.Tilt.Wall),

linearizeRadiation = true ,

energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,

lat=0.73268921998722) "Room model"

annotation (Placement(transformation(extent={{46,20},{86,60}})));

The following paragraphs explain the different declarations.

The statement

redeclare package Medium = MediumA,

AFlo=20,

V=20*2.5,

declares that the medium of the room air is set to MediumA, that the floor area is 20 m2 and that the room air volume is 20*2.5 m3. The floor area is used to scale the internal heat gains, which are declared with units of W/m2 using the input signal qGai_flow.

The next entries specify constructions and surfaces that participate in the heat exchange.

The entry

nConExt=2,

declares that there are two exterior constructions.

The lines

datConExt(layers={matLayRoo, matLayExt},

A={6*4, 6*3},

til={Buildings.HeatTransfer.Types.Tilt.Ceiling, Buildings.HeatTransfer.Types.Tilt.Wall},

azi={Buildings.HeatTransfer.Types.Azimuth.S, Buildings.HeatTransfer.Types.Azimuth.W}),

declare that the material layers in these constructions are set the the records matLayRoo and matLayExt. What follows are the declarations for the surface area, the tilt of the surface and the azimuth of the surfaces. Thus, the surface with construction matLayExt is 6*3 m2 large and it is a west-facing wall.

Next, the declaration

nConExtWin=nConExtWin,

datConExtWin(layers={matLayExt}, A={4*3},

glaSys={glaSys},

hWin={2},

wWin={2},

fFra={0.1},

til={Buildings.HeatTransfer.Types.Tilt.Wall},

azi={Buildings.HeatTransfer.Types.Azimuth.S}),

declares the construction that contains a window. This construction is built using the materials defined in the record matLayExt. Its total area, including the window, is 4*3 m2. The glazing system is built using the construction defined in the record glaSys. The window area is hwin=2 m high and wwin=2 m wide. The ratio of frame to total glazing system area is 10%.

Optionally, each window can have an overhang, side fins or both. If the above window were to have an overhang of 2.5 m width that is centered above the window, and hence extends each side of the window by 0.25 m, and has a depth of 1 m and a gap between window and overhang of 0.1 m, then its declaration would be

ove(wL={0.25}, wR={0.25}, gap={0.1}, dep={1}),

This line can be placed below the declaration of wWin. This would instanciate the model Buildings.HeatTransfer.Windows.Overhang to model the overhang. See this class for a picture of the above dimensions.

If the window were to have side fins that are 2.5 m high, measured from the bottom of the windows, and hence extends 0.5 m above the window, are 1 m depth and are placed 0.1 m to the left and right of the window, then its declaration would be

sidFin(h={0.5}, gap={0.1}, dep={1}),

This would instanciate the model Buildings.HeatTransfer.Windows.SideFins to model the side fins. See this class for a picture of the above dimensions.

The lines

til={Buildings.HeatTransfer.Types.Tilt.Wall},

azi={Buildings.HeatTransfer.Types.Azimuth.S}),

declare that the construction is a wall that is south exposed.

Note that if the room were to have two windows, and one window has side fins and the other window has an overhang, the following declaration could be used, which sets the value of dep to 0 for the non-present side fins or overhang, respectively:

sidFin(h = {0.5, 0}, gap = {0.1, 0.0}, dep = {1, 0}),

ove(wL = {0.0, 0.25}, wR = {0.0, 0.25}, gap = {0.0, 0.1}, dep = {0, 1}),

What follows is the declaration of the partition constructions, as declared by

nConPar=1,

datConPar(layers={matLayPar}, each A=10,

each til=Buildings.HeatTransfer.Types.Tilt.Wall),

Thus, there is one partition construction. Its area is 10 m2 for each surface, to form a total surface area inside this thermal zone of 20 m2.

Next, the declaration

nConBou=1,

datConBou(layers={matLayFlo}, each A=6*4,

each til=Buildings.HeatTransfer.Types.Tilt.Floor),

declares one construction whose other surface boundary condition is exposed by this room model (through the connector surf_conBou).

The declaration

nSurBou=1,

surBou(each A=6*3, each absIR=0.9, each absSol=0.9, each til=Buildings.HeatTransfer.Types.Tilt.Wall),

is used to instantiate a model for a surface that is in this room. The surface has an area of 6*3 m2, absorptivity in the infrared and the solar spectrum of 0.9 and it is a wall. The room model will compute infrared radiative heat exchange, solar radiative heat gains and infrared radiative heat gains of this surface. The surface temperature and heat flow rate are exposed by this room model at the heat port surf_surBou. A model builder may use this construct to couple this room model to another room model that may model the construction.

The declaration

linearizeRadiation = true,

causes the equations for radiative heat transfer to be linearized. This can reduce computing time at the expense of accuracy.

The declaration

energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,

is used to initialize the air volume inside the thermal zone.

Finally, the declaration

lat=0.73268921998722) "Room model"

sets the latitude of the building which needs to correspond with the latitude of the weather data file.

References

Michael Wetter, Wangda Zuo and Thierry Stephane Nouidui.
Modeling of Heat Transfer in Rooms in the Modelica "Buildings" Library.
Proc. of the 12th IBPSA Conference, p. 1096-1103. Sydney, Australia, November 2011.

Extends from Buildings.Fluid.Interfaces.LumpedVolumeDeclarations (Declarations for lumped volumes), Buildings.Rooms.BaseClasses.ConstructionRecords (Data records for construction data).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
ParameterConstructiondatConExt[NConExt] Data for exterior construction
ParameterConstructionWithWindowdatConExtWin[NConExtWin] Data for exterior construction with window
ParameterConstructiondatConPar[NConPar] Data for partition construction
ParameterConstructiondatConBou[NConBou] Data for construction boundary
GenericsurBou[NSurBou] Record for data of surfaces whose heat conduction is modeled outside of this room
Anglelat Latitude [rad]
AreaAFlo Floor area [m2]
LengthhRoo Average room height [m]
BooleanlinearizeRadiationtrueSet to true to linearize emissive power
Exterior constructions
IntegernConExt Number of exterior constructions
IntegernConExtWin Number of window constructions
Partition constructions
IntegernConPar Number of partition constructions
Boundary constructions
IntegernConBou Number of constructions that have their outside surface exposed to the boundary of this room
IntegernSurBou Number of surface heat transfer models that connect to constructions that are modeled outside of this room
Convective heat transfer
InteriorConvectionintConModBuildings.HeatTransfer.Types...Convective heat transfer model for room-facing surfaces of opaque constructions
CoefficientOfHeatTransferhIntFixed3.0Constant convection coefficient for room-facing surfaces of opaque constructions [W/(m2.K)]
ExteriorConvectionextConModBuildings.HeatTransfer.Types...Convective heat transfer model for exterior facing surfaces of opaque constructions
CoefficientOfHeatTransferhExtFixed10.0Constant convection coefficient for exterior facing surfaces of opaque constructions [W/(m2.K)]
Nominal condition
MassFlowRatem_flow_nominalV*1.2/3600Nominal mass flow rate [kg/s]
Dynamics
Equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Formulation of energy balance
DynamicsmassDynamicsenergyDynamicsFormulation of mass balance
Initialization
AbsolutePressurep_startMedium.p_defaultStart value of pressure [Pa]
TemperatureT_startMedium.T_defaultStart value of temperature [K]
MassFractionX_start[Medium.nX]Medium.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC_start[Medium.nC]fill(0, Medium.nC)Start value of trace substances
ExtraPropertyC_nominal[Medium.nC]fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)

Connectors

TypeNameDescription
VesselFluidPorts_bports[nPorts]Fluid inlets and outlets
HeatPort_aheaPorAirHeat port to air volume
HeatPort_aheaPorRadHeat port for radiative heat gain and radiative temperature
HeatPort_asurf_conBou[nConBou]Heat port at surface b of construction conBou
HeatPort_asurf_surBou[nSurBou]Heat port of surface that is connected to the room air
input RealInputuSha[nConExtWin]Control signal for the shading device (removed if no shade is present)
input RealInputqGai_flow[3]Radiant, convective and latent heat input into room (positive if heat gain) [W/m2]
BusweaBus 

Modelica definition

model MixedAir "Model of a room in which the air is completely mixed"
  extends Buildings.Fluid.Interfaces.LumpedVolumeDeclarations;
  extends Buildings.Rooms.BaseClasses.ConstructionRecords;
  parameter Integer nPorts=0 "Number of ports";
  Buildings.Rooms.BaseClasses.MixedAir air(
    final nConExt=nConExt,
    final nConExtWin=nConExtWin,
    final nConPar=nConPar,
    final nConBou=nConBou,
    final nSurBou=nSurBou,
    final datConExt=datConExt,
    final datConExtWin=datConExtWin,
    final datConPar=datConPar,
    final datConBou=datConBou,
    final surBou=surBou,
    redeclare final package Medium = Medium,
    final V=V,
    nPorts=nPorts,
    final energyDynamics=energyDynamics,
    final massDynamics=massDynamics,
    final p_start=p_start,
    final T_start=T_start,
    final X_start=X_start,
    final C_start=C_start,
    final AFlo=AFlo,
    final hRoo=hRoo,
    final linearizeRadiation=linearizeRadiation,
    final conMod=intConMod,
    final hFixed=hIntFixed,
    final m_flow_nominal=m_flow_nominal,
    tauGlaSol={0.6 for i in 1:NConExtWin}) "Air volume";
  Modelica.Fluid.Vessels.BaseClasses.VesselFluidPorts_b ports[nPorts](
      redeclare each package Medium = Medium) "Fluid inlets and outlets";
  parameter Modelica.SIunits.Angle lat "Latitude";
  final parameter Modelica.SIunits.Volume V=AFlo*hRoo "Volume";
  parameter Modelica.SIunits.Area AFlo "Floor area";
  parameter Modelica.SIunits.Length hRoo "Average room height";
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heaPorAir 
    "Heat port to air volume";
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heaPorRad 
    "Heat port for radiative heat gain and radiative temperature";
  ////////////////////////////////////////////////////////////////////////
  // Constructions
  Constructions.Construction conExt[NConExt](
    A=datConExt.A,
    til=datConExt.til,
    final layers={datConExt[i].layers for i in 1:NConExt},
    steadyStateInitial=datConExt.steadyStateInitial,
    T_a_start=datConExt.T_a_start,
    T_b_start=datConExt.T_b_start) if haveConExt 
    "Heat conduction through exterior construction that have no window";
  Constructions.ConstructionWithWindow conExtWin[NConExtWin](
    A=datConExtWin.A,
    til=datConExtWin.til,
    final layers={datConExtWin[i].layers for i in 1:NConExtWin},
    steadyStateInitial=datConExtWin.steadyStateInitial,
    T_a_start=datConExtWin.T_a_start,
    T_b_start=datConExtWin.T_b_start,
    AWin=datConExtWin.AWin,
    fFra=datConExtWin.fFra,
    glaSys=datConExtWin.glaSys) if haveConExtWin 
    "Heat conduction through exterior construction that have a window";
  Constructions.Construction conPar[NConPar](
    A=datConPar.A,
    til=datConPar.til,
    final layers={datConPar[i].layers for i in 1:NConPar},
    steadyStateInitial=datConPar.steadyStateInitial,
    T_a_start=datConPar.T_a_start,
    T_b_start=datConPar.T_b_start) if haveConPar 
    "Heat conduction through partitions that have both sides inside the thermal zone";
  Constructions.Construction conBou[NConBou](
    A=datConBou.A,
    til=datConBou.til,
    final layers={datConBou[i].layers for i in 1:NConBou},
    steadyStateInitial=datConBou.steadyStateInitial,
    T_a_start=datConBou.T_a_start,
    T_b_start=datConBou.T_b_start) if haveConBou 
    "Heat conduction through opaque constructions that have the boundary conditions of the other side exposed";
    
  parameter Boolean linearizeRadiation=true 
    "Set to true to linearize emissive power";
  ////////////////////////////////////////////////////////////////////////
  // Convection
  parameter Buildings.HeatTransfer.Types.InteriorConvection intConMod=Buildings.HeatTransfer.Types.InteriorConvection.Temperature 
    "Convective heat transfer model for room-facing surfaces of opaque constructions";
  parameter Modelica.SIunits.CoefficientOfHeatTransfer hIntFixed=3.0 
    "Constant convection coefficient for room-facing surfaces of opaque constructions";
  parameter Buildings.HeatTransfer.Types.ExteriorConvection extConMod=Buildings.HeatTransfer.Types.ExteriorConvection.TemperatureWind 
    "Convective heat transfer model for exterior facing surfaces of opaque constructions";
  parameter Modelica.SIunits.CoefficientOfHeatTransfer hExtFixed=10.0 
    "Constant convection coefficient for exterior facing surfaces of opaque constructions";
  parameter Modelica.SIunits.MassFlowRate m_flow_nominal(min=0) = V*1.2/3600 
    "Nominal mass flow rate";
  ////////////////////////////////////////////////////////////////////////
  // Models for boundary conditions
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a surf_conBou[nConBou] if 
    haveConBou "Heat port at surface b of construction conBou";
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a surf_surBou[nSurBou] if 
    haveSurBou "Heat port of surface that is connected to the room air";
  Modelica.Blocks.Interfaces.RealInput uSha[nConExtWin](each min=0, each max=1) if 
       haveShade 
    "Control signal for the shading device (removed if no shade is present)";
  Modelica.Blocks.Interfaces.RealInput qGai_flow[3](unit="W/m2") 
    "Radiant, convective and latent heat input into room (positive if heat gain)";
  // Reassign the tilt since a construction that is declared as a ceiling of the
  // room model has an exterior-facing surface that is a floor
  BaseClasses.ExteriorBoundaryConditions bouConExt(
    final nCon=nConExt,
    final lat=lat,
    linearizeRadiation=linearizeRadiation,
    final conMod=extConMod,
    final conPar=datConExt,
    final hFixed=hExtFixed) if haveConExt 
    "Exterior boundary conditions for constructions without a window";
  // Reassign the tilt since a construction that is declared as a ceiling of the
  // room model has an exterior-facing surface that is a floor
  BaseClasses.ExteriorBoundaryConditionsWithWindow bouConExtWin(
    final nCon=nConExtWin,
    final lat=lat,
    final conPar=datConExtWin,
    linearizeRadiation=linearizeRadiation,
    final conMod=extConMod,
    final hFixed=hExtFixed) if haveConExtWin 
    "Exterior boundary conditions for constructions with a window";

  HeatTransfer.Windows.BaseClasses.WindowRadiation conExtWinRad[NConExtWin](
    final AWin=(1 .- datConExtWin.fFra) .* datConExtWin.AWin,
    final N=datConExtWin.glaSys.nLay,
    final tauGlaSol=datConExtWin.glaSys.glass.tauSol,
    final rhoGlaSol_a=datConExtWin.glaSys.glass.rhoSol_a,
    final rhoGlaSol_b=datConExtWin.glaSys.glass.rhoSol_b,
    final xGla=datConExtWin.glaSys.glass.x,
    final tauShaSol_a=datConExtWin.glaSys.shade.tauSol_a,
    final tauShaSol_b=datConExtWin.glaSys.shade.tauSol_b,
    final rhoShaSol_a=datConExtWin.glaSys.shade.rhoSol_a,
    final rhoShaSol_b=datConExtWin.glaSys.shade.rhoSol_b,
    final haveExteriorShade=datConExtWin.glaSys.haveExteriorShade,
    final haveInteriorShade=datConExtWin.glaSys.haveInteriorShade) if 
    haveConExtWin "Model for solar radiation through shades and window";
  BoundaryConditions.WeatherData.Bus weaBus;
protected 
  final parameter Boolean haveShade=datConExtWin[1].glaSys.haveExteriorShade
       or datConExtWin[1].glaSys.haveInteriorShade 
    "Set to true if the windows have a shade";
equation 
  connect(air.conExtWin, conExtWin.opa_b);
  connect(air.conPar_b, conPar.opa_b);
  connect(air.conPar_a, conPar.opa_a);
  connect(conBou.opa_a, surf_conBou);
  connect(air.conBou, conBou.opa_b);
  connect(surf_surBou, air.conSurBou);
  connect(uSha, air.uSha);
  connect(qGai_flow, air.qGai_flow);
  connect(air.JOutUns, conExtWin.JInUns_b);
  connect(conExtWin.JOutUns_b, air.JInUns);
  connect(air.JOutSha, conExtWin.JInSha_b);
  connect(conExtWin.JOutSha_b, air.JInSha);
  connect(air.glaUns, conExtWin.glaUns_b);
  connect(conExtWin.glaSha_b, air.glaSha);
  connect(air.conExtWinFra, conExtWin.fra_b);
  connect(uSha, conExtWin.uSha);
  connect(uSha, bouConExtWin.uSha);
  connect(bouConExtWin.opa_a, conExtWin.opa_a);
  connect(conExtWin.JInUns_a, bouConExtWin.JOutUns);
  connect(bouConExtWin.JInUns, conExtWin.JOutUns_a);
  connect(conExtWin.glaUns_a, bouConExtWin.glaUns);
  connect(bouConExtWin.glaSha, conExtWin.glaSha_a);
  connect(conExtWin.JInSha_a, bouConExtWin.JOutSha);
  connect(bouConExtWin.JInSha, conExtWin.JOutSha_a);
  connect(conExtWin.fra_a, bouConExtWin.fra);
  connect(conExt.opa_b, air.conExt);
  connect(conExt.opa_a, bouConExt.opa_a);
  connect(weaBus, bouConExtWin.weaBus);
  connect(weaBus, bouConExt.weaBus);
  connect(ports, air.ports);
  connect(bouConExtWin.QAbsSolSha_flow, conExtWinRad.QAbsExtSha_flow);
  connect(bouConExtWin.inc, conExtWinRad.incAng);
  connect(bouConExtWin.HDir, conExtWinRad.HDir);
  connect(bouConExtWin.HDif, conExtWinRad.HDif);
  connect(uSha, conExtWinRad.uSha);
  connect(air.HOutConExtWin, conExtWinRad.HRoo);
  connect(conExtWinRad.QTra_flow, air.JInConExtWin);
  connect(conExtWinRad.QAbsIntSha_flow, air.QAbsSolSha_flow);
  connect(conExtWin.QAbsSha_flow, conExtWinRad.QAbsGlaSha_flow);
  connect(conExtWinRad.QAbsGlaUns_flow, conExtWin.QAbsUns_flow);
  connect(air.heaPorAir, heaPorAir);
  connect(air.heaPorRad, heaPorRad);
end MixedAir;

Automatically generated Thu Jul 26 10:22:38 2012.