Description: "Collection of validation models"

- Home > Modelica

## Buildings.Rooms.Validation

Collection of validation models

### Information

This package contains validation models for the classes in Buildings.Rooms.

Note that most validation models contain simple input data which may not be realistic, but for which the correct output can be obtained through an analytic solution. The examples plot various outputs, which have been verified against these solutions. These model outputs are stored as reference data and used for continuous validation whenever models in the library change.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

### Package Content

Name | Description
--- | ---
MixedAirInitialization | Validation model for the correct initialization of the mixed air model
BESTEST | This package contains the models for the BESTEST validation
TestConditionalConstructions | Package that tests rooms with few constructions only

## Buildings.Rooms.Validation.MixedAirInitialization

Validation model for the correct initialization of the mixed air model

### Information

This model tests the correct initialization of Buildings.Rooms.MixedAir. The air temperature should start at 10ˆ C and remain there.

Note that there are still very small heat flows even if all solar radiation is set to zero and all boundary conditions and start values are set to -15ˆ C. The reasons are as follows:

- The block Buildings.BoundaryConditions.WeatherData.BaseClasses.CheckRadiation avoids that the radiation becomes negative, which may happen due to the smooth interpolation in the weather data reader. To achieve this, it sets a minimum radiation of 0.0001 W/m2.
- The model requires the numerical solution of nonlinear systems of equations and of systems of ordinary differential equations. These are of course only solved within the solver tolerance.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | T_start | 273.15 - 15 | Initial value [K]
Insulation100Concrete200 | matLayExt |  | Construction material for exterior walls
Brick120 | matLayPar |  | Construction material for partition walls
Generic | matLayRoo |  | Construction material for roof
Generic | matLayFlo |  | Construction material for floor
DoubleClearAir13Clear | glaSys |  | Data record for the glazing system
Integer | nConExtWin | 1 | Number of constructions with a window
Integer | nConBou | 1 | Number of surface that are connected to constructions that are modeled inside the room
Integer | nSurBou | 1 | Number of surface that are connected to the room air volume

### Modelica definition

model MixedAirInitialization "Validation model for the correct initialization of the mixed air model" extends Modelica.Icons.Example; package MediumA = Buildings.Media.Air "Medium model"; parameter Modelica.SIunits.Temperature T_start=273.15-15 "Initial value"; parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Insulation100Concrete200 matLayExt "Construction material for exterior walls"; parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Brick120 matLayPar "Construction material for partition walls"; parameter 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"; parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matLayFlo( material={ HeatTransfer.Data.Solids.Concrete(x=0.2), HeatTransfer.Data.Solids.InsulationBoard(x=0.15), HeatTransfer.Data.Solids.Concrete(x=0.05)}, final nLay=3) "Construction material for floor"; parameter Buildings.HeatTransfer.Data.GlazingSystems.DoubleClearAir13Clear glaSys( UFra=2, shade=Buildings.HeatTransfer.Data.Shades.Gray(), haveInteriorShade=false, haveExteriorShade=false) "Data record for the glazing system"; parameter Integer nConExtWin = 1 "Number of constructions with a window"; parameter Integer nConBou = 1 "Number of surface that are connected to constructions that are modeled inside the room"; parameter Integer nSurBou = 1 "Number of surface that are connected to the room air volume"; 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.Types.Tilt.Ceiling, Buildings.Types.Tilt.Wall}, azi={Buildings.Types.Azimuth.S, Buildings.Types.Azimuth.W}), nConExtWin=nConExtWin, datConExtWin( layers={matLayExt}, each A=4*3, glaSys={glaSys}, each hWin=2, each wWin=4, ove(wR={0},wL={0}, gap={0.1}, dep={1}), each fFra=0.1, each til=Buildings.Types.Tilt.Wall, azi={Buildings.Types.Azimuth.S}), nConPar=1, datConPar(layers={matLayPar}, each A=10, each til=Buildings.Types.Tilt.Wall), nConBou=1, datConBou(layers={matLayFlo}, each A=6*4, each til=Buildings.Types.Tilt.Floor), nSurBou=1, surBou(each A=6*3, each absIR=0.9, each absSol=0.9, each til=Buildings.Types.Tilt.Wall), linearizeRadiation = false, nPorts=1, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, lat=0.73268921998722, T_start=T_start) "Room model"; Modelica.Blocks.Sources.Constant qConGai_flow(k=0) "Convective heat gain"; Modelica.Blocks.Sources.Constant qRadGai_flow(k=0) "Radiative heat gain"; Modelica.Blocks.Routing.Multiplex3 multiplex3_1; Modelica.Blocks.Sources.Constant qLatGai_flow(k=0) "Latent heat gain"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat( filNam="modelica://Buildings/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos", HInfHorSou=Buildings.BoundaryConditions.Types.DataSource.Parameter, HSou=Buildings.BoundaryConditions.Types.RadiationDataSource.Input_HGloHor_HDifHor, TDewPoiSou=Buildings.BoundaryConditions.Types.DataSource.Parameter, calTSky=Buildings.BoundaryConditions.Types.SkyTemperatureCalculation.TemperaturesAndSkyCover, relHumSou=Buildings.BoundaryConditions.Types.DataSource.Parameter, relHum=0, TDewPoi(displayUnit="K") = T_start, TDryBulSou=Buildings.BoundaryConditions.Types.DataSource.Input, TBlaSkySou=Buildings.BoundaryConditions.Types.DataSource.Input); Modelica.Blocks.Sources.Constant uSha(k=0) "Control signal for the shading device"; Modelica.Blocks.Routing.Replicator replicator(nout=max(1,nConExtWin)); Buildings.HeatTransfer.Sources.FixedTemperature TSoi[nConBou](each T=T_start) "Boundary condition for construction"; Buildings.HeatTransfer.Sources.FixedTemperature TBou[nSurBou](each T=T_start) "Boundary condition for construction"; HeatTransfer.Conduction.MultiLayer conOut[nSurBou]( each A=6*4, each layers=matLayPar, each steadyStateInitial=true) "Construction that is modeled outside of room"; Fluid.Sources.FixedBoundary boundary( nPorts=1, redeclare package Medium = MediumA, T=T_start) "Boundary condition"; Modelica.Blocks.Sources.Constant HSol(k=0) "Solar irradition"; Modelica.Blocks.Sources.Constant T(k=T_start) "Dry bulb and black body sky temperature"; equation connect(qRadGai_flow.y, multiplex3_1.u1[1]); connect(qConGai_flow.y, multiplex3_1.u2[1]); connect(qLatGai_flow.y, multiplex3_1.u3[1]); connect(multiplex3_1.y, roo.qGai_flow); connect(weaDat.weaBus, roo.weaBus); connect(uSha.y, replicator.u); connect(TSoi.port, roo.surf_conBou); connect(TBou.port,conOut. port_b); connect(roo.surf_surBou, conOut.port_a); connect(roo.uSha, replicator.y); connect(roo.ports[1], boundary.ports[1]); connect(HSol.y, weaDat.HGloHor_in); connect(HSol.y, weaDat.HDifHor_in); connect(T.y, weaDat.TDryBul_in); connect(weaDat.TBlaSky_in, T.y); end MixedAirInitialization;