IEA EBC Annex 60 EBC logo

Annex60.Experimental.Benchmarks.AirFlow.Components

Zonal components for a scalable air flow benchmark

Information

This package contains modular zone models that can be combined for a scalable airflow benchmark. The individual zone models are combined in the Floor model, in which a number of Zones nZones can be specified. The model will then accordingly adjust the number of the vectorized zones.

Package Content

Name Description
Annex60.Experimental.Benchmarks.AirFlow.Components.Floor Floor Floor element for air flow benchmark, consisting of zones, hallway, outdoor environment, and staircase
Annex60.Experimental.Benchmarks.AirFlow.Components.OutsideEnvironment OutsideEnvironment Outside Environment air volume for simple air flow benchmark
Annex60.Experimental.Benchmarks.AirFlow.Components.SimpleZone SimpleZone A room as a thermal zone represented by its air volume
Annex60.Experimental.Benchmarks.AirFlow.Components.Staircase Staircase Zone representing a staircase connecting multiple floor models
Annex60.Experimental.Benchmarks.AirFlow.Components.ZoneHallway ZoneHallway Zone representing a hallway connecting multiple SimpleZone models

Annex60.Experimental.Benchmarks.AirFlow.Components.Floor Annex60.Experimental.Benchmarks.AirFlow.Components.Floor

Floor element for air flow benchmark, consisting of zones, hallway, outdoor environment, and staircase

Annex60.Experimental.Benchmarks.AirFlow.Components.Floor

Information

A floor model for a scalable air flow benchmark.

Assumptions and limitations

See e.g. Annex60.Experimental.Benchmarks.AirFlow.Components.SimpleZone for limitations and assumptions on the zone level representation.

Typical use and important parameters

This floor model consists of a staircase element connected to at least one hallway element. The hallway is connected to a simple zone model through a door model, and to the outside environment via orifice models. Zone, hallway and outside environment are vectorized. Thus, by setting the number of zones nZones, the floor model can be scaled to represent a floor with varying numbers of rooms. In addition, the staircase element can be connected to other floor models in order to also scale the model representation of air flows in a building regarding the number of floors on top of each other.

References

Inspired by Annex60.Airflow.Multizone.Validation.ThreeRoomsContam

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium in the component
IntegernZones4Number of zone elements
TemperatureTRoom298.15Indoor air temperature of room in K [K]
TemperatureTHallway293.15Indoor air temperature of hallway in K [K]
TemperatureTStaircase293.15Indoor air temperature of staircase in K [K]
HeightheightRooms3Height of rooms in m [m]
LengthlengthZone5Length of room in m [m]
LengthwidthZone5Width of room in m [m]
LengthwidthHallway3Width of room in m [m]
RealdoorOpening1Opening of door (between 0:closed and 1:open)
BooleanforceErrorControlOnFlowtrueFlag to force error control on m_flow. Set to true if interested in flow rate

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
FluidPort_aport_a_topFluid port for connection to higher floors
FluidPort_aport_a_botFluid port for connection to lower floors
FluidPort_aport_a_vent[nZones]Port to connect mechanical ventilation equipment to each zone
BusweaBus1Bus with weather data

Modelica definition

