Extends from Buildings.BaseClasses.BaseIconExamples (Icon for Examples packages).
Name | Description |
---|---|
FixedResistance | |
FixedResistancesExplicit | Test of multiple resistances in series |
FixedResistancesParallel | |
FixedResistancesSeries | Test of multiple resistances in series |
SplitterFixedResistanceDpM |
model FixedResistance import Buildings; package Medium = Buildings.Media.ConstantPropertyLiquidWater;Modelica.Blocks.Sources.Constant PAtm(k=101325); Modelica.Blocks.Sources.Ramp P( duration=1, height=20, offset=101315); Buildings.Fluid.FixedResistances.FixedResistanceDpM res1( redeclare package Medium = Medium, from_dp=true, m_flow_nominal=5, dp_nominal=10); Buildings.Fluid.Sources.Boundary_pT sou1( redeclare package Medium = Medium, use_p_in=true, T=293.15, nPorts=3); Buildings.Fluid.Sources.Boundary_pT sin1( redeclare package Medium = Medium, T=283.15, use_p_in=true, nPorts=3); Buildings.Fluid.FixedResistances.FixedResistanceDpM res2( redeclare package Medium = Medium, from_dp=true, m_flow_nominal=5, dp_nominal=10, use_dh=true); Buildings.Fluid.FixedResistances.FixedResistanceDpM res3( redeclare package Medium = Medium, from_dp=true, m_flow_nominal=5, dp_nominal=10, use_dh=true); FixedResistances.LosslessPipe pipCon(redeclare package Medium = Medium, m_flow_nominal=5) "Lossless pipe connection"; Buildings.Fluid.Sensors.MassFlowRate masFlo2(redeclare package Medium = Medium) "Mass flow rate sensor"; Buildings.Fluid.Sensors.MassFlowRate masFlo3(redeclare package Medium = Medium) "Mass flow rate sensor"; Buildings.Utilities.Diagnostics.AssertEquality assEqu(threShold=1E-4, message= "Inputs differ, check that lossless pipe is correctly implemented.") "Assert equality of the two mass flow rates"; inner Modelica.Fluid.System system; equationconnect(res2.port_b, masFlo2.port_a); connect(res3.port_b, masFlo3.port_a); connect(masFlo3.port_b, pipCon.port_a); connect(P.y, sou1.p_in); connect(sou1.ports[1], res1.port_a); connect(sin1.ports[1], res1.port_b); connect(masFlo3.m_flow, assEqu.u1); connect(masFlo2.m_flow, assEqu.u2); connect(PAtm.y, sin1.p_in); connect(sou1.ports[2], res2.port_a); connect(sou1.ports[3], res3.port_a); connect(sin1.ports[2], masFlo2.port_b); connect(sin1.ports[3], pipCon.port_b); end FixedResistance;
model FixedResistancesExplicit "Test of multiple resistances in series" import Buildings; package Medium = Modelica.Media.Air.SimpleAir;Buildings.Fluid.Sources.Boundary_ph sou( redeclare package Medium = Medium, nPorts=1, p(displayUnit="Pa") = 101335, use_p_in=true); Buildings.Fluid.Sources.Boundary_ph sin( redeclare package Medium = Medium, nPorts=1, use_p_in=false, p=101325); Buildings.Fluid.FixedResistances.FixedResistanceDpM res( redeclare package Medium = Medium, from_dp = false, m_flow_nominal=2, dp_nominal=5); inner Modelica.Fluid.System system(p_ambient=101325); Buildings.Fluid.FixedResistances.FixedResistanceDpM res1( redeclare package Medium = Medium, from_dp = false, m_flow_nominal=2, dp_nominal=5); Buildings.Fluid.FixedResistances.FixedResistanceDpM res2( redeclare package Medium = Medium, m_flow_nominal=2, dp_nominal=5, from_dp=true); Buildings.Fluid.FixedResistances.FixedResistanceDpM res3( redeclare package Medium = Medium, m_flow_nominal=2, dp_nominal=5, from_dp=true); Buildings.Fluid.FixedResistances.FixedResistanceDpM res4( redeclare package Medium = Medium, from_dp = false, m_flow_nominal=2, dp_nominal=5); Buildings.Fluid.FixedResistances.FixedResistanceDpM res5( redeclare package Medium = Medium, from_dp = false, m_flow_nominal=2, dp_nominal=5); Buildings.Fluid.FixedResistances.FixedResistanceDpM res6( redeclare package Medium = Medium, m_flow_nominal=2, dp_nominal=5, from_dp=true); Buildings.Fluid.FixedResistances.FixedResistanceDpM res7( redeclare package Medium = Medium, m_flow_nominal=2, dp_nominal=5, from_dp=true); Buildings.Fluid.Sources.MassFlowSource_h bou( redeclare package Medium = Medium, m_flow=1, nPorts=1); Buildings.Fluid.Sources.MassFlowSource_h bou1( redeclare package Medium = Medium, m_flow=1, nPorts=1); Buildings.Fluid.Sources.Boundary_pT sin1( redeclare package Medium = Medium, T=273.15 + 10, nPorts=2, use_p_in=false, p=101325); Buildings.Fluid.Sources.Boundary_ph sin2( redeclare package Medium = Medium, nPorts=1, use_p_in=false, p=101325); Buildings.Fluid.Sources.Boundary_ph sou1( redeclare package Medium = Medium, nPorts=1, p(displayUnit="Pa") = 101335, use_p_in=true); Modelica.Blocks.Sources.Ramp P( duration=1, height=20, offset=101315); Buildings.Fluid.Sensors.MassFlowRate senMasFlo(redeclare package Medium = Medium) "Mass flow rate sensor"; Buildings.Fluid.Sensors.MassFlowRate senMasFlo1(redeclare package Medium = Medium) "Mass flow rate sensor"; Buildings.Fluid.Sensors.MassFlowRate senMasFlo2(redeclare package Medium = Medium) "Mass flow rate sensor"; Buildings.Fluid.Sensors.MassFlowRate senMasFlo3(redeclare package Medium = Medium) "Mass flow rate sensor"; Buildings.Utilities.Diagnostics.AssertEquality assertEquality; Buildings.Utilities.Diagnostics.AssertEquality assertEquality1; equationconnect(res.port_b, res1.port_a); connect(res3.port_b, res2.port_a); connect(res4.port_b, res5.port_a); connect(res7.port_b, res6.port_a); connect(sou.ports[1], res.port_a); connect(bou.ports[1], res4.port_a); connect(bou1.ports[1], res7.port_a); connect(sou1.ports[1], res3.port_a); connect(P.y, sou.p_in); connect(P.y, sou1.p_in); connect(res1.port_b, senMasFlo.port_a); connect(res2.port_b, senMasFlo1.port_a); connect(res5.port_b, senMasFlo2.port_a); connect(res6.port_b, senMasFlo3.port_a); connect(senMasFlo2.port_b, sin1.ports[1]); connect(senMasFlo3.port_b, sin1.ports[2]); connect(senMasFlo.port_b, sin.ports[1]); connect(senMasFlo1.port_b, sin2.ports[1]); connect(senMasFlo2.m_flow, assertEquality1.u1); connect(senMasFlo3.m_flow, assertEquality1.u2); connect(senMasFlo.m_flow, assertEquality.u1); connect(senMasFlo1.m_flow, assertEquality.u2); end FixedResistancesExplicit;
model FixedResistancesParallel import Buildings; package Medium = Buildings.Media.ConstantPropertyLiquidWater;Modelica.Blocks.Sources.Constant PAtm(k=101325); Modelica.Blocks.Sources.Ramp P( duration=1, height=20, offset=101315); Buildings.Fluid.FixedResistances.FixedResistanceDpM res1( redeclare package Medium = Medium, m_flow_nominal=5, dp_nominal=10, deltaM=0.3, linearized=false, from_dp=false); Buildings.Fluid.Sources.Boundary_pT sou1( redeclare package Medium = Medium, T=293.15, nPorts=2, use_p_in=true); Buildings.Fluid.Sources.Boundary_pT sin1( redeclare package Medium = Medium, T=283.15, nPorts=2, use_p_in=true); Buildings.Fluid.FixedResistances.FixedResistanceDpM res2( redeclare package Medium = Medium, m_flow_nominal=5, dp_nominal=10, deltaM=0.3, linearized=false, from_dp=false); Buildings.Fluid.Sensors.MassFlowRate masFlo2(redeclare package Medium = Medium) "Mass flow rate sensor"; Buildings.Utilities.Diagnostics.AssertEquality assEqu(threShold=1E-4, message= "Inputs differ, check that lossless pipe is correctly implemented.") "Assert equality of the two mass flow rates"; Buildings.Fluid.Sensors.MassFlowRate masFlo1(redeclare package Medium = Medium) "Mass flow rate sensor"; inner Modelica.Fluid.System system(p_ambient=101325); equationconnect(PAtm.y, sin1.p_in); connect(P.y, sou1.p_in); connect(res2.port_b, masFlo2.port_a); connect(res1.port_b, masFlo1.port_a); connect(sou1.ports[1], res1.port_a); connect(sou1.ports[2], res2.port_a); connect(sin1.ports[1], masFlo1.port_b); connect(sin1.ports[2], masFlo2.port_b); connect(masFlo2.m_flow, assEqu.u1); connect(masFlo1.m_flow, assEqu.u2); end FixedResistancesParallel;
Type | Name | Default | Description |
---|---|---|---|
Pressure | dp_nominal | 5 | Nominal pressure drop for each resistance [Pa] |
Integer | nRes | 10 | Number of resistances |
model FixedResistancesSeries "Test of multiple resistances in series" package Medium = Modelica.Media.Air.SimpleAir;Modelica.Blocks.Sources.Constant PAtm(k=101325); parameter Modelica.SIunits.Pressure dp_nominal = 5 "Nominal pressure drop for each resistance";Modelica.Blocks.Sources.Ramp P( duration=1, height=2*dp_nominal*nRes, offset=101325 - dp_nominal*nRes); Buildings.Fluid.Sources.Boundary_pT sou( redeclare package Medium = Medium, T=273.15 + 20, use_p_in=true, nPorts=1); Buildings.Fluid.Sources.Boundary_pT sin( redeclare package Medium = Medium, T=273.15 + 10, use_p_in=true, nPorts=1); parameter Integer nRes( min=2) = 10 "Number of resistances";Buildings.Fluid.FixedResistances.FixedResistanceDpM[ nRes] res( redeclare each package Medium = Medium, each dp_nominal=dp_nominal, each from_dp = false, each m_flow_nominal=2); inner Modelica.Fluid.System system(p_ambient=101325); equation for i in 1:nRes-1 loopconnect(res[i].port_b, res[i+1].port_a); end for;connect(PAtm.y, sin.p_in); connect(P.y, sou.p_in); connect(sin.ports[1], res[nRes].port_b); connect(sou.ports[1], res[1].port_a); end FixedResistancesSeries;
model SplitterFixedResistanceDpM package Medium = Modelica.Media.Air.SimpleAir;Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM spl( m_flow_nominal={1,2,3}, dh={1,2,3}, redeclare package Medium = Medium, dp_nominal(displayUnit="Pa") = {5,10,15}) "Splitter"; Buildings.Fluid.Sources.Boundary_pT bou1( redeclare package Medium = Medium, T=273.15 + 10, use_p_in=true, nPorts=1); Buildings.Fluid.Sources.Boundary_pT bou2( redeclare package Medium = Medium, T=273.15 + 20, use_p_in=true, nPorts=1); Buildings.Fluid.Sources.Boundary_pT bou3( redeclare package Medium = Medium, T=273.15 + 30, use_p_in=true, nPorts=1); Modelica.Blocks.Sources.Constant P2(k=101325); Modelica.Blocks.Sources.Ramp P1( offset=101320, height=10, duration=0.5); Modelica.Blocks.Sources.Ramp P3( offset=101320, height=10, duration=0.5, startTime=0.5); inner Modelica.Fluid.System system(p_ambient=101325); equationconnect(P1.y, bou1.p_in); connect(P2.y, bou2.p_in); connect(bou3.p_in, P3.y); connect(bou1.ports[1], spl.port_1); connect(bou3.ports[1], spl.port_3); connect(spl.port_2, bou2.ports[1]); end SplitterFixedResistanceDpM;