Buildings.Examples.VAVCO2

Information

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

Package Content

NameDescription
Buildings.Examples.VAVCO2.VAVSystemCTControl VAVSystemCTControl VAV system model of MIT building with continuous time control for static pressure reset
Buildings.Examples.VAVCO2.BaseClasses BaseClasses Package with base classes for Buildings.Examples.VAVCO2


Buildings.Examples.VAVCO2.VAVSystemCTControl Buildings.Examples.VAVCO2.VAVSystemCTControl

VAV system model of MIT building with continuous time control for static pressure reset

Buildings.Examples.VAVCO2.VAVSystemCTControl

Information


This examples demonstrates the implementation of CO2 control for a variable air volume flow system. Each room has a CO2 source. Depending on the CO2 concentrations, the air damper in the room open or close. The supply and return fans are controlled to provide a constant static pressure.

Note that this example does not control the room temperature and the heat flow through the building envelope. It only implements the CO2 transfer.

Information for Windows users:

This example uses the Radau solver. For Dymola 7.4, Microsoft Visual C++ Express 2010 does not work with the Radau solver. Microsoft Visual C++ Express is not officialy supported by Dymola 7.4 and it can not link the model to the Radau solver. To avoid this problem, use another compiler, such as Visual C++ 2008.

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

Parameters

TypeNameDefaultDescription
MassFlowRatemMIT_flowroo.m0Tot_flowNominal mass flow rate of MIT system model as in ASHRAE 825-RP [kg/s]
PressuredpSuiSup_nominal95Pressure drop supply air leg with splitters of one suite (obtained from simulation) [Pa]
PressuredpSuiRet_nominal233Pressure drop return air leg with splitters of one suite (obtained from simulation) [Pa]
PressuredpFanSupMIT_nominal1050Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation) [Pa]
PressuredpFanRetMIT_nominal347Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation) [Pa]
RealscaM_flow1Scaling factor for mass flow rate
RealscaDpFanSup_nominal1Scaling factor for supply fan pressure lift with NSui number of suites
RealscaDpFanRet_nominal1Scaling factor for supply fan pressure lift with NSui number of suites

Modelica definition

model VAVSystemCTControl 
  "VAV system model of MIT building with continuous time control for static pressure reset"
  extends Modelica.Icons.Example;

 package Medium = Buildings.Media.GasesPTDecoupled.SimpleAir(extraPropertiesNames={"CO2"});

 parameter Modelica.SIunits.MassFlowRate mMIT_flow = roo.m0Tot_flow 
    "Nominal mass flow rate of MIT system model as in ASHRAE 825-RP";

parameter Modelica.SIunits.Pressure dpSuiSup_nominal = 95 
    "Pressure drop supply air leg with splitters of one suite (obtained from simulation)";
parameter Modelica.SIunits.Pressure dpSuiRet_nominal = 233 
    "Pressure drop return air leg with splitters of one suite (obtained from simulation)";
parameter Modelica.SIunits.Pressure dpFanSupMIT_nominal = 1050 
    "Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation)";
parameter Modelica.SIunits.Pressure dpFanRetMIT_nominal = 347 
    "Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation)";

parameter Real scaM_flow = 1 "Scaling factor for mass flow rate";
parameter Real scaDpFanSup_nominal = 1 
    "Scaling factor for supply fan pressure lift with NSui number of suites";
parameter Real scaDpFanRet_nominal = 1 
    "Scaling factor for supply fan pressure lift with NSui number of suites";

  Modelica.Blocks.Sources.Constant PAtm(k=101325);
  Modelica.Blocks.Sources.Constant yDam(k=0.5);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res31(
                                               dp_nominal=0.546,
  m_flow_nominal=scaM_flow*1,
  dh=sqrt(scaM_flow)*1,
  redeclare package Medium = Medium,
    allowFlowReversal=false);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res33(
  dp_nominal=0.164,
  dh=sqrt(scaM_flow)*1,
  m_flow_nominal=scaM_flow*1,
  redeclare package Medium = Medium,
    allowFlowReversal=false);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res57(
                                               dp_nominal=0.118000,
  m_flow_nominal=scaM_flow*1,
  dh=sqrt(scaM_flow)*1,
  redeclare package Medium = Medium,
    allowFlowReversal=false);