model Floor "Floor element for air flow benchmark, consisting of zones, hallway, outdoor environment, and staircase" replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component"; parameter Integer nZones(min=1) = 4 "Number of zone elements"; parameter Modelica.SIunits.Temperature TRoom = 298.15 "Indoor air temperature of room in K"; parameter Modelica.SIunits.Temperature THallway = 293.15 "Indoor air temperature of hallway in K"; parameter Modelica.SIunits.Temperature TStaircase = 293.15 "Indoor air temperature of staircase in K"; parameter Modelica.SIunits.Height heightRooms = 3 "Height of rooms in m"; parameter Modelica.SIunits.Length lengthZone = 5 "Length of room in m"; parameter Modelica.SIunits.Length widthZone = 5 "Width of room in m"; parameter Modelica.SIunits.Length widthHallway = 3 "Width of room in m"; parameter Real doorOpening = 1 "Opening of door (between 0:closed and 1:open)"; parameter Boolean forceErrorControlOnFlow = true "Flag to force error control on m_flow. Set to true if interested in flow rate"; Experimental.Benchmarks.AirFlow.Components.Staircase staircase( heightRoom=heightRooms, widthRoom=widthHallway, redeclare package Medium = Medium, forceErrorControlOnFlow=forceErrorControlOnFlow, TRoom=TStaircase) "Staircase element for connection to other floors"; Modelica.Fluid.Interfaces.FluidPort_a port_a_top(redeclare package Medium = Medium) "Fluid port for connection to higher floors"; Modelica.Fluid.Interfaces.FluidPort_a port_a_bot(redeclare package Medium = Medium) "Fluid port for connection to lower floors"; Experimental.Benchmarks.AirFlow.Components.ZoneHallway zoneHallway[nZones]( each heightRoom=heightRooms, each lengthRoom=lengthZone, each widthRoom=widthHallway, redeclare each package Medium = Medium, each forceErrorControlOnFlow=forceErrorControlOnFlow, each TRoom=THallway) "Vector of hallway elements"; Experimental.Benchmarks.AirFlow.Components.OutsideEnvironment outsideEnvironment[nZones](redeclare each package Medium = Medium, each heightRoom=heightRooms) "Vector of outside environments connected to Hallway elements"; Experimental.Benchmarks.AirFlow.Components.SimpleZone simpleZone[nZones]( each heightRoom=heightRooms, each lengthRoom=lengthZone, each widthRoom=widthZone, redeclare each package Medium = Medium, each forceErrorControlOnFlow=forceErrorControlOnFlow, each TRoom=TRoom) "Vector of zone elements"; Modelica.Fluid.Interfaces.FluidPort_a port_a_vent[nZones](redeclare each package Medium = Medium) "Port to connect mechanical ventilation equipment to each zone"; BoundaryConditions.WeatherData.Bus weaBus1 "Bus with weather data"; equation connect(staircase.port_a_top, port_a_top); connect(staircase.port_a_bot, port_a_bot); connect(staircase.port_a_toHallway, zoneHallway[1].port_a2); connect(staircase.port_b_toHallway, zoneHallway[1].port_b2); for i in 1:(nZones-1) loop connect(zoneHallway[i].port_a1, zoneHallway[i+1].port_a2); connect(zoneHallway[i].port_b1, zoneHallway[i+1].port_b2); end for; for i in 1:nZones loop connect(simpleZone[i].port_a, zoneHallway[i].port_a_toZone); connect(simpleZone[i].port_b, zoneHallway[i].port_b_toZone); connect(zoneHallway[i].port_a_toOutside, outsideEnvironment[i].port_a); connect(zoneHallway[i].port_b_toOutside, outsideEnvironment[i].port_b); end for; for i in 1:nZones loop connect(port_a_vent[i], simpleZone[i].port_a_vent); end for; for i in 1:nZones loop connect(outsideEnvironment[i].weaBus1, weaBus1); end for; for i in 1:nZones loop connect(weaBus1, simpleZone[i].weaBus); end for; for i in 1:nZones loop connect(weaBus1, zoneHallway[i].weaBus); end for; connect(weaBus1, staircase.weaBus); end Floor;

Annex60.Experimental.Benchmarks.AirFlow.Components.OutsideEnvironment Annex60.Experimental.Benchmarks.AirFlow.Components.OutsideEnvironment

Outside Environment air volume for simple air flow benchmark

Annex60.Experimental.Benchmarks.AirFlow.Components.OutsideEnvironment

Information

An air volume to represent the outside environment for air flow benchmark.

Assumptions and limitations

So far, the side ratio for the building is set to 1 for testing the general modeling approach. It may be necessary to calculate this parameter depending on the scale of the test.

Typical use and important parameters

port_a and port_b should be connected to the corresponding ports of ZoneHallway so that there is an air exchange through the orifices of the hallway element.

References

