Buildings.Examples.DualFanDualDuct.ThermalZones

Package with models for the thermal zones

Information

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

Package Content

NameDescription
Buildings.Examples.DualFanDualDuct.ThermalZones.SupplyBranch SupplyBranch Supply branch of a dual duct system


Buildings.Examples.DualFanDualDuct.ThermalZones.SupplyBranch Buildings.Examples.DualFanDualDuct.ThermalZones.SupplyBranch

Supply branch of a dual duct system

Buildings.Examples.DualFanDualDuct.ThermalZones.SupplyBranch

Parameters

TypeNameDefaultDescription
DynamicsenergyDynamicsJunctionsModelica.Fluid.Types.Dynamic...Formulation of energy balance in junction volumes
BooleandynamicBalanceJunctiontrueSet to true to use a dynamic balance for junction volumes, which often leads to smaller systems of equations
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistancefalse= true, use linear relation between m_flow and dp for any flow rate
MassFlowRatem_flow_nominal Mass flow rate cold air deck [kg/s]
MassFlowRatemAirHot_flow_nominal0.3*m_flow_nominalMass flow rate hot air deck [kg/s]
MassFlowRatemAirCol_flow_nominalm_flow_nominalMass flow rate cold air deck [kg/s]
VolumeVRoo Room volume [m3]

Connectors

TypeNameDescription
FluidPort_aport_aHotConnector for hot deck
FluidPort_aport_aColConnector for cold deck
FluidPort_aport_bFluid connector b (positive design flow direction is from port_a1 to port_b1)
ControlBuscontrolBus 
input RealInputTRooMeasured room temperature
output RealOutputp_relColPressure signal of cold deck
output RealOutputp_relHotPressure signal of hot deck

Modelica definition

model SupplyBranch "Supply branch of a dual duct system"
  replaceable package MediumA = Modelica.Media.Interfaces.PartialMedium 
    "Medium model for air";
  Modelica.Fluid.Interfaces.FluidPort_a port_aHot(redeclare package Medium =
        MediumA) "Connector for hot deck";
  Modelica.Fluid.Interfaces.FluidPort_a port_aCol(redeclare package Medium =
        MediumA) "Connector for cold deck";
  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.Fluid.Types.Dynamics energyDynamicsJunctions=Modelica.Fluid.Types.Dynamics.FixedInitial 
    "Formulation of energy balance in junction volumes";
  parameter Boolean dynamicBalanceJunction=true 
    "Set to true to use a dynamic balance for junction volumes, which often leads to smaller systems of equations";
  parameter Boolean from_dp=false 
    "= true, use m_flow = f(dp) else dp = f(m_flow)";
  parameter Boolean linearizeFlowResistance=false 
    "= true, use linear relation between m_flow and dp for any flow rate";

  parameter Modelica.SIunits.MassFlowRate m_flow_nominal 
    "Mass flow rate cold air deck";
  parameter Modelica.SIunits.MassFlowRate mAirHot_flow_nominal = 0.3*m_flow_nominal 
    "Mass flow rate hot air deck";
  parameter Modelica.SIunits.MassFlowRate mAirCol_flow_nominal = m_flow_nominal 
    "Mass flow rate cold air deck";

  parameter Modelica.SIunits.Volume VRoo "Room volume";
  Controls.RoomMixingBox con(m_flow_min=VRoo*3*1.2/3600) 
    "Room temperature controller";
  VAVReheat.Controls.ControlBus controlBus;
  Buildings.Fluid.Actuators.Dampers.VAVBoxExponential vavHot(
    redeclare package Medium = MediumA,
    A=0.6,
    use_v_nominal=true,
    m_flow_nominal=mAirHot_flow_nominal,
    dp_nominal(displayUnit="Pa") = 40,
    from_dp=from_dp,
    linearized=linearizeFlowResistance) "VAV damper for hot deck";
  Buildings.Fluid.Actuators.Dampers.VAVBoxExponential vavCol(
    redeclare package Medium = MediumA,
    A=0.6,
    use_v_nominal=true,
    m_flow_nominal=mAirCol_flow_nominal,
    dp_nominal(displayUnit="Pa") = 40,
    from_dp=from_dp,
    linearized=linearizeFlowResistance) "VAV damper for cold deck";

  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";
  Modelica.Blocks.Math.Gain ACH(k=1/VRoo/1.2*3600) "Air change per hour";
  Modelica.Blocks.Interfaces.RealInput TRoo "Measured room temperature";
  Fluid.FixedResistances.SplitterFixedResistanceDpM mix(
    redeclare package Medium = MediumA,
    m_flow_nominal={mAirCol_flow_nominal,mAirHot_flow_nominal,mAirCol_flow_nominal +
        mAirHot_flow_nominal},
    dp_nominal=20*{0,0,0},
    energyDynamics=energyDynamicsJunctions,
    massDynamics=energyDynamicsJunctions,
    from_dp=from_dp,
    linearized=linearizeFlowResistance,
    dynamicBalance=false) "Mixer for hot and cold air deck";

  Fluid.Sensors.RelativePressure senRelPreHot(redeclare package Medium =
        MediumA) "Relative pressure hot deck (compared to room pressure)";
  Fluid.Sensors.RelativePressure senRelPreCol(redeclare package Medium =
        MediumA) "Relative pressure cold deck (compared to room pressure)";
  Modelica.Blocks.Interfaces.RealOutput p_relCol "Pressure signal of cold deck";
  Modelica.Blocks.Interfaces.RealOutput p_relHot "Pressure signal of hot deck";
equation 
  connect(fraMasFlo.u, senMasFlo.m_flow);
  connect(ACH.u, senMasFlo.m_flow);
  connect(senMasFlo.port_b, port_b);
  connect(con.TRoo, TRoo);
  connect(vavHot.port_a, port_aHot);
  connect(vavHot.port_b, mix.port_2);
  connect(mix.port_1, vavCol.port_b);
  connect(mix.port_3, senMasFlo.port_a);
  connect(senMasFlo.m_flow, con.mAir_flow);
  connect(con.yHot, vavHot.y);
  connect(con.yCol, vavCol.y);
  connect(senRelPreHot.port_a, port_aHot);
  connect(senRelPreCol.port_a, port_aCol);
  connect(vavCol.port_a, port_aCol);
  connect(senRelPreHot.port_b, mix.port_3);
  connect(senRelPreCol.port_b, mix.port_3);
  connect(senRelPreCol.p_rel, p_relCol);
  connect(senRelPreHot.p_rel, p_relHot);
  connect(con.TRooSetHea, controlBus.TRooSetHea);
  connect(con.TRooSetCoo, controlBus.TRooSetCoo);
end SupplyBranch;

Automatically generated Fri Nov 4 08:32:29 2011.