Buildings.Examples.VAVCO2.BaseClasses.Suite roo(redeclare package Medium = Medium, scaM_flow=scaM_flow);
Fluid.Actuators.Dampers.MixingBox mixBox(
  dpOut_nominal=0.467,
  dpRec_nominal=0.665,
  AOut=scaM_flow*1.32,
  AExh=scaM_flow*1.05,
  ARec=scaM_flow*1.05,
  mOut_flow_nominal=scaM_flow*1,
  mRec_flow_nominal=scaM_flow*1,
  mExh_flow_nominal=scaM_flow*1,
  redeclare package Medium = Medium,
    dpExh_nominal=0.467,
    allowFlowReversal=true) "mixing box";
  Buildings.Fluid.Sources.Boundary_pT bouIn(
    redeclare package Medium = Medium,
    use_p_in=true,
    T=293.15,
    nPorts=2);
  inner Modelica.Fluid.System system;

   Buildings.Controls.Continuous.LimPID conSupFan(
    Ti=60,
    yMax=1,
    yMin=0,
    Td=60,
    controllerType=Modelica.Blocks.Types.SimpleController.P,
    k=0.1,
    initType=Modelica.Blocks.Types.InitPID.InitialState,
    y_start=0.5) "Controller for supply fan";
  Modelica.Blocks.Sources.Constant const(k=120);
  Fluid.Movers.FlowMachine_y fan32(
    redeclare package Medium = Medium,
    m_flow_nominal=mMIT_flow,
    redeclare function flowCharacteristic =
        Buildings.Fluid.Movers.BaseClasses.Characteristics.quadraticFlow (
          V_flow_nominal={0,11.08,14.9}, dp_nominal={1508,743,100}),
    energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial,
    dynamicBalance=true,
    homotopyInitialization=true,
    allowFlowReversal=false);
  Fluid.Movers.FlowMachine_y fan56(
    redeclare package Medium = Medium,
    m_flow_nominal=mMIT_flow,
    redeclare function flowCharacteristic =
        Buildings.Fluid.Movers.BaseClasses.Characteristics.linearFlow (
          V_flow_nominal={2.676,11.05}, dp_nominal={600,100}),
    energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial,
    dynamicBalance=true,
    homotopyInitialization=true,
    allowFlowReversal=false);
  Fluid.Sensors.VolumeFlowRate senVolFloSup(redeclare package Medium = Medium,
      m_flow_nominal=mMIT_flow,
    allowFlowReversal=false) "Volume flow rate of supply fan";
  Fluid.Sensors.VolumeFlowRate senVolFloSup1(redeclare package Medium = Medium,
      m_flow_nominal=mMIT_flow,
    allowFlowReversal=false) "Volume flow rate of supply fan";
   Buildings.Controls.Continuous.LimPID conRetFan(
    Ti=60,
    yMax=1,
    yMin=0,
    Td=60,
    k=0.1/mMIT_flow,
    initType=Modelica.Blocks.Types.InitPID.InitialState,
    y_start=0.5,
    controllerType=Modelica.Blocks.Types.SimpleController.P) 
    "Controller for return fan";
equation 
  connect(PAtm.y, bouIn.p_in);
  connect(const.y, conSupFan.u_s);
  connect(roo.p_rel, conSupFan.u_m);
  connect(yDam.y, mixBox.y);
  connect(roo.p, PAtm.y);
  connect(mixBox.port_Sup, res31.port_a);

  connect(res31.port_b, fan32.port_a);
  connect(res57.port_b, mixBox.port_Ret);
  connect(res33.port_b, roo.port_aSup);
  connect(conSupFan.y, fan32.y);
  connect(bouIn.ports[1], mixBox.port_Out);
  connect(bouIn.ports[2], mixBox.port_Exh);
  connect(fan32.port_b, senVolFloSup.port_a);
  connect(senVolFloSup.port_b, res33.port_a);
  connect(senVolFloSup.V_flow, conRetFan.u_s);
  connect(senVolFloSup1.V_flow, conRetFan.u_m);
  connect(fan56.port_b, res57.port_a);
  connect(fan56.port_a, senVolFloSup1.port_b);
  connect(senVolFloSup1.port_a, roo.port_bExh);
  connect(conRetFan.y, fan56.y);
end VAVSystemCTControl;

Automatically generated Fri May 06 14:15:40 2011.