This package contains models that validate room B of the test cells 71T
at the Lawrence Berkeley National Laboratory.
This model tests the correct implementation of electrochromic window.
The model represents the middle test cell (RoomB) of the window test facility 71T.
model ElectroChromicWindow
extends Modelica.Icons.Example;
package MediumA =
Buildings.Media.Air ;
parameter Modelica.SIunits.Temperature T_start=273.15 + 24 ;
parameter Integer nConExtWin=1 ;
parameter Integer nConExt=0 ;
parameter Integer nConBou=5 ;
parameter Integer nSurBou=0 ;
parameter Integer nConPar=0 ;
MixedAir roo(
redeclare package Medium = MediumA,
nConExt=nConExt,
nConExtWin=nConExtWin,
nConPar=nConPar,
nConBou=nConBou,
nSurBou=nSurBou,
linearizeRadiation=false,
T_start=T_start,
datConExtWin(
layers={matExtWal},
each A=10.22,
glaSys={glaSys},
each hWin=3.13,
each wWin=2.782751,
each fFra=0.000001,
each til=Buildings.Types.Tilt.Wall,
azi={Buildings.Types.Azimuth.S}),
datConBou(
layers={matFlo,matCeil,matEWWal,matNWal,matEWWal},
A={13.94,13.94,15.33,10.22,15.33},
til={Buildings.Types.Tilt.Floor,Buildings.Types.Tilt.Ceiling,Buildings.Types.Tilt.Wall,
Buildings.Types.Tilt.Wall,Buildings.Types.Tilt.Wall}),
AFlo=13.94,
hRoo=3.37,
intConMod=Buildings.HeatTransfer.Types.InteriorConvection.Temperature,
extConMod=Buildings.HeatTransfer.Types.ExteriorConvection.TemperatureWind,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
lat=0.65484753534827,
each conBou(opa(T(
each start = T_start)))) ;
BoundaryConditions.WeatherData.ReaderTMY3 weaDat1(
relHum=0,
TDewPoi(displayUnit="K"),
filNam=
"modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos",
pAtmSou=Buildings.BoundaryConditions.Types.DataSource.File,
calTSky=Buildings.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation);
Modelica.Blocks.Sources.Constant uSha(k=0) ;
Modelica.Blocks.Routing.Replicator replicator(nout=
max(1, nConExtWin));
parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matExtWal(
nLay=3,
absIR_a=0.9,
absIR_b=0.9,
absSol_a=0.6,
absSol_b=0.6,
material={
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.000701,
k=45.345,
c=502.416,
d=7833.028),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.0127,
k=0.12,
c=1210,
d=540),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.133,
k=0.047,
c=1006,
d=93.84)}) ;
parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matCeil(
nLay=3,
absIR_a=0.9,
absIR_b=0.9,
absSol_a=0.6,
absSol_b=0.6,
material={
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.009525,
k=0.12,
c=1210,
d=540),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.133,
k=0.047,
c=1006,
d=93.84),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.015875,
k=0.17,
c=1090,
d=800)}) ;
parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matFlo(
final nLay=4,
absIR_a=0.9,
absIR_b=0.9,
absSol_a=0.6,
absSol_b=0.6,
material={
Buildings.HeatTransfer.Data.Solids.Generic(
x=5.28,
k=1,
c=0,
d=0),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.01905,
k=0.15,
c=1630,
d=608),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.01905,
k=0.12,
c=1210,
d=540),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.22,
k=1,
c=0,
d=0)}) ;
parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matEWWal(
final nLay=2,
absIR_a=0.9,
absIR_b=0.9,
absSol_a=0.6,
absSol_b=0.6,
material={
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.133,
k=0.047,
c=1006,
d=93.84),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.015875,
k=0.17,
c=1090,
d=800)}) ;
parameter Buildings.HeatTransfer.Data.OpaqueConstructions.Generic matNWal(
final nLay=4,
absIR_a=0.9,
absIR_b=0.9,
absSol_a=0.6,
absSol_b=0.6,
material={
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.015875,
k=0.17,
c=1090,
d=800),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.009525,
k=0.12,
c=1210,
d=540),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.133,
k=0.047,
c=1006,
d=93.84),
Buildings.HeatTransfer.Data.Solids.Generic(
x=0.015875,
k=0.17,
c=1090,
d=800)}) ;
parameter HeatTransfer.Data.GlazingSystems.DoubleElectrochromicAir13Clear glaSys(
UFra=2,
haveInteriorShade=false,
haveExteriorShade=false) ;
BoundaryConditions.WeatherData.Bus weaBus;
Modelica.Blocks.Routing.Multiplex3 multiplex3_1;
Modelica.Blocks.Sources.Constant qRadGai_flow(k=0) ;
Modelica.Blocks.Sources.Constant qConGai_flow(k=0) ;
Modelica.Blocks.Sources.Constant qLatGai_flow(k=0) ;
Modelica.Thermal.HeatTransfer.Sources.FixedTemperature preTem(T=297.15) ;
block Infiltration
extends Modelica.Blocks.Icons.Block;
parameter Modelica.SIunits.VolumeFlowRate V_flow ;
parameter Real A ;
parameter Real B(unit="1/K") ;
parameter Real C(unit="s/m") ;
BoundaryConditions.WeatherData.Bus weaBus;
Modelica.Blocks.Interfaces.RealOutput m_flow ;
Modelica.Blocks.Interfaces.RealInput TRoo(unit="K") ;
Modelica.Blocks.Math.Add dT(k2=-1) ;
Modelica.Blocks.Math.Product m ;
Modelica.Blocks.Sources.Constant V(k=V_flow) ;
Utilities.Psychrometrics.Density_pTX rho ;
Utilities.Psychrometrics.X_pTphi x_pTphi(use_p_in=true);
Modelica.Blocks.Math.Abs dTAbs ;
Modelica.Blocks.Sources.Constant ACoef(k=A) ;
Modelica.Blocks.Math.Gain gainB(k=B) ;
Modelica.Blocks.Math.Gain gainC(k=C) ;
Modelica.Blocks.Math.Add3 add3_1;
Modelica.Blocks.Math.Product mAct_flow ;
Modelica.Blocks.Math.Gain ter(k=(270/10)^0.14*((3.35/2)/370)^0.22) ;
equation
connect(m.u1, V.y);
connect(rho.T, weaBus.TDryBul);
connect(x_pTphi.p_in, weaBus.pAtm);
connect(x_pTphi.T, weaBus.TDryBul);
connect(x_pTphi.phi, weaBus.relHum);
connect(rho.X_w, x_pTphi.X[1]);
connect(rho.p, weaBus.pAtm);
connect(rho.d, m.u2);
connect(dT.u1, TRoo);
connect(dT.u2, weaBus.TDryBul);
connect(dT.y, dTAbs.u);
connect(gainB.u, dTAbs.y);
connect(add3_1.u1, ACoef.y);
connect(add3_1.u2, gainB.y);
connect(add3_1.u3, gainC.y);
connect(mAct_flow.y, m_flow);
connect(add3_1.y, mAct_flow.u2);
connect(m.y, mAct_flow.u1);
connect(ter.y, gainC.u);
connect(ter.u, weaBus.winSpe);
end Infiltration;
Modelica.Blocks.Sources.Constant uWin(k=1) ;
Modelica.Blocks.Sources.CombiTimeTable refRes(
tableOnFile=true,
tableName="EnergyPlus",
fileName=
ModelicaServices.ExternalReferences.loadResource(
"modelica://Buildings/Resources/Data/Rooms/Validation/LBNL_71T/RoomB/EnergyPlusHeatingCoolingPower.txt"),
columns=2:2) ;
equation
connect(uSha.y, replicator.u);
connect(roo.uSha, replicator.y);
connect(weaBus, roo.weaBus);
connect(weaBus, weaDat1.weaBus);
connect(qRadGai_flow.y, multiplex3_1.u1[1]);
connect(qConGai_flow.y, multiplex3_1.u2[1]);
connect(qLatGai_flow.y, multiplex3_1.u3[1]);
connect(multiplex3_1.y, roo.qGai_flow);
connect(roo.heaPorAir, preTem.port);
connect(uWin.y, roo.uWin[1]);
end ElectroChromicWindow;