Inspired by Annex60.Airflow.Multizone.Validation.ThreeRoomsContam

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium in the component
HeightheightRoom3Height of room connected to outdoor air in m [m]

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
FluidPort_aport_aFluid port at the top of the room
FluidPort_bport_bFluid port at the bottom of the room
BusweaBus1Bus with weather data

Modelica definition

model OutsideEnvironment "Outside Environment air volume for simple air flow benchmark" replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component"; parameter Modelica.SIunits.Height heightRoom = 3 "Height of room connected to outdoor air in m"; Airflow.Multizone.MediumColumn colOutBot( redeclare package Medium = Medium, h=heightRoom/2, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromTop) "Lower air column"; Airflow.Multizone.MediumColumn colOutTop( redeclare package Medium = Medium, h=heightRoom/2, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromBottom) "Upper air column"; Modelica.Fluid.Interfaces.FluidPort_a port_a(redeclare package Medium = Medium) "Fluid port at the top of the room"; Modelica.Fluid.Interfaces.FluidPort_b port_b(redeclare package Medium = Medium) "Fluid port at the bottom of the room"; Fluid.Sources.Outside_CpLowRise out( nPorts=2, redeclare package Medium = Medium, s=1, azi=0) "Outdoor air volume"; BoundaryConditions.WeatherData.Bus weaBus1 "Bus with weather data"; equation connect(port_a, colOutTop.port_a); connect(port_b, colOutBot.port_b); connect(colOutBot.port_a, out.ports[1]); connect(colOutTop.port_b, out.ports[2]); connect(out.weaBus, weaBus1); end OutsideEnvironment;

Annex60.Experimental.Benchmarks.AirFlow.Components.SimpleZone Annex60.Experimental.Benchmarks.AirFlow.Components.SimpleZone

A room as a thermal zone represented by its air volume

Annex60.Experimental.Benchmarks.AirFlow.Components.SimpleZone

Information

An air volume to represent a zone/room within a building that can be connected to a hallway element and to ventilation equipment.

Assumptions and limitations

This is a very simple room representation. The model is intended to roughly approximate a first order response of the zone to changes in outdoor air temperature. This is achieved by a thermal resistance in model conRoom and the capitancy of the mixing volume represented by the value for mSenFac. The G-Value of conRoom is approximated by the area of one outside wall multiplied with a U-Value of 1 W/(m² K). The value for mSenFac has been estimated from comparisons with other room models as shown in Annex60.Experimental.Benchmarks.AirFlow.Examples.ZoneStepResponse.

Typical use and important parameters

port_a and port_b should be connected to the corresponding ports of ZoneHallway so that there is an air exchange through the door connecting the room to the hallway element.

Validation

This model is following the approach used in Annex60.Airflow.Multizone.Validation.ThreeRoomsContam, only in a more modularized way in order to be part of a scalable benchmark.

References

Inspired by Annex60.Airflow.Multizone.Validation.ThreeRoomsContam

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium in the component
TemperatureTRoom293.15Indoor air temperature of room in K [K]
HeightheightRoom3Height of room in m [m]
LengthlengthRoom5Length of room in m [m]
LengthwidthRoom5Width of room in m [m]
CoefficientOfHeatTransferUValue1Heat transfer coefficient for outside wall [W/(m2.K)]
RealdoorOpening1Opening of door (between 0:closed and 1:open)
BooleanforceErrorControlOnFlowtrueFlag to force error control on m_flow. Set to true if interested in flow rate

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
FluidPort_aport_aFluid port that connects to the top of the door
FluidPort_bport_bFluid port that connects to the bottom of the door
FluidPort_aport_a_ventPort that connects to the room volume
BusweaBusWeather data connection for outdoor air temperature

Modelica definition

