Buildings.Examples.FanCoils

Package with an example of fan coil units

Information

This package demonstrates the use of models for fan coil units with controls according to ASHRAE Guideline 36.

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

Package Content

Name Description
Buildings.Examples.FanCoils.FourPipe FourPipe Model of a five zone floor with fan coil units

Buildings.Examples.FanCoils.FourPipe Buildings.Examples.FanCoils.FourPipe

Model of a five zone floor with fan coil units

Buildings.Examples.FanCoils.FourPipe

Information

This model demonstrates the usage of Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller, a controller for four-pipe fan coil units based on the sequences defined in ASHRAE Guideline 36, 2021. A generic schematic for such a system is shown below.

image

This model consists of

The 3 fan coil units each have a supply fan and a chilled-water cooling coil. The heating coil varies as follows for each instance:

The HVAC system switches between occupied, unoccupied, unoccupied warm-up and unoccupied pre-cool modes. The cooling coil and heating coil output are modulated to maintain the heating and cooling setpoints. The supply air temperature is modulated based on the differential between the temperature setpoint and the zone temperature to avoid unecessary heating and cooling use and avoid extreme temperature fluctuations.

See the model Buildings.Fluid.ZoneEquipment.FourPipe and Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller for a description of the fan coil unit and the controller, respectively.

The thermal zone is a south-facing thermal zone of the medium office building that is also used in Buildings.Examples.VAVReheat, but here only this one room is modeled, and instanciated three times for the three different fan coil units. The external facade is 49.91 meters long, the north-facing interior wall is 40.76 meters, and the room width is 4.58 meters. The room height is 2.74 meters.

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

Parameters

