Extends from Buildings.BaseClasses.BaseIconExamples (Icon for Examples packages).
Name | Description |
---|---|
BaseClasses | Package with base classes for example models |
MITScalable | System model for MIT building |
Type | Name | Default | Description |
---|---|---|---|
Integer | NSui | 1 | Number of suites |
MassFlowRate | mOneSuite_flow | sui[1].m0Tot_flow | Nominal mass flow rate of one suite [kg/s] |
MassFlowRate | mMIT_flow | mOneSuite_flow + vav44.m0_flow | Nominal mass flow rate of MIT system model as in ASHRAE 825-RP [kg/s] |
Pressure | dp0SuiSup | 95 | Pressure drop supply air leg with splitters of one suite (obtained from simulation) [Pa] |
Pressure | dp0SuiRet | 233 | Pressure drop return air leg with splitters of one suite (obtained from simulation) [Pa] |
Pressure | dp0FanSupMIT | 1050 | Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation) [Pa] |
Pressure | dp0FanRetMIT | 347 | Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation) [Pa] |
Real | scaM_flow | (mMIT_flow + (NSui - 1)*mOne... | Scaling factor for mass flow rate with NSui number of suites |
Real | scaDp0FanSup | (dp0FanSupMIT + (NSui - 1)*d... | Scaling factor for supply fan pressure lift with NSui number of suites |
Real | scaDp0FanRet | (dp0FanRetMIT + (NSui - 1)*d... | Scaling factor for supply fan pressure lift with NSui number of suites |
model MITScalable "System model for MIT building" // package Medium = Buildings.Media.IdealGases.SimpleAir; // package Medium = Modelica.Media.Air.SimpleAir; // package Medium = Modelica.Media.Air.MoistAir; // package Medium = Buildings.Media.GasesPTDecoupled.SimpleAir; //package Medium = Buildings.Media.PerfectGases.MoistAir; package Medium = Buildings.Media.GasesPTDecoupled.MoistAir; parameter Integer NSui = 1 "Number of suites"; parameter Modelica.SIunits.MassFlowRate mOneSuite_flow = sui[1].m0Tot_flow "Nominal mass flow rate of one suite"; parameter Modelica.SIunits.MassFlowRate mMIT_flow = mOneSuite_flow + vav44.m0_flow "Nominal mass flow rate of MIT system model as in ASHRAE 825-RP"; parameter Modelica.SIunits.Pressure dp0SuiSup = 95 "Pressure drop supply air leg with splitters of one suite (obtained from simulation)"; parameter Modelica.SIunits.Pressure dp0SuiRet = 233 "Pressure drop return air leg with splitters of one suite (obtained from simulation)"; parameter Modelica.SIunits.Pressure dp0FanSupMIT = 1050 "Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation)"; parameter Modelica.SIunits.Pressure dp0FanRetMIT = 347 "Pressure increase over supply fan in MIT system model as in ASHRAE 825-RP (obtained from simulation)"; parameter Real scaM_flow = ( mMIT_flow + (NSui-1) * mOneSuite_flow) / mMIT_flow "Scaling factor for mass flow rate with NSui number of suites"; parameter Real scaDp0FanSup = ( dp0FanSupMIT + (NSui-1) * dp0SuiSup) / dp0FanSupMIT "Scaling factor for supply fan pressure lift with NSui number of suites"; parameter Real scaDp0FanRet = ( dp0FanRetMIT + (NSui-1) * dp0SuiRet) / dp0FanRetMIT "Scaling factor for supply fan pressure lift with NSui number of suites"; Buildings.Fluids.Actuators.Dampers.OAMixingBoxMinimumDamper mixBox( dp0Out=0.467, dp0Rec=0.665, dp0Exh=0.164, dp0OutMin=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"; Modelica_Fluid.Sources.Boundary_pT bouIn( redeclare package Medium = Medium, nPorts=3, use_p_in=true, T=293.15); Modelica.Blocks.Sources.Constant PAtm(k=101325); Modelica.Blocks.Sources.Constant yMinOA(k=0.5); Buildings.Fluids.FixedResistances.FixedResistanceDpM res31( dp0=0.546, m0_flow=scaM_flow*1, dh=sqrt(scaM_flow)*1, redeclare package Medium = Medium); Buildings.Fluids.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=scaDp0FanSup, redeclare package Medium = Medium, m0_flow=scaM_flow*1); Buildings.Fluids.FixedResistances.FixedResistanceDpM res33( dp0=0.164, dh=sqrt(scaM_flow)*1, m0_flow=scaM_flow*1, redeclare package Medium = Medium); Buildings.Fluids.FixedResistances.FixedResistanceDpM res57( dp0=0.118000, m0_flow=scaM_flow*1, dh=sqrt(scaM_flow)*1, redeclare package Medium = Medium); Buildings.Fluids.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=scaDp0FanRet, redeclare package Medium = Medium, m0_flow=scaM_flow*1); Buildings.Fluids.Actuators.Dampers.VAVBoxExponential vav44( dp0=0.999E2, A=0.024, m0_flow=0.132*1.2, redeclare package Medium = Medium); Buildings.Fluids.MixingVolumes.MixingVolume roo50(redeclare package Medium = Medium, V=10*5*2.5, nPorts=5); Buildings.Fluids.Examples.BaseClasses.RoomLeakage lea50(redeclare package Medium = Medium) "Room leakage model"; Buildings.Fluids.FixedResistances.FixedResistanceDpM res1( m0_flow=1, dp0=0.1E3, redeclare package Medium = Medium); Buildings.Fluids.Examples.BaseClasses.Suite[NSui] sui(redeclare each package Medium = Medium); Buildings.Fluids.Examples.BaseClasses.ControlSignals y; inner Modelica_Fluid.System system; equation connect(yMinOA.y, mixBox.yOutMin); connect(mixBox.port_Sup, res31.port_a); connect(res31.port_b,fan32.port_a); connect(fan32.port_b, res33.port_a); connect(fan56.port_b, res57.port_b); connect(res57.port_a, mixBox.port_Ret); connect(PAtm.y, bouIn.p_in); connect(vav44.port_b,roo50.ports[1]); connect(PAtm.y, lea50.p); connect(lea50.port_b,roo50.ports[2]); connect(res1.port_a, roo50.ports[3]); connect(sui[1].port_aRoo, res1.port_b); connect(roo50.ports[4], sui[NSui].port_aExh); connect(vav44.port_a, sui[NSui].port_bSup); connect(sui[NSui].port_bRoo, roo50.ports[5]); connect(res33.port_b, sui[1].port_aSup); connect(fan56.port_a, sui[1].port_bExh); for i in 1:NSui loop connect(PAtm.y, sui[i].p); connect(y.yVAV, sui[i].yDam); end for; for i in 1:NSui-1 loop connect(sui[i+1].port_aSup, sui[i].port_bSup); connect(sui[i+1].port_bExh, sui[i].port_aExh); connect(sui[i+1].port_aRoo, sui[i].port_bRoo); end for; connect(y.ySupFan, fan32.N_in); connect(y.yRetFan, fan56.N_in); connect(y.yOSA, mixBox.y); connect(y.yVAV, vav44.y); connect(bouIn.ports[1], mixBox.port_OutMin); connect(bouIn.ports[2], mixBox.port_Out); connect(bouIn.ports[3], mixBox.port_Exh); end MITScalable;