| Name | Description |
|---|---|
| HydronicHeating | Test model |
| VAVSystemCTControl | VAV system model of MIT building with continuous time control for static pressure reset |
| Package with base classes for example models |
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nRoo | 2 | Number of rooms |
| Volume | VRoo | 8*5*3 | Volume of one room [m3] |
| Real | ACH | 0.5 | Outside air exchange per hour |
| Area | AHeaTra | (8 + 5)*3 | Heat transfer area of one room [m2] |
| Power | Q_flow_nominal | 1500 | Nominal power [W] |
| Temperature | dT_nominal | 20 | Nominal temperature difference [K] |
| MassFlowRate | m_flow_nominal | Q_flow_nominal/dT_nominal/4200 | Nominal mass flow rate [kg/s] |
| Pressure | dpPip_nominal | 10000 | Pressure difference of pipe (without valve) [Pa] |
| Pressure | dpVal_nominal | 1000 | Pressure difference of valve [Pa] |
| Pressure | dpRoo_nominal | 6000 | Pressure difference of flow leg that serves a room [Pa] |
| Pressure | dpThrWayVal_nominal | 6000 | Pressure difference of three-way valve [Pa] |
| Pressure | dp_nominal | dpPip_nominal + dpVal_nomina... | Pressure difference of loop [Pa] |
model HydronicHeating "Test model" // package Medium = Buildings.Media.ConstantPropertyLiquidWater "Medium model"; package Medium = Buildings.Media.ConstantPropertyLiquidWater "Medium model"; //package Medium = Modelica.Media.Air.SimpleAir "Medium model"; //package Medium = Buildings.Media.GasesPTDecoupled.SimpleAir "Medium model";parameter Integer nRoo = 2 "Number of rooms"; parameter Modelica.SIunits.Volume VRoo = 8*5*3 "Volume of one room"; parameter Real ACH = 0.5 "Outside air exchange per hour"; parameter Modelica.SIunits.Area AHeaTra=(8+5)*3 "Heat transfer area of one room"; parameter Modelica.SIunits.Power Q_flow_nominal = 1500 "Nominal power"; parameter Modelica.SIunits.Temperature dT_nominal = 20 "Nominal temperature difference"; parameter Modelica.SIunits.MassFlowRate m_flow_nominal = Q_flow_nominal/dT_nominal/4200 "Nominal mass flow rate"; parameter Modelica.SIunits.Pressure dpPip_nominal = 10000 "Pressure difference of pipe (without valve)"; parameter Modelica.SIunits.Pressure dpVal_nominal = 1000 "Pressure difference of valve"; parameter Modelica.SIunits.Pressure dpRoo_nominal = 6000 "Pressure difference of flow leg that serves a room"; parameter Modelica.SIunits.Pressure dpThrWayVal_nominal = 6000 "Pressure difference of three-way valve"; parameter Modelica.SIunits.Pressure dp_nominal = dpPip_nominal + dpVal_nominal + dpRoo_nominal "Pressure difference of loop"; Buildings.Fluid.Boilers.BoilerPolynomial boi( a={0.9}, effCur=Buildings.Fluid.Types.EfficiencyCurves.Constant, Q_flow_nominal=Q_flow_nominal, dT_nominal=dT_nominal, redeclare package Medium = Medium, allowFlowReversal=false, dp_nominal=3000, T_start=293.15) "Boiler"; inner Modelica.Fluid.System system; Modelica.Thermal.HeatTransfer.Sources.FixedTemperature TAmb(T=288.15) "Ambient temperature in boiler room"; Fluid.Movers.FlowMachine_y pumRad( redeclare package Medium = Medium, V=0.01, energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial, allowFlowReversal=true, checkValve=false, redeclare function flowCharacteristic = Buildings.Fluid.Movers.BaseClasses.Characteristics.linearFlow ( V_flow_nominal=m_flow_nominal/1000*{0,2}, dp_nominal=dp_nominal*{2,0})) "Pump that serves the radiators"; Buildings.Fluid.FixedResistances.FixedResistanceDpM res1( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, dp_nominal=dpPip_nominal/2, from_dp=true); Buildings.Fluid.FixedResistances.FixedResistanceDpM res2( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, dp_nominal=dpPip_nominal/2, from_dp=true); Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor TRoo2; Modelica.Blocks.Sources.Constant dpSet(k=dp_nominal) "Pressure set point"; Controls.Continuous.PIDHysteresisTimer conPum( Ti=60, yMax=1, yMin=0.3, eOn=1, k=0.1, Td=60, controllerType=Modelica.Blocks.Types.SimpleController.P) "Controller for pump"; Modelica.Thermal.HeatTransfer.Components.HeatCapacitor roo2(T(fixed=true), C= 10*30*1006) "Heat capacity of room"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature TOut2 "Outside temperature boundary condition"; Modelica.Blocks.Sources.Sine TOutBC( freqHz=1/86400, offset=283.15, amplitude=5, phase=-1.5707963267949) "Outside air temperature"; Buildings.Fluid.Sensors.RelativePressure dpSen(redeclare package Medium = Medium); Fluid.Actuators.Valves.TwoWayEqualPercentage val2( redeclare package Medium = Medium, dp_nominal(displayUnit="Pa") = dpVal_nominal, Kv_SI=m_flow_nominal/nRoo/sqrt(dpVal_nominal), m_flow_nominal=m_flow_nominal/2, l=0.0001, from_dp=true) "Radiator valve"; Modelica.Blocks.Continuous.LimPID conRoo2( controllerType=Modelica.Blocks.Types.SimpleController.P, yMax=1, yMin=0, k=2) "Controller for room temperature"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor TRoo1; Modelica.Thermal.HeatTransfer.Components.HeatCapacitor roo1( T( fixed=true), C=VRoo*1006) "Heat capacity of room"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature TOut1 "Outside temperature boundary condition"; Fluid.Actuators.Valves.TwoWayEqualPercentage val1( redeclare package Medium = Medium, dp_nominal(displayUnit="Pa") = dpVal_nominal, Kv_SI=m_flow_nominal/nRoo/sqrt(dpVal_nominal), m_flow_nominal=m_flow_nominal/2, l=0.0001, from_dp=true) "Radiator valve"; Modelica.Blocks.Continuous.LimPID conRoo1( controllerType=Modelica.Blocks.Types.SimpleController.P, yMax=1, yMin=0, k=2) "Controller for room temperature"; Buildings.Fluid.HeatExchangers.Radiators.RadiatorEN442_2 rad1( Q_flow_nominal=Q_flow_nominal/nRoo, redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal/nRoo, dT_nominal=(60 + 40)/2 - 20) "Radiator"; Buildings.Fluid.HeatExchangers.Radiators.RadiatorEN442_2 rad2( Q_flow_nominal=Q_flow_nominal/nRoo, redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal/nRoo, dT_nominal=(60 + 40)/2 - 20) "Radiator"; Buildings.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear thrWayVal( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, dp_nominal=dpThrWayVal_nominal, l={0.01,0.01}, tau=10) "Three-way valve"; Modelica.Blocks.Continuous.LimPID conVal( k=1, Ti=60, yMax=1, yMin=0, initType=Modelica.Blocks.Types.InitPID.InitialState, xi_start=1, controllerType=Modelica.Blocks.Types.SimpleController.P) "Controller for pump"; Fluid.Storage.StratifiedEnhanced tan( m_flow_nominal=m_flow_nominal, dIns=0.3, redeclare package Medium = Medium, hTan=2, VTan=0.1, nSeg=5) "Storage tank"; Fluid.Movers.FlowMachine_y pumBoi( redeclare package Medium = Medium, allowFlowReversal=false, redeclare function flowCharacteristic = Buildings.Fluid.Movers.BaseClasses.Characteristics.linearFlow ( dp_nominal=1.5*5000*{1,2}, V_flow_nominal=2*{ m_flow_nominal/1000,0.5*m_flow_nominal/1000}), checkValve=false, V=0.1, energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial); Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor tanTemBot "Tank temperature"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor tanTemTop "Tank temperature"; Modelica.Blocks.Logical.GreaterThreshold greThr(threshold=273.15 + 52); Modelica.Blocks.Math.BooleanToReal booToRea; Buildings.Fluid.FixedResistances.FixedResistanceDpM res3( redeclare package Medium = Medium, m_flow_nominal=2*m_flow_nominal, dp_nominal=2000); Buildings.Fluid.FixedResistances.FixedResistanceDpM res4( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, dp_nominal=100); Modelica.StateGraph.InitialStepWithSignal iniSte; Modelica.StateGraph.TransitionWithSignal transition(enableTimer=false, waitTime=0); Modelica.StateGraph.StepWithSignal onSta(nIn=2) "State for furnace on"; inner Modelica.StateGraph.StateGraphRoot stateGraphRoot; Modelica.Blocks.Logical.LessThreshold lesThr(threshold=273.15 + 50); Modelica.StateGraph.TransitionWithSignal toOff(enableTimer=false); Modelica.StateGraph.StepWithSignal offSta(nIn=1) "State for furnace off"; Modelica.StateGraph.TransitionWithSignal toOn(enableTimer=false); Buildings.Fluid.Sensors.Temperature temSup(redeclare package Medium = Medium); Buildings.Fluid.Sensors.Temperature temRet(redeclare package Medium = Medium); Buildings.Controls.SetPoints.HotWaterTemperatureReset heaCha( use_TRoo_in=false, dTOutHeaBal=0, TSup_nominal=333.15, TRet_nominal=313.15, TOut_nominal=268.15); Buildings.HeatTransfer.ConductorSingleLayer conExt1( n=3, mat=Buildings.HeatTransfer.Data.Brick(), A=AHeaTra, x=0.24) "Conduction through exterior facing layer"; Buildings.HeatTransfer.ConductorSingleLayer conInt1( n=3, A=AHeaTra, mat=Buildings.HeatTransfer.Data.InsulationBoard(), x=0.2) "Conduction through interior facing layer"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor venLos1(G=VRoo*ACH/ 3600*1.2*1006) "Ventilation heat loss"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor venLos2(G=VRoo*ACH/ 3600*1.2*1006) "Ventilation heat loss"; Controls.SetPoints.OccupancySchedule occSch1(occupancy=3600*{7,8,10,11,11.5, 15,19,21}) "Occupancy schedule"; Modelica.Blocks.Logical.Switch switch1; Modelica.Blocks.Sources.RealExpression occ1(y=200) "Heat gain if occupied in room 1"; Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo1 "Prescribed heat flow to model occupancy"; Modelica.Blocks.Sources.Constant zer(k=0) "Outputs zero"; Controls.SetPoints.OccupancySchedule occSch2( firstEntryOccupied=false, occupancy=3600*{7,10,12,22}) "Occupancy schedule"; Modelica.Blocks.Logical.Switch switch2; Modelica.Blocks.Sources.RealExpression occ2(y=200) "Heat gain if occupied in room 2"; Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo2 "Prescribed heat flow to model occupancy"; Buildings.HeatTransfer.ConductorSingleLayer conExt2( n=3, mat=Buildings.HeatTransfer.Data.Brick(), A=AHeaTra, x=0.24) "Conduction through exterior facing layer"; Buildings.HeatTransfer.ConductorSingleLayer conInt2( n=3, A=AHeaTra, mat=Buildings.HeatTransfer.Data.InsulationBoard(), x=0.2) "Conduction through interior facing layer"; Buildings.Fluid.FixedResistances.FixedResistanceDpM resRoo1( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal/nRoo, dp_nominal=dpRoo_nominal, from_dp=true) "Resistance of pipe leg that serves the room"; Buildings.Fluid.FixedResistances.FixedResistanceDpM resRoo2( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal/nRoo, dp_nominal=dpRoo_nominal, from_dp=true) "Resistance of pipe leg that serves the room"; Modelica.Thermal.HeatTransfer.Components.Convection con1 "Convective heat transfer"; Modelica.Thermal.HeatTransfer.Components.Convection con2 "Convective heat transfer"; Modelica.Blocks.Sources.RealExpression hACon1(y=8*AHeaTra) "Convective heat transfer"; Modelica.Blocks.Sources.RealExpression hACon2(y=8*AHeaTra) "Convective heat transfer"; Controls.SetPoints.OccupancySchedule occSch "Occupancy schedule"; Modelica.Blocks.Logical.Switch switch3; Modelica.Blocks.Sources.Constant TRooNig(k=273.15 + 16) "Room temperature set point at night"; Modelica.Blocks.Sources.Constant TRooSet(k=273.15 + 20); Fluid.Storage.ExpansionVessel expVes(redeclare package Medium = Medium, VTot= 1) "Expansion vessel"; equationconnect(TAmb.port,boi. heatPort); connect(dpSet.y, conPum.u_s); connect(TOutBC.y, TOut2.T); connect(roo2.port, TRoo2.port); connect(TRoo2.T, conRoo2.u_m); connect(pumRad.port_b, dpSen.port_a); connect(roo1.port, TRoo1.port); connect(TRoo1.T, conRoo1.u_m); connect(rad1.heatPortCon, roo1.port); connect(dpSen.port_b, pumRad.port_a); connect(dpSen.p_rel, conPum.u_m); connect(val1.port_b, rad1.port_a); connect(val2.port_b, rad2.port_a); connect(conRoo1.y, val1.y); connect(conRoo2.y, val2.y); connect(pumRad.port_a, thrWayVal.port_2); connect(boi.port_b,pumBoi. port_a); connect(tan.heaPorVol[1], tanTemTop.port); connect(tanTemBot.port, tan.heaPorVol[tan.nSeg]); connect(tanTemBot.T, greThr.u); connect(pumBoi.port_b, res3.port_a); connect(res4.port_b, tan.port_b); connect(tanTemTop.T, lesThr.u); connect(iniSte.outPort[1], transition.inPort); connect(transition.outPort, onSta.inPort[1]); connect(onSta.outPort[1], toOff.inPort); connect(toOff.outPort, offSta.inPort[1]); connect(toOn.outPort, onSta.inPort[2]); connect(offSta.outPort[1], toOn.inPort); connect(lesThr.y, toOn.condition); connect(pumRad.port_b, res1.port_a); connect(pumRad.port_b, temSup.port); connect(temSup.T, conVal.u_m); connect(res2.port_b, temRet.port); connect(conVal.y, thrWayVal.y); connect(onSta.active, booToRea.u); connect(lesThr.y, transition.condition); connect(greThr.y, toOff.condition); connect(heaCha.TSup, conVal.u_s); connect(TOutBC.y, heaCha.TOut); connect(TOutBC.y, TOut1.T); connect(booToRea.y,boi. y); connect(tan.port_b, boi.port_a); connect(tan.port_a, thrWayVal.port_1); connect(res3.port_b, tan.port_a); connect(res4.port_a, res2.port_b); connect(res2.port_b, thrWayVal.port_3); connect(venLos1.port_a, TOut1.port); connect(venLos1.port_b, roo1.port); connect(venLos2.port_a, TOut2.port); connect(venLos2.port_b, roo2.port); connect(TOut1.port, conExt1.port_a); connect(conExt1.port_b, conInt1.port_a); connect(occSch1.occupied, switch1.u2); connect(occ1.y, switch1.u1); connect(switch1.y, preHeaFlo1.Q_flow); connect(zer.y, switch1.u3); connect(occSch2.occupied, switch2.u2); connect(switch2.y, preHeaFlo2.Q_flow); connect(occ2.y, switch2.u1); connect(zer.y, switch2.u3); connect(conExt2.port_b, conInt2.port_a); connect(TOut2.port, conExt2.port_a); connect(rad1.port_b, resRoo1.port_a); connect(rad2.port_b, resRoo2.port_a); connect(conInt1.port_b, con1.solid); connect(con1.fluid, roo1.port); connect(conInt2.port_b, con2.solid); connect(con2.fluid, roo2.port); connect(hACon1.y, con1.Gc); connect(hACon2.y, con2.Gc); connect(preHeaFlo2.port, roo2.port); connect(preHeaFlo1.port, roo1.port); connect(rad2.heatPortCon, roo2.port); connect(rad2.heatPortRad, conInt2.port_b); connect(rad1.heatPortRad, conInt1.port_b); connect(booToRea.y, pumBoi.y_in); connect(res2.port_a, resRoo2.port_b); connect(res2.port_a, resRoo1.port_b); connect(res1.port_b, val2.port_a); connect(val1.port_a, res1.port_b); connect(TRooSet.y, switch3.u1); connect(occSch.occupied, switch3.u2); connect(TRooNig.y, switch3.u3); connect(switch3.y, conRoo1.u_s); connect(switch3.y, conRoo2.u_s); connect(pumRad.y_in, conPum.y); connect(expVes.port_a, boi.port_a); end HydronicHeating;
| Type | Name | Default | Description |
|---|---|---|---|
| MassFlowRate | mMIT_flow | roo.m0Tot_flow | Nominal mass flow rate of MIT system model as in ASHRAE 825-RP [kg/s] |
| Pressure | dpSuiSup_nominal | 95 | Pressure drop supply air leg with splitters of one suite (obtained from simulation) [Pa] |
| Pressure | dpSuiRet_nominal | 233 | Pressure drop return air leg with splitters of one suite (obtained from simulation) [Pa] |
| Pressure | dpFanSupMIT_nominal | 1050 | Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation) [Pa] |
| Pressure | dpFanRetMIT_nominal | 347 | Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation) [Pa] |
| Real | scaM_flow | 1/3 | Scaling factor for mass flow rate |
| Real | scaDpFanSup_nominal | 1 | Scaling factor for supply fan pressure lift with NSui number of suites |
| Real | scaDpFanRet_nominal | 1 | Scaling factor for supply fan pressure lift with NSui number of suites |
model VAVSystemCTControl
"VAV system model of MIT building with continuous time control for static pressure reset"
// package Medium = Buildings.Media.IdealGases.SimpleAir;
package Medium = Buildings.Media.GasesPTDecoupled.SimpleAir(extraPropertiesNames={"CO2"});
// package Medium = Buildings.Media.GasesPTDecoupled.MoistAir;
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/3 "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);
Buildings.Fluid.Movers.FlowMachinePolynomial fan32(
D=0.6858,
a={4.2904,-1.387,4.2293,-3.92920,0.8534},
b={0.1162,1.5404,-1.4825,0.7664,-0.1971},
mNorMin_flow=1,
mNorMax_flow=2,
scaM_flow=scaM_flow,
scaDp=scaDpFanSup_nominal,
redeclare package Medium = Medium,
m_flow_nominal=mMIT_flow);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res33(
dp_nominal=0.164,
dh=sqrt(scaM_flow)*1,
m_flow_nominal=scaM_flow*1,
redeclare package Medium = Medium);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res57(
dp_nominal=0.118000,
m_flow_nominal=scaM_flow*1,
dh=sqrt(scaM_flow)*1,
redeclare package Medium = Medium);
Buildings.Fluid.Movers.FlowMachinePolynomial fan56(
D=1.13,
a={4.19370,-1.63370,12.2110,-23.9619,9.81620},
b={0.619000E-01,3.14170,-5.75510,6.16760,-3.37480},
mNorMin_flow=0.7,
mNorMax_flow=1.0,
scaM_flow=scaM_flow,
scaDp=scaDpFanRet_nominal,
redeclare package Medium = Medium,
m_flow_nominal=mMIT_flow);
BaseClasses.Suite roo(redeclare package Medium = Medium, scaM_flow=scaM_flow);
Buildings.Fluid.Actuators.Dampers.OAMixingBoxMinimumDamper mixBox(
dpOut_nominal=0.467,
dpRec_nominal=0.665,
dpExh_nominal=0.164,
dpOutMin_nominal=0.467,
AOutMin=scaM_flow*0.38,
AOut=scaM_flow*1.32,
AExh=scaM_flow*1.05,
ARec=scaM_flow*1.05,
m0OutMin_flow=scaM_flow*0.1*1,
m0Out_flow=scaM_flow*1,
m0Rec_flow=scaM_flow*1,
m0Exh_flow=scaM_flow*1,
redeclare package Medium = Medium) "mixing box";
Buildings.Fluid.Sources.Boundary_pT bouIn(
redeclare package Medium = Medium,
use_p_in=true,
nPorts=3,
T=293.15);
Modelica.Blocks.Continuous.FirstOrder gaiSup(
k=22.333,
y_start=0.01,
initType=Modelica.Blocks.Types.Init.InitialOutput,
T=120) "Gain for supply air fan";
Modelica.Blocks.Continuous.FirstOrder gaiRet(
k=8,
y_start=0.01,
initType=Modelica.Blocks.Types.Init.InitialOutput,
T=120) "Gain for return air fan";
inner Modelica.Fluid.System system;
Modelica.Blocks.Continuous.LimPID PID(
Ti=60,
yMax=1,
yMin=0,
initType=Modelica.Blocks.Types.InitPID.InitialState,
k=0.01,
controllerType=Modelica.Blocks.Types.SimpleController.PI);
Modelica.Blocks.Sources.Constant const(k=120);
Buildings.Fluid.Delays.DelayFirstOrder delSup(
redeclare package Medium = Medium,
m_flow_nominal=mMIT_flow,
tau=120) "Delay to break algebraic loop";
Buildings.Fluid.Delays.DelayFirstOrder delRet(
redeclare package Medium = Medium,
m_flow_nominal=mMIT_flow,
tau=120) "Delay to break algebraic loop";
equation
connect(PAtm.y, bouIn.p_in);
connect(bouIn.ports[1], mixBox.port_OutMin);
connect(bouIn.ports[2], mixBox.port_Out);
connect(bouIn.ports[3], mixBox.port_Exh);
connect(res57.port_a, fan56.port_b);
connect(fan32.N_in, gaiSup.y);
connect(fan56.N_in, gaiRet.y);
connect(const.y, PID.u_s);
connect(roo.p_rel, PID.u_m);
connect(PID.y, gaiSup.u);
connect(PID.y, gaiRet.u);
connect(yDam.y, mixBox.yOutMin);
connect(yDam.y, mixBox.y);
connect(roo.p, PAtm.y);
connect(res31.port_b, fan32.port_a);
connect(mixBox.port_Sup, res31.port_a);
connect(fan32.port_b, res33.port_a);
connect(res33.port_b, delSup.ports[1]);
connect(delSup.ports[2], roo.port_aSup);
connect(roo.port_bExh, delRet.ports[1]);
connect(delRet.ports[2], fan56.port_a);
connect(res57.port_b, mixBox.port_Ret);
end VAVSystemCTControl;