model SimpleZone "A room as a thermal zone represented by its air volume" replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component"; parameter Medium.Temperature TRoom(start=293.15) = 293.15 "Indoor air temperature of room in K"; parameter Modelica.SIunits.Height heightRoom = 3 "Height of room in m"; parameter Modelica.SIunits.Length lengthRoom = 5 "Length of room in m"; parameter Modelica.SIunits.Length widthRoom = 5 "Width of room in m"; parameter Modelica.SIunits.CoefficientOfHeatTransfer UValue = 1 "Heat transfer coefficient for outside wall"; parameter Real doorOpening = 1 "Opening of door (between 0:closed and 1:open)"; parameter Boolean forceErrorControlOnFlow = true "Flag to force error control on m_flow. Set to true if interested in flow rate"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor conRoom(G= heightRoom*lengthRoom*UValue, port_a(T(start=Medium.T_default))) "Thermal conductor between fixed T and Volume"; Fluid.MixingVolumes.MixingVolume volRoom( energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, T_start=TRoom, m_flow_nominal=0.001, V=heightRoom*lengthRoom*widthRoom, redeclare package Medium = Medium, nPorts=3, mSenFac=75) "Indoor air volume of room"; Modelica.Fluid.Interfaces.FluidPort_a port_a(redeclare package Medium = Medium) "Fluid port that connects to the top of the door"; Modelica.Fluid.Interfaces.FluidPort_b port_b(redeclare package Medium = Medium) "Fluid port that connects to the bottom of the door"; Airflow.Multizone.DoorDiscretizedOperable door( redeclare package Medium = Medium, LClo=20*1E-4, wOpe=1, hOpe=2.2, CDOpe=0.78, CDClo=0.78, nCom=10, hA=3/2, hB=3/2, dp_turbulent(displayUnit="Pa") = 0.01, forceErrorControlOnFlow=forceErrorControlOnFlow) "Discretized door"; Modelica.Blocks.Sources.Constant const(k=doorOpening) "Input for the door opening"; Modelica.Fluid.Interfaces.FluidPort_a port_a_vent(redeclare package Medium = Medium) "Port that connects to the room volume"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemp(T(start=Medium.T_default), port(T(start=Medium.T_default))) "Dry bulb air temperature"; BoundaryConditions.WeatherData.Bus weaBus "Weather data connection for outdoor air temperature"; equation connect(conRoom.port_b, volRoom.heatPort); connect(volRoom.ports[1], door.port_b2); connect(volRoom.ports[2], door.port_a1); connect(door.port_b1, port_a); connect(door.port_a2, port_b); connect(const.y, door.y); connect(port_a_vent, volRoom.ports[3]); connect(preTemp.port, conRoom.port_a); connect(preTemp.T, weaBus.TDryBul); end SimpleZone;

Annex60.Experimental.Benchmarks.AirFlow.Components.Staircase Annex60.Experimental.Benchmarks.AirFlow.Components.Staircase

Zone representing a staircase connecting multiple floor models

Annex60.Experimental.Benchmarks.AirFlow.Components.Staircase

Information

An air volume to represent a staircase element for a scalable air flow benchmark.

Assumptions and limitations

This is a very simple room representation. The model is intended to roughly approximate a first order response of the zone to changes in outdoor air temperature. This is achieved by a thermal resistance in model conRoom and the capitancy of the mixing volume represented by the value for mSenFac. The G-Value of conRoom is approximated by the area of one outside wall multiplied with a U-Value of 1 W/(m² K). The value for mSenFac has been estimated from comparisons with other room models as shown in Annex60.Experimental.Benchmarks.AirFlow.Examples.ZoneStepResponse. For this model, a value for mSenFac slightly lower than in Annex60.Experimental.Benchmarks.AirFlow.Components.SimpleZone has been chosen.

Typical use and important parameters

port_a_toHallway and port_b_toHallway should be connected to the corresponding ports of a hallway model. port_a_top and port_b_top can be connected to another staircase model via its respective port_a_bot and port_b_bot.

References

Inspired by Annex60.Airflow.Multizone.Validation.ThreeRoomsContam

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium in the component
TemperatureTRoom293.15Indoor air temperature of room in K [K]
HeightheightRoom3Height of room in m [m]
LengthlengthRoom3Length of room in m [m]
LengthwidthRoom3Width of room in m [m]
RealdoorOpening1Opening of door (between 0:closed and 1:open)
CoefficientOfHeatTransferUValue1Heat transfer coefficient for outside wall [W/(m2.K)]
BooleanforceErrorControlOnFlowtrueFlag to force error control on m_flow. Set to true if interested in flow rate

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
FluidPort_aport_a_toHallwayUpper fluid port to hallway element
FluidPort_bport_b_toHallwayLower fluid port to hallway element
FluidPort_aport_a_botFluid port to lower staircase element
FluidPort_aport_a_topFluid port to higher staircase element
BusweaBusWeather data connection

