LBL logo

Buildings.Examples.VAVReheat.ThermalZones

Package with models for the thermal zones

Information

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

NameDescription
Buildings.Examples.VAVReheat.ThermalZones.VAVBranch VAVBranch Supply branch of a VAV system
Buildings.Examples.VAVReheat.ThermalZones.Floor Floor Model of a floor of the building
Buildings.Examples.VAVReheat.ThermalZones.RoomLeakage RoomLeakage Room leakage model


Buildings.Examples.VAVReheat.ThermalZones.VAVBranch Buildings.Examples.VAVReheat.ThermalZones.VAVBranch

Supply branch of a VAV system

Buildings.Examples.VAVReheat.ThermalZones.VAVBranch

Parameters

TypeNameDefaultDescription
replaceable package MediumAModelica.Media.Interfaces.Pa...Medium model for air
replaceable package MediumWModelica.Media.Interfaces.Pa...Medium model for water
MassFlowRatem_flow_nominal Mass flow rate of this thermal zone [kg/s]
VolumeVRoo Room volume [m3]

Connectors

TypeNameDescription
replaceable package MediumAMedium model for air
replaceable package MediumWMedium model for water
FluidPort_aport_aFluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_bFluid connector b (positive design flow direction is from port_a1 to port_b1)
ControlBuscontrolBus 
output RealOutputyDamSignal for VAV damper
input RealInputTRooMeasured room temperature [K]

Modelica definition

model VAVBranch "Supply branch of a VAV system"
  replaceable package MediumA = Modelica.Media.Interfaces.PartialMedium 
    "Medium model for air";
  replaceable package MediumW = Modelica.Media.Interfaces.PartialMedium 
    "Medium model for water";
  Buildings.Fluid.Actuators.Dampers.VAVBoxExponential vav(
    redeclare package Medium = MediumA,
    m_flow_nominal=m_flow_nominal,
    A=0.6,
    use_v_nominal=true,
    dp_nominal(displayUnit="Pa") = 220 + 20) "VAV box for room";
  Buildings.Fluid.HeatExchangers.DryEffectivenessNTU terHea(
    redeclare package Medium1 = MediumA,
    redeclare package Medium2 = MediumW,
    m1_flow_nominal=m_flow_nominal,
    m2_flow_nominal=m_flow_nominal*1000*(50 - 17)/4200/10,
    Q_flow_nominal=m_flow_nominal*1006*(50 - 16.7),
    configuration=Buildings.Fluid.Types.HeatExchangerConfiguration.CounterFlow,
    dp1_nominal=0,
    from_dp2=true,
    dp2_nominal=0,
    T_a1_nominal=289.85,
    T_a2_nominal=355.35) "Heat exchanger of terminal box";
  Buildings.Fluid.Sources.FixedBoundary sinTer(
    redeclare package Medium = MediumW,
    p(displayUnit="Pa") = 3E5,
    nPorts=1) "Sink for terminal box ";
  Modelica.Fluid.Interfaces.FluidPort_a port_a(redeclare package Medium =
        MediumA) 
    "Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)";
  Modelica.Fluid.Interfaces.FluidPort_a port_b(redeclare package Medium =
        MediumA) 
    "Fluid connector b (positive design flow direction is from port_a1 to port_b1)";
  parameter Modelica.SIunits.MassFlowRate m_flow_nominal 
    "Mass flow rate of this thermal zone";
  parameter Modelica.SIunits.Volume VRoo "Room volume";
  Controls.RoomVAV con "Room temperature controller";
  Controls.ControlBus controlBus;
  Buildings.Fluid.Sensors.MassFlowRate senMasFlo(redeclare package Medium =
        MediumA) "Sensor for mass flow rate";
  Modelica.Blocks.Math.Gain fraMasFlo(k=1/m_flow_nominal) 
    "Fraction of mass flow rate, relative to nominal flow";
  Buildings.Fluid.Sensors.TemperatureTwoPort TSup(
    redeclare package Medium = MediumA,
    m_flow_nominal=m_flow_nominal,
    initType=Modelica.Blocks.Types.Init.InitialState) "Supply air temperature";
  Modelica.Blocks.Interfaces.RealOutput yDam "Signal for VAV damper";
  Modelica.Blocks.Math.Gain ACH(k=1/VRoo/1.2*3600) "Air change per hour";
  Buildings.Fluid.Actuators.Valves.TwoWayLinear valHea(
    redeclare package Medium = MediumW,
    m_flow_nominal=m_flow_nominal*1000*15/4200/10,
    CvData=Buildings.Fluid.Types.CvTypes.OpPoint,
    from_dp=true,
    dpFixed_nominal=6000) "Valve at reaheat coil";
  Buildings.Fluid.Sources.FixedBoundary souTer(
    redeclare package Medium = MediumW,
    p(displayUnit="Pa") = 3E5 + 12000,
    nPorts=1,
    T=323.15) "Source for terminal box ";
  Modelica.Blocks.Interfaces.RealInput TRoo(unit="K", displayUnit="degC") 
    "Measured room temperature";