TypeNameDefaultDescription
replaceable package MediumABuildings.Media.AirMedium for air
replaceable package MediumWBuildings.Media.WaterMedium for hot-water and chilled-water
LengthwSou49.91Length of south facing exterior wall [m]
LengthwNor40.76Lenght of north facing interior wall [m]
LengthwSid6.47Length of each of the two side walls [m]
LengthdRoosqrt(wSid^2 - ((wSou - wNor)...Room depth [m]
LengthhRoo2.74Room height [m]
AreaAFlo(wSou + wNor)/2*dRooFloor area [m2]
VolumeVRooAFlo*hRooRoom volume [m3]
RealwinWalRat0.33Window to wall ratio for exterior wall
LengthhWin1.5Height of windows [m]
RealkInt1Gain factor to scale internal heat gain in each zone
PlywoodmatCarTramatCarTra(k=0.11, d=544, nSt...Wood for floor
PlywoodmatFurmatFur(x=0.15, nStaRef=5)Material for furniture
ConcretematConmatCon(x=0.1, k=1.311, c=836...Concrete
PlywoodmatWoomatWoo(x=0.01, k=0.11, d=544...Wood for exterior construction
GypsumBoardmatGypmatGyp(x=0.0127, k=0.16, c=8...Gypsum board
CarpetmatCar Carpet
GenericmatInsmatIns(x=0.087, k=0.049, c=8...Steelframe construction with insulation
GypsumBoardmatGyp2matGyp2(x=0.025, k=0.16, c=8...Gypsum board
DoubleClearAir13ClearglaSysglaSys(UFra=2, shade=Buildin...Data record for the glazing system
GenericconExtWalconExtWal(nLay=3, material={...Exterior construction
GenericconIntWalconIntWal(nLay=1, material={...Interior wall construction
GenericconFurconFur(nLay=1, material={mat...Construction for internal mass of furniture
GenericconFloconFlo(nLay=1, material={mat...Floor construction (opa_a is carpet)

Connectors

TypeNameDescription
replaceable package MediumAMedium for air
replaceable package MediumWMedium for hot-water and chilled-water

Modelica definition

model FourPipe "Model of a five zone floor with fan coil units" extends Modelica.Icons.Example; replaceable package MediumA = Buildings.Media.Air "Medium for air"; replaceable package MediumW = Buildings.Media.Water "Medium for hot-water and chilled-water"; parameter Modelica.Units.SI.Length wSou=49.91 "Length of south facing exterior wall"; parameter Modelica.Units.SI.Length wNor=40.76 "Lenght of north facing interior wall"; parameter Modelica.Units.SI.Length wSid=6.47 "Length of each of the two side walls"; parameter Modelica.Units.SI.Length dRoo = sqrt(wSid^2-((wSou-wNor)/2)^2) "Room depth"; parameter Modelica.Units.SI.Length hRoo=2.74 "Room height"; parameter Modelica.Units.SI.Area AFlo=(wSou+wNor)/2 * dRoo "Floor area"; parameter Modelica.Units.SI.Volume VRoo=AFlo*hRoo "Room volume"; parameter Real winWalRat( min=0.01, max=0.99) = 0.33 "Window to wall ratio for exterior wall"; parameter Modelica.Units.SI.Length hWin=1.5 "Height of windows"; parameter Real kInt(min=0, max=1) = 1 "Gain factor to scale internal heat gain in each zone"; parameter HeatTransfer.Data.Solids.Plywood matCarTra( k=0.11, d=544, nStaRef=1, x=0.215/0.11) "Wood for floor"; parameter HeatTransfer.Data.Solids.Plywood matFur( x=0.15, nStaRef=5) "Material for furniture"; parameter HeatTransfer.Data.Solids.Concrete matCon( x=0.1, k=1.311, c=836, nStaRef=5) "Concrete"; parameter HeatTransfer.Data.Solids.Plywood matWoo( x=0.01, k=0.11, d=544, nStaRef=1) "Wood for exterior construction"; parameter HeatTransfer.Data.Solids.GypsumBoard matGyp( x=0.0127, k=0.16, c=830, d=784, nStaRef=2) "Gypsum board"; parameter HeatTransfer.Data.Resistances.Carpet matCar "Carpet"; parameter HeatTransfer.Data.Solids.Generic matIns( x=0.087, k=0.049, c=836.8, d=265, nStaRef=5) "Steelframe construction with insulation"; parameter HeatTransfer.Data.Solids.GypsumBoard matGyp2( x=0.025, k=0.16, c=830, d=784, nStaRef=2) "Gypsum board"; parameter HeatTransfer.Data.GlazingSystems.DoubleClearAir13Clear glaSys( UFra=2, shade=Buildings.HeatTransfer.Data.Shades.Gray(), haveInteriorShade=false, haveExteriorShade=false) "Data record for the glazing system"; parameter HeatTransfer.Data.OpaqueConstructions.Generic conExtWal( nLay=3, material={matWoo,matIns,matGyp}) "Exterior construction"; parameter HeatTransfer.Data.OpaqueConstructions.Generic conIntWal( nLay=1, material={matGyp2}) "Interior wall construction"; parameter HeatTransfer.Data.OpaqueConstructions.Generic conFur( nLay=1, material={matFur}) "Construction for internal mass of furniture"; parameter HeatTransfer.Data.OpaqueConstructions.Generic conFlo( nLay=1, material={matCon}) "Floor construction (opa_a is carpet)"; Buildings.Fluid.Sources.Boundary_pT souHea( redeclare package Medium = MediumW, p(displayUnit="Pa") = 100000 + 3000, T=333.15, nPorts=1) "Source for hot water"; Buildings.Fluid.Sources.Boundary_pT sinHea( redeclare package Medium = MediumW, p=100000, T=328.15, nPorts=1) "Sink for hot water"; Buildings.Fluid.Sources.Boundary_pT sinCoo( redeclare package Medium = MediumW, p=100000, T=288.15, nPorts=3) "Sink for chilled water"; Buildings.Fluid.Sources.Boundary_pT souCoo( redeclare package Medium = MediumW, p(displayUnit="Pa") = 100000 + 3000, T=279.15, nPorts=3) "Source for chilled water"; Buildings.Fluid.ZoneEquipment.FourPipe fanCoiUni1( redeclare package MediumA = MediumA, redeclare package MediumHW = MediumW, redeclare package MediumCHW = MediumW, heaCoiTyp=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.None, QCooCoi_flow_nominal=-20000, dpAir_nominal=100, mCooCoiWat_flow_nominal=4*0.2984, dpCooCoiWat_nominal(displayUnit="Pa") = 1000, mAir_flow_nominal=0.21303*2*3) "Fan coil unit with no heating coil"; Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller conFCU1( cooCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased, heaCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.None, cooConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kCoo=0.1, TiCoo=60, heaConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kHea=0.05, TiHea=120, cooCoiConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kCooCoi=0.1, TiCooCoi=120, kHeaCoi=0.005, TiHeaCoi=200, TSupSet_max=308.15, TSupSet_min=285.85) "Fan coil unit controller"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat( filNam=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos"), computeWetBulbTemperature=false) "Weather data reader"; Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller conFCU2( cooCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased, heaCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased, cooConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kCoo=0.25, TiCoo=60, heaConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kHea=0.25, TiHea=60, cooCoiConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kCooCoi=0.1, TiCooCoi=120, heaCoiConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kHeaCoi=0.1, TiHeaCoi=120, TSupSet_max=308.15, TSupSet_min=285.85) "Fan coil unit controller"; Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller conFCU3( cooCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased, heaCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.Electric, cooConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kCoo=0.1, TiCoo=120, heaConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kHea=0.1, TiHea=120, cooCoiConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kCooCoi=0.1, TiCooCoi=120, heaCoiConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, kHeaCoi=0.025, TiHeaCoi=90, TSupSet_max=308.15, TSupSet_min=285.85) "Fan coil unit controller"; MixedAir zon1(nPorts=2) "Zone-1"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTRooAir1(T( displayUnit="degC")) "Air temperature sensor"; Modelica.Blocks.Sources.Constant uSha(k=0) "Control signal for the shading device"; Modelica.Blocks.Routing.Replicator replicator(nout=1); Modelica.Blocks.Sources.CombiTimeTable intGaiFra( table=[ 0,0.05; 8,0.05; 9,0.9; 12,0.9; 12,0.8; 13,0.8; 13,1; 17,1; 19,0.1; 24,0.05], timeScale=3600, extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) "Fraction of internal heat gain"; Modelica.Blocks.Math.MatrixGain gai(K=20*[0.4; 0.4; 0.2]) "Matrix gain to split up heat gain in radiant, convective and latent gain"; Modelica.Blocks.Math.Gain gaiInt[3](each k=kInt) "Gain for internal heat gain amplification for each zone"; Buildings.Fluid.ZoneEquipment.FourPipe fanCoiUni2( redeclare package MediumA = MediumA, redeclare package MediumHW = MediumW, redeclare package MediumCHW = MediumW, QHeaCoi_flow_nominal=10000, QCooCoi_flow_nominal=-20000, mHeaCoiWat_flow_nominal=0.75*3.75*0.50946*0.25, dpHeaCoiWat_nominal(displayUnit="Pa") = 1000, dpAir_nominal=100, mCooCoiWat_flow_nominal=4*0.2984, dpCooCoiWat_nominal(displayUnit="Pa") = 1000, mAir_flow_nominal=0.21303*3*1.5) "Fan coil unit with hot-water heating coil"; MixedAir zon2(nPorts=2) "Zone-2"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTRooAir2(T( displayUnit="degC")) "Air temperature sensor"; Buildings.Fluid.ZoneEquipment.FourPipe fanCoiUni3( redeclare package MediumA = MediumA, redeclare package MediumHW = MediumW, redeclare package MediumCHW = MediumW, heaCoiTyp=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.Electric, QCooCoi_flow_nominal=-20000, dpAir_nominal=100, mCooCoiWat_flow_nominal=4*0.2984, dpCooCoiWat_nominal(displayUnit="Pa") = 1000, mAir_flow_nominal=0.21303*1.5*3, QHeaCoi_flow_nominal=10000) "Fan coil unit with electric heating coil"; MixedAir zon3(nPorts=2) "Zone-3"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTRooAir3(T( displayUnit="degC")) "Air temperature sensor"; model MixedAir = Buildings.ThermalZones.Detailed.MixedAir( redeclare package Medium = MediumA, AFlo=AFlo, hRoo=hRoo, nConExt=0, nConExtWin=1, datConExtWin( layers={conExtWal}, A={wSou*hRoo}, glaSys={glaSys}, wWin={winWalRat*wSou*hRoo/hWin}, hWin={hWin}, fFra={0.1}, til={Buildings.Types.Tilt.Wall}, azi={Buildings.Types.Azimuth.N}), nConPar=3, datConPar( layers={conFlo, conIntWal, conFur}, A={AFlo, (wSid+wNor+wSid)/2 * hRoo, 414.68}, til={Buildings.Types.Tilt.Floor, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall}), nConBou=0, nSurBou=0, intConMod=Buildings.HeatTransfer.Types.InteriorConvection.Temperature, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Thermal zone model"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant limLev( k=0) "Cooling and heating demand limit level"; Buildings.Controls.SetPoints.OccupancySchedule occSch( occupancy=3600*{6,19}) "Occupancy schedule"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccHeaSetPoi( k=20 + 273.15) "Occupied heating temperature setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnOccCooSet( k=30 + 273.15) "Unoccupied cooling temperature setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnOccHeaSet( k=12 + 273.15) "Unoccupied heating temperature setpoint"; Buildings.Controls.OBC.CDL.Reals.GreaterThreshold greThr[3]( t=fill(0.05,3), h=fill(0.025, 3)) "Check if fan speed is above threshold for proven on signal"; Buildings.Controls.OBC.CDL.Logical.Timer tim[3]( t=fill(120, 3)) "Generate fan proven on signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSetAdj( k=0) "Unoccupied cooling temperature setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant cooWarTim( k=3600) "Cooldown and warm-up time"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccCooSetPoi( k=24 + 273.15) "Occupied cooling temperature setpoint"; Modelica.Blocks.Math.Gain gaiInt1[3]( k=fill(4.75*kInt, 3)) "Gain for internal heat gain amplification for zone with no heating coil service"; equation connect(conFCU1.yFan, fanCoiUni1.uFan); connect(greThr.y, tim.u); connect(fanCoiUni1.TAirSup, conFCU1.TSup); connect(uSha.y, replicator.u); connect(replicator.y, zon1.uSha); connect(weaDat.weaBus, zon1.weaBus); connect(zon1.heaPorAir, senTRooAir1.port); connect(senTRooAir1.T, conFCU1.TZon); connect(intGaiFra.y, gai.u); connect(gai.y, gaiInt.u); connect(conFCU2.yFan,fanCoiUni2. uFan); connect(conFCU2.yCooCoi,fanCoiUni2. uCoo); connect(conFCU2.yHeaCoi,fanCoiUni2. uHea); connect(fanCoiUni2.port_air_b,zon2. ports[1]); connect(fanCoiUni2.port_air_a,zon2. ports[2]); connect(zon2.heaPorAir, senTRooAir2.port); connect(conFCU2.TZon, senTRooAir2.T); connect(replicator.y,zon2. uSha); connect(gaiInt.y,zon2. qGai_flow); connect(weaDat.weaBus,zon2. weaBus); connect(conFCU3.yFan,fanCoiUni3. uFan); connect(conFCU3.yCooCoi,fanCoiUni3. uCoo); connect(conFCU3.yHeaCoi,fanCoiUni3. uHea); connect(zon3.heaPorAir, senTRooAir3.port); connect(gaiInt.y,zon3. qGai_flow); connect(conFCU3.TZon, senTRooAir3.T); connect(sinHea.ports[1],fanCoiUni2. port_HW_b); connect(souHea.ports[1],fanCoiUni2. port_HW_a); connect(sinCoo.ports[1],fanCoiUni3. port_CHW_b); connect(sinCoo.ports[2],fanCoiUni2. port_CHW_b); connect(souCoo.ports[1],fanCoiUni3. port_CHW_a); connect(souCoo.ports[2],fanCoiUni2. port_CHW_a); connect(weaDat.weaBus,zon3. weaBus); connect(fanCoiUni2.TAirSup,conFCU2. TSup); connect(fanCoiUni3.TAirSup,conFCU3. TSup); connect(cooWarTim.y, conFCU1.warUpTim); connect(cooWarTim.y, conFCU1.cooDowTim); connect(cooWarTim.y,conFCU2. warUpTim); connect(cooWarTim.y,conFCU2. cooDowTim); connect(TSetAdj.y, conFCU1.setAdj); connect(TSetAdj.y,conFCU2. setAdj); connect(TSetAdj.y,conFCU3. setAdj); connect(cooWarTim.y,conFCU3. warUpTim); connect(cooWarTim.y,conFCU3. cooDowTim); connect(limLev.y, conFCU1.uCooDemLimLev); connect(limLev.y, conFCU1.uHeaDemLimLev); connect(limLev.y,conFCU2. uCooDemLimLev); connect(limLev.y,conFCU2. uHeaDemLimLev); connect(limLev.y,conFCU3. uCooDemLimLev); connect(limLev.y,conFCU3. uHeaDemLimLev); connect(occSch.tNexOcc, conFCU1.tNexOcc); connect(occSch.tNexOcc,conFCU2. tNexOcc); connect(occSch.tNexOcc,conFCU3. tNexOcc); connect(occSch.occupied,conFCU2. u1Occ); connect(occSch.occupied,conFCU3. u1Occ); connect(occSch.occupied, conFCU1.u1Occ); connect(TOccHeaSetPoi.y, conFCU1.TOccHeaSet); connect(conFCU2.TOccHeaSet, TOccHeaSetPoi.y); connect(conFCU3.TOccHeaSet, TOccHeaSetPoi.y); connect(TOccCooSetPoi.y,conFCU3. TOccCooSet); connect(TOccCooSetPoi.y,conFCU2. TOccCooSet); connect(TOccCooSetPoi.y, conFCU1.TOccCooSet); connect(TUnOccCooSet.y,conFCU3. TUnoCooSet); connect(TUnOccCooSet.y,conFCU2. TUnoCooSet); connect(TUnOccCooSet.y, conFCU1.TUnoCooSet); connect(TUnOccHeaSet.y,conFCU3. TUnoHeaSet); connect(TUnOccHeaSet.y,conFCU2. TUnoHeaSet); connect(TUnOccHeaSet.y, conFCU1.TUnoHeaSet); connect(souCoo.ports[3], fanCoiUni1.port_CHW_a); connect(sinCoo.ports[3], fanCoiUni1.port_CHW_b); connect(fanCoiUni1.yFan_actual, greThr[1].u); connect(fanCoiUni2.yFan_actual, greThr[2].u); connect(fanCoiUni3.yFan_actual, greThr[3].u); connect(tim[1].passed, conFCU1.u1Fan); connect(tim[2].passed,conFCU2. u1Fan); connect(tim[3].passed,conFCU3. u1Fan); connect(fanCoiUni1.port_air_b, zon1.ports[1]); connect(fanCoiUni1.port_air_a, zon1.ports[2]); connect(gai.y, gaiInt1.u); connect(gaiInt1.y, zon1.qGai_flow); connect(conFCU1.yCooCoi, fanCoiUni1.uCoo); connect(fanCoiUni3.port_air_b, zon3.ports[1]); connect(fanCoiUni3.port_air_a, zon3.ports[2]); end FourPipe;

Buildings.Examples.FanCoils.FourPipe.MixedAir Buildings.Examples.FanCoils.FourPipe.MixedAir

Thermal zone model

Buildings.Examples.FanCoils.FourPipe.MixedAir

Parameters

TypeNameDefaultDescription
ParameterConstructiondatConExt[NConExt]datConExt(each T_a_start=T_s...Data for exterior construction
ParameterConstructiondatConBou[NConBou]datConBou(each T_a_start=T_s...Data for construction boundary
OpaqueSurfacesurBou[NSurBou] Record for data of surfaces whose heat conduction is modeled outside of this room
Brick120dummyCon Dummy construction to assign a parameter to the instance
SingleClear3dummyGlaSys Dummy construction to assign a parameter to the instance
replaceable package MediumPartialMediumMedium in the component
AreaAFloAFloFloor area [m2]
LengthhRoohRooAverage room height [m]
BooleanlinearizeRadiationtrueSet to true to linearize emissive power
Exterior constructions
IntegernConExt0Number of exterior constructions
IntegernConExtWin1Number of window constructions
Partition constructions
IntegernConPar3Number of partition constructions
Boundary constructions
IntegernConBou0Number of constructions that have their outside surface exposed to the boundary of this room
IntegernSurBou0Number of surface heat transfer models that connect to constructions that are modeled outside of this room
Ports
Booleanuse_C_flowfalseSet to true to enable input connector for trace substance that is connected to room air
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
Glazing system
BooleansteadyStateWindowfalseSet to false to add thermal capacity at window, which generally leads to faster simulation
Zone air
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance for zone air: dynamic (3 initialization options) or steady state
RealmSenFac1Factor for scaling the sensible thermal mass of the zone air volume
Experimental (may be changed in future releases)
BooleansampleModelfalseSet to true to time-sample the model, which can give shorter simulation time if there is already time sampling in the system model
Initialization
AbsolutePressurep_startMedium.p_defaultStart value of zone air pressure [Pa]
TemperatureT_startMedium.T_defaultStart value of zone air temperature [K]
MassFractionX_start[Medium.nX]Medium.X_defaultStart value of zone air mass fractions m_i/m [kg/kg]
ExtraPropertyC_start[Medium.nC]fill(0, Medium.nC)Start value of zone air trace substances
ExtraPropertyC_nominal[Medium.nC]fill(1E-2, Medium.nC)Nominal value of zone air trace substances. (Set to typical order of magnitude.)

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
VesselFluidPorts_bports[nPorts]Fluid inlets and outlets
HeatPort_aheaPorAirHeat port to air volume
HeatPort_aheaPorRadHeat port for radiative heat gain and radiative temperature
input RealInputuWin[nConExtWin]Control signal for window state (used for electrochromic windows, removed otherwise) [1]
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 RealInputqGai_flow[3]Radiant, convective and latent heat input into room (positive if heat gain) [W/m2]
BusweaBusWeather data
input RealInputuSha[nConExtWin]Control signal for the shading device (removed if no shade is present)
input RealInputC_flow[Medium.nC]Trace substance mass flow rate added to the room air. Enable if use_C_flow = true
output RealOutputHGlo[NConExtWin]Global solar irradiance [W/m2]
output RealOutputQTraGlo[NConExtWin]Transmitted global solar radiation [W]

Modelica definition

model MixedAir = Buildings.ThermalZones.Detailed.MixedAir( redeclare package Medium = MediumA, AFlo=AFlo, hRoo=hRoo, nConExt=0, nConExtWin=1, datConExtWin( layers={conExtWal}, A={wSou*hRoo}, glaSys={glaSys}, wWin={winWalRat*wSou*hRoo/hWin}, hWin={hWin}, fFra={0.1}, til={Buildings.Types.Tilt.Wall}, azi={Buildings.Types.Azimuth.N}), nConPar=3, datConPar( layers={conFlo, conIntWal, conFur}, A={AFlo, (wSid+wNor+wSid)/2 * hRoo, 414.68}, til={Buildings.Types.Tilt.Floor, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall}), nConBou=0, nSurBou=0, intConMod=Buildings.HeatTransfer.Types.InteriorConvection.Temperature, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Thermal zone model";