model Delay
extends Modelica.Icons.Example;
// We set X_default to a small enough value to avoid saturation at the medium temperature
// that is used in this model.
package Medium =
Buildings.Media.Air(X_default={0.001, 0.999});
Modelica.Blocks.Sources.Constant PAtm(k=101325);
Modelica.Blocks.Sources.Ramp P(
duration=1,
height=20,
offset=101315);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res1(
from_dp=true,
m_flow_nominal=5,
dp_nominal=5,
redeclare package Medium = Medium);
Buildings.Fluid.Sources.Boundary_pT sou(
T=293.15,
redeclare package Medium = Medium,
use_p_in=true,
nPorts=1);
Buildings.Fluid.Sources.Boundary_pT sin(
T=283.15,
redeclare package Medium = Medium,
use_p_in=true,
nPorts=1);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res2(
from_dp=true,
m_flow_nominal=5,
dp_nominal=5,
redeclare package Medium = Medium);
Buildings.Fluid.Delays.DelayFirstOrder del( m_flow_nominal=5,
redeclare
package Medium = Medium,
nPorts=2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
T_start=283.15)
"Fluid volume that is a first order approximation of the transport delay";
equation
connect(P.y, sou.p_in);
connect(PAtm.y, sin.p_in);
connect(sou.ports[1], res1.port_a);
connect(sin.ports[1], res2.port_b);
connect(res1.port_b, del.ports[1]);
connect(res2.port_a, del.ports[2]);
end Delay;