equation 
  connect(con.controlBus, controlBus);
  connect(fraMasFlo.u, senMasFlo.m_flow);
  connect(TSup.T, con.TSup);
  connect(con.yDam, vav.y);
  connect(terHea.port_b1, TSup.port_a);
  connect(TSup.port_b, vav.port_a);
  connect(vav.port_b, senMasFlo.port_a);
  connect(con.yDam, yDam);
  connect(ACH.u, senMasFlo.m_flow);
  connect(con.yHea, valHea.y);
  connect(souTer.ports[1], terHea.port_a2);
  connect(terHea.port_b2, valHea.port_a);
  connect(valHea.port_b, sinTer.ports[1]);
  connect(port_a, terHea.port_a1);
  connect(senMasFlo.port_b, port_b);
  connect(con.TRoo, TRoo);
end VAVBranch;

Buildings.Examples.VAVReheat.ThermalZones.Floor Buildings.Examples.VAVReheat.ThermalZones.Floor

Model of a floor of the building

Buildings.Examples.VAVReheat.ThermalZones.Floor

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium model for air
Anglelat Latitude [rad]
RealwinWalRat0.33Window to wall ratio for exterior walls
LengthhWin1.5Height of windows [m]
InteriorConvectionintConModBuildings.HeatTransfer.Types...Convective heat transfer model for room-facing surfaces of opaque constructions

Connectors

TypeNameDescription
replaceable package MediumMedium model for air
VesselFluidPorts_bportsSou[2]Fluid inlets and outlets
VesselFluidPorts_bportsEas[2]Fluid inlets and outlets
VesselFluidPorts_bportsNor[2]Fluid inlets and outlets
VesselFluidPorts_bportsWes[2]Fluid inlets and outlets
VesselFluidPorts_bportsCor[2]Fluid inlets and outlets
BusweaBusWeather bus
output RealOutputTRooAir[5]Room air temperatures
output RealOutputp_relRelative pressure signal of building static pressure

Modelica definition

