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
Example model of test cells X3A and X3B connected to form test bed X3
Information
This example models demonstrates how the
Buildings.Rooms.FLEXLAB.Rooms.X3A and
Buildings.Rooms.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.Rooms.FLEXLAB.Rooms.Examples.X3AWithRadiantFloor and
Buildings.Rooms.FLEXLAB.Rooms.Examples.X3BWithRadiantFloor. The example
Buildings.Rooms.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
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.Rooms.FLEXLAB.Rooms.X3B.TestCell X3B(
redeclare package Medium = Air,
nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Test cell X3B";
Buildings.Rooms.FLEXLAB.Rooms.X3B.Closet BClo(
redeclare package Medium = Air,
nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Closet in test cell X3B";
Buildings.Rooms.FLEXLAB.Rooms.X3B.Electrical BEle(
redeclare package Medium =
Air, nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Electrical room in test cell X3B";
Buildings.Rooms.FLEXLAB.Rooms.X3A.TestCellFullBed X3A(
redeclare package
Medium = Air, nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Test cell X3A";
Buildings.Rooms.FLEXLAB.Rooms.X3A.ClosetFullBed AClo(
redeclare package
Medium = Air, nPorts=1,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Closet in test cell X3A";
Buildings.Rooms.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="/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=
ModelicaServices.ExternalReferences.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=
ModelicaServices.ExternalReferences.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=
ModelicaServices.ExternalReferences.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=
ModelicaServices.ExternalReferences.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=
ModelicaServices.ExternalReferences.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=
ModelicaServices.ExternalReferences.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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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;
Example model showing a use of X3A
Information
This model demonstrates one potential simulation using the models available in
Buildings.Rooms.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.Rooms.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 table for shaPos only contains data for shade position. Because it only has a y[1] value
the remaining columns in the table are left blank.
- airCon, airConClo, and airConEle all share an external data file. They all use the same
temperature data, located in y[4] of the external data file. The three room models use different
air mass flow rates. airCon uses the flow rate from y[1] in the data file, airConClo uses the
flow rate from y[2], and airConEle uses the flow rate from y[3]. Thus, the other entries
for each row in the table are left blank because the data is innapropriate for that particular
model.
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
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.Rooms.FLEXLAB.Rooms.X3A.TestCell X3A(
nPorts=2,
redeclare package Medium = Air,
linearizeRadiation=false,
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=
ModelicaServices.ExternalReferences.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)
"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.Rooms.FLEXLAB.Rooms.X3A.Electrical ele(
redeclare package Medium = Air, nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Model of the electrical room";
Buildings.Rooms.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=
ModelicaServices.ExternalReferences.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=
ModelicaServices.ExternalReferences.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)
"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)
"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)
"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[1], 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;
Example model showing a use of X3B
Information
This model demonstrates one potential simulation using the models available in
Buildings.Rooms.FLEXLAB.Rooms.X3B. This model is nearly identical to
Buildings.Rooms.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
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.Rooms.FLEXLAB.Rooms.X3B.TestCell X3B(
nPorts=2,
redeclare package Medium = Air,
linearizeRadiation=false,
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=
ModelicaServices.ExternalReferences.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=
"/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos");
Buildings.HeatTransfer.Sources.PrescribedTemperature preT2;
Buildings.Rooms.FLEXLAB.Rooms.X3B.Electrical ele(
redeclare package Medium =
Air, nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Model of the electrical room";
Buildings.Rooms.FLEXLAB.Rooms.X3B.Closet
clo(
redeclare package Medium = Air,
nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"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=
ModelicaServices.ExternalReferences.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=
ModelicaServices.ExternalReferences.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)
"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)
"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)
"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)
"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;
Automatically generated Mon Jul 13 14:29:22 2015.