HyLibLight.Components

Models of hydraulic valves

HyLibLight.Components.ReliefValve HyLibLight.Components.CheckValve HyLibLight.Components.LamRes HyLibLight.Components.QMeas HyLibLight.Components.PMeas HyLibLight.Components.LongLine HyLibLight.Components.VolumeConst HyLibLight.Components.Basic

Information


Models of valves.


Flow and Pressure Control Valves
--------------------------------

These valves control the flow or pressure. They are modelled as static systems.
Every valve has lumped volumes connected at every port.

CheckValve:	Ideal spring-loaded check valve with laminar/turbulent flow.
CheckValveTwo:	Ideal spring-loaded check valve with laminar/turbulent flow 
		(different characteristics). 
ShuttleValve:	Ideal Shuttle valve with internal resistance (static model).
ReducingValve:	Ideal pressure reducing valve (static model).
SerFlowCont:	Ideal series flow control valve (static model).


Spool Valves
------------

These valves control the flow according to the position of the spool. The spool dynamics is
modelled as a second order system with limits for the spool velocity and position. Every valve 
has lumped volumes connected at every port.

ServoValve:	Valve with second order spool dynamics and nonlinearities. Flow area depends
		linearly on spool position.
PropValve:	Valve with second order spool dynamics and nonlinearities. Flow area depends
		not linearly on spool position, usually large overlap.



Release Notes:
--------------

1999 - 10 - 9: coded


HyLibLight.Components.ReliefValve HyLibLight.Components.ReliefValve

Static model of a relief valve.

HyLibLight.Components.ReliefValve

Information

 
Static model of a relief valve.

The resistance depends on the pressure differential 
   dp = port_A.p - port_B.p

1) dp < pclosed => valve closed, only leakage
                   q = dp * GLeak

2) pclosed < dp < popen => working range,
                           i. e. valve partially opened

3) popen < dp => valve wide open, q = dp * GOpen

Use the modifier(s)

   VolumeA(port_A(p(start=1e5)))
and/or
   VolumeB(port_A(p(start=1e5)))

to set initial condition(s) for the pressure of the lumped volume(s) [Pa].

If a state is deselected by Dymola during the index reduction process this
modifier has no effect.

Release Notes:
--------------

2000 - 2 - 7: tested

Parameters

NameDefaultDescription
pclosed190e5valve closed if dp smaller [Pa]
popen205e5valve wide open if dp higher [Pa]
GLeak1.111e-12conductance of leakage of closed valve [m3/(s*Pa)]
GOpen1.666e-9conductance of wide open valve [m3/(s*Pa)]
volumeA1e-6volume at port A [m3]
volumeB1e-6volume at port B [m3]

Modelica definition

model ReliefValve "Static model of a relief valve." 
  extends HyLibLight.Interfaces.TwoPortSys;
  parameter Modelica.SIunits.Pressure pclosed=190e5 
    "valve closed if dp smaller";
  parameter Modelica.SIunits.Pressure popen=205e5 
    "valve wide open if dp higher";
  parameter HyLibLight.Interfaces.HyLibUnits.Conductance GLeak=1.111e-12 
    "conductance of leakage of closed valve";
  parameter HyLibLight.Interfaces.HyLibUnits.Conductance GOpen=1.666e-9 
    "conductance of wide open valve";
  parameter Modelica.SIunits.Volume volumeA=1e-6 "volume at port A";
  parameter Modelica.SIunits.Volume volumeB=1e-6 "volume at port B";
  
  HyLibLight.Components.Basic.ReliefValveNoStates RelnS(
    pclosed=pclosed, 
    popen=popen, 
    GLeak=GLeak, 
    GOpen=GOpen);
  HyLibLight.Components.VolumeConst VolumeA(volume=volumeA);
  HyLibLight.Components.VolumeConst VolumeB(volume=volumeB);
equation 
  connect(RelnS.port_B, port_B);
  connect(port_A, RelnS.port_A);
  connect(VolumeA.port_A, RelnS.port_A);
  connect(RelnS.port_B, VolumeB.port_A);
end ReliefValve;

HyLibLight.Components.CheckValve HyLibLight.Components.CheckValve