model Floor "Model of a floor of the building"
  replaceable package Medium = Modelica.Media.Interfaces.PartialMedium 
    "Medium model for air";
  parameter Modelica.SIunits.Angle lat "Latitude";
  parameter Real winWalRat(
    min=0.01,
    max=0.99) = 0.33 "Window to wall ratio for exterior walls";
  parameter Modelica.SIunits.Length hWin = 1.5 "Height of windows";
  HeatTransfer.Data.Solids.Plywood matFur(x=0.15, nStaRef=5) 
    "Material for furniture";
  HeatTransfer.Data.Resistances.Carpet matCar "Carpet";
  HeatTransfer.Data.Solids.Concrete matCon(
    x=0.1,
    k=1.311,
    c=836,
    nStaRef=5) "Concrete";
  HeatTransfer.Data.Solids.Plywood matWoo(
    x=0.01,
    k=0.11,
    d=544,
    nStaRef=1) "Wood for exterior construction";
  HeatTransfer.Data.Solids.Generic matIns(
    x=0.087,
    k=0.049,
    c=836.8,
    d=265,
    nStaRef=5) "Steelframe construction with insulation";
  HeatTransfer.Data.Solids.GypsumBoard matGyp(
    x=0.0127,
    k=0.16,
    c=830,
    d=784,
    nStaRef=2) "Gypsum board";
  HeatTransfer.Data.Solids.GypsumBoard matGyp2(
    x=0.025,
    k=0.16,
    c=830,
    d=784,
    nStaRef=2) "Gypsum board";
  HeatTransfer.Data.OpaqueConstructions.Generic conExtWal(final nLay=3,
      material={matWoo,matIns,matGyp}) "Exterior construction";
  HeatTransfer.Data.OpaqueConstructions.Generic conIntWal(final nLay=1,
      material={matGyp2}) "Interior wall construction";
  HeatTransfer.Data.OpaqueConstructions.Generic conFlo(final nLay=1, material={
        matCon}) "Floor construction (opa_a is carpet)";
  HeatTransfer.Data.OpaqueConstructions.Generic conFur(final nLay=1, material={
        matFur}) "Construction for internal mass of furniture";
  HeatTransfer.Data.Solids.Plywood matCarTra(
    k=0.11,
    d=544,
    nStaRef=1,
    x=0.215/0.11) "Wood for floor";
  HeatTransfer.Data.GlazingSystems.DoubleClearAir13Clear
                                                glaSys(
    UFra=2,
    shade=Buildings.HeatTransfer.Data.Shades.Gray(),
    haveInteriorShade=false,
    haveExteriorShade=false) "Data record for the glazing system";
  constant Modelica.SIunits.Height hRoo=2.74 "Room height";
  Rooms.MixedAir sou(
    redeclare package Medium = Medium,
    lat=lat,
    AFlo=568.77/hRoo,
    hRoo=hRoo,
    nConExt=0,
    nConExtWin=1,
    datConExtWin(
      layers={conExtWal},
      A={49.91*hRoo},
      glaSys={glaSys},
      wWin={winWalRat/hWin*49.91*hRoo},
      each hWin=hWin,
      fFra={0.1},
      til={Buildings.HeatTransfer.Types.Tilt.Wall},
      azi={Buildings.HeatTransfer.Types.Azimuth.S}),
    nConPar=2,
    datConPar(
      layers={conFlo,conFur},
      A={568.77/hRoo,414.68},
      til={Buildings.HeatTransfer.Types.Tilt.Floor,Buildings.HeatTransfer.Types.Tilt.Wall}),
    nConBou=3,
    datConBou(
      layers={conIntWal,conIntWal,conIntWal},
      A={6.47,40.76,6.47}*hRoo,
      til={Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall}),
    nSurBou=0,
    nPorts=5,
    intConMod=intConMod) "South zone";
  Rooms.MixedAir eas(
    redeclare package Medium = Medium,
    lat=lat,
    AFlo=360.0785/hRoo,
    hRoo=hRoo,
    nConExt=0,
    nConExtWin=1,
    datConExtWin(
      layers={conExtWal},
      A={33.27*hRoo},
      glaSys={glaSys},
      wWin={winWalRat/hWin*33.27*hRoo},
      each hWin=hWin,
      fFra={0.1},
      til={Buildings.HeatTransfer.Types.Tilt.Wall},
      azi={Buildings.HeatTransfer.Types.Azimuth.E}),
    nConPar=2,
    datConPar(
      layers={conFlo,conFur},
      A={360.0785/hRoo,262.52},
      til={Buildings.HeatTransfer.Types.Tilt.Floor,Buildings.HeatTransfer.Types.Tilt.Wall}),
    nConBou=1,
    datConBou(
      layers={conIntWal},
      A={24.13}*hRoo,
      til={Buildings.HeatTransfer.Types.Tilt.Wall}),
    nSurBou=2,
    surBou(
      each A=6.47*hRoo,
      each absIR=0.9,
      each absSol=0.9,
      til={Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall}),
    nPorts=5,
    intConMod=intConMod) "East zone";
  Rooms.MixedAir nor(
    redeclare package Medium = Medium,
    lat=lat,
    AFlo=568.77/hRoo,
    hRoo=hRoo,
    nConExt=0,
    nConExtWin=1,
    datConExtWin(
      layers={conExtWal},
      A={49.91*hRoo},
      glaSys={glaSys},
      wWin={winWalRat/hWin*49.91*hRoo},
      each hWin=hWin,
      fFra={0.1},
      til={Buildings.HeatTransfer.Types.Tilt.Wall},
      azi={Buildings.HeatTransfer.Types.Azimuth.N}),
    nConPar=2,
    datConPar(
      layers={conFlo,conFur},
      A={568.77/hRoo,414.68},
      til={Buildings.HeatTransfer.Types.Tilt.Floor,Buildings.HeatTransfer.Types.Tilt.Wall}),
    nConBou=3,
    datConBou(
      layers={conIntWal,conIntWal,conIntWal},
      A={6.47,40.76,6.47}*hRoo,
      til={Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall}),
    nSurBou=0,
    nPorts=5,
    intConMod=intConMod) "North zone";
  Rooms.MixedAir wes(
    redeclare package Medium = Medium,
    lat=lat,
    AFlo=360.0785/hRoo,
    hRoo=hRoo,
    nConExt=0,
    nConExtWin=1,
    datConExtWin(
      layers={conExtWal},
      A={33.27*hRoo},
      glaSys={glaSys},
      wWin={winWalRat/hWin*33.27*hRoo},
      each hWin=hWin,
      fFra={0.1},
      til={Buildings.HeatTransfer.Types.Tilt.Wall},
      azi={Buildings.HeatTransfer.Types.Azimuth.W}),
    nConPar=2,
    datConPar(
      layers={conFlo,conFur},
      A={360.0785/hRoo,262.52},
      til={Buildings.HeatTransfer.Types.Tilt.Floor,Buildings.HeatTransfer.Types.Tilt.Wall}),
    nConBou=1,
    datConBou(
      layers={conIntWal},
      A={24.13}*hRoo,
      til={Buildings.HeatTransfer.Types.Tilt.Wall}),
    nSurBou=2,
    surBou(
      each A=6.47*hRoo,
      each absIR=0.9,
      each absSol=0.9,
      til={Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall}),
    nPorts=5,
    intConMod=intConMod) "West zone";
  Rooms.MixedAir cor(
    redeclare package Medium = Medium,
    lat=lat,
    AFlo=2698/hRoo,
    hRoo=hRoo,
    nConExt=0,
    nConExtWin=0,
    nConPar=2,
    datConPar(
      layers={conFlo,conFur},
      A={360.0785/hRoo,262.52},
      til={Buildings.HeatTransfer.Types.Tilt.Floor,Buildings.HeatTransfer.Types.Tilt.Wall}),
    nConBou=0,
    nSurBou=4,
    surBou(
      A={40.76,24.13,40.76,24.13}*hRoo,
      each absIR=0.9,
      each absSol=0.9,
      til={Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall, Buildings.HeatTransfer.Types.Tilt.Wall}),
    nPorts=11,
    intConMod=intConMod) "Core zone";
  Modelica.Fluid.Vessels.BaseClasses.VesselFluidPorts_b portsSou[2](
      redeclare package Medium = Medium) "Fluid inlets and outlets";
  Modelica.Fluid.Vessels.BaseClasses.VesselFluidPorts_b portsEas[2](
      redeclare package Medium = Medium) "Fluid inlets and outlets";
  Modelica.Fluid.Vessels.BaseClasses.VesselFluidPorts_b portsNor[2](
      redeclare package Medium = Medium) "Fluid inlets and outlets";
  Modelica.Fluid.Vessels.BaseClasses.VesselFluidPorts_b portsWes[2](
      redeclare package Medium = Medium) "Fluid inlets and outlets";
  Modelica.Fluid.Vessels.BaseClasses.VesselFluidPorts_b portsCor[2](
      redeclare package Medium = Medium) "Fluid inlets and outlets";
  Modelica.Blocks.Math.MatrixGain gai(K=20*[0.4; 0.4; 0.2]) 
    "Matrix gain to split up heat gain in radiant, convective and latent gain";
  Modelica.Blocks.Sources.Constant uSha(k=0) 
    "Control signal for the shading device";
  Modelica.Blocks.Routing.Replicator replicator(nout=1);
  BoundaryConditions.WeatherData.Bus weaBus "Weather bus";
  RoomLeakage leaSou(redeclare package Medium = Medium, VRoo=568.77,
    s=49.91/33.27,
    azi=Buildings.HeatTransfer.Types.Azimuth.S) 
    "Model for air infiltration through the envelope";
  RoomLeakage leaEas(redeclare package Medium = Medium, VRoo=360.0785,
    s=33.27/49.91,
    azi=Buildings.HeatTransfer.Types.Azimuth.E) 
    "Model for air infiltration through the envelope";
  RoomLeakage leaNor(redeclare package Medium = Medium, VRoo=568.77,
    s=49.91/33.27,
    azi=Buildings.HeatTransfer.Types.Azimuth.N) 
    "Model for air infiltration through the envelope";
  RoomLeakage leaWes(redeclare package Medium = Medium, VRoo=360.0785,
    s=33.27/49.91,
    azi=Buildings.HeatTransfer.Types.Azimuth.W) 
    "Model for air infiltration through the envelope";
  Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temAirSou 
    "Air temperature sensor";
  Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temAirEas 
    "Air temperature sensor";
  Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temAirNor 
    "Air temperature sensor";
  Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temAirWes 
    "Air temperature sensor";
  Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temAirPer5 
    "Air temperature sensor";
  Modelica.Blocks.Routing.Multiplex5 multiplex5_1;
  Modelica.Blocks.Interfaces.RealOutput TRooAir[5] "Room air temperatures";
  Airflow.Multizone.DoorDiscretizedOpen opeSouCor(redeclare package Medium =
        Medium, wOpe=10) "Opening between perimeter1 and core";
  Airflow.Multizone.DoorDiscretizedOpen opeEasCor(redeclare package Medium =
        Medium, wOpe=10) "Opening between perimeter2 and core";
  Airflow.Multizone.DoorDiscretizedOpen opeNorCor(redeclare package Medium =
        Medium, wOpe=10) "Opening between perimeter3 and core";
  Airflow.Multizone.DoorDiscretizedOpen opeWesCor(redeclare package Medium =
        Medium, wOpe=10) "Opening between perimeter3 and core";
  Modelica.Blocks.Sources.CombiTimeTable intGaiFra(table=[0,0.05; 3600*8,0.05; 3600*9,0.9;
        3600*12,0.9; 3600*12,0.8; 3600*13,0.8; 3600*13,1; 3600*17,1; 3600*19,0.1; 3600*24,0.05], extrapolation=
        Modelica.Blocks.Types.Extrapolation.Periodic) 
    "Fraction of internal heat gain";
  Fluid.Sensors.RelativePressure senRelPre(redeclare package Medium = Medium) 
    "Building pressure measurement";
  Fluid.Sources.Outside out(nPorts=1, redeclare package Medium = Medium);
  Modelica.Blocks.Interfaces.RealOutput p_rel 
    "Relative pressure signal of building static pressure";
  parameter HeatTransfer.Types.InteriorConvection intConMod=Buildings.HeatTransfer.Types.InteriorConvection.Temperature 
    "Convective heat transfer model for room-facing surfaces of opaque constructions";
