model FlowMachine
"Fan with polynomial performance curve"
extends Modelica.Icons.Example;
package Medium =
Buildings.Media.IdealGases.SimpleAir;
Modelica.Blocks.Sources.Ramp P(
height=-1500,
offset=101325,
duration=1.5);
Buildings.Obsolete.Fluid.Movers.FlowMachinePolynomial fan(
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,
redeclare package Medium = Medium,
m_flow_nominal=10);
Modelica.Blocks.Sources.Constant N(k=22.3333);
Buildings.Fluid.Sources.Boundary_pT sou(
redeclare package Medium
= Medium,
use_p_in=true,
T=293.15,
nPorts=1);
Buildings.Fluid.Sources.Boundary_pT sin(
redeclare package Medium
= Medium,
use_p_in=true,
T=293.15,
nPorts=1);
Modelica.Blocks.Sources.Constant PAtm(k=101325);
Buildings.Utilities.Reports.Printer printer(
nin=6,
header="time dp dpNorm mNorm m_flow power",
samplePeriod=0.1);
Modelica.Blocks.Sources.RealExpression fan_mFlow(y=fan.m_flow);
Modelica.Blocks.Sources.RealExpression simTim2(y=time);
Modelica.Blocks.Sources.RealExpression fan_dp(y=fan.dp);
Modelica.Blocks.Sources.RealExpression fan_dpNor(y=fan.pNor);
Modelica.Blocks.Sources.RealExpression fan_mNor(y=fan.mNor_flow);
Modelica.Blocks.Sources.RealExpression fan_PSha(y=fan.PSha);
inner Modelica.Fluid.System system;
Buildings.Fluid.Sensors.TemperatureTwoPort
TIn(
redeclare package Medium = Medium,
m_flow_nominal=10);
Buildings.Fluid.Sensors.TemperatureTwoPort
TOut(
redeclare package Medium = Medium,
m_flow_nominal=10);
equation
connect(simTim2.y, printer.x[1]);
connect(fan_dp.y, printer.x[2]);
connect(fan_dpNor.y, printer.x[3]);
connect(fan_mNor.y, printer.x[4]);
connect(fan_PSha.y, printer.x[6]);
connect(fan_mFlow.y, printer.x[5]);
connect(N.y, fan.N_in);
connect(P.y, sou.p_in);
connect(PAtm.y, sin.p_in);
connect(sou.ports[1], TIn.port_a);
connect(TIn.port_b, fan.port_a);
connect(fan.port_b, TOut.port_a);
connect(TOut.port_b, sin.ports[1]);
end FlowMachine;