Modelica definition

model Staircase "Zone representing a staircase connecting multiple floor models" replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component"; parameter Modelica.SIunits.Temperature TRoom = 293.15 "Indoor air temperature of room in K"; parameter Modelica.SIunits.Height heightRoom = 3 "Height of room in m"; parameter Modelica.SIunits.Length lengthRoom = 3 "Length of room in m"; parameter Modelica.SIunits.Length widthRoom = 3 "Width of room in m"; parameter Real doorOpening = 1 "Opening of door (between 0:closed and 1:open)"; parameter Modelica.SIunits.CoefficientOfHeatTransfer UValue = 1 "Heat transfer coefficient for outside wall"; parameter Boolean forceErrorControlOnFlow = true "Flag to force error control on m_flow. Set to true if interested in flow rate"; Fluid.MixingVolumes.MixingVolume volumeStairs( redeclare package Medium = Medium, m_flow_nominal=0.001, V=heightRoom*lengthRoom*widthRoom, T_start=TRoom, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, nPorts=4, mSenFac=60) "Air volume of staircase element"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor conRoom(G= heightRoom*widthRoom*UValue, port_a(T(start=Medium.T_default))) "Thermal conductor between fixed T and Volume"; Modelica.Fluid.Interfaces.FluidPort_a port_a_toHallway(redeclare package Medium = Medium) "Upper fluid port to hallway element"; Modelica.Fluid.Interfaces.FluidPort_b port_b_toHallway(redeclare package Medium = Medium) "Lower fluid port to hallway element"; Modelica.Fluid.Interfaces.FluidPort_a port_a_bot(redeclare package Medium = Medium) "Fluid port to lower staircase element"; Modelica.Fluid.Interfaces.FluidPort_a port_a_top(redeclare package Medium = Medium) "Fluid port to higher staircase element"; Airflow.Multizone.MediumColumn col2( redeclare package Medium = Medium, h=heightRoom/2, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromTop) "Air column between staircase air volume and lower staircase element"; Airflow.Multizone.MediumColumn col1( redeclare package Medium = Medium, h=heightRoom/2, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromBottom) "Air column between staircase air volume and higher staircase element"; Airflow.Multizone.Orifice ori( redeclare package Medium = Medium, forceErrorControlOnFlow=forceErrorControlOnFlow, A=widthRoom*lengthRoom) "Orifice to higher staircase element"; Airflow.Multizone.DoorDiscretizedOperable doo( redeclare package Medium = Medium, LClo=20*1E-4, wOpe=1, hOpe=2.2, CDOpe=0.78, CDClo=0.78, nCom=10, hA=3/2, hB=3/2, dp_turbulent(displayUnit="Pa") = 0.01, forceErrorControlOnFlow=forceErrorControlOnFlow) "Door for connection to hallway element"; Modelica.Blocks.Sources.Constant const(k=doorOpening) "Input for door openign"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemp(T(start=Medium.T_default), port(T(start=Medium.T_default))) "Dry bulb air temperature"; BoundaryConditions.WeatherData.Bus weaBus "Weather data connection"; equation connect(conRoom.port_b, volumeStairs.heatPort); connect(port_a_bot, col2.port_b); connect(doo.port_b1, port_b_toHallway); connect(doo.port_a2, port_a_toHallway); connect(const.y, doo.y); connect(ori.port_b, port_a_top); connect(ori.port_a, col1.port_a); connect(doo.port_b2, volumeStairs.ports[1]); connect(doo.port_a1, volumeStairs.ports[2]); connect(col2.port_a, volumeStairs.ports[3]); connect(col1.port_b, volumeStairs.ports[4]); connect(preTemp.port, conRoom.port_a); connect(preTemp.T, weaBus.TDryBul); end Staircase;