Spring-loaded check valve with laminar/turbulent flow.

HyLibLight.Components.CheckValve

Information

 
Spring-loaded check valve with laminar/turbulent flow.

The resistance depends on the pressure differential

1) pressure differential dp < p_closed
    => q = dp * GLeak
       leakage from high pressure port to low pressure port only

2) p_closed < dp < p_open
    => valve is partially open

3) dp > p_open
    => valve is wide open,
       flow mode depends on Reynolds number
       resistance modelled as orifice parallel with laminar resistance (leakage)

       The mass and flow forces are not included. 

Use the modifier(s)

   VolumeA(port_A(p(start=1e5)))
and/or
   VolumeB(port_A(p(start=1e5)))

to set initial condition(s) for the pressure of the lumped volume(s) [Pa].

If a state is deselected by Dymola during the index reduction process this
modifier has no effect.


Release Notes:
--------------

2000 - 2 - 4: tested

Parameters

NameDefaultDescription
pclosed1e5pressure to start opening the valve [Pa]
popen1.25e5pressure to open valve completely [Pa]
diameter1.e-3diameter of equivalent orifice [m]
k110.laminar part [ ]
k22.tubulent part, k2 = 1 / C_d^2 [ ]
GLeak1.e-12conductance of leakage [m3/(s*Pa)]
volumeA1e-6volume at port A [m3]
volumeB1e-6volume at port B [m3]

Modelica definition

model CheckValve 
  "Spring-loaded check valve with laminar/turbulent flow." 
  extends HyLibLight.Interfaces.TwoPortSys;
  parameter Modelica.SIunits.Pressure pclosed=1e5 
    "pressure to start opening the valve";
  parameter Modelica.SIunits.Pressure popen=1.25e5 
    "pressure to open valve completely";
  parameter Modelica.SIunits.Diameter diameter=1.e-3 
    "diameter of equivalent orifice";
  parameter Real k1=10. "laminar part [ ]";
  parameter Real k2=2. "tubulent part, k2 = 1 / C_d^2 [ ]";
  parameter HyLibLight.Interfaces.HyLibUnits.Conductance GLeak=1.e-12 
    "conductance of leakage";
  parameter Modelica.SIunits.Volume volumeA=1e-6 "volume at port A";
  parameter Modelica.SIunits.Volume volumeB=1e-6 "volume at port B";
  
  HyLibLight.Components.Basic.CheckValveNoStates ChVnS(
    pclosed=pclosed, 
    popen=popen, 
    diameter=diameter, 
    k1=k1, 
    k2=k2, 
    GLeak=GLeak);
  HyLibLight.Components.VolumeConst VolumeA(volume=volumeA);
  HyLibLight.Components.VolumeConst VolumeB(volume=volumeB);
equation 
  connect(ChVnS.port_B, port_B);
  connect(port_A, ChVnS.port_A);
  connect(VolumeA.port_A, ChVnS.port_A);
  connect(ChVnS.port_B, VolumeB.port_A);
end CheckValve;

HyLibLight.Components.VolumeConst HyLibLight.Components.VolumeConst

Lumped volume with constant bulk modulus.

HyLibLight.Components.VolumeConst

Information

 
Lumped volume with constant bulk modulus.

The pressure in the volume is calculated by:

d port_A.p     beta
---------- = -------- * port_A.q(t)
d Time        volume

with: 	port_A.p pressure in the volume  
	beta	 bulk modulus in Pa (constant, default beta=1.6e9 Pa)
	volume	 volume of oil under pressure in m^3 (constant)
	port_A.q flow rate into the volume

If the calculated pressure falls below the vapour pressure 
the pressure port_A.p is NOT limited to the vapour pressure.

To set the initial condition, i. e. the pressure in the lumped volume at
simulation start, to e. g. 2e6 Pa use the modifier:

	port_A(p(start=2e6))

If this state is deselected by Dymola during the index reduction process this
modifier has no effect.

See also: 
Volume 		Volume with pressure dependent bulk modulus
VolumeTemp	Volume with pressure and temperature dependent bulk modulus


Release Notes:
--------------

1999 - 1 - 24: tested


