Buildings.Obsolete.Fluid.Movers.Validation.BaseClasses
Package with base classes for obsolete validation models
Information
This package contains base classes for obsolete validation models.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Package Content
| Name | Description |
|---|---|
Buildings.Obsolete.Fluid.Movers.Validation.BaseClasses.ControlledFlowMachine
Information
This example demonstrates the use of the flow model with four different configuration. At steady-state, all flow models have the same mass flow rate and pressure difference.Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| SpeedControlled_y | fan1 | fan1(redeclare package Mediu... | Fan with normalized control input between 0 and 1 |
| FlowControlled_dp | fan3 | fan3(redeclare package Mediu... | Fan with head as input |
| FlowControlled_m_flow | fan2 | fan2(redeclare package Mediu... | Fan with mass flow rate as input |
| SpeedControlled_Nrpm | fan4 | fan4(redeclare package Mediu... | Fan with RPM as control input |
Modelica definition
model ControlledFlowMachine
package Medium = Buildings.Media.Air "Medium model";
Modelica.Blocks.Sources.Pulse y(
startTime=0,
offset=0,
amplitude=1,
period=120,
width=50);
Buildings.Fluid.Sources.Boundary_pT sou(
redeclare package Medium = Medium,
use_p_in=false,
p=101325,
T=293.15,
nPorts=4);
Buildings.Fluid.Sensors.MassFlowRate masFloRat1(redeclare package Medium =
Medium);
Buildings.Fluid.Sensors.RelativePressure relPre(redeclare package Medium =
Medium);
replaceable Buildings.Fluid.Movers.SpeedControlled_y
fan1(
redeclare package Medium = Medium,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
redeclare Buildings.Obsolete.Fluid.Movers.Data.Pumps.Wilo.Stratos32slash1to12
per)
constrainedby Buildings.Fluid.Movers.SpeedControlled_y
"Fan with normalized control input between 0 and 1";
Buildings.Fluid.FixedResistances.PressureDrop dp1(
redeclare package Medium = Medium,
from_dp=true,
m_flow_nominal=0.006,
dp_nominal=50000) "Pressure drop";
Buildings.Fluid.FixedResistances.PressureDrop dp2(
redeclare package Medium = Medium,
from_dp=true,
m_flow_nominal=0.006,
dp_nominal=50000) "Pressure drop";
Buildings.Fluid.Sensors.MassFlowRate masFloRat2(
redeclare package Medium = Medium);
Buildings.Fluid.FixedResistances.PressureDrop dp3(
redeclare package Medium = Medium,
from_dp=true,
m_flow_nominal=0.006,
dp_nominal=50000) "Pressure drop";
Buildings.Fluid.Sensors.MassFlowRate masFloRat3(
redeclare package Medium = Medium);
replaceable Buildings.Fluid.Movers.FlowControlled_dp
fan3(
redeclare package Medium = Medium,
m_flow_nominal=6000/3600*1.2,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
redeclare Buildings.Obsolete.Fluid.Movers.Data.Pumps.Wilo.Stratos32slash1to12
per)
constrainedby Buildings.Fluid.Movers.FlowControlled_dp
"Fan with head as input";
replaceable Buildings.Fluid.Movers.FlowControlled_m_flow
fan2(
redeclare package Medium = Medium,
m_flow_nominal=6000/3600*1.2,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
redeclare Buildings.Obsolete.Fluid.Movers.Data.Pumps.Wilo.Stratos32slash1to12
per)
constrainedby Buildings.Fluid.Movers.FlowControlled_m_flow
"Fan with mass flow rate as input";
Buildings.Fluid.FixedResistances.PressureDrop dp4(
redeclare package Medium = Medium,
from_dp=true,
m_flow_nominal=0.006,
dp_nominal=50000) "Pressure drop";
Buildings.Fluid.Sensors.MassFlowRate masFloRat4(
redeclare package Medium = Medium);
replaceable Buildings.Obsolete.Fluid.Movers.SpeedControlled_Nrpm
fan4(
redeclare package Medium = Medium,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
redeclare Buildings.Obsolete.Fluid.Movers.Data.Pumps.Wilo.Stratos32slash1to12
per)
constrainedby Buildings.Obsolete.Fluid.Movers.SpeedControlled_Nrpm
"Fan with RPM as control input";
Modelica.Blocks.Math.Gain gain(k=3580) "Converts y to nominal rpm";
Buildings.Fluid.FixedResistances.PressureDrop dp5(
m_flow_nominal=6000/3600*1.2,
redeclare package Medium = Medium,
dp_nominal=300,
from_dp=true) "Pressure drop";
Buildings.Fluid.FixedResistances.PressureDrop dp6(
m_flow_nominal=6000/3600*1.2,
redeclare package Medium = Medium,
dp_nominal=300,
from_dp=true) "Pressure drop";
Buildings.Fluid.FixedResistances.PressureDrop dp7(
m_flow_nominal=6000/3600*1.2,
redeclare package Medium = Medium,
dp_nominal=300,
from_dp=true) "Pressure drop";
Buildings.Fluid.FixedResistances.PressureDrop dp8(
m_flow_nominal=6000/3600*1.2,
redeclare package Medium = Medium,
dp_nominal=300,
from_dp=true) "Pressure drop";
Buildings.Fluid.Sources.Boundary_pT sin(
redeclare package Medium = Medium,
use_p_in=false,
p=101325,
T=293.15,
nPorts=4);
equation
connect(fan1.port_a, relPre.port_b);
connect(fan1.port_b, relPre.port_a);
connect(fan1.port_b, dp1.port_a);
connect(fan2.port_b, dp2.port_a);
connect(fan3.port_b, dp3.port_a);
connect(fan4.port_b, dp4.port_a);
connect(gain.y, fan4.Nrpm);
connect(masFloRat1.m_flow, fan2.m_flow_in);
connect(relPre.p_rel, fan3.dp_in);
connect(dp8.port_b, fan4.port_a);
connect(dp5.port_b, fan1.port_a);
connect(dp6.port_b, fan2.port_a);
connect(dp7.port_b, fan3.port_a);
connect(y.y, fan1.y);
connect(y.y, gain.u);
connect(dp8.port_a, sou.ports[1]);
connect(dp5.port_a, sou.ports[2]);
connect(dp6.port_a, sou.ports[3]);
connect(dp7.port_a, sou.ports[4]);
connect(dp4.port_b, masFloRat4.port_a);
connect(dp1.port_b, masFloRat1.port_a);
connect(dp2.port_b, masFloRat2.port_a);
connect(dp3.port_b, masFloRat3.port_a);
connect(masFloRat4.port_b, sin.ports[1]);
connect(masFloRat1.port_b, sin.ports[2]);
connect(masFloRat2.port_b, sin.ports[3]);
connect(masFloRat3.port_b, sin.ports[4]);
end ControlledFlowMachine;