equation 
  connect(sou.surf_conBou[1], wes.surf_surBou[2]);
  connect(sou.surf_conBou[2], cor.surf_surBou[1]);
  connect(sou.surf_conBou[3], eas.surf_surBou[1]);
  connect(eas.surf_conBou[1], cor.surf_surBou[2]);
  connect(eas.surf_surBou[2], nor.surf_conBou[1]);
  connect(nor.surf_conBou[2], cor.surf_surBou[3]);
  connect(nor.surf_conBou[3], wes.surf_surBou[1]);
  connect(wes.surf_conBou[1], cor.surf_surBou[4]);
  connect(uSha.y, replicator.u);
  connect(replicator.y, nor.uSha);
  connect(replicator.y, wes.uSha);
  connect(replicator.y, eas.uSha);
  connect(replicator.y, sou.uSha);
  connect(replicator.y, cor.uSha);
  connect(gai.y, nor.qGai_flow);
  connect(gai.y, cor.qGai_flow);
  connect(gai.y, sou.qGai_flow);
  connect(gai.y, eas.qGai_flow);
  connect(gai.y, wes.qGai_flow);
  connect(sou.weaBus, weaBus);
  connect(eas.weaBus, weaBus);
  connect(nor.weaBus, weaBus);
  connect(wes.weaBus, weaBus);
  connect(cor.weaBus, weaBus);
  connect(weaBus, leaSou.weaBus);
  connect(weaBus, leaEas.weaBus);
  connect(weaBus, leaNor.weaBus);
  connect(weaBus, leaWes.weaBus);
  connect(multiplex5_1.y, TRooAir);
  connect(temAirSou.T, multiplex5_1.u1[1]);
  connect(temAirEas.T, multiplex5_1.u2[1]);
  connect(temAirNor.T, multiplex5_1.u3[1]);
  connect(temAirWes.T, multiplex5_1.u4[1]);
  connect(temAirPer5.T, multiplex5_1.u5[1]);
  connect(sou.heaPorAir, temAirSou.port);
  connect(eas.heaPorAir, temAirEas.port);
  connect(nor.heaPorAir, temAirNor.port);
  connect(wes.heaPorAir, temAirWes.port);
  connect(cor.heaPorAir, temAirPer5.port);
  connect(sou.ports[1], portsSou[1]);
  connect(sou.ports[2], portsSou[2]);
  connect(eas.ports[1], portsEas[1]);
  connect(eas.ports[2], portsEas[2]);
  connect(nor.ports[1], portsNor[1]);
  connect(nor.ports[2], portsNor[2]);
  connect(wes.ports[1], portsWes[1]);
  connect(wes.ports[2], portsWes[2]);
  connect(cor.ports[1], portsCor[1]);
  connect(cor.ports[2], portsCor[2]);
  connect(leaSou.port_b, sou.ports[3]);
  connect(leaEas.port_b, eas.ports[3]);
  connect(leaNor.port_b, nor.ports[3]);
  connect(leaWes.port_b, wes.ports[3]);
  connect(opeSouCor.port_b1, cor.ports[3]);
  connect(opeSouCor.port_a2, cor.ports[4]);
  connect(opeSouCor.port_a1, sou.ports[4]);
  connect(opeSouCor.port_b2, sou.ports[5]);
  connect(opeEasCor.port_b1, eas.ports[4]);
  connect(opeEasCor.port_a2, eas.ports[5]);
  connect(opeEasCor.port_a1, cor.ports[5]);
  connect(opeEasCor.port_b2, cor.ports[6]);
  connect(opeNorCor.port_b1, nor.ports[4]);
  connect(opeNorCor.port_a2, nor.ports[5]);
  connect(opeNorCor.port_a1, cor.ports[7]);
  connect(opeNorCor.port_b2, cor.ports[8]);
  connect(opeWesCor.port_b1, cor.ports[9]);
  connect(opeWesCor.port_a2, cor.ports[10]);
  connect(opeWesCor.port_a1, wes.ports[4]);
  connect(opeWesCor.port_b2, wes.ports[5]);
  connect(intGaiFra.y, gai.u);
  connect(cor.ports[11], senRelPre.port_b);
  connect(out.weaBus, weaBus);
  connect(out.ports[1], senRelPre.port_a);
  connect(senRelPre.p_rel, p_rel);