Parameters

NameDefaultDescription
volume1e-6volume [m3]
beta1.6e9effective bulk modulus [Pa]

Modelica definition

model VolumeConst "Lumped volume with constant bulk modulus." 
  extends Components.Basic.VolumePartial;
  parameter Modelica.SIunits.Volume volume(final min=HyLibLight.Interfaces.
        FluidProp.VolMin) = 1e-6 "volume";
  parameter Modelica.SIunits.BulkModulus beta=1.6e9 
    "effective bulk modulus";
equation 
  der(port_A.p) = beta/volume*port_A.q;
end VolumeConst;

HyLibLight.Components.LamRes HyLibLight.Components.LamRes

Resistance with laminar flow and volumes at the ports.

HyLibLight.Components.LamRes

Information

LamRes describes the laminar flow through a resistance
that has lumped volumes at each port.

q = G*dp

q   flow rate
G   conductance, m^3/(s * Pa)
dp  pressure drop across resistance

Equations to calculate the conductance G are given in the manual
for several components. A conductance of G = 4.167e-13 m^3/s/Pa 
leads to a flow rate of 1 l/min at 4e7 Pa (=400 bar).  

As the critical Reynolds number depends on the component there is 
no check whether the flow is actually laminar or turbulent.

Use the modifier(s)

   VolumeA(port_A(p(start=1e5)))
and/or
   VolumeB(port_A(p(start=1e5)))

to set initial condition(s) for the pressure of the lumped volume(s) [Pa].

If a state is deselected by Dymola during the index reduction process this
modifier has no effect.

See also:

Orifice:	The model based on the loss coefficient K describes both flow regimes, 
		laminar for very small Reynolds numbers, turbulent for higher 
		Reynolds numbers (default model).
OriPoly:	The model describes both flow regimes, using a interpolation polynomial. 
OriCav:		Orifice model checking for cavitation.
SimOri:		Texbook model, using a constant discharge coefficient 
		(valid for turbulent flow only). 
MeteringOri:	Metering Orifice, i. e. model OrificeNoStates with variable diameter. 	
TwoOrifices:	Two orifices in series, one with variable the other with 
		fixed flow area.


Release Notes:
--------------

1999 - 10 - 23: tested

Parameters

NameDefaultDescription
G4.2e-13conductance of laminar resistance [m3/(s*Pa)]
volumeA1.e-6volume at port A [m3]
volumeB1.e-6volume at port B [m3]

Modelica definition

model LamRes "Resistance with laminar flow and volumes at the ports."
   
  extends HyLibLight.Interfaces.TwoPortSys;
  parameter HyLibLight.Interfaces.HyLibUnits.Conductance G=4.2e-13 
    "conductance of laminar resistance";
  parameter Modelica.SIunits.Volume volumeA=1.e-6 "volume at port A"
    ;
  parameter Modelica.SIunits.Volume volumeB=1.e-6 "volume at port B"
    ;
  HyLibLight.Components.Basic.LamResNoStates Lr(G=G);
  HyLibLight.Components.VolumeConst VolumeA(volume=volumeA);
  HyLibLight.Components.VolumeConst VolumeB(volume=volumeB);
equation 
  connect(Lr.port_B, port_B);
  connect(Lr.port_A, port_A);
  connect(VolumeA.port_A, port_A);
  connect(VolumeB.port_A, port_B);
end LamRes;

HyLibLight.Components.QMeas HyLibLight.Components.QMeas

Flow rate sensor

HyLibLight.Components.QMeas

Information

 
Measures the connector-flow rate between two ports in an ideal way
and provides the result as output signal outPort.signal[1] = q
(to be further processed with blocks of the Modelica.Blocks library).

Release Notes:
--------------

2000 - 1 - 24: tested

Modelica definition

model QMeas "Flow rate sensor" 
  HyLibLight.Interfaces.Port_A port_A 
    "Port A, were oil flows into the component (positive q, port_A.p > port_B.p means positive dp)"
    ;
  HyLibLight.Interfaces.Port_B port_B 
    "Port B, were oil leaves the component (negative q, port_A.p > port_B.p means positive dp)"
    ;
  Modelica.Blocks.Interfaces.OutPort outPort(final n=1);
