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.GasesPTDecoupled.MoistAirUnsaturated(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,
    T_start=283.15,
    nPorts=2);
  
inner Modelica.Fluid.System system;
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;