Annex60.Experimental.Benchmarks.AirFlow.Components.ZoneHallway Annex60.Experimental.Benchmarks.AirFlow.Components.ZoneHallway

Zone representing a hallway connecting multiple SimpleZone models

Annex60.Experimental.Benchmarks.AirFlow.Components.ZoneHallway

Information

An air volume to represent a hallway element for a scalable air flow benchmark.

Assumptions and limitations

This is a very simple room representation. The model is intended to roughly approximate a first order response of the zone to changes in outdoor air temperature. This is achieved by a thermal resistance in model conRoom and the capitancy of the mixing volume represented by the value for mSenFac. The G-Value of conRoom is approximated by the area of one outside wall multiplied with a U-Value of 1 W/(m² K). The value for mSenFac has been estimated from comparisons with other room models as shown in Annex60.Experimental.Benchmarks.AirFlow.Examples.ZoneStepResponse. For this model, a value for mSenFac slightly lower than in Annex60.Experimental.Benchmarks.AirFlow.Components.SimpleZone has been chosen.

Typical use and important parameters

port_a_toZone and port_b_toZone should be connected to the corresponding ports of a zone model, port_a_toOutside and port_b_toOutside should be connected to the corresponding ports of the OutsideEnvironment. port_a2 and port_b2 can be connected to either a staircase model or to further hallway elements via their respective port_a1 and port_b2.

Validation

This model is following the approach used in Annex60.Airflow.Multizone.Validation.ThreeRoomsContam, only in a more modularized way in order to be part of a scalable benchmark.

References

Inspired by Annex60.Airflow.Multizone.Validation.ThreeRoomsContam

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium in the component
TemperatureTRoom293.15Indoor air temperature of room in K [K]
HeightheightRoom3Height of room in m [m]
LengthlengthRoom5Length of room in m [m]
LengthwidthRoom3Width of room in m [m]
CoefficientOfHeatTransferUValue1Heat transfer coefficient for outside wall [W/(m2.K)]
BooleanforceErrorControlOnFlowtrueFlag to force error control on m_flow. Set to true if interested in flow rate

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
FluidPort_aport_a_toZoneDirect connection to air volume without orifice
FluidPort_bport_b_toZoneDirect connection to air volume without orifice
FluidPort_aport_a_toOutsideIndirect connection to air volume with orifice
FluidPort_bport_b_toOutsideIndirect connection to air volume with orifice
FluidPort_aport_a1Indirect connection to air volume with orifice
FluidPort_aport_a2Direct connection to air volume without orifice
FluidPort_bport_b1Indirect connection to air volume with orifice
FluidPort_bport_b2Direct connection to air volume without orifice
BusweaBusWeather data connection for outdoor air temperature

Modelica definition