equation 
  
  outPort.signal[1] = port_A.q;
  port_A.q + port_B.q = 0;
  port_A.p = port_B.p;
end QMeas;

HyLibLight.Components.PMeas HyLibLight.Components.PMeas

Pressure sensor

HyLibLight.Components.PMeas

Information

Measures the pressure p at port in an ideal way and provides the 
result as output signal outPort.signal[1]
(to be further processed with blocks of the Modelica.Blocks library).

Release Notes:
--------------

2000 - 1 - 24: tested

Modelica definition

model PMeas "Pressure sensor" 
  HyLibLight.Interfaces.Port_A port_A 
    "Port A, were oil flows into the component (positive q, port_A.p > port_B.p means positive dp)"
    ;
  Modelica.Blocks.Interfaces.OutPort outPort(final n=1);
equation 
  port_A.q = 0;
  port_A.p = outPort.signal[1];
end PMeas;

HyLibLight.Components.LongLine HyLibLight.Components.LongLine

Long line with laminar flow

HyLibLight.Components.LongLine

Information

 
Dynamic model of a long line with compressibility, inductance 
and frequency dependent viscosity.

This model uses n elements for the line =>
          ElementLength = line length / n

The oil in long lines is compressible, has a mass and a resistance.
The model includes the frequency dependent friction, compressibility 
and inductance.

The dynamic response of long lines is a function of time and the spatial 
coordinate, i. e. described by partial differential equations. For the 
library a lumped parameter model is used that breaks the whole line into 
n short elements. LongLine uses an entrance and an exit element that have 
only half the length of the n-1 middle elements, leading to an effective 
element length of 1 / n of the whole line length.

				      aSound
The model is adequate if: length < --------------
				    10 * fmax

		with	length  length of line segment 
			aSound	speed of sound in fluid
			fmax 	highest frequency of interest

The steady state flow rate q is positive if oil enters the line at port_A, 
the pressure drop port_A.p - port_B.p is then positive.

The resistance, compressibility, inductance and frequency 
dependent viscosity are modelled. 

The model is valid if the flow is laminar. There is no warning 
if this condition is not met. The Reynolds number is computed for
the entrance and the exit element (to reduce the neccessary computations).


Release Notes:
--------------

2000 - 1 - 17: tested

Parameters

NameDefaultDescription
LineLength31.98total length of line [m]
n10number of line segments
ElementLengthLineLength/nlength of one segment of line [m]
diameter30.e-3line diameter [m]
aSound1335speed of sound in oil [m/s]

Modelica definition

model LongLine "Long line with laminar flow" 
  extends HyLibLight.Interfaces.TwoPortSys;
  parameter Modelica.SIunits.Length LineLength=31.98 
    "total length of line";
  parameter Integer n(final min=2) = 10 "number of line segments";
  parameter Modelica.SIunits.Length ElementLength=LineLength/n 
    "length of one segment of line";
  parameter Modelica.SIunits.Diameter diameter=30.e-3 
    "line diameter";
  parameter Modelica.SIunits.VelocityOfSound aSound=1335 
    "speed of sound in oil";
  HyLibLight.Components.Basic.LineMiddle[n - 1] LMiddle(
    ElementLength=ElementLength, 
    diameter=diameter, 
    aSound=aSound);
  
  HyLibLight.Components.Basic.LineEntrance LEntrance(
    ElementLength=ElementLength, 
    diameter=diameter, 
    aSound=aSound);
  HyLibLight.Components.Basic.LineExit LExit(
    ElementLength=ElementLength, 
    diameter=diameter, 
    aSound=aSound);
equation 
  connect(LExit.port_B, port_B);
  connect(port_A, LEntrance.port_A);
  for i in 1:(n - 2) loop
    connect(LMiddle[i].port_B, LMiddle[i + 1].port_A);
  end for;
  
  connect(LEntrance.port_B, LMiddle[1].port_A);
  connect(LMiddle[n - 1].port_B, LExit.port_A);
end LongLine;

HTML-documentation generated by Dymola Thu Jun 22 13:55:55 2000 .