Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples

Unit tests for models in FLEXLAB.Rooms

Information

This package contains examples demonstrating the use of models available in the FLEXLAB package.

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

Package Content

Name Description
Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.TestBedX3WithRadiantFloor TestBedX3WithRadiantFloor Example model of test cells X3A and X3B connected to form test bed X3
Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor X3AWithRadiantFloor Example model showing a use of X3A
Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3BWithRadiantFloor X3BWithRadiantFloor Example model showing a use of X3B

Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.TestBedX3WithRadiantFloor Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.TestBedX3WithRadiantFloor

Example model of test cells X3A and X3B connected to form test bed X3

Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.TestBedX3WithRadiantFloor

Information

This example models demonstrates how the Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A and Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B test cell models can be combined to form a simulation of test bed X3. The example is primarily a combination of Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor and Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3BWithRadiantFloor. The example Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor contains detailed documentation on these models. Some small changes were necessary to create the model of the test bed correctly. These changes are:

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

Parameters

TypeNameDefaultDescription
GenericslaCon Construction of the slab
PEX_RADTESTpipe  

Modelica definition

model TestBedX3WithRadiantFloor "Example model of test cells X3A and X3B connected to form test bed X3" extends Modelica.Icons.Example; package Air = Buildings.Media.Air "Air model used in the example model"; package Water = Buildings.Media.Water "Water model used in the radiant slab loop"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B.TestCell X3B(redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Test cell X3B"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B.Closet BClo(redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Closet in test cell X3B"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B.Electrical BEle(redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Electrical room in test cell X3B"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A.TestCellFullBed X3A(redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Test cell X3A"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A.ClosetFullBed AClo(redeclare package Medium = Air, nPorts=1, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Closet in test cell X3A"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A.Electrical AEle(redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Electrical room in test cell X3A"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= "modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"); Modelica.Blocks.Sources.CombiTimeTable intGaiCloB(table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the closet in test cell X3B"; Modelica.Blocks.Sources.CombiTimeTable intGaiCloA( table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the closet in test cell X3A"; Modelica.Blocks.Sources.CombiTimeTable intGaiEleA(table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the electrical room in test cell X3A"; Modelica.Blocks.Sources.CombiTimeTable intGaiEleB(table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the electrical room in test cell X3B"; Modelica.Blocks.Sources.CombiTimeTable shaPosA(table=[0,1; 86400,1], tableOnFile=false) "Position of the shade in test cell X3A"; Modelica.Blocks.Sources.CombiTimeTable shaPosB( table=[0,1; 86400,1], tableOnFile=false) "Position of the shade in test cell X3B"; Modelica.Blocks.Sources.CombiTimeTable intGaiA(table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow in test cell X3A (Radiant = 1, Convective = 2, Latent = 3)"; Modelica.Blocks.Sources.CombiTimeTable intGaiB(table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow in test cell X3B (Radiant = 1, Convective = 2, Latent = 3)"; Modelica.Blocks.Sources.CombiTimeTable airConCloA( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected closet of test cell X3A (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airInCloA( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the closet of test cell X3A"; Buildings.Fluid.Sources.Boundary_pT airOutCloA(redeclare package Medium = Air, nPorts=1) "Air outlet from the closet in test cell X3A"; Modelica.Blocks.Sources.CombiTimeTable airConCloB( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected closet of test cell X3B (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airInCloB( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the closet of test cell X3B"; Buildings.Fluid.Sources.Boundary_pT airOutCloB(redeclare package Medium = Air, nPorts=1) "Air outlet from the closet in test cell X3B"; Modelica.Blocks.Sources.CombiTimeTable airConA( table=[0,0.1,293.15; 86400,0.1,293.15], tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for test cell X3A (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airInA( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for X3A"; Buildings.Fluid.Sources.Boundary_pT airOutA(nPorts=1, redeclare package Medium = Air) "Air outlet for X3A"; Modelica.Blocks.Sources.CombiTimeTable airConB( table=[0,0.1,293.15; 86400,0.1,293.15], tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for test cell X3B (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airInB( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for X3B"; Buildings.Fluid.Sources.Boundary_pT airOutB(nPorts=1, redeclare package Medium = Air) "Air outlet for X3B"; Modelica.Blocks.Sources.CombiTimeTable airConEleA( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected electrical room in test cell X3A (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airInEleA( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the electrical room in test cell X3A"; Buildings.Fluid.Sources.Boundary_pT airOutEleA(redeclare package Medium = Air, nPorts=1) "Air outlet from the electrical room in test cell X3A"; Buildings.HeatTransfer.Sources.PrescribedTemperature preT "Temperature of the ground"; Modelica.Blocks.Sources.CombiTimeTable TGro( table=[0,288.15; 86400,288.15], tableOnFile=false); parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic slaCon(nLay=3, material={ Buildings.HeatTransfer.Data.Solids.Generic( x=0.1524, k=1.13, c=1000, d=1400, nSta=5), Buildings.HeatTransfer.Data.Solids.Generic( x=0.127, k=0.036, c=1200, d=40), Buildings.HeatTransfer.Data.Solids.Generic( x=0.2, k=1.8, c=1100, d=2400)}) "Construction of the slab"; parameter Buildings.Fluid.Data.Pipes.PEX_RADTEST pipe(dIn=0.015875, dOut=0.01905); Modelica.Blocks.Sources.CombiTimeTable TNei( tableOnFile=false, table=[0,293.15; 86400,293.15]) "Temperature of the neighboring test cells (y[1] = X2B)"; Buildings.HeatTransfer.Sources.PrescribedTemperature preT2; Buildings.Fluid.Sources.Boundary_pT airOutEleB(redeclare package Medium = Air, nPorts=1) "Air outlet from the electrical room in test cell X3B"; Buildings.Fluid.Sources.MassFlowSource_T airInEleB( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the electrical room in test cell X3B"; Modelica.Blocks.Sources.CombiTimeTable airConEleB( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected electrical room in test cell X3B (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A1( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.09, length=32.92, disPip=sla4A1.A/sla4A1.length, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north side of cell X3A. Name is taken from drawing M3.02"; Modelica.Blocks.Sources.CombiTimeTable watCon4A1(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A1( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Modelica.Blocks.Sources.CombiTimeTable watCon4A2(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A2( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A2( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*1.51, disPip=sla4A2.A/sla4A2.length, length=45.11, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north-central section of cell X3A. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4A2(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4A3(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A3( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A3( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*0.91, disPip=sla4A3.A/sla4A3.length, length=42.98, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south-central section of cell X3A. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4A3(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4A4(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A4( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A4( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.65, disPip=sla4A4.A/sla4A4.length, length=50.9, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south section of cell X3A. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4A4(nPorts=1, redeclare package Medium = Water) "Water outlet"; Buildings.Fluid.Sources.Boundary_pT watOut4A1(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4B1(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B1( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B1( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.09, disPip=sla4B1.A/sla4B1.length, length=38.71, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north side of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B1( redeclare package Medium = Water, nPorts=1) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4B2(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B2( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B2( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*1.51, length=45.11, disPip=sla4B2.A/sla4B2.length, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north-central section of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B2(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4B3(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B3( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B3( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*0.91, disPip=sla4B3.A/sla4B3.length, length=37.49, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south-central section of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B3(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4B4(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B4( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B4( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.65, disPip=sla4B4.A/sla4B4.length, length=48.77, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south section of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B4(nPorts=1, redeclare package Medium = Water) "Water outlet"; equation connect(X3B.surf_conBou[2], BClo.surf_surBou[1]); connect(X3B.surf_conBou[3], BClo.surf_surBou[2]); connect(X3B.surf_conBou[4], BEle.surf_surBou[1]); connect(BClo.surf_conBou[1], BEle.surf_surBou[2]); connect(X3A.surf_surBou[5], X3B.surf_conBou[1]); connect(AClo.surf_surBou[3], BClo.surf_conBou[2]); connect(X3A.surf_conBou[2], AClo.surf_surBou[1]); connect(X3A.surf_conBou[3], AClo.surf_surBou[2]); connect(AEle.surf_surBou[2], AClo.surf_conBou[1]); connect(weaDat.weaBus, AEle.weaBus); connect(weaDat.weaBus, AClo.weaBus); connect(weaDat.weaBus, X3A.weaBus); connect(weaDat.weaBus, BClo.weaBus); connect(weaDat.weaBus, X3B.weaBus); connect(weaDat.weaBus, BEle.weaBus); connect(X3A.surf_conBou[4], AEle.surf_surBou[1]); connect(intGaiCloB.y, BClo.qGai_flow); connect(intGaiCloA.y, AClo.qGai_flow); connect(intGaiEleA.y, AEle.qGai_flow); connect(intGaiEleB.y, BEle.qGai_flow); connect(shaPosA.y, X3A.uSha); connect(shaPosB.y, X3B.uSha); connect(intGaiA.y, X3A.qGai_flow); connect(intGaiB.y, X3B.qGai_flow); connect(airOutCloA.ports[1], AClo.ports[1]); connect(airInCloA.ports[1], AClo.ports[1]); connect(airConCloA.y[2], airInCloA.m_flow_in); connect(airConCloA.y[4], airInCloA.T_in); connect(airConCloB.y[2], airInCloB.m_flow_in); connect(airConCloB.y[4], airInCloB.T_in); connect(airOutCloB.ports[1], BClo.ports[1]); connect(airInCloB.ports[1], BClo.ports[2]); connect(airConA.y[1], airInA.m_flow_in); connect(airConA.y[4], airInA.T_in); connect(airInA.ports[1], X3A.ports[1]); connect(airOutA.ports[1], X3A.ports[2]); connect(airConB.y[1], airInB.m_flow_in); connect(airConB.y[4], airInB.T_in); connect(airInB.ports[1], X3B.ports[1]); connect(airOutB.ports[1], X3B.ports[2]); connect(airConEleA.y[3], airInEleA.m_flow_in); connect(airConEleA.y[4], airInEleA.T_in); connect(airOutEleA.ports[1], AEle.ports[1]); connect(airInEleA.ports[1], AEle.ports[2]); connect(TGro.y[1],preT. T); connect(TNei.y[1], preT2.T); connect(preT2.port, X3A.surf_conBou[1]); connect(preT.port, BClo.surf_conBou[3]); connect(preT.port, BEle.surf_conBou[1]); connect(preT.port, AEle.surf_conBou[1]); connect(preT.port, AClo.surf_conBou[2]); connect(airConEleB.y[4], airInEleB.T_in); connect(airConEleB.y[3], airInEleB.m_flow_in); connect(airOutEleB.ports[1], BEle.ports[1]); connect(airInEleB.ports[1], BEle.ports[2]); connect(watIn4A1.ports[1],sla4A1. port_a); connect(watCon4A1.y[1],watIn4A1. m_flow_in); connect(watCon4A1.y[2],watIn4A1. T_in); connect(watCon4A2.y[1],watIn4A2. m_flow_in); connect(watCon4A2.y[2],watIn4A2. T_in); connect(watIn4A2.ports[1],sla4A2. port_a); connect(sla4A2.port_b,watOut4A2. ports[1]); connect(watCon4A3.y[1],watIn4A3. m_flow_in); connect(watCon4A3.y[2],watIn4A3. T_in); connect(watIn4A3.ports[1],sla4A3. port_a); connect(sla4A3.port_b,watOut4A3. ports[1]); connect(watCon4A4.y[1],watIn4A4. m_flow_in); connect(watCon4A4.y[2],watIn4A4. T_in); connect(watIn4A4.ports[1],sla4A4. port_a); connect(sla4A4.port_b,watOut4A4. ports[1]); connect(sla4A1.port_b,watOut4A1. ports[1]); connect(preT.port, sla4A1.surf_b); connect(sla4A1.surf_a, X3A.surf_surBou[1]); connect(sla4A2.surf_a, X3A.surf_surBou[2]); connect(preT.port, sla4A2.surf_b); connect(preT.port, sla4A3.surf_b); connect(sla4A3.surf_a, X3A.surf_surBou[3]); connect(sla4A4.surf_a, X3A.surf_surBou[4]); connect(preT.port, sla4A4.surf_b); connect(watIn4B1.ports[1],sla4B1. port_a); connect(sla4B1.port_b, watOut4B1.ports[1]); connect(watCon4B1.y[2], watIn4B1.T_in); connect(watCon4B1.y[1], watIn4B1.m_flow_in); connect(preT.port, sla4B1.surf_b); connect(sla4B1.surf_a, X3B.surf_surBou[1]); connect(sla4B2.port_b, watOut4B2.ports[1]); connect(watIn4B2.ports[1], sla4B2.port_a); connect(watCon4B2.y[2], watIn4B2.T_in); connect(watCon4B2.y[1], watIn4B2.m_flow_in); connect(preT.port, sla4B2.surf_b); connect(sla4B2.surf_a, X3B.surf_surBou[2]); connect(watOut4B3.ports[1], sla4B3.port_b); connect(sla4B3.port_a, watIn4B3.ports[1]); connect(watCon4B3.y[2], watIn4B3.T_in); connect(watCon4B3.y[1], watIn4B3.m_flow_in); connect(preT.port, sla4B3.surf_b); connect(sla4B3.surf_a, X3B.surf_surBou[3]); connect(watOut4B4.ports[1], sla4B4.port_b); connect(sla4B4.port_a, watIn4B4.ports[1]); connect(watCon4B4.y[2], watIn4B4.T_in); connect(watCon4B4.y[1], watIn4B4.m_flow_in); connect(preT.port, sla4B4.surf_b); connect(sla4B4.surf_a, X3B.surf_surBou[4]); end TestBedX3WithRadiantFloor;

Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor

Example model showing a use of X3A

Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor

Information

This model demonstrates one potential simulation using the models available in Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A. This example simulates test cell X3A when it is conditioned with a radiant slab. This example model includes heat transfer between the test cell, the outdoor environment, the radiant slab conditioning the test cell, the connected electrical room and closet, and the neighboring test cells.

The connections between the test cell and the external models are described in the following table. Only models not included in the X3A package are included. For documentation describing the connections between X3A models see Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A.

External model name External model significance External model port X3A port
weaDat Outdoor weather weaDat.weaBus X3A.weaBus
TNei Neighboring test cells (X2B and X3B) X2B: X3A.preTem2.port[1]
X3B: X3A.preTem2.port[2]
X2B: X3A.surf_conBou[1]
X3B: X3A.surf_conBou[2]
sla4A1 Radiant slab serving the north portion of X3A sla4A1.surf_a X3A.surf_surBou[1]
sla4A2 Radiant slab serving the north-central portion of X3A sla4A2.surf_a X3A.surf_surBou[2]
sla4A3 Radiant slab serving the south-central portion of X3A sla4A3.surf_a X3A.surf_surBou[3]
sla4A4 Radiant slab serving the south portion of X3A sla4A4.surf_a X3A.surf_surBou[4]
shaPos Table describing the position of the window shade shaPos.y[1] X3A.uSha
intGai Table specifying the internal gains in the space intGai[1,2,3] X3A.qGai_flow[1,2,3]
airIn Prescribed airflow describing service air from the AHU airIn.ports[1] X3A.ports[1]
airOut Outlet for ventilation air flow airOut.ports[1] X3A.ports[1]

The connections between the closet and external models are described in the following table. Only connections to models not included in the X3A package are described.

External model name External model significance External model port clo port
intGaiClo Table specifying the internal gains in the closet intGaiClo[1,2,3] clo.qGai_flow[1,2,3]
airInClo Prescribed airflow describing service air from the AHU airInClo.ports[1] clo.ports[1]
airOutClo Outlet for ventilation air flow airOutClo.ports[1] clo.ports[1]
preT Prescribed temperature describing the ground temperature preT.port clo.surf_conBou[3]

The connections between the electrical room and external models are described in the following table. Only connections to models not included in the X3A package are described.

External model name External model significance External model port ele port
intGaiEle Table specifying the internal gains in the electrical room intGaiEle[1,2,3] ele.qGai_flow[1,2,3]
airInEle Prescribed airflow describing service air from the AHU airInEle.ports[1] ele.ports[1]
airOutEle Outlet for ventilation air flow airOutEle.ports[1] ele.ports[1]
preT Prescribed temperature describing the ground temperature preT.port ele.surf_conBou[1]

The radiant slab is modeled using an instance of Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab. All of the inputs used to define the radiant slab are taken from the architectural drawings. The following table describes the connections between models used in the radiant slab. The connection to X3A is not included because it was previously described.

External model name External model significance External model port Radiant slab port
watIn Inlet for service fluid flow. Currently connects to a prescribed flow described in a table watIn.ports[1] sla.port_a
preT Ground temperature beneath the radiant slab construction. Currently connects to a prescribed temperature defined in a table preT.port sla.surf_b
watOut Outlet for service fluid flow watOut.ports[1] sla.port_b

The model only simulates the space conditions, the effects of the radiant slab, and the heat transfer between the rooms. The air handling unit, chilled water plant, shade control, internal gains, and ground temperature are all modeled by reading data from tables. Currently the ventilation air is read from an external data file, via the model airCon, while the others use tables described in the data reader model. The table below shows the name of data input files in the model, what physical phenomena the data file describes, the physical quantity of each data file output, and the source of the data.

Model name Quantity described Data source y[1] significance y[2] significance y[3] significance y[4] significance
shaPos Position of the shade Table in model Position of the shade
intGai Internal gains Table in model Radiant heat Convective heat Latent heat
airCon Ventilation air from air handling unit External text file Mass flow rate Temperature
watCon Conditioning water from central plant Table in model Mass flow rate Temperature
TGro Ground temperature Table in model Temperature
intGaiClo Internal gains for the closet Table in model Radiant heat Convective heat Latent heat
intGaiEle Internal gains for the electrical room Table in model Radiant heat Convective heat Latent heat
airConEle Ventilation air from AHU in the electrical room External text file Mass flow rate Temperature
airConClo Ventilation air from AHU in closet External text file Mass flow rate Temperature
TNei Temperature of the neighboring cells Table in model X2B X3B

In the above table blank entries either show that there is no data to describe, or that the data is describing a quantity for a separate model. Two examples are:

The ventilation air flow rates used during occupied hours in this example were calculated using the assumption of 4 air changes per hour (ACH). It is assumed that there is no ventilation flow during unoccupied hours.

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

Parameters

TypeNameDefaultDescription
GenericslaCon Construction of the slab
PEX_RADTESTpipe  

Modelica definition

model X3AWithRadiantFloor "Example model showing a use of X3A" extends Modelica.Icons.Example; package Air = Buildings.Media.Air "Air model used in the example model"; package Water = Buildings.Media.Water "Water model used in the radiant slab loop"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A.TestCell X3A( nPorts=2, redeclare package Medium = Air, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial); Modelica.Blocks.Sources.CombiTimeTable intGai(table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow (Radiant = 1, Convective = 2, Latent = 3)"; Modelica.Blocks.Sources.CombiTimeTable shaPos(table=[0,1; 86400,1], tableOnFile=false) "Position of the shade"; Modelica.Blocks.Sources.CombiTimeTable airCon(table=[0,0.1,293.15; 86400,0.1,293.15], tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions (y[1] = m_flow, y[4] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airIn( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for X3A"; Buildings.Fluid.Sources.Boundary_pT airOut(nPorts=1, redeclare package Medium = Air) "Air outlet for X3A"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A1( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.09, length=32.92, disPip=sla4A1.A/sla4A1.length, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north side of cell X3A. Name is taken from drawing M3.02"; Modelica.Blocks.Sources.CombiTimeTable watCon4A1(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A1( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.Sources.Boundary_pT watOut4A1(nPorts=1, redeclare package Medium = Water) "Water outlet"; Buildings.HeatTransfer.Sources.PrescribedTemperature preT "Temperature of the ground"; Modelica.Blocks.Sources.CombiTimeTable TGro( table=[0,288.15; 86400,288.15], tableOnFile=false); parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic slaCon(nLay=3, material={ Buildings.HeatTransfer.Data.Solids.Generic( x=0.1524, k=1.13, c=1000, d=1400, nSta=5), Buildings.HeatTransfer.Data.Solids.Generic( x=0.127, k=0.036, c=1200, d=40), Buildings.HeatTransfer.Data.Solids.Generic( x=0.2, k=1.8, c=1100, d=2400)}) "Construction of the slab"; parameter Buildings.Fluid.Data.Pipes.PEX_RADTEST pipe(dIn=0.015875, dOut=0.01905); Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= "modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"); Buildings.HeatTransfer.Sources.PrescribedTemperature preT2[2]; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A.Electrical ele( redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Model of the electrical room"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3A.Closet clo( redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Model of the closet"; Modelica.Blocks.Sources.CombiTimeTable TNei( table=[0,293.15,293.15; 86400,293.15,293.15], tableOnFile=false) "Temperature of the neighboring test cells (y[1] = X2B, y[2] = X3B)"; Modelica.Blocks.Sources.CombiTimeTable intGaiEle( table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the electrical room"; Modelica.Blocks.Sources.CombiTimeTable airConEle( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected electrical room (y[1] = m_flow, y[4] = T)"; Modelica.Blocks.Sources.CombiTimeTable airConClo( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected closet (y[1] = m_flow, y[4] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airInEle( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the electrical room"; Buildings.Fluid.Sources.Boundary_pT airOutEle(nPorts=1, redeclare package Medium = Air) "Air outlet from the electrical room"; Buildings.Fluid.Sources.MassFlowSource_T airInClo( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the closet"; Buildings.Fluid.Sources.Boundary_pT airOutClo( redeclare package Medium = Air, nPorts=1) "Air outlet from the closet"; Modelica.Blocks.Sources.CombiTimeTable intGaiClo( table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the closet"; Modelica.Blocks.Sources.CombiTimeTable watCon4A2(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A2( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A2( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*1.51, disPip=sla4A2.A/sla4A2.length, length=45.11, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north-central section of cell X3A. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4A2(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4A3(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A3( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A3( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*0.91, disPip=sla4A3.A/sla4A3.length, length=42.98, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south-central section of cell X3A. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4A3(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4A4(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4A4( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4A4( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.65, disPip=sla4A4.A/sla4A4.length, length=50.9, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south section of cell X3A. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4A4(nPorts=1, redeclare package Medium = Water) "Water outlet"; equation connect(airCon.y[1],airIn. m_flow_in); connect(airCon.y[4],airIn. T_in); connect(airIn.ports[1], X3A.ports[1]); connect(airOut.ports[1], X3A.ports[2]); connect(sla4A1.surf_b, preT.port); connect(watIn4A1.ports[1], sla4A1.port_a); connect(sla4A1.port_b, watOut4A1.ports[1]); connect(watCon4A1.y[1], watIn4A1.m_flow_in); connect(watCon4A1.y[2], watIn4A1.T_in); connect(TGro.y[1],preT. T); connect(weaDat.weaBus, X3A.weaBus); connect(shaPos.y, X3A.uSha); connect(weaDat.weaBus, ele.weaBus); connect(weaDat.weaBus,clo. weaBus); connect(ele.surf_surBou[1], X3A.surf_conBou[5]); connect(clo.surf_surBou[1], X3A.surf_conBou[3]); connect(clo.surf_surBou[2], X3A.surf_conBou[4]); connect(airConEle.y[4], airInEle.T_in); connect(airInEle.ports[1], ele.ports[1]); connect(ele.ports[2], airOutEle.ports[1]); connect(ele.surf_surBou[2], clo.surf_conBou[1]); connect(preT2[1].port, X3A.surf_conBou[1]); connect(preT2[2].port, X3A.surf_conBou[2]); connect(airInClo.ports[1],clo. ports[1]); connect(TNei.y, preT2.T); connect(preT2[2].port, clo.surf_conBou[2]); connect(airConClo.y[4], airInClo.T_in); connect(airConEle.y[3], airInEle.m_flow_in); connect(airConClo.y[2], airInClo.m_flow_in); connect(airOutClo.ports[1],clo. ports[2]); connect(intGai.y, X3A.qGai_flow); connect(intGaiEle.y, ele.qGai_flow); connect(intGaiClo.y,clo. qGai_flow); connect(preT.port,clo.surf_conBou[3]); connect(ele.surf_conBou[1], preT.port); connect(sla4A1.surf_a, X3A.surf_surBou[1]); connect(watCon4A2.y[1], watIn4A2.m_flow_in); connect(watCon4A2.y[2], watIn4A2.T_in); connect(watIn4A2.ports[1], sla4A2.port_a); connect(sla4A2.port_b, watOut4A2.ports[1]); connect(sla4A2.surf_a, X3A.surf_surBou[2]); connect(preT.port, sla4A2.surf_b); connect(watCon4A3.y[1], watIn4A3.m_flow_in); connect(watCon4A3.y[2], watIn4A3.T_in); connect(watIn4A3.ports[1], sla4A3.port_a); connect(sla4A3.port_b, watOut4A3.ports[1]); connect(sla4A3.surf_a, X3A.surf_surBou[3]); connect(preT.port, sla4A3.surf_b); connect(watCon4A4.y[1], watIn4A4.m_flow_in); connect(watCon4A4.y[2], watIn4A4.T_in); connect(watIn4A4.ports[1], sla4A4.port_a); connect(sla4A4.port_b, watOut4A4.ports[1]); connect(preT.port, sla4A4.surf_b); connect(sla4A4.surf_a, X3A.surf_surBou[4]); end X3AWithRadiantFloor;

Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3BWithRadiantFloor Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3BWithRadiantFloor

Example model showing a use of X3B

Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3BWithRadiantFloor

Information

This model demonstrates one potential simulation using the models available in Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B. This model is nearly identical to Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor. For a description of most of the connections and reasons behind them see that documentation. The changes to make this example model are:

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

Parameters

TypeNameDefaultDescription
GenericslaCon Construction of the slab
PEX_RADTESTpipe  

Modelica definition

model X3BWithRadiantFloor "Example model showing a use of X3B" extends Modelica.Icons.Example; package Air = Buildings.Media.Air "Air model used in the example model"; package Water = Buildings.Media.Water "Water model used in the radiant slab loop"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B.TestCell X3B( nPorts=2, redeclare package Medium = Air, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, datConBou(stateAtSurface_a = {false, true, true, true})); Modelica.Blocks.Sources.CombiTimeTable intGai(table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow (Radiant = 1, Convective = 2, Latent = 3)"; Modelica.Blocks.Sources.CombiTimeTable shaPos(table=[0,1; 86400,1], tableOnFile=false) "Position of the shade"; Modelica.Blocks.Sources.CombiTimeTable airCon(table=[0,0.1,293.15; 86400,0.1,293.15], tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airIn( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for X3A"; Buildings.Fluid.Sources.Boundary_pT airOut(nPorts=1, redeclare package Medium = Air) "Air outlet for X3A"; Buildings.HeatTransfer.Sources.PrescribedTemperature preT "Temperature of the ground"; Modelica.Blocks.Sources.CombiTimeTable TGro( table=[0,288.15; 86400,288.15], tableOnFile=false); parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic slaCon(nLay=3, material={ Buildings.HeatTransfer.Data.Solids.Generic( x=0.1524, k=1.13, c=1000, d=1400, nSta=5), Buildings.HeatTransfer.Data.Solids.Generic( x=0.127, k=0.036, c=1200, d=40), Buildings.HeatTransfer.Data.Solids.Generic( x=0.2, k=1.8, c=1100, d=2400)}) "Construction of the slab"; parameter Buildings.Fluid.Data.Pipes.PEX_RADTEST pipe(dIn=0.015875, dOut=0.01905); Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= "modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"); Buildings.HeatTransfer.Sources.PrescribedTemperature preT2; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B.Electrical ele( redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Model of the electrical room"; Buildings.ThermalZones.Detailed.FLEXLAB.Rooms.X3B.Closet clo( redeclare package Medium = Air, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, datConBou(stateAtSurface_a = {true, false, false})) "Model of the closet"; Modelica.Blocks.Sources.CombiTimeTable TNei( tableOnFile=false, table=[0,293.15; 86400,293.15]) "Temperature of the neighboring test cell (y[1] = X3A)"; Modelica.Blocks.Sources.CombiTimeTable intGaiEle( table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the electrical room"; Modelica.Blocks.Sources.CombiTimeTable airConEle( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected electrical room (y[1] = m_flow, y[2] = T)"; Modelica.Blocks.Sources.CombiTimeTable airConClo( tableOnFile=true, tableName="airCon", fileName=Modelica.Utilities.Files.loadResource( "modelica://Buildings/Resources/Data/Rooms/FLEXLAB/Rooms/Examples/X3AWithRadiantFloor.txt"), columns=2:5) "Inlet air conditions for the connected closet (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T airInEle( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the electrical room"; Buildings.Fluid.Sources.Boundary_pT airOutEle(nPorts=1, redeclare package Medium = Air) "Air outlet from the electrical room"; Buildings.Fluid.Sources.MassFlowSource_T airInClo( use_m_flow_in=true, use_T_in=true, redeclare package Medium = Air, nPorts=1) "Inlet air conditions (from AHU) for the closet"; Buildings.Fluid.Sources.Boundary_pT airOutClo( redeclare package Medium = Air, nPorts=1) "Air outlet from the closet"; Modelica.Blocks.Sources.CombiTimeTable intGaiClo( table=[0,0,0,0; 86400,0,0,0], tableOnFile=false) "Internal gain heat flow for the closet"; Modelica.Blocks.Sources.CombiTimeTable watCon4B2(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Modelica.Blocks.Sources.CombiTimeTable watCon4B3(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B3( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Modelica.Blocks.Sources.CombiTimeTable watCon4B4(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B4( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B4( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.65, disPip=sla4B4.A/sla4B4.length, length=48.77, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south section of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B4(nPorts=1, redeclare package Medium = Water) "Water outlet"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B3( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*0.91, disPip=sla4B3.A/sla4B3.length, length=37.49, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the south-central section of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B3(nPorts=1, redeclare package Medium = Water) "Water outlet"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B2( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B2( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*1.51, length=45.11, disPip=sla4B2.A/sla4B2.length, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north-central section of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B2(nPorts=1, redeclare package Medium = Water) "Water outlet"; Modelica.Blocks.Sources.CombiTimeTable watCon4B1(tableOnFile=false, table=[0, 0.504,293.15; 86400,0.504,293.15]) "Inlet water conditions (y[1] = m_flow, y[2] = T)"; Buildings.Fluid.Sources.MassFlowSource_T watIn4B1( nPorts=1, use_m_flow_in=true, use_T_in=true, redeclare package Medium = Water) "Inlet water conditions (from central plant)"; Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab sla4B1( sysTyp=Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemType.Floor, iLayPip=1, redeclare package Medium = Water, pipe=pipe, layers=slaCon, m_flow_nominal=0.504, A=6.645*3.09, disPip=sla4B1.A/sla4B1.length, length=38.71, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, stateAtSurface_b=false) "Radiant slab serving the north side of cell X3B. Name is taken from drawing M3.02"; Buildings.Fluid.Sources.Boundary_pT watOut4B1(nPorts=1, redeclare package Medium = Water) "Water outlet"; equation connect(airCon.y[1],airIn. m_flow_in); connect(airCon.y[4],airIn. T_in); connect(airIn.ports[1],X3B. ports[1]); connect(airOut.ports[1],X3B. ports[2]); connect(TGro.y[1],preT. T); connect(weaDat.weaBus,X3B. weaBus); connect(shaPos.y,X3B. uSha); connect(weaDat.weaBus, ele.weaBus); connect(weaDat.weaBus,clo. weaBus); connect(airConEle.y[4], airInEle.T_in); connect(airInEle.ports[1], ele.ports[1]); connect(ele.ports[2], airOutEle.ports[1]); connect(ele.surf_surBou[2], clo.surf_conBou[1]); connect(airInClo.ports[1],clo. ports[1]); connect(airConClo.y[4], airInClo.T_in); connect(airConEle.y[3], airInEle.m_flow_in); connect(airConClo.y[2], airInClo.m_flow_in); connect(airOutClo.ports[1],clo. ports[2]); connect(intGai.y,X3B. qGai_flow); connect(intGaiEle.y, ele.qGai_flow); connect(intGaiClo.y,clo. qGai_flow); connect(preT.port,clo.surf_conBou[3]); connect(ele.surf_conBou[1], preT.port); connect(X3B.surf_conBou[2], clo.surf_surBou[1]); connect(X3B.surf_conBou[3], clo.surf_surBou[2]); connect(X3B.surf_conBou[4], ele.surf_surBou[1]); connect(TNei.y[1], preT2.T); connect(preT2.port, X3B.surf_conBou[1]); connect(preT2.port, clo.surf_conBou[2]); connect(watCon4B2.y[1],watIn4B2. m_flow_in); connect(watCon4B2.y[2],watIn4B2. T_in); connect(watCon4B3.y[1],watIn4B3. m_flow_in); connect(watCon4B3.y[2],watIn4B3. T_in); connect(watCon4B4.y[1],watIn4B4. m_flow_in); connect(watCon4B4.y[2],watIn4B4. T_in); connect(watIn4B4.ports[1],sla4B4. port_a); connect(watIn4B3.ports[1],sla4B3. port_a); connect(sla4B4.port_b,watOut4B4. ports[1]); connect(sla4B3.port_b,watOut4B3. ports[1]); connect(watIn4B2.ports[1],sla4B2. port_a); connect(sla4B2.port_b,watOut4B2. ports[1]); connect(watCon4B1.y[2],watIn4B1. T_in); connect(watIn4B1.ports[1],sla4B1. port_a); connect(sla4B1.port_b,watOut4B1. ports[1]); connect(preT.port, sla4B1.surf_b); connect(preT.port, sla4B2.surf_b); connect(preT.port, sla4B3.surf_b); connect(preT.port, sla4B4.surf_b); connect(sla4B1.surf_a, X3B.surf_surBou[1]); connect(sla4B2.surf_a, X3B.surf_surBou[2]); connect(sla4B3.surf_a, X3B.surf_surBou[3]); connect(sla4B4.surf_a, X3B.surf_surBou[4]); connect(watCon4B1.y[1], watIn4B1.m_flow_in); end X3BWithRadiantFloor;