end Floor;

Buildings.Examples.VAVReheat.ThermalZones.RoomLeakage Buildings.Examples.VAVReheat.ThermalZones.RoomLeakage

Room leakage model

Buildings.Examples.VAVReheat.ThermalZones.RoomLeakage

Information

Room leakage.

Extends from Buildings.BaseClasses.BaseIcon (Base icon).

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium in the component
VolumeVRoo Room volume [m3]
Reals Side ratio, s=length of this wall/length of adjacent wall
Angleazi Surface azimuth (South:0, West:pi/2) [rad]

Connectors

TypeNameDescription
replaceable package MediumMedium in the component
FluidPort_bport_b 
BusweaBusBus with weather data

Modelica definition

model RoomLeakage "Room leakage model"
  extends Buildings.BaseClasses.BaseIcon;
  replaceable package Medium = Modelica.Media.Interfaces.PartialMedium 
    "Medium in the component";
  parameter Modelica.SIunits.Volume VRoo "Room volume";
  Buildings.Fluid.FixedResistances.FixedResistanceDpM res(
    redeclare package Medium = Medium,
    dp_nominal=50,
    m_flow_nominal=VRoo*1.2/3600) "Resistance model";
  Modelica.Fluid.Interfaces.FluidPort_b port_b(redeclare package Medium =
        Medium);
  Fluid.Sources.Outside_CpLowRise
                        amb(redeclare package Medium = Medium, nPorts=1,
    s=s,
    azi=azi);
  BoundaryConditions.WeatherData.Bus weaBus "Bus with weather data";
  Fluid.Sensors.MassFlowRate senMasFlo1(redeclare package Medium = Medium,
      allowFlowReversal=true) "Sensor for mass flow rate";
  Modelica.Blocks.Math.Gain ACHInf(k=1/VRoo/1.2*3600, y(unit="1/h")) 
    "Air change per hour due to infiltration";
  parameter Real s "Side ratio, s=length of this wall/length of adjacent wall";
  parameter Modelica.SIunits.Angle azi "Surface azimuth (South:0, West:pi/2)";
equation 
  connect(res.port_b, port_b);
  connect(amb.weaBus, weaBus);
  connect(amb.ports[1], senMasFlo1.port_a);
  connect(senMasFlo1.port_b, res.port_a);
  connect(senMasFlo1.m_flow, ACHInf.u);
end RoomLeakage;

Automatically generated Tue Jan 8 08:38:44 2013.