model ZoneHallway "Zone representing a hallway connecting multiple SimpleZone models" replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component"; parameter Modelica.SIunits.Temperature TRoom = 293.15 "Indoor air temperature of room in K"; parameter Modelica.SIunits.Height heightRoom = 3 "Height of room in m"; parameter Modelica.SIunits.Length lengthRoom = 5 "Length of room in m"; parameter Modelica.SIunits.Length widthRoom = 3 "Width of room in m"; parameter Modelica.SIunits.CoefficientOfHeatTransfer UValue = 1 "Heat transfer coefficient for outside wall"; parameter Boolean forceErrorControlOnFlow = true "Flag to force error control on m_flow. Set to true if interested in flow rate"; Fluid.MixingVolumes.MixingVolume volumeHall( redeclare package Medium = Medium, m_flow_nominal=0.001, V=heightRoom*lengthRoom*widthRoom, nPorts=8, T_start=TRoom, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, mSenFac=60) "Air volume of hallway element"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor conRoom(G= heightRoom*lengthRoom*UValue, port_a(T(start=Medium.T_default))) "Thermal conductor between fixed T and Volume"; Airflow.Multizone.MediumColumn col( redeclare package Medium = Medium, h=heightRoom/2, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromTop) "Lower air column between bottom orifice to outside and indoor air volume"; Airflow.Multizone.MediumColumn col1( redeclare package Medium = Medium, h=heightRoom/2, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromBottom) "Upper air column between top orifice to outside and indoor air volume"; Modelica.Fluid.Interfaces.FluidPort_a port_a_toZone(redeclare package Medium = Medium) "Direct connection to air volume without orifice"; Modelica.Fluid.Interfaces.FluidPort_b port_b_toZone(redeclare package Medium = Medium) "Direct connection to air volume without orifice"; Modelica.Fluid.Interfaces.FluidPort_a port_a_toOutside(redeclare package Medium = Medium) "Indirect connection to air volume with orifice"; Modelica.Fluid.Interfaces.FluidPort_b port_b_toOutside(redeclare package Medium = Medium) "Indirect connection to air volume with orifice"; Modelica.Fluid.Interfaces.FluidPort_a port_a1(redeclare package Medium = Medium) "Indirect connection to air volume with orifice"; Modelica.Fluid.Interfaces.FluidPort_a port_a2(redeclare package Medium = Medium) "Direct connection to air volume without orifice"; Airflow.Multizone.Orifice oriOutTop( redeclare package Medium = Medium, A=0.01, forceErrorControlOnFlow=forceErrorControlOnFlow) "Upper orifice to outdoor environment"; Airflow.Multizone.Orifice oriOutBottom( redeclare package Medium = Medium, A=0.01, forceErrorControlOnFlow=forceErrorControlOnFlow) "Lower orifice to outdoor environment"; Modelica.Fluid.Interfaces.FluidPort_b port_b1(redeclare package Medium = Medium) "Indirect connection to air volume with orifice"; Modelica.Fluid.Interfaces.FluidPort_b port_b2(redeclare package Medium = Medium) "Direct connection to air volume without orifice"; Airflow.Multizone.MediumColumn col2( redeclare package Medium = Medium, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromBottom, h=heightRoom/4) "Upper air column between this hallway element and subsequent hallway element"; Airflow.Multizone.MediumColumn col3( redeclare package Medium = Medium, densitySelection=Annex60.Airflow.Multizone.Types.densitySelection.fromTop, h=heightRoom/4) "Lower air column between this hallway element and subsequent hallway element"; Airflow.Multizone.Orifice ori( redeclare package Medium = Medium, A=widthRoom*heightRoom/2, forceErrorControlOnFlow=forceErrorControlOnFlow) "Upper orifice between this hallway element and subsequent hallway element"; Airflow.Multizone.Orifice ori1( redeclare package Medium = Medium, A=widthRoom*heightRoom/2, forceErrorControlOnFlow=forceErrorControlOnFlow) "Lower orifice between this hallway element and subsequent hallway element"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemp(T(start=Medium.T_default), port(T(start=Medium.T_default))) "Dry bulb air temperature"; BoundaryConditions.WeatherData.Bus weaBus "Weather data connection for outdoor air temperature"; equation connect(conRoom.port_b, volumeHall.heatPort); connect(port_a_toZone, volumeHall.ports[1]); connect(port_b_toZone, volumeHall.ports[2]); connect(col.port_b, oriOutBottom.port_a); connect(oriOutBottom.port_b, port_b_toOutside); connect(col1.port_a, oriOutTop.port_a); connect(oriOutTop.port_b, port_a_toOutside); connect(ori.port_b,port_a1); connect(ori1.port_b,port_b1); connect(ori.port_a, col2.port_a); connect(col3.port_b, ori1.port_a); connect(col2.port_b, volumeHall.ports[3]); connect(col3.port_a, volumeHall.ports[4]); connect(col.port_a, volumeHall.ports[5]); connect(col1.port_b, volumeHall.ports[6]); connect(volumeHall.ports[7],port_b2); connect(volumeHall.ports[8],port_a2); connect(preTemp.port, conRoom.port_a); connect(preTemp.T, weaBus.TDryBul); end ZoneHallway;

http://iea-annex60.org