Beruflich Dokumente
Kultur Dokumente
BY
RUI LIU
THESIS
Urbana, Illinois
ABSTRACT
iii
ACKNOWLEDGMENT
I would like to thank my advisor Professor Andrew Alleyne for his guidance, patience and
support.
I also wish to thank my wife Wei Xue for her love, encouragement and support.
Also, Heather Wright provided the values of some parameters used in the model,
and Mark Depoorter provided part of the C code related with RTI board.
iv
TABLE OF CONTENTS
Page
2.1 SIMULATION........................................................................................... 17
v
3.2.1 Lyapunov functions ....................................................................... 36
3.3 BACKSTEPPING...................................................................................... 46
4.1 SIMULATION........................................................................................... 52
SYSTEM .................................................................................................... 74
6.1 SIMULATION........................................................................................... 78
vi
6.2 EXPERIMENT .......................................................................................... 83
Chapter 7. CONCLUSIONS....................................................................................... 92
REFERENCES............................................................................................................ 95
vii
LIST OF FIGURES
Figure Page
2.3 Comparison between measured frequency response and that of the second order and
2.5 Measured (estimated) friction-velocity relation and the friction model of the open
2.6 Measured and modeled control input of the open loop system
2.7 Measured and modeled valve position of the open loop system
viii
2.8 Measured and modeled load pressure of the open loop system
2.9 Measured and modeled piston velocity of the open loop system
2.10 Measured and modeled piston position of the open loop system
2.11 Measured and modeled control input of the closed loop system
2.12 Measured and modeled valve position of the closed loop system
2.13 Measured and modeled load pressure of the closed loop system
2.14 Measured and modeled piston velocity of the closed loop system
2.15 Measured and modeled piston position of the closed loop system
2.16 Measured and modeled valve position of the open loop system
iii
2.17 Measured and modeled load pressure of the open loop system
2.18 Measured and modeled piston velocity of the open loop system
2.19 Measured and modeled piston position of the open loop system
2.20 Measured and modeled valve position of the closed loop system
2.21 Measured and modeled load pressure of the closed loop system
2.22 Measured and modeled piston velocity of the closed loop system
2.23 Measured and modeled piston position of the closed loop system
4.1 SIMULINK model for the hydraulic system with the nonlinear controller................ 53
iv
4.7 Modeled position with k4 = 2000... ......................................................................... 57
4.8 A cross section schematic diagram of the Moog direct drive valve... ....................... 58
v
6.5 The evolution history of modeled gammahat ( γ$ )..... .............................................. 82
6.9 Desired and actual valve position for 1 Hz force tracking..... ........................... 86
6.17 Desired and actual valve position for 2 Hz force tracking...... ............................ 90
6.18 The "steady state" of measured gammahat ( γ$ ) for 2 Hz force tracking...... ........... 91
vi
Chapter 1. INTRODUCTION
1
∂ρ ∂ρ
ρ = ρ0 + ( P − P0 ) + (T − T0 ) , (1.2)
∂P T ∂T P
where
ρ: mass density,
P: pressure,
T: temperature.
Another presentation of (1.2) is
1
ρ = ρ0 1 + ( P − P0 ) − α (T − T0 ) , (1.3)
β
where
∂P
β ≡ ρ0 ,
∂ρ T
1 ∂ρ
α ≡− .
ρ0 ∂T P
1 ∂V
α = . (1.5)
V 0 ∂T P
The quantity β is called the isothermal bulk modulus, or simply bulk modulus. It is
the change in pressure divided by the fractional change of volume at a constant
temperature. Its unit is N/m2, the same as that of pressure. For petroleum fluids, β ≅
1.5169 × 109 N/m2, however, entrapment of air in the liquid decreases this value sharply,
thus in practice such large value of β is seldom reached. The bulk modulus is the most
important fluid property in determining the dynamic performance of hydraulic systems,
because it relates to the stiffness of the liquid.
The quantity α is called the cubical expansion coefficient. It is the fractional
change in volume divided by the change in temperature. Its unit is (°C)−1, and the value of
α for petroleum base fluid is about α ≅ 0.5 × 10−3 (°C)−1.
2
x
Cr
The constant µ is called the absolute viscosity, or dynamic viscosity. Its unit is N ⋅ s / m2.
The ratio of dynamic viscosity to mass density occurs in many equations and can be easily
measured by viscometers. This ratio, denoted by ν, is called the kinematic viscosity, i.e.,
µ
ν = . (1.7)
ρ
3
Generally speaking, in a flow circuit only those equations that describe
intentionally inserted hydraulic resistances need considering, since these are usually the
dominant restrictors. Resistances of flow passages such as pipes, bends, and fittings, are
often neglected. Therefore, the most commonly used equation of flow is the orifice
equation:
2
Q = Cd A0 ( P − P2 ) , (1.9)
ρ 1
where
Q: flow,
Cd: discharge coefficient, a proportional constant,
A0: orifice area,
P1: pressure before the orifice,
P2: pressure at the vena contracta, the point where the flow jet area becomes a
minimum.
4
underlapped. A critical center or zero lapped valve has a land width identical to the port
width, while a closed center or overlapped valve has a land width greater than the port
width when the spool is at neutral. A critical center valve has a linear flow gain in the
vicinity of neutral position, a closed center valve has a deadband characteristic near
neutral, and an open center valves have a bigger flow gain near neutral. Most four-way
spool valves are manufactured with a critical center to achieve a linear flow gain or a slight
overlap to minimize leakage and hence the power loss.
Fi
4 xv
QL
Supply P1
1
Ps Qs
PL = P1 - P2
2
QL
Return P2
3
P0 ≅ 0 Qs
Refer to Figure 1.2, for steady-state flow analysis, assume that the compressibility
flows are zero, then
QL = Q1 − Q4, (1.10)
QL = Q3 − Q2. (1.11)
Flows through the valving orifices are described by the orifice equation (1.9). Therefore,
5
Q1 = Cd A1
2
( P − P1 )
ρ S
(1.12)
Q2 = Cd A2
2
( P − P2 )
ρ S
(1.13)
2
Q3 = Cd A3 P (1.14)
ρ 2
2
Q4 = Cd A4 P (1.15)
ρ 1
Assume that the valve orifices are matched and symmetrical, which is the case for most of
the spool valves manufactured. Matched orifices mean that
A1 = A3, A2 = A4,
and symmetrical orifices mean that
A1(xv) = A2(−xv), A3(xv) = A4(−xv).
Matched and symmetrical orifices indicate that
A1(xv) = A3(xv) = A2(−xv) = A4(−xv) = A(xv), (1.16)
thus only one orifice area A need to be defined. If the orifice areas are linear with valve
stroke, only one defining parameter is required: the width of the slot in the valve sleeve w.
w is the rate of change of orifice area with stroke, and is called the area gradient. The
relationship between w and A is given by
A = w xv. (1.17)
If the orifices are matched and symmetrical, then
Q2 = Q4, (1.18)
Q1 = Q3. (1.19)
Substituting (5.12) and (5.14) into (1.19) yields
PS = P1 + P2, (1.20)
which together with the definition of PL,
PL = P1 − P2, (1.21)
yields
P1 = (PS + PL) / 2, (1.22a)
P2 = (PS − PL) / 2. (1.22b)
6
Assume further that the valve geometry is ideal, i.e., the orifice edges are perfectly
square with no rounding and there is no radial clearance between the spool and the sleeve,
then the leakage flows (Q2 and Q4 when xv is positive, Q1 and Q3 when xv is negative) are
zero, then combining (1.10), (1.12) and (1.22) yields
Q L = Cd A1
1
( P − PL ) for
ρ s
xv > 0. (1.23)
For a negative valve displacement QL = −Q4, and (1.15) and (1.21) give
Q L = − Cd A2
1
( P + PL )
ρ s
for xv < 0. (1.24)
Since the valve is symmetrical, A1(xv) = A2(−xv), and assume that rectangular ports are
used with an area gradient w, then (1.23) and (1.24) can be combined to give
Q L = C d A1
1
ρ
(P s − PL ) (1.25)
Most of the spool valves manufactured have matched and symmetrical orifices.
The difference between an ideal critical center valve and a practical one is the leakage
characteristics. It is found that the leakage performance of practical valves dominates their
behavior and associated pressure-flow curves only for very small valve openings (in the
order of |xv| < 2.5 × 10−5 m (0.001 inch)). Outside this region the theoretical equation
(1.25) fits well. Thus it is valid to use equation (1.25) to describe the pressure-flow
dynamics for operation mostly outside of this region for critical center spool valves.
Recall the equation of state of a fluid as in (1.3),
1
ρ = ρ0 1 + ( P − P0 ) − α (T − T0 ) , (1.3)
β
assume that the temperature remains constant, the equation reduces to
ρ0
ρ = ρ0 + P, (1.26)
β0
where ρ0 and β0 are the mass density and bulk modulus at 0 degree, respectively.
Consider the continuity equation
dm d ( ρV0 )
∑W − ∑W in out =g
dt
=g
dt
, (1.27)
7
where
W: weight flow rates into and from a control volume,
g: gravity constant, 9.8 kg ⋅ m / s2,
m: mass,
V0: initial volume.
Equation (1.26) can be combined with (1.27) to give
d ( ρV0 ) dV dρ
∑W − ∑W
in out =g
dt
= gρ 0 + gV
dt dt
. (1.28)
For a double rod hydraulic cylinder combined with a single-stage four-way spool
valve, application of the continuity equation (1.29) to each cylinder chamber yields
dV1 V1 dP1
Q1 − Cip ( P1 − P2 ) − Cep P1 = + (1.30)
dt βe dt
dV2 V2 dP2
Cip ( P1 − P2 ) − Cep P2 − Q2 = + (1.31)
dt βe dt
where
Cip: internal or cross-port leakage coefficient of motor, m4 ⋅ s / kg,
Cep: external leakage coefficient of motor, m4 ⋅ s / kg,
βe: effective bulk modulus of system, N / m2,
V1: volume of forward chamber, m3,
V2: volume of backward chamber, m3.
The volumes V1 and V2 can be expressed by
V1 = V0 + A x, V2 = V0 − A x,
assuming that the cylinder has a constant piston area A throughout the operation range,
which is the case for most cylinders, then
dV1 dV dx
=− 2 = A . (1.32)
dt dt dt
Since the load flow
8
1
QL = (Q1 + Q2),
2
combining (1.30), (1.31) and (1.32) gives
Cep V0 d ( P1 − P2 ) Ax dP1 dP2
Q L = Ax& + (Cip + )( P1 − P2 ) + + + . (1.33)
2 2βe dt 2 βe dt dt
Assume that (1.22a) and (1.22b) can be used to differentiate to give dP1/dt + dP2/dt = 0,
consider also the total volume of fluid in both chambers Vt,
Vt = V1 + V2 = 2V0,
then (1.33) becomes
Vt &
Q L = Ax& + Ctp PL + P (1.34)
4βe L
where
A: piston area,
x: displacement of piston,
Ctp: total leakage coefficient of piston, Ctp = Cip + (Cep / 2),
Vt: total volume of fluid under compression in both chambers.
The equation (1.34) is the major equation for describing the dynamics of pressure
differential in the hydraulic cylinder. Most of the above derivation for equations (1.25) and
(1.34) came from (Merritt, 1967). Equation (1.34) together with equation (1.25) forms
the basic cylinder dynamics and will be used later in Chapter 2: System Modeling.
9
stress levels. Since the strength of the materials used in hydraulic actuators are high, they
can deliver relatively large mechanical energy for comparatively small devices.
(2) Hydraulic systems have fast response to input. Figure 1.3 demonstrates that
hydraulic systems are able to generate high loads with fast response (Dorf and Bishop,
1995).
4
10
beyond
state of
3 the art
10
maybe
hydrostatic
Power to Load (kw)
2
10
conventional hydraulics
1
10
0
10
electromechanical
-1
10
0 1 2 3
10 10 10 10
-1
1/Response Time (second )
(3) Hydraulic systems can perform continuous, intermittent, reversing and stalled
operation without damage. In contrast, electrical motors cannot be held at a position for
an extended time, otherwise the problem of overheating will arise and damage to the
motors will occur. This advantage of hydraulic actuators exists since the fluid carries away
the heat generated in the transform of energy.
(4) Hydraulic actuators have higher stiffness compared with electrical motors, that
is, there is little drop in speed when loads are applied. This brings a preference for
hydraulic actuators where precision is a major concern.
Inevitably, with the advantages hydraulic actuators provide, there are drawbacks of
hydraulic actuators that make them undesirable in some applications (Merritt, 1967):
10
(1) Hydraulic power is not readily available as that of electrical power. This may
not affect automobile or airborne or ship applications, but will affect stationary
applications.
(2) Hydraulic power is not as flexible at low power levels compared with electrical
motors.
(3) It is impossible to maintain the fluid free of contamination, and contaminated
oil is the major source of hydraulic control failures.
(4) There are some other factors that limit the applications of hydraulic actuators.
The use of hydraulic fluid, often petroleum based, poses an upper operation temperature
limit. Potential fire or explosion hazard exists if the actuator is used near a source of
ignition. Hydraulic systems are messy because of the leaks in the system, and there is
always a possibility of failure due to complete loss of fluid if a break in the system occurs.
(5) The final factor limiting the applications of hydraulic systems is ourselves:
human being's understanding and knowledge of these systems. Because of the complexity
of hydraulic system analysis and nonlinearities in the system dynamics, design and control
of hydraulic systems are still difficult and immature, and this definitely limits their
applications.
1.5 APPLICATIONS
The assets and advantages hydraulic systems as stated in the previous section,
particularly its large force-to-weight ratio and fast response, has rendered hydraulic
systems a very important role in industry. "Industrial hydraulic technology is firmly
entrenched in our global economy. The usage knows no boundary lines." (Pippenger and
Hicks, 1979)
As shown in a book written by Robert Gordon Blaine in 1913, hydraulic systems
have already seen applications in hydraulic pressing machinery, hydraulic jack for raising
weights, hydraulic cranes for moving weights in building construction, coal mines, and
railway stations, hydraulic elevators for passengers and cargo (then called hydraulic lifts),
hydraulic brake, hydraulic graving docks for raising ships for repairing, hydraulic
machinery onboard on ships for loading, discharging, storing cargo and steering.
11
With the improving of present technology and emerging of new technology,
hydraulic systems find even wider areas of application. Hydraulic systems are widely used
in machine tools as actuation of feeding (Khaimovich, 1965). They are commonly used in
automobiles, in steering, brake, auto transmission, and recently in active suspension
(Alleyne, 1995). Aeronautical and aerospace industries also apply hydraulic systems to the
motion control of the airplane (Janczur, 1983). Not surprisingly, also due to their large
force-to-weight ratio and fast response, hydraulic systems also see applications in the
space as an important part of the space shuttle (Morse, 1983). Civil engineers use
hydraulic systems to help buildings maintain their locations against environmental loads
such as strong earthquakes and high winds (Dyke et al., 1995). Construction companies
use hydraulic systems in their construction machinery such as paving machine as shown in
(Pippenger and Hicks, 1979). Agricultural engineers also choose hydraulic systems for
actuation in their agricultural machines, such as agricultural harvesters (Stroup and
Hrukow, 1981) and cotton pickers (Brandt, 1986). Hydraulic systems are used in forestry
machinery, e.g., as log debarkers (Stuart and Croskrey, 1983). They are used in legged
robots for use on rough terrain (Nair, 1992), in off-shore engineering working 6000 feet
under the sea surface as remotely operated vehicle for finding and obtaining articles on the
sea floor (Broome, 1984), not to mention their wide applications in industry robots. They
even found application for training, test equipment and entertainment equipment as
simulators, such as flight simulators (Mayer, 1992) and road simulators (Gardner et al.,
1995).
12
also shed insight for understanding and control design of hydraulic systems. For example,
the work of (Martin, 1970) and (Watton, 1985) found that the stability of hydraulic
actuators was dependent on the position of the actuator. By use of root locus method,
Martin found that the stability margin is worst when the actuator has equal volume on
either side of the piston and the result is verified by experiments.
Recent research based on linear theory applied the result in other areas of control.
(Lin and Akers, 1990) used a linearized model, applied LQR theory, and augmented the
original system with an additional state to apply integral control. Since hydraulic systems
have strong nonlinearites and are time varying, many researchers applied adaptive control
together with linear control theory to account for the model uncertainties. Both of the
work of (Bobrow and Lum, 1996) and (Plummer and Vaughan, 1996) applied indirect
adaptive control, which contained an identification part and a controller design part and
based on a linear discrete model for position control, while Bobrow and Lum also used the
result of LQR theory. With a linear discrete model for the hydraulic system,
(Ananthakrishnan and Fullmer, 1990) found that direct model reference control(MRC)
made the system unstable, while indirect MRC and pole assignment adaptive controllers
were successful for the experimental pistons and rotary vane actuators. However, (Zhu et
al., 1988) had a different result. Also based on a linear discrete model, Zhu et al. applied
and compared PID controller, state feedback optimal controller (based on LQR theory),
and direct MRC for the big arm of a multi-joint robot, which has time-varying loads. They
found that the system remains stable with each of the controllers, that PID controller is
easy to implement but has the lowest performance, that the state feedback optimal
controller has the fastest response but does not work well for varying parameters since it
is based on an accurate time invariant model, and that a modified direct MRC which only
takes care of part of the parameter uncertainties, which needs a lower order reference
model, has the best performance with varying loads. The work of (Yun and Cho, 1991)
considered unknown load disturbance as parameter uncertainty and designed a Lyapunov-
based controller to make the hydraulic system to follow a given second order linear model.
Apparently fewer results have been provided based on nonlinear model of
hydraulic systems. (Jelali and Schwaz, 1995) obtained models of a hydraulic servo-drive
13
directly in the nonlinear observer canonical form via parameter identification. (Wang et al.,
1995) developed and verified a nonlinear model of a two-stage flow control servo valve.
(Gardner et al., 1995) developed and verified, using SIMULINK, the nonlinear models of
the servovalve and actuator. (Vilenius, 1983) applied sensitivity analysis to an
electrohydraulic position control servo. In his work, it was found that the system is
strongly sensitive to the deadband, and not very sensitive to viscous friction and actuator
leakage. (Heinrichs et al., 1997) constructed a modified PI controller incorporating a
nonlinear error integral term and obtained good result for position regulating and low
frequency (0.1 Hz) force tracking. This method uses intuition of linear PI control and
involves tuning of the parameters for the nonlinear integral term. The stability of the
controlled system was not proved and limitation for performance of this method was also
found by the authors.
Feedback linearization method is an alternative method for applying relatively
more mature linear control theory to a class of nonlinear systems feedback linearizable
nonlinear systems, and it received much research effort since its first appearance. Using
this technique, the original nonlinear system is first transformed into a simpler linear form
by algebraic transformation of the states and inputs, then the well-know and relatively
more powerful linear control theory can be applied to the resulting linear system. An early
application of feedback linearization method to hydraulic systems was made by (Axelson
and Kumar, 1988). However, only one of the nonlinearities, the flow pressure relationship
was accounted for by their method. (Kanellakopoulos et al., 1991) gave a theoretical
systematic procedure for adaptive controller design for a class of feedback linearizable
nonlinear systems. In the work of (Del Re and Isidori, 1995), they considered both the
nonlinear flow pressure relation and the actuator dynamics. Before they applied the
feedback linearization method, they used a bilinear approximation for the original square
root nonlinearity in the flow pressure relation. They then experimentally verified their
method for a regulation problem. (Vossoughi and Donath, 1995) also incorporated both
flow pressure relation and actuator dynamics for actuator torque output regulation. They
also transformed the linearized model into a form suitable for robustness study of the
controlled system.
14
Many researchers compensating for the system nonlinearities did not include the
valve dynamics, arguing that the valve dynamics is much faster than the actuator. In
(Alleyne et al., 1993), (Vossoughi and Donath, 1995) and (Del Re and Isidori, 1992), the
valve dynamics was also included in the system model. (Alleyne et al., 1993) also
developed a variant on the Integrator Backstepping strategy (Kanellakopoulos et al.,
1991) and found significant performance improvement for force tracking in an
electrohydraulic active automobile suspension. To compensate the parameter uncertainties
in the fluid compressibility equation, (Alleyne and Hedrick, 1995) developed a Lyapunov-
based, sliding controller with gradient adaptation algorithm for the control of a hydraulic
actuator.
15
When the direct measurement of force is not available, the problem of pressure
tracking arises. This frequently occurs in industrial applications where the environment
may be hostile for an on-site force sensor. There are some special problems involved with
pressure tracking, such as a significant amount of pressure sensor noise and friction. This
thesis, in addition to implementing the algorithm developed in (Alleyne, 1996), for the first
time considered a friction compensation scheme combined with parameter uncertainty
compensation, developed a Lyapunov-based controller, proved its global stability and
implemented the proposed scheme on an experimental system. The experimental results
show good tracking of both force and pressure for relatively low frequency sine signals.
16
Chapter 2. SYSTEM MODELING
2.1 SIMULATION
valve
spring actuator
The problem to be studied is depicted in Figure 2.1. The goal is to have the
actuator track a specified force or pressure trajectory. The force producing element is a
conventional hydraulic actuator with a single-stage, four-way spool valve. The dynamics
of the valve is modeled as a rate-limited second order system. It can be approximated as a
first order model at low frequency, and this model matches well with actual time response.
More details will be given briefly after the system equations are given. The differential
equations governing the dynamics of the actuator are given in (Merritt, 1967) for a
symmetric actuator. The fluid compressibility equation is (refer to equation (1.34))
Vt &
P = − Ax& − Ctp PL + QL (2.1)
4β e L
where
Vt : total actuator volume,
βe: effective bulk modulus,
PL: load pressure,
A: actuator ram area,
x: actuator piston position,
Ctp: total coefficient of leakage,
17
QL: load flow.
And the orifice flow equation is given by (refer to (1.25))
Ps − sgn( x v ) PL
Q L = Cd wx v (2.2)
ρ
where
Cd: discharge coefficient,
w: spool valve area gradient,
xv: spool valve position,
Ps: supply pressure,
ρ: fluid mass density.
Combining (2.1) and (2.2) with other system parameters results in the system state
equations given below (Alleyne, 1996):
x&1 = x 2
1
x& 2 = ( − kx1 − bx 2 + Ax 3 )
m
(2.3)
&x 3 = − α x 2 − β x 3 + ( γ Ps − sgn( x 4 ) x 3 ) x 4
1 K
x& 4 = − x 4 + u
τ τ
where
states and inputs:
x1: actuator piston position (x),
x2: actuator piston velocity ( x& ),
x3: load pressure(PL),
x4: valve position(xv),
u: input current to servo valve,
flow related constants:
α : 4Aβe / Vt,
β: 4Ctmβe / Vt,
γ: 4Cdβew / (Vt ρ ).
system parameters:
m: mass of actuator and load (slide),
18
k: spring constant,
b: damping coefficient,
τ: time constant of the servo valve,
K: DC gain of the servo valve.
In order to check if this state space model captures the key component of the
system dynamics, a detailed model based on physical laws for the hydraulic system was
also derived. A SIMULINK model was built. A static, memoryless friction model
incorporating static friction, Coulomb friction, and Stribeck effects was used.
A typical velocity-friction plot of such friction model is shown in Figure 2.2. The
friction model used in the modeling of the system is a novel one: it includes Karnopp's
stick-slip model (Karnopp, 1985), Stribeck effect, and viscous friction. General stick
friction, or sometimes called static friction or breakaway friction, is easy to understand. In
Karnopp's friction model, there are two key points: (1) Stick of motion occurs when
velocity is within a small critical velocity range, instead of only when velocity is exactly
zero. (2) There is a maximum value that friction can have when the mass under
consideration sticks. Let it be denoted as Ffstatic. This is the same as common Coulomb
friction. However, within this stick region, the amplitude of friction is not just a constant
value multiplied by the sign of the velocity which is the case for a common Coulomb
friction model, instead, it is such that the sum of all forces including friction is zero, i.e.,
the friction balances the other forces. Once the amplitude of the sum of other forces
exceeds that of Ffstatic, stick cannot be maintained and the mass under consideration is
going to move (slip).
In the model used in this thesis, Stribeck effect is also included and observed in the
experiment. Stribeck effect describes such phenomenon that when the mass under
consideration just left the stick region and the velocity is very small, the friction decreases
as velocity increases within a certain velocity range. If this range is small, the velocity-
friction relation could be approximated as linear, with a negative slope. In this thesis, the
velocity range is called Stribeck velocity range, and the slope Stribeck slope. The offset
within the velocity range is kinetic friction, denoted as Ffkinetic.
19
Viscous friction is easier to understand: within a certain velocity range (usually
while velocity is large), friction increases as velocity increases. This is frequently
encountered by study of moving objects with high speed in fluids, like aircraft, submarines
and high speed trains. This thesis used a novel combination of these friction models with
key features captured in Figure 2.2. In Figure 2.2, the critical velocity range for stick
region is [−0.01, 0.01] m/s, Ffstatic is ± 225 N. The block around friction axis indicates that
within the critical velocity range, the amplitude of friction could be any value between
−225 N and 225 N. Ffkinetic is ± 220 N, Stribeck velocity range is ± 0.01 m/s, Stribeck
slope is − 1700 N ⋅ s / m. Notice that Ffstatic does not have to have the same magnitude at
each of the two moving directions, so is critical velocity, Ffkinetic, Stribeck velocity range
and Stribeck slope.
250
200
150
100
50
friction (N)
-50
-100
-150
-200
-250
-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25
velocity (m / s )
Frequency response analysis of the servo valve dynamics was measured with an
HP Digital Signal Analyzer. It was found that a second order linear model could match
well with the measured frequency response. The model was found to be:
20
2.4315 × 10 5
.
s 2 + 6.2529 × 10 2 s + 2.5676 × 10 5
As mentioned earlier in this section, this model can be approximated as a first order model,
namely, 1 / (τ s + 1), where τ = 1 / 573 sec−1 is the time constant. Figure 2.3 gives a
comparison between measured frequency response and that of the second order and first
order models. Up to 5 Hz, which is the range of current interest, the differential of
magnitude between the first order model and measured data is within about 2%, while the
differential of phase is within about 3o.
-1
Magnitude (dB)
-2
-3
-4
-5
0 1 2
10 10 10
-2 0
Phase (degree)
-4 0
-6 0
-8 0
-1 0 0
0 1 2
10 10 10
F re q u e n c y ( H z )
Figure 2. 3 Comparison between measured frequency response and that of the second
order and first order models of the servo valve.
Measured: −−−, second order model: ---, first order model: -⋅-⋅-⋅.
The values of parameters for the experimental system and modeling are as follows:
Mechanical constants:
m: 24 kg,
k: 16010 N/m;
21
Hydraulic constants:
Ps: 1.0344 × 107 Pascal (1500 PSI),
A: 3.2673 × 10−4 m2,
α: 1.513 × 1010 N/m3,
β: 1.0 sec−1;
Friction parameters:
Ffstatic: 225 N,
Ffkinetic: +240 / −220 N,
Stribeck slope: − 1700 N ⋅ s/m,
Stribeck velocity range: ± 0.1 (m/s);
velocity
acceleration velocity data time
Clock time
acceleration data
1/s position
position Saturation1 position data
Fstick
*
+ velocity f(u)
-28.2 - Product1 Stiction + friction
- 1/m 1/s 1 = 1, if stick +
force offset - Total friction data
Integral gain f(u) 1e4
Sum 1/mass Friction
of = v, if slip Slip huge gain slip
forces This simulates the modified sign offset
Karnopp friction model based on +
JDSMC, Vol. 107, pp.100-103 f(u) fst +
coded by R. Liu, July 1998 + Saturation2
= v, if Stribeck Stribeck
effect friction
Friction Force (Stick, Slip && Viscous) when slip
spring
f(u) fv
springrate = v, if slip2 Viscous
friction
- A
1
A
2e-14s+2e-12 Area
Pressure +
Area1 Limit compressibility
Sum
of
Ps flows
Supply Pressure
pressure + sqrt(u)
* -
pressure data Sum2 square
Product2
root
1/c1
coefficient Sign * Q
of LVDT
Product Flow load flow
- nsv*Stsv/10(s) x4=xv Co Limit
+ dsv(s)
Sum3 Rate Amplifier Control Spool Servo Control Spool
Signal Limiter Saturation Dynamics Limit Flow Gain
Generator input xc
input signal control valve postition
22
In the model, the constant offset block near upper left corner is added since there
is an offset in measured pressure signal. The Rate Limiter block models the rate limiter
built in within the servo valve with rate limit being ± 800 V/s. The Amplifier Saturation is
included since there is an electronic amplifier with saturation of ± 10 V on the control
panel to limit the control input for the system. The upper and lower limits in Servo Limit
block are equal to the stroke of the servo valve: ± 1.27 × 10−4 m. The flow limits in Flow
Limit block are the maximum value of flow through the valve: 3 × 10−4 m3/s. Pressure limit
is the supply pressure Ps: 1.0344 × 107 Pascal (1500 PSI). The saturation for the piston
position is the stroke: ± 0.1 m. The Stiction block contains the value of Ffstatic. The
Saturation2 block has no use currently (it contains a huge number) It could be potentially
used to limit the slip friction if the calculated magnitude of friction is too big. The slip
offset block contains the value of Ffkinetic. A little trick hides here. To make the adjusting of
the values of Ffkinetic easier, a block with a huge gain, 1 × 104, is put before the slip offset
block. Notice that the output of the slip sign block will be only 1 or −1, according to the
sign of velocity. The combination of the huge gain block and slip offset saturation block
would give the two limit values in the saturation block depending on the sign of velocity.
There are four function blocks (f(u)'s) in the friction model region in the upper right part.
Their outputs are given in their names under the blocks. The blocks take advantage of one
MATLAB convention: logical statements have values with 1 indicating true and 0 meaning
false. From top to bottom, the first f(u) block tests whether the velocity is within critical
velocity range, gives 1 if true and 0 if false. The second f(u) tests whether the velocity is
out of that range, returns the input if true and 0 if false. Similarly, the third and fourth
blocks test whether the velocity is within or out of the Stribeck velocity range and returns
the input or 0 accordingly. The other blocks are either clear or have self-explaining names
and are easy to understand.
23
friction-velocity relation and the Coulomb plus Stribeck friction model. The value of
friction was obtained in this way:
Ff = PL A – m a.
Since the friction was not directly measured but obtained in such a way, the obtained
relation between velocity and friction is called measured (estimated). Notice that later in
Chapter 6, the value of friction was also estimated but in a slight different fashion.
This figure verified the friction model we used. In this figure, Stribeck slope is −
1700 N ⋅ s / m, and Stribeck velocity range is ± 0.1 m/s. Figures 2.6 ~ 2.10 show the
measured and modeled control input, valve position, load pressure, piston velocity and
piston position when the open loop system is subject to a 1 Hz sine wave with 1 V
amplitude. Figures 2.11 ~ 2.15 show the measured and modeled control input, valve
position, load pressure, piston velocity and piston position for a similar reference when the
loop is closed: a unit negative feedback is introduced with the cylinder position as
feedback signal. The figures indicate that the modeled data match the experimental data
well for 1 Hz sine signal.
Experimental verification of the system model was also done for 1 Hz 1 V square
wave input for both open loop and closed loop systems. Figures 2.16 ~ 2.19 show the
measured and modeled control input, valve position, load pressure, piston velocity and
piston position when the open loop system is subject to a 1 Hz square wave with 1 V
amplitude. Figures 2.20 ~ 2.23 show the measured and modeled control input, valve
position, load pressure, piston velocity and piston position for a similar reference with the
closed loop system. The figures again demonstrate good match between the modeled and
the experimental data. Some simulation parameter values are as follows: Ffstatic = ± 225 N,
critical velocity range: ± 0.005 m/s, Stribeck velocity range: ± 0.1 m/s.
24
300
200
100
friction (N)
-1 0 0
-2 0 0
-3 0 0
- 0 .0 8 - 0 .0 6 - 0 .0 4 - 0 .0 2 0 0 .0 2 0 .0 4 0 .0 6 0 .0 8
v e lo c i t y ( m / s )
1.5
0.5
control input (Volt)
-0.5
-1
-1.5
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 6 Measured and modeled control input of the open loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
25
-5
x 10
2
1
valve position (m)
-1
-2
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 7 Measured and modeled valve position of the open loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
5
x 10
8
2
pressure (Pascal)
-2
-4
-6
-8
-10
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 8 Measured and modeled load pressure of the open loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
26
0.08
0.06
0.04
0.02
velocity (m/s)
-0.02
-0.04
-0.06
-0.08
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 9 Measured and modeled piston velocity of the open loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
0.016
0.014
0.012
0.01
position (m)
0.008
0.006
0.004
0.002
0
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 10 Measured and modeled piston position of the open loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
27
1
0.8
0.6
0.4
0.2
control input (Volt)
-0.2
-0.4
-0.6
-0.8
-1
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 11 Measured and modeled control input of the closed loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
-5
x 10
1
valve position (m)
-1
Figure 2. 12 Measured and modeled valve position of the closed loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
28
5
x 10
8
2
pressure (Pascal)
-2
-4
-6
-8
-10
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 13 Measured and modeled load pressure of the closed loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
0.06
0.04
0.02
velocity (m/s)
-0.02
-0.04
-0.06
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 14 Measured and modeled piston velocity of the closed loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
29
-3
x 10
6
0
position (m)
-2
-4
-6
-8
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 15 Measured and modeled piston position of the closed loop system
for 1 Hz sine wave. Measured: −−−, modeled: ---.
-5
x 10
1.5
0.5
valve position (m)
-0.5
-1
-1.5
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 16 Measured and modeled valve position of the open loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
30
6
x 10
2.5
1.5
0.5
pressure (Pascal)
-0.5
-1
-1.5
-2
-2.5
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 17 Measured and modeled load pressure of the open loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
0.1
0.08
0.06
0.04
0.02
velocity (m/s)
-0.02
-0.04
-0.06
-0.08
-0.1
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 18 Measured and modeled piston velocity of the open loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
31
0.005
-0.005
position (m)
-0.01
-0.015
-0.02
-0.025
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 19 Measured and modeled piston position of the open loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
-5
x 10
2
valve position (m)
-2
Figure 2. 20 Measured and modeled valve position of the closed loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
32
6
x 10
3
1
pressure (Pascal)
-1
-2
-3
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 21 Measured and modeled load pressure of the closed loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
0.1
0.08
0.06
0.04
0.02
velocity (m/s)
-0.02
-0.04
-0.06
-0.08
-0.1
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 22 Measured and modeled piston velocity of the closed loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
33
-3
x 10
8
2
position (m)
-2
-4
-6
-8
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Figure 2. 23 Measured and modeled piston position of the open loop system
for 1 Hz square wave. Measured: −−−, modeled: ---.
34
Chapter 3. CONTROLLER DESIGN
35
• Finite escape time. For linear systems, the states of the system cannot go to infinity
until the time goes to infinity, which is called infinite escape time. By contrast,
nonlinear systems can. A very simple yet illustrating example could be the state
trajectory shown below:
2
x1 (t ) = .
1− t
The state x1 tends to infinity when t approaches 1, which is a finite number.
Other nonlinear system behaviors include, but are not limited to, subharmonic,
harmonic, or almost-periodic oscillations, chaos, and multiple modes of behavior
(bifurcation).
36
The choice of the Lyapunov function V is not unique. The stability property of a
system can be shown with different Lyapunov functions. However, the total energy
function of the system, which is the sum of the system's kinetic and potential energy
functions, could be a natural Lyapunov function candidate and it provides a physical
insight for Lyapunov functions for mechanical and electrical systems. If the energy
function of a system, which is positive definite by intuition, has a negative definite
derivative function, the energy of the system will monotonically decreasing until the stop
of the motion of the system, indicating that the origin is asymptotically stable.
As mentioned above, for some systems such as electrical and mechanical systems,
the energy function could be a natural candidate of a Lyapunov function. In other cases,
the choice of Lyapunov functions is basically by trial and error. There do exist,
nevertheless, some ideas and approaches for searching for Lyapunov functions, making the
situation better than it might seem. The variable gradient method, for example, can be
used to construct a Lyapunov function. Let the system be modeled as
x& = f(x), (3.4)
and let V(x) be a scalar function of x and g(x) = (∂V / ∂x)T, then
∂V
V& ( x ) = x& = g T ( x ) f ( x ) . (3.5)
∂x
The idea is to try to choose g(x) such that it would be the gradient of a positive definite
function V(x) and at the same time, make V& ( x ) negative definite. The sufficient and
necessary condition for g(x) to be the gradient of a scalar function is that the Jacobian
matrix [∂g / ∂x] is symmetric, i.e.,
∂ gi ∂ g j
= , ∀ i, j = 1, 2, …, n. (3.6)
∂ x j ∂ xi
Under this constraint, choose g(x) such that gT(x)f(x) is negative definite. Then the
function V(x) is computed from the integral
n
∫0 g ∫0 ∑
x x
V ( x) = T
( y )dy = g i ( y )dyi . (3.7)
i =1
The integration is taken over any path joining the origin to x, independent of the path. An
easy way to do so is along the axes, that is,
37
∫ g1(y1 ,0, ... ,0 )dy1 + ∫ g 2 (x1 , y 2 , . .. ,0 )dy 2
x1 x2
V(x) =
0 0
(3.8)
+ ⋅⋅⋅ + ∫
xn
g n (x1 , x 2 , ... , x n −1 , y n )dy n .
0
By leaving some parameters of g(x) undetermined, one can try to choose them to ensure
that V(x) is positive definite. The choice of the parameters of g(x) and the integration
complete a typical procedure of the variable gradient method. The above description and
the following example of the use of the variable gradient method were cited from (Khalil,
1996).
where a > 0, h(⋅) is locally Lipschitz, h(0) = 0 and y h(y) > 0 for all y ≠ 0, y ∈ (−b, c)
with b, c > 0. To apply the variable gradient method, we need to choose a second order
vector g(x) that satisfies
∂ g1 ∂ g 2
= , (3.10)
∂ x2 ∂ x1
∫
x
V ( x) = g T ( y )dy > 0, for x ≠ 0. (3.12)
0
38
to cancel the cross term. The expression of g(x) is now
aγ x1 + δ h( x1 ) + γ x 2
g( x ) = . (3.16)
γ x1 + δ x 2
By integration,
1 T (3.17)
∫
x1
= x Px + δ h( y )dy
2 0
where
aγ γ
P=
δ
. (3.18)
γ
Choosing δ > 0 and 0 < γ < aδ ensures that V(x) is positive definite and V& ( x ) is negative
definite. For example, taking γ = kaδ for 0 < k < 1 yields the Lyapunov function
δ T ka 2 ka
x + δ ∫0 h( y )dy
x1
V ( x) = x (3.19)
2 ka 1
which satisfies conditions (3.1) and (3.3) over the domain D = { x ∈ R2 | −b < x1 < c }, so
the origin is asymptotically stable. ◊
39
LaSalle extended Lyapunov's stability theorem in 1960. His research result
weakened the condition for asymptotic stability of the origin of an autonomous system,
such that only the existence of a positive semidefinite instead of definite derivative of a
continuously differentiable function is necessary. LaSalle's Theorem, also called LaSalle's
invariance principle, is stated as follows (Khalil, 1996):
LaSalle's Theorem:
Let Ω ⊂ D be a compact set that is positively invariant with respect to the system
x& = f ( x ) (3.20)
points in Ω where V& ( x ) = 0. Let M be the largest invariant set in E. Then every solution
starting in Ω approaches M as t → ∞.
lim g (t ) = 0 .
t →∞
Remark. When applying Barbalat's Lemma, one usually has V& ( x ) ≤ 0, thus V(x) ≤ V(0), is
bounded. Now to show V& ( x ) à 0, only the condition of uniform continuity of V& ( x )
needs to be satisfied. Here V& ( x ) serves as the role of g(x). For the uniform continuity
40
3.2.2 Lyapunov-based controller design
It turns out that Lyapunov function method is not only a powerful analysis tool, it
can also be used as a design tool. In recent years, several design methods based on
Lyapunov stability theory either emerged or developed and gained popularity. Among
them are three primary methods: Lyapunov redesign, backstepping, and sliding mode
control. The underlying idea for the Lyapunov-based design methods is to synthesize a
control u, such that there exists a positive definite function V(x) with a negative definite or
semidefinite derivative V& ( x ) . In this section, Lyapunov redesign method and sliding
control will be introduced, while the second one, backstepping, is the subject of next
section. The description of Lyapunov redesign is taken from (Khalil, 1996), and the
description and example of sliding control from (Slotine and Li, 1991).
where x ∈ Rn is the state and u ∈ Rp is the control input. The functions f, G and δ are
defined for (t, x, u) ∈ [0, ∞) × D × Rn, where D ⊂ Rn is a domain that contains the origin,
and δ is the uncertainty.
Suppose that for the nominal system (3.21), there exists a feedback control ψ(t, x)
and suppose we know a continuously differentiable Lyapunov function V(t, x). Assume
that with u = ψ(t, x) + v, the uncertain term δ satisfies the inequality
|| δ(t, x, ψ(t, x) + v) || ≤ ρ(t, x) + k || v ||, 0 ≤ k ≤ 1 (3.23)
where ρ : [0, ∞) × D → R is a nonnegative continuous function. Here δ is not required to
be small, it is only required to be known. With the knowledge of the Lyapunov function V,
41
the function ρ, and the constant k in (3.23), an additional feedback control v = γ(t, x) can
be designed such that the overall control u = ψ(t, x) + γ(t, x) stabilizes the actual system
(3.22) in the presence of uncertainty. The design of γ(t, x) is called Lyapunov redesign.
Let ~
x = x − xd be the tracking error in the variable x, and
~
x = x − xd = [~ x& ... ~
x ~ x ( n−1) ]T
be the tracking error vector. Define a time varying surface S(t) in the state space Rn be the
scalar equation s(x; t) = 0, where
n−1
d ~
s(x; t) = + λ x (3.25)
dt
42
where λ is a strictly positive constant, whose choice will depend on the specific
application. For example, if n = 2,
x& + λ x~ ;
s= ~
if n = 3,
s = &~
x& + 2λ x~& + λ 2 x~ .
Given initial condition
xd(0) = x(0), (3.26)
the problem of tracking x ≡ xd is equivalent to that of remaining on the surface S(t) for all t
> 0. Thus the problem of tracking the n-dimensional vector xd can be transformed into a
1st-order stabilization problem in s. Furthermore, bounds on s indicate bounds on ~
x , thus
the scalar s represents a true measure of tracking performance.
Assume that ~ x (0) = 0, then
∀ t ≥ 0, | s(t) | ≤ Φ => ∀ t ≥ 0, | ~
x (i)(t) | ≤ (2λ)i ε, (3.27)
i = 0, …, n − 1
where
ε = Φ / λn−1.
The simplified 1st-order problem of keeping s at zero can be achieved by choosing the
control u in (3.24) such that when s is outside of S(t),
1 d 2
s ≤ −η | s | (3.28)
2 dt
where η is a constant and η > 0.
(3.28) states that the square of distance to the surface S(t), as measured by s2,
decreases along all system trajectories. Thus, the condition constrains trajectories to go
towards the surface S(t). Once on the surface, the system trajectory remains on it. The
condition (3.28) is called the sliding condition, and it makes the surface an invariant set.
The condition also implies that some disturbance or model uncertainties can be tolerated
while keeping the surface an invariant set. It also guarantees that if the initial condition
(3.26) is not satisfied, i.e., if x(0) ≠ xd(0), the surface S(t) will also be reached in a finite
time. This kind of controller design method is called sliding control.
43
The idea behind (3.25) and (3.28) is to pick up a well-behaved function s of the
tracking error, and then select a control law u such that s2 remains a Lyapunov-like
function of the closed-loop system, with the presence of disturbances and model
uncertainties.
The controller design procedure consists of two steps. First, a feedback control
law u is selected to satisfy the sliding condition (3.28). Since the control law has to be
discontinuous across S(t) to account for the disturbance and model uncertainties, however,
the implementation of such control switchings is imperfect (e.g., due to delay in actuation
and numerical error in s), thus a usually undesirable system behavior, chattering, will
appear. In some specific applications, the chattering is beneficial (as a kind of dither) or is
beyond the range of relevant unmodeled dynamics, the discontinuous control law can be
directly applied. In general, chattering is undesirable, since it involves high control activity
and may excite high frequency unmodeled dynamics. In such cases, a second step needs to
be conducted: to use a continuous approximation of the discontinuous control law to
achieve a proper trade-off between control bandwidth and tracking precision. The
following is a simple example showing the basic idea and procedure of sliding controller
design.
44
f$ = −1.5 x& 2cos3x, F = 0.5 x& 2 | cos3x |.
Step 1: This is a second-order system, n = 2, thus we define a sliding surface s = 0
as
d
s=( + λ) ~ x& + λ ~
x = ~ x, (3.32)
dt
and then we have
x& = f + u − x&&d + λ x~& .
s& = x&& − x&&d + λ ~ (3.33)
The best approximation u$ of a continuous control law that would achieve s& = 0 is
u$ = − f$ + && x& .
xd − λ ~ (3.34)
In order to satisfy the sliding condition (3.28), we add to u$ a term discontinuous across
the surface s = 0:
u = u$ − k sgn(s), (3.35)
where sgn is the signum function:
sgn(s) = + 1, if s > 0,
sgn(s) = − 1, if s < 0,
sgn(s) = 0, if s = 0.
Now,
1 d 2
s = s& s = [ f − f$ − k sgn(s)] s = (f − f$ ) s - k | s |,
2 dt
so, letting
k = F + η, (3.36)
and considering (3.30), we obtain
1 d 2
s ≤ − η | s |.
2 dt
From (3.36), the control discontinuity k across the surface s = 0 increases with the
magnitude of parametric uncertainty F.
Step 2: In general, chattering must be eliminated for the controller to perform
properly. One way to smooth the control discontinuity is to set a thin boundary layer in
the neighborhood of the switching surface as
B(t) = {x, |s(x; t) ≤ Φ }, Φ > 0, (3.37)
45
n−1
where Φ is the boundary layer thickness, and ε = Φ / λ is the boundary layer width.
Outside of B(t), the control law u is chosen as before, which guarantees that the boundary
layer is attractive and invariant; inside B(t), the term sgn(s) in u is replaced by s / Φ. With
the result shown before the example, the modified controller u leads to tracking within a
guaranteed precision ε, and guarantees that for all trajectories starting inside B(t)
∀ t ≥ 0, | ~
i
x ( )(t) | ≤ (2λ)i ε, i = 0, …, n − 1. (3.38)
◊
3.3 BACKSTEPPING
The key idea of backstepping is to start with a system which is stabilizable with a
known feedback law for a known Lyapunov function, and then add to its input an
integrator. For the augmented system a new stabilizing feedback law is then explicitly
designed and shown to be stabilizing for a new Lyapunov function, and so on …
The basic form of the backstepping procedure is well explained in (Kokotovic,
1992) on an example of a system in "strict feedback form":
x&1 = f 1 ( x1 , x 2 ) ,
x& 2 = x 3 + f 2 ( x1 , x 2 ) ,
x& 2 = u + f 3 ( x1 , x 2 , x 3 ) . (3.39)
The control objective is to stabilize the system at the origin.
Step 1. Assume that we can use x2 to stabilize at the origin the first equation with a
∂V1
feedback law α1(x1) so that f ( x , α ( x )) < 0, for all x ≠ 0, where V1(x1) is a known
∂x1 1 1 1 1
where ϕ1(z1, z2) is known, because f1 is assumed differentiable and can be expressed as
f1(z1, z2 + α1(z1)) ≡ f1(z1, α1(z1)) + z2 ϕ1(z1, z2). (3.41)
46
α&1 is also known explicitly:
∂α1 ∂α1
α&1 = x&1 = f (x , x )
∂x1 ∂x1 1 1 2
∂α1
= f ( z , z + α1 ( z1 )) (3.42)
∂z1 1 1 2
: = β1 ( z1 , z 2 ).
Step 2. Assume that we can use x3 to stabilize at origin the above (x1, x2)-system
with a feedback law α2(z1, z2). To design α2, we first construct a new Lyapunov function
V2(z1, z2) = V1(z1) + ½ z22. (3.43)
With x3 = α2(z1, z2) we want to make V&2 negative,
∂V ∂V
V&2 = 1 f 1 ( z1 , α1 ( z1 )) + z 2 1 ϕ1 ( z1 , z 2 ) + α 2 + f 2 ( z1 , z 2 + α1 ( z1 , z2 )) − β1 ( z1 , z2 ) .
∂z1 ∂z1
(3.44)
The first term was made negative in Step 1, thus we choose α2 to make the
expression in the big parentheses equal − z2:
∂V1
α2(z1, z2) = − z2 − ϕ1(z1, z2) − f2(z1, z2 + α1(z1)) + β1(z1, z2). (3.45)
∂z1
Again, we can achieve x3 = α2(z1, z2) only with an error z3 = x3 − α2(z1, z2) and the actual
V&2 is
∂V
V&2 = 1 f 1 ( z1 , α1 ( z1 )) − z 22 + z2 z 3 . (3.46)
∂z1
Using the knowledge that z1, z2, and z3 are known functions of x1, x2 and x3 and vice versa,
the system equations can be written as
z&1 = f1(z1, α1(z1)) + z2 ϕ1(z1, z2),
47
its derivative is
∂V1
V&3 = V&2 + z 3 z& 3 = f ( z , α ( z )) − z 22 + z 2 z 3 + z 3 (u + f 3 − β2 ). (3.48)
∂z1 1 1 1 1
Now the first two terms are negative, and the rest has a common factor z3. This enables
the choice of the control law
u = − z3 − f3(z1, z2 + α1, z3 + α2) + β2(z1, z2, z3) − z2 (3.49)
to make the last two terms in V&3 to equal − z32 and thus V&3 < 0 for all nonzero z1, z2, and
z3. Now the desired global asymptotic stability at origin is achieved. The designed
feedback law is expressed as a function of the states x1, x2, and x3. Since at each step we
derive a stabilizing feedback control law and then go one step back until the control law
for real control input u is derived, this type of controller design is usually called
backstepping.
The above procedure is explicit and its result is global when the system is in the
special "strict feedback form". In the case of more general "pure feedback form", the result
may not be explicit or global, but a non-vanishing region of stability is still guaranteed.
48
The output of interest here is the force (or pressure) from the actuator, thus y =
Ax3 (or x3). The relative degree of the nonlinear system is 2. The zero dynamics of the
system are the first two state equations with x3 = 0. It can be easily verified that the system
is nonlinear minimum phase (Khalil, 1996), and thus x1 and x2, the internal states, are
stable. Most of the following development of controller was taken from (Alleyne, 1996).
For ease of following analysis, the third and forth state equations can be represented as
x& 3 = f 3 + g3 x 4 ,
x& 4 = f 4 + g 4 u , (3.51)
where
f3 := − α x2 − β x3,
g 3 : = γ Ps − sgn( x 4 ) x 3 ,
g 3′ := g3 / γ, (3.52)
f4 := − x4 / τ,
g4 := K / τ.
The desired force trajectory Fdesired can be divided by the actuator ram area A to
determine the desired load pressure profile x3desired. Define the following pressure and valve
position errors:
e3 := x3 − x3desired,
e4 := x4 − x4desired, (3.53)
where the desired valve position will be determined shortly. Define the positive definite
function (notice here in fact we put Step 1 and Step 2 in the previous section together)
1 1
V1 = ρ3 e32 + ρ4 e42 . (3.54)
2 2
Differentiating (3.54) and substituting (3.53) into it yield
V&1 = ρ3 e3 e&3 + ρ4 e4 e&4
= ρ3 e3 ( f 3 + g 3 x 4 − x& 3desired ) + ρ4 e4 ( f 4 + g 4 u − x& 4 desired ) (3.55)
= ρ3e3 ( f 3 + g 3 x 4 desired + g 3e4 − x& 3desired ) + ρ4 e4 ( f 4 + g 4 u − x& 4 desired ).
Here we follow similar derivation in the backstepping controller design procedure.
Imagine x4 as a fictitious control input in the third system equation in (3.50), to make the
first term in the expression of V&1 negative, we let the value in the first pair of parentheses
49
− k3 e3, where k3 is a constant and k3 > 0, i.e., we let the desired value of the fictitious
control x4desired as
1
x 4 desired = ( − f 3 + x& 3desired − k 3 e3 ) , (3.56)
g3
then
V&1 = − ρ3 k 3 e32 + ρ3 g 3 e3e4 + ρ4 e4 ( f 4 + g 4 u − x& 4 desired ) . (3.57)
Now we do not have to imagine a fictitious control input. Notice that since the last two
terms have a common factor e4, we only have to let the other terms multiplying e4 equal
− c4 e4 with a positive constant c4. We let
1 ρ
u= ( − f 4 + x& 4 desired − k 4 e4 − 3 g 3 e3 ) (3.58)
g4 ρ4
where k4 is a constant, and k4 > 0, then
V&1 = − ρ3 k 3 e32 − ρ4 k 4 e42 , (3.59)
which is a negative definite function of e3 and e4. Since V is radially unbounded, by
Lyapunov's direct method, the global convergence of e3 and e4 to zero is guaranteed. The
control law is given explicitly as follows and ready to be implemented:
1
x4 desired = (α x2 + β x3 + x&3desired − k3e3 ) ,
γ Ps − sgn( x4 ) x3
τ x4 ρ3
u= + x&4desired − k 4e4 − γ e3 Ps − sgn( x4 ) x3 . (3.60)
K τ ρ4
operating smoothly, since at most time |x3| is much less than Ps and seldom close to Ps. In
the rare case g 3′ equals zero (e.g., due to the noise in pressure signal), it can be set to a
small positive number to avoid the problem of dividing by zero.
50
Chapter 4. CONTROL RESULTS
To apply the controller developed above to the hydraulic system, both simulation
and experimental verification were done. The designed controller was found to work well
for pressure tracking task for low frequency signals. In the following, the simulation result
is presented first, and then the experiment data are given.
4.1 SIMULATION
The controller designed in Chapter 3 was incorporated into the model. Figures 4.1
and 4.2 show the integrated model and the details of the controller subsystem,
respectively. The simulation of the model together with the controller was conducted. The
values of the controller parameters used in the model were:
γ: 0.8 × 109 kg0.5/(m1.5 s2), k3: 500, k4: 1000,
ρ3: 5 × 10−11, ρ4: 0.8 × 109.
The friction related values were:
Slip friction: 200 N,
Stribeck slope: −1144 N ⋅ s / m,
Stribeck velocity range: 0.14 m / s,
Karnopp velocity range: 0.01 m / s.
The simulation for 1 Hz sine signal pressure tracking was conducted with
MATLAB 4.2 / SIMULINK 1.3, and with MATLAB 5.1 / SIMULINK 2.1 on an IBM
compatible PC with Windows 95. The desired pressure trajectory is in the form
Pdesired = A2 + B2 sin(2π t) + Ff / A (×105 Pascal)
where A2 = 30, B2 = 8, A is the piston area with value given below. Identical results were
obtained with the two different version pairs, though with different settings of parameters
for numerical integration. In both cases, start time was 0, stop time was 10.0, and
tolerance was 1 × 10−4. With MATLAB 4 / SIMULINK 1 pair, minimum step size was
chosen as 0.0001, maximum step size 0.001. The integration routine used was a common
52
fifth order Runge-Kutta algorithm. With MATLAB 5 / SIMULINK 2 pair, step size was
chosen fixed at 0.001, and the integration scheme used was a fourth order Runge-Kutta
algorithm. Figure 4.3 shows the desired and actual pressure in the simulation. The
pressure can follow the desired trajectory with some tracking error and some phase lag.
Figure 4.4 shows the desired and actual valve position in the simulation. In Figure 4.5, the
magnitudes of the two terms in V1 are compared (recall that in (3.54),
1 1
V1 = ρ3e32 + ρ4 e42 ). After weighting, the two terms are in the same
2 2
velocity
time velocity data friction
-28.2 Clock time friction data
1/s position
force offset
position S a t u r a t i o n 1 position data
Fstick
f(u)
velocity
1/m 1/s = 1, if stick Product1 Saturation
Integral
f(u) 1e4
Sum 1/m a s s Total
of = v , if s l i p Slip sign slip offset Friction
huge gain
forces
f(u) fs t
= v , i f S t r i b e c kV i s c o u s
Friction Force (Stick, Slip && Viscous) slip friction
friction
f(u) fv
f(u)
velnum = v , if s l i p 2 Vis c o u s
nonlinear springrate
velocity data1 friction1
70s
s+70 A
low pass differentiator
1
A Area
2 e - 1 4 s + 2 e -1 2
Pressure
Area1 compressibility Sum
L i m it
of
pressure
flows
pressure data xv
input
control valve postition
input signal
n s v * S t s v / 1 0 (s ) x4=xv
Q
controller d s v (s )
Input Servo load flow
R a te
Control Spool
Lim iter Saturation L i m it
Dynamics -K -
Control Spool
Flow Gain
Sign
Product2 sqrt(u)
Ps
square Product Flow
Sum2
Supply
root L i m it
Pressure
Figure 4. 1 SIMULINK model for the hydraulic system with the nonlinear controller.
53
x4desired
1 alpha
desired valve position
velocity
alpha
70s
2 beta3 s+70
1/(gamma*sqrt(Ps)) LPD
pressure
beta3
x3error k3 1600*tau
Derivative2 k4*20
Saturation
sqrt(Ps-sign(x4)x3)
Product1
order. Figure 4.6 compares the magnitude of the four components in the control u. Recall
that
τ x4 ρ3
u= + x&4desired − k 4e4 − γ e3 Ps − sgn( x4 ) x3 . (3.60)
K τ ρ4
Figure 4.6 shows x4/τ, x& 4 desired , k4 e4 , and (ρ3 / ρ4) γ e3 sqrt(Ps − sgn(x4)x3). It is clear that
x4/τ and (ρ3 / ρ4) γ e3 sqrt(Ps − sgn(x4)x3) dominate u. The x4/τ term is the most significant.
If we increase k4 too much, k4e4 term could increase and overshadow e3 term, making the
control u become more like a proportional control, and u could be so big that it may
saturate or excites some unmodeled dynamics thus make the system unstable. Figure 4.7
clearly shows the disastrous effect of increasing k4 too much. When k4 is increased from
current 1000 to 2000, the system goes unstable.
54
6
x 10
4.5
3.5
pressure (Pascal)
2.5
1.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
tim e ( s e c o n d )
4
valve position (m)
-2
-4
-6
-8
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
tim e ( s e c o n d )
55
40
30
20
10
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
8
rho3/2*e3*e3, rho4/2*e4*e4
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
tim e ( s e c o n d )
0.5
0.4
0.3
x4/tau,dx4des,k4*e4,rho3/rho4*gamma*e3*g3prime
0.2
0.1
-0.1
-0.2
-0.3
-0.4
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
tim e ( s e c o n d )
56
0.02
0.01
-0 . 0 1
position (m)
-0 . 0 2
-0 . 0 3
-0 . 0 4
-0 . 0 5
-0 . 0 6
-0 . 0 7
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
tim e (s e c o n d )
4.2 EXPERIMENT
The following is an application of the control law developed in Chapter 3 to a
typical electro-hydraulic system. The system consists of an actuator and a D633 valve,
both made by Moog. The valve is a direct drive valve, in which a linear motor drives the
spool directly according to the input current. Figure 4.8 is a schematic diagram of the
structure of the valve. The valve has a nominal flow of 1.25 × 10−3 m3/s at the nominal
pressure drop of PL = 3.5 × 106 Pascal (35 bar). An IBM-compatible personal computer
with a Pentium 200MHz CPU controls the system through an Analog Devices RTI-815
interface board. Figure 4.9 shows the experimental system setup.
The derivatives in the control law formulation are obtained by numerical
differentiation. With a low pass differentiator (LPD) and a median filter, the numerical
differentiation is accomplished with satisfactory noise reduction. The continuous time
transfer function of low pass differentiator is 70 s / (s + 70), which has a cutoff frequency
of 70 radians/second, about 11 Hz. The continuous time version of the low pass
differentiator is then discretized using MATLAB "c2dm" command with a sampling time
0.001, which is the same as that used in the experiment, so that it can be implemented with
57
computer software. Figure 4.10 shows the frequency response of the low pass
differentiator. The magnitude at high frequency is much smaller compared with a pure
differentiator with transfer function "s", but is still high, so that some high frequency noise
will pass through and corrupt the signal. Thus it would be desirable to design a digital
filter to reduce high-frequency noise. As can be seen in Figure 4.10, the LPD already
introduces some phase lag (5o at 1 Hz), so a low pass filter would not be a good choice. In
light of this, a nonlinear filter − median filter comes into play. The median filter does the
following: each time a datum, say, s[k], is passed to it, it compares s[k] with s[k−4] and
s[k−8], finds the median of the three values and outputs it. This filter is able to eliminate
most of the spikes commonly seen in numerical differentiation.
The values of the physical and controller parameters of the system used are shown
as follows.
Mechanical constants:
m: 24 kg,
k: 16010 N/m;
Figure 4. 8 A cross section schematic diagram of the Moog direct drive valve.
58
Figure 4. 9 The experimental electro-hydraulic system setup.
Bode Diagrams
40
30
20
Phase (deg); Magnitude (dB)
10
100
50
0
0 1 2 3
10 10 10 10
Frequency (rad/sec)
59
Hydraulic constants:
Ps: 1.0344 × 107 Pascal (1500 PSI),
A: 3.2673 × 10−4 m2,
α: 1.513 × 1010 N/m3,
β: 1.0 s−1,
γ: 0.8 × 109 kg0.5/(m1.5 s2).
Controller parameters are the same as in the model.
Figure 4.11 shows the result of pressure tracking for a 1 Hz sine wave. It also
illustrates the noise level inherent in the pressure data measured by the pressure sensors.
The desired pressure trajectory is in the form
Pdesired = A2 + B2 sin(ω t) + Ff / A (×105 Pascal)
where A2 = 30, B2 = 8, ω = 2π, the value of A is given above.
6
x 10
4.5
3.5
pressure (Pascal)
2.5
1.5
1
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
60
600
400
200
friction (N)
-200
-400
-600
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
Comparison between Figures 4.3 and 4.11 shows good match for the modeled data
and experimental data in terms of the relation between desired and actual pressure data.
Shown in Figure 4.12 is the verification of the friction model. The value of the friction was
estimated as the difference between the total applied force, the spring force, and the inertia
force:
Ff = PL A − k x − m a,
where PL is the load pressure, A is the piston area, k is the spring rate, x is the piston
position, m is the mass, a the acceleration. PL and x were directly measured, A was given
by the manufacturer Moog Inc., and a was obtained by numerical differentiation. The total
mass of the cylinder piston, slide and other components fixed to them such as the rod, m,
was estimated with least square method to be 24 kg, and the spring rate was estimated as
16010 N / m.
61
6
x 10
4.5
3.5
desired pressure (Pascal)
2.5
1.5
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
Figure 4.11 shows relatively good pressure tracking for a 1 Hz sine signal and
validates the controller algorithm developed above. Figure 4.12 verifies the friction model.
The following plots, Figure 4.13 ~~ Figure 4.17, show the modeled against measured data
for the desired pressure, actual pressure, valve position, piston velocity and position,
respectively. The pressure data, piston velocity and position data show good matching.
One reason for the difference between the piston velocity may be that in the stick region,
the Karnopp's model used set the friction to equal to the applied force to create stick;
however, in the experiment for some reason (e.g., noise introduced by pressure
measurement and numerical differentiation) the piston moved and did not really stick. This
difference in turn affected the accuracy of modeled piston position in the stick region,
since the position data were obtained by numerical integration of velocity.
62
6
x 10
4.5
3.5
actual pressure (Pascal)
2.5
1.5
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
1.5
1
valve position (m)
0.5
-0.5
-1
-1.5
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
63
0.2
0.1
velocity (m/s)
-0.1
0.2
0.195
0.19
0.185
position (m)
0.18
0.175
0.17
0.165
0.16
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
64
4.3 EFFECTS OF CONTROLLER PARAMETER VARIATIONS
4.3.1 Effects of k3 on system performance
If k3 increases, e3 is expected to be smaller; however, if k3 is too big, the noise
contained in measured pressure data will be emphasized, hence the system performance
will deteriorate, even go unstable. If k3 is raised to be 2000, both the modeled and
experimental system performance are undesirable−some limit-cycle-like vibrations show
up, as shown in Figures 4.18 and 4.19. A lot of noise is introduced in the system and the
piston vibrates violently. When k3 reaches 3000, the system performance is even worse.
One possible reason for this poor performance is that wrong values of system parameters
are used, thus leading us to adaptive control, which is the topic of the next two chapters.
0.21
0.2
0.19
position (m)
0.18
0.17
0.16
0.15
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
65
0.2
0.15
0.1
0.05
velocity (m/s)
-0.05
-0.1
-0.15
-0.2
5 5.5 6 6.5 7 7.5 8
tim e ( s e c o n d )
66
Chapter 5. ADAPTIVE CONTROL
The history of adaptive control dated back to the 1950s, originating from the
design of autopilot for high-performance aircraft. Since then, the topic has attracted a
great deal of research effort. So far, adaptive control does not have a well-agreed
definition. In this thesis, the following definition is used: an adaptive controller is a
controller with adjustable parameters and a mechanism to adjust the parameters.
There are four reasons for the use of adaptive controllers: the variation of process
(plant) dynamics, the variation of the disturbance characteristics, for engineering efficiency
(Åström and Wittenmark, 1995), and when the values of system parameters are known
only to a very rough degree, say, within two or three orders of magnitude, which is the
case in this work. As said in (Åström and Wittenmark, 1995), it is clear that due to plant
dynamics variation, such as actuator nonlinearities and drifting of plant parameters, a
constant-gain controller designed to perform well at certain operation points would
degrade the system performance and even lead to instability. It is also easy to understand
that such well designed constant-gain controller that can deal with a particular disturbance
can not do good job when the disturbance characteristics changes, such as the wind speed
and direction for ship autopilot, base movement characteristics of a building, and the
frequency distribution of a noise for noise cancellation. Engineering efficiency is an often
overlooked argument in the choice between different techniques. It may be advantageous
to trade engineering effort against more "intelligence" in the controller. It could be less
time-consuming than the alternative path of modeling, design and implementation of a
conventional control system.
Some basic methods for design of adaptive controllers are:
(i) Sensitivity methods,
(ii) Gradient methods and least-square methods based on estimation error cost criteria,
(iii) Lyapunov-based design,
and they are discussed below.
67
5.1 SENSITIVITY METHODS
The first class of methods, the sensitivity method, was very popular in the 1960s,
and it is still in use in many industrial applications for controlling plants with uncertainties.
The idea is to design a control law such that the estimated parameters are adjusted in such
direction that minimizes a certain performance criterion.
Consider, for example, a closed-loop system in which the controller has one
adjustable parameter θ. The desired closed-loop response is specified by a model whose
output is ym. Let e be the error between the output y of the system and the output ym of
the model: e = y − ym. Choose the loss function
1 2
J(θ) = e. (5.1)
2
To minimize J, the method of steepest descent or gradient method can be applied, and the
updating law for θ is obtained as
∂e
θ& = −γ ∇J (θ ) = −γ e , (5.2)
∂θ
where γ > 0 is a constant. γ is called the adaptation gain, and is a parameter to be
determined.
Because
∂e ∂y
= , (5.3)
∂θ ∂θ
then
∂y
θ& = −γ e . (5.4)
∂θ
In general case, there are more than one parameter, and the scalar θ would be a
parameter vector θ , and (5.4) becomes
θ& = −γ e∇y (θ ) . (5.5)
The partial derivatives ∇ y(θ), called the sensitivity functions of the system, tell how the
system output is influenced by the change of the parameters.
68
The implementation of (5.5) requires on-line generation of the sensitivity functions
θ ) that usually depend on the unknown plant parameters and are thus not
∇ y(θ
implementable. In these cases, approximate values of the sensitivity functions are used.
One popular method for computing the approximate sensitivity functions is the MIT rule.
The name is derived from the fact that it was developed at the Instrumentation Laboratory
at MIT. The above description and the following example were taken from (Åström and
Wittenmark, 1995) with slight modification.
where p = d / dt is the differentiation operator. Thus the sensitivity functions of the system
can be obtained:
69
∂y b
= r,
∂θ1 p + a + bθ2
∂y b 2θ 1 b
=− 2 r = − y. (5.10)
∂θ2 ( p + a + bθ2 ) p + a + bθ2
These formulas cannot be used directly since the parameters a and b are not known.
Hence approximations are necessary. Notice that when the parameters give perfect model-
following, p + a + bθ2* = p + am, thus when parameters are close to their correct values, it
is reasonable to use the approximation
p + a + bθ2 ≈ p + am. (5.11)
With this approximation the following adaptation laws are obtained:
dθ1 b am
= −γ r e = −γ ′ r e ,
dt p + am p + am
dθ2 b am
=γ y e = γ ′ y e , (5.12)
dt p + am p + am
where γ ' = γ am / b is the adaptation gain. The sign of b must be known to have a correct
sign of γ '. Now (5.12) is implementable since e, r and y are known signals. ◊
70
to avoid such problem is to choose a cost function that leads to implementable sensitivity
functions. A class of such cost criteria is based on an error referred to as the estimation
error that provides a measure of the discrepancy between the estimated and actual
parameters. The relationship of the estimation error with the estimated parameters is
chosen in such a way that
(1) the cost function is convex, so that the global minimum exists, and
(2) its gradient with respect to the estimated parameters is implementable.
Different cost criteria can be used, and different methods, like the gradient and
least-square methods, can be used to generate the appropriate sensitivity functions.
Example 5.2 Consider the same system as (5.6) in Example 5.1. When θ1 = θ1* and θ2 =
θ2*, the system has perfect model following, and y = ym. Substituting (5.8) into (5.7) yields
y& m= − am ym + bm(θ1*r − θ2* ym) = θ1*bmr − θ2* bm ym − am ym,(5.13)
and thus
ym = θ1*rf − θ2* yf , (5.14)
where
bm
rf = r,
p + am
bm
yf = ym. (5.15)
p + am
Now replace θ1* and θ2* with their estimates θ1 and θ2 in (5.14), then an estimate
of y based on the estimates θ1 and θ2 is obtained
y$ = θ1rf − θ2 yf .
Let the error e to be
e := y$ − ym = θ1rf − θ2 yf − ym, (5.16)
which is a measure of the discrepancy between θ1, θ2 and θ1*, θ2*, respectively, and thus is
referred to as the estimation error. The estimates θ1 and θ2 can now be adjusted in the
direction of the gradient of a certain cost criterion involving e. Choose a simple cost
criterion
71
1 2 1
J(θ1, θ2) = e = (θ1rf − θ2 yf − ym)2 (5.17)
2 2
to be minimized with respect to θ1 and θ2. Clearly J(θ1, θ2) is convex, and the minimum of
J is obtained when ∇ J = 0. To obtain ∇ J = 0, the adaptive laws are obtained:
∂J
θ&1= −γ 1 = −γ 1er f ,
∂θ1
∂J
θ&2 = −γ 2 = γ 2 ey f . (5.18)
∂θ2
where γ1, γ2 > 0 are the adaptation gains, and e, rf and yf are all implementable signals.
Instead of (5.17) and the gradient method used, one can use a different cost criterion for e
and a different minimization method, thus obtain a wide class of adaptive laws. ◊
Example 5.3 Consider again the same system (5.6) as that in Example 5.1 and 5.2. Recall
that the system model is
dy
= − a y + b u, (5.6)
dt
the reference model is
dy m
= − am ym + bm r. (5.7)
dt
and the feedback law is
u(t) = θ1 r(t) − θ2 y(t). (5.8)
Introduce the error
e := y − ym. (5.19)
72
From the four equations above we have
de
= − a m e − (bθ2 + a − a m ) y + (bθ1 − bm )r . (5.20)
dt
Assume that bγ > 0, introduce the following quadratic function:
1 2 1 1
V(e, θ1, θ2) = e + (bθ2 + a − a m ) 2 + (bθ1 − bm ) 2 . (5.21)
2 bγ bγ
The function is positive definite. For the function to qualify as a Lyapunov function its
derivative must be negative or non-positive. The derivative is
dV de 1 dθ 1 dθ1
=e + (bθ2 + a − a m ) 2 + (bθ1 − bm )
dt dt γ dt γ dt
(5.22)
1 dθ2 1 dθ1
= − a m e + (bθ2 + a − a m )
2
− γye + (bθ1 − bm ) + γre .
γ dt γ dt
73
The Lyapunov-based design method avoids the drawback of the sensitivity
methods. With this approach vigorous proof of the stability of the closed-loop system can
be obtained. In fact, the second class of methods, the gradient and least-square methods
based on estimation error cost criteria, also need to use Lyapunov stability theory or a
similar analysis for a vigorous stability proof. However, the two classes of methods see the
problem from different points of view, thus they are put in different categories here in this
thesis.
1 1
ργ > 0, and V1 = ρ3e32 + ρ4 e42 , as defined in (3.36) of Chapter 3.
2 2
Differentiating (5.26) yields
74
γ&
V&2 = V&1 + ργ γ~~
= V& − ρ γ~γ$&
1 γ
(5.28)
= ρ3 e3 ( f 3 + γ g 3′ x 4 − x& 3desired ) + ρ4 e4 ( f 4 + g 4 u − x& 4 desired ) − ργ γ~γ&$
= ρ3 e3 ( f 3 − x& 3desired + γ g 3′ x 4 desired + γ g 3′ e4 ) + ρ4 e4 ( f 4 − x& 4 desired + g 4 u) − ργ γ~γ&$.
Since the parameter γ$ is unknown, its estimate is used in the determination of the
synthetic and actual inputs x4desired and u. For x4desired,
1
x4desired = ( − f 3 + x&3desired − k3e3 ). (5.29)
γ$ g3′
Since
γ γ~
= + 1, (5.31)
γ$ γ$
(5.30) becomes
& γ~
V2 = ρ3 e3 [ f 3 − x& 3desired + ( + 1)( − f 3 + x& 3desired − k 3 e3 ) + γ g 3′ e4 ]
γ$
+ ρ e ( f − x&
4 4 4 + g u) − ρ γ~γ&$
4 desired 4 γ
(5.32)
= − k 3 ρ e + ρ3γ g 3′ e3 e4 + ρ4 e4 ( f 4 − x& 4 desired + g 4 u)
2
3 3
ρe
+ γ~[ 3 3 ( − f 3 + x& 3desired − k 3 e3 ) − ργ γ&$].
γ$
1 ρ
u= ( − f 4 + x& 4desired − k 4 e4 − 3 γ$ g 3′ e3 ) . (5.33)
g4 ρ4
Substituting (5.33) into (5.32) gives
ρe
V&2 = − k 3 ρ3 e32 − k 4 ρ4 e42 + ρ3γ g 3′e3 e4 − ρ3γ$ g 3′e3e4 + γ~[ 3 3 ( − f 3 + x& 3desired − k 3 e3 ) − ργ γ&$]
γ$
− f 3 + x& 3desired − k 3e3
= − k 3 ρ3 e32 − k 4 ρ4 e42 + γ~ ρ3e3 + g 3′ e4 − ργ γ&$ .
γ$
75
(5.34)
Let the gradient parameter adaptation law to be
ρ3 e3 − f 3 + x& 3desired − k 3e3
γ&$ = + g 3′ e4 , (5.35)
ργ γ$
then the derivative of V2 is
V&2 = − ρ3 k 3 e32 − ρ4 k 4 e42 , (5.36)
which is negative semidefinite.
The above development of adaptation scheme came from (Alleyne, 1996). In the
following, Barbalat's Lemma will be applied to show the convergence of the errors e3 and
e4 to zero, with the same procedure as used in the previous Example 5.3. To apply the
lemma, the uniform continuity of dV2 / dt is needed. The following is to establish the
boundedness of V&&2 , a sufficient condition for the desired uniform continuity of dV2 / dt.
Since V&2 is negative semidefinite, V2(t) ≤ V2(0) and thus V2(t) is bounded. It
follows that e3 and e4 are bounded, and x3 = x3desired + e3 is bounded. For the first two
system equations in (2.3), imagine x3 as a fictitious control input, and let ξ = [x1 x2]T, then
x&1 0 1 x 0
~ ~
ξ& = = k b 1 + A x3 = A ξ + Bx 3 . (5.37)
−
x& 2 m −
m 2 m
x
~
Clearly, since k, m, b > 0, the matrix A is a Hurwitz matrix, both of its eigenvalues lie in
the left half complex plane. Thus the system in (5.37) is BIBO stable, and for bounded
input x3, the states x1 and x2 are also bounded. Assume that the desired trajectory x3desired is
differentiable, thus x& 3desired is bounded. Recall that f3 := −αx2 − βx3, and
the end of Chapter 3, at most time g 3′ ≠ 0; at the rare case g 3′ = 0, it can be set to be a
small positive number. Now by (5.29) x4desired is bounded and so is x4 = x4desired + e4. Thus
the boundedness of all states are established. Now
then it follows that e&3 is bounded. A similar argument applies to the boundedness of e&4 .
The derivative of e4 is
76
1 K
e&4 = x& 4 − x& 4desired = − x 4 + u − x& 4desired . (5.39)
τ τ
In implementation the derivative of x4desired is obtained by numerical differentiation, and
one limit value is set for | x& 4 desired |. By (5.33) one can clearly verify that the control input u
is bounded. Thus by (5.39) e&4 is also bounded. Now since
the boundedness of V&&2 and hence the uniform continuity of V&2 are established. Then
Barbalat's Lemma can be applied to show that V&2 , thus e3 and e4, converge to zero as
time t approaches to infinity. Therefore, the global convergence of e3 and e4 to zero is
guaranteed. In addition, if the condition of persistent excitation is satisfied, the parameter
estimate γ$ will converge to its true value γ.
77
Chapter 6.
6.1 SIMULATION
The controller designed in Chapter 5 was incorporated into the model. Figures 6.1
and 6.2 show the integrated model and the details of the controller subsystem,
respectively. The simulation of the model together with the controller was conducted. The
values of the controller parameters used in the model were:
γ: 0.8 × 109 kg0.5/(m1.5 s2),
k3: 3000,
k4: 1000,
ρ3: 1 × 10−11,
ρ4: 0.8 × 109.
ργ: 1 × 10−14,
78
time
1/s position
-28.2 friction
C lock time
position Saturation1 position data
friction data
force offset
Fstick
f(u)
Product1 Saturation
velocity = 1, if stick
1/m 1/s
f(u) fst
= v, if Stribeck
Viscous
friction slip friction
f(u) fv
Friction Force (Stick, Slip & Viscous)
= v, if slip2 Viscous friction1
f(u)
nonlinear springrate
1 A
A
2e-14s+2e-12
Pressure Area
Area1 compressibility Sum
LPF Limit
of flows
(3rd nLPF(s)
pressure
order, dLPF(s)
50 Hz) pressure data
xv
input
control valve postition
input signal
Q
nsv*Stsv/10(s) x4=xv load flow
controller
dsv(s)
Rate Input Servo
Control Spool C d * w*sqrt(1/rho)
Limiter Saturation Limit
Dynamics
Control Spool
Flow Gain
Sign sqrt(u)
pressure1 Product2 Product Flow
Ps Sum2 square
Limit
pressure data1 root
Supply Pressure
79
1 alpha x4desired
v e lo c i t y x4desired1
alpha
d u /d t
p r e s s u r e
beta
1/u[1]
Sum
e3 limit reciprocal3
for P r o d u c t5
k3
x4desired Sum
for u1
x3error k3
e3 1968.5*tau
k4
error3
d u /d t tau/K
x4 error1 k4
D e riv a tiv e 2 S a tu r a t i o n
signal
4 -K - 1 /ta u
generator x3desired
x 4
desired 5 e -3 / S t s v 1 /ta u
pressure data v a lv e
out_1 1
p o s itio n
dx3desired 3
desired s q r t ( P s -s i g n (x 4 )x 3 )
pressure data1
r3 gammahat
r3 gamma hat
P r o d u c t1
-K -
In1
Out1 1/u[1]
1 /rgam m a In2
reciprocal4
S u b s y s te m
1 1 Out1
In1
2 1/s 1/u[1]
In2 gamma hat3 reciprocal1
gammahat gammahat
dot limit limit1
Product6
80
Stribeck slope: −1200 N ⋅ s / m,
Stribeck velocity range: 0.12 m / s,
Karnopp velocity range: 0.01 m / s.
The simulation was conducted with MATLAB 5.1 / SIMULINK 2.1 on IBM
compatible PC with Windows 95 operating system. Identical result were obtained with the
two different version pairs, though with different settings of parameters for numerical
integration. Start time was 0, stop time was 10.0, and tolerance was 1 × 10−4. Step size
was chosen fixed at 0.001, and the integration scheme used was a fourth order Runge-
Kutta algorithm. The values used are the same as those used in simulation in Chapter 4.
Figure 6.3 shows the desired and actual pressure (force / area) in the simulation,
Figure 6.4 shows the desired and actual valve position in the simulation. Note that as a
result of the introduced adaptation, the force and valve position can now have near perfect
tracking. Figure 6.5 shows the evolution history of γ$ 's value. γ$ has a small amount of
bouncing around a nominal value with magnitude of change within 0.8%. The small
bouncing was caused by bouncing of e3 data, which in turn was caused by the cylinder and
friction dynamics.
1150
1100
1050
force (Newton)
1000
950
900
850
800
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
tim e (s e c o n d )
81
-4
x 10
8
2
valve position (m)
-2
-4
-6
-8
0 1 2 3 4 5
tim e ( s e c o n d )
6.3
6.25
gammahat (kg0.5/(m1.5 s2))
6.2
6.15
6.1
6.05
5.95
0 5 10 15 20 25
tim e ( s e c o n d )
82
6.2 EXPERIMENT
The numerical integration of γ&$ is done by a standard Euler method. Recall that
since the force cannot be measured with the system, the formulated data (k x + m &&
x ) was
used to estimate the force signal, as, by Newton's second law:
x = PL A − Ff − k x,
m &&
and we define PL A − Ff as the output force. When the experiments were conducted, it
was found that the actual γ takes different values when the piston goes in the two
different directions. Recall that γ = 4Cd βe w / (Vt sqrt(ρ)), this directionality might come
from the directionality of the discharge coefficient Cd, area gradient w, effective bulk
modulus βe or total actuator volume Vt. Hence two different gammahat's ( γ$ 's), each for
one of the two directions, were used, and their values were adapted independent of each
other. Let the two different γ$ 's be noted as γ$ u and γ$ l for description convenience.
Figure 6.6 shows the evolution history of the value of gammahat ( γ$ ), and Figure
6.7 shows the value of gammahat ( γ$ ) for a bigger ργ . Recall that the adaptation scheme
in Figure 6.7, ργ = 1×10−14. It is clear that the change of the value of γ$ does have a bigger
amplitude in Figure 6.6 where ργ is smaller. In Figures 6.6 and 6.7 γ$ u and γ$ l are plotted
together. Notice that in Figure 6.6, there is no data for γ$ until t = 2 seconds. Before t = 2
seconds, the controller was doing position regulation. The implementation of the
controller with adaptation was preceded by a position regulation proportional controller in
order to reach a certain position such that the piston could stay with contact with a spring
all the time during pressure/force tracking.
Figure 6.8 shows the result of force tracking for a 1 Hz sine wave. The desired
force trajectory is of the form
Fdesired = A1 + B1 sin(ω t) (Newtons)
83
where A1 = 1013, B1 = 131, ω = 2π. In Figure 6.9, the actual and desired valve position
data for the force tracking are shown. Clearly the force and valve position are tracked very
well. It was found in the experiments that good valve position tracking is necessary for
good force tracking.
In the following figures are shown the comparison of the modeled data and
experimental data. Notice that in the model only one value was used for adaptation of γ$ ,
while in the experiment two values, γ$ u and γ$ l, were used. It is possible to change the
model for the hydraulic cylinder such that the model represents the true plant better,
however, this has not been done yet. In the comparison, we assume that in both cases γ$
has adapted to its true value γ. This assumption can be justified by the almost perfect
tracking of valve position and force. Hence it is expected to make sense to compare the
modeled data (with the current model) and the experimental data.
Figures 6.10 ~ 6.14 show the comparison of the modeled and measured control
input, valve position, (estimated) force, piston velocity and piston position data. The
modeled data fit well with the measured data, which validates the controller algorithm
developed in Chapter 4 and the adaptation scheme introduced in Chapter 5. Overall, the
force tracking shows good result. It would be preferable to be able to measure and
compare the force data directly, however, in current circumstances estimation of the force
is the best we can do. Figure 6.15 again verified the Coulomb plus Stribeck friction model.
With a slight difference from that in chapter 2, the value of friction was estimated by: Ff =
PL A – m &&
x – k x, where k is the spring rate, and x is the deflection of the spring.
Figures 6.16 ~ 6.18 show the results of applying the developed controller and
adaptation scheme to 2 Hz force tracking. It is clear that there is no visible phase lag
between desired value and actual value for both the estimated force and valve position
signals. In fact, valve position maintains almost perfect tracking. However, there is an
overshoot of about 33% for force tracking. Notice that there is a little bouncing in the
actual estimated force signal. The above phenomena, namely, almost perfect tracking of
valve position, overshoot of force tracking, were also observed in tracking for 3 Hz and 5
Hz force signals. The reason of these phenomena and how to deal with them are still under
study.
84
8
x 10
8
7
gammahat (kg0.5/(m1.5 s2))
6
0
0 2 4 6 8 10 12 14
tim e ( s e c o n d )
Notice that in this experiment, ργ = 1×10−15, thus the magnitude of change of γ$ is bigger.
8
x 10
8
7.5
6.5
gammahat (kg0.5/(m1.5 s2))
5.5
4.5
3.5
3
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
Notice that in this experiment, ργ = 1×10−14, thus the magnitude of change of γ$ is smaller.
85
1150
1100
1050
force (Newton)
1000
950
900
850
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
10
6
valve position (m)
-2
-4
-6
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
86
2
1.5
1
control input (Volt)
0.5
-0.5
-1
-1.5
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
0.8
0.6
0.4
0.2
valve position (m)
-0.2
-0.4
-0.6
-0.8
-1
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
87
1150
1100
1050
applied force (Newton)
1000
950
900
850
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
0.1
0.08
0.06
0.04
0.02
velocity (m/s)
-0.02
-0.04
-0.06
-0.08
-0.1
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
88
0.2
0.195
0.19
position (m)
0.185
0.18
0.175
0.17
7 7.5 8 8.5 9 9.5 10
tim e ( s e c o n d )
300
200
100
0
friction (N)
-1 0 0
-2 0 0
-3 0 0
-4 0 0
-0 .0 8 -0 .0 6 -0 .0 4 -0 .0 2 0 0 .0 2 0 .0 4 0 .0 6 0 .0 8 0 .1
tim e ( s e c o n d )
Figure 6. 15 Measured (estimated) friction-velocity relation and the friction model for 1
Hz force tracking. Measured (estimated): lighter line, modeled: darker line.
89
1200
1150
1100
1050
force (Newton)
1000
950
900
850
800
11.5 12 12.5 13 13.5 14 14.5 15
tim e ( s e c o n d )
2.5
1.5
valve position (m)
0.5
-0.5
-1
-1.5
11.5 12 12.5 13 13.5 14 14.5 15
tim e ( s e c o n d )
90
8
x 10
7.5
6.5
6
gammahat (kg0.5/(m1.5 s2))
5.5
4.5
3.5
2.5
11.5 12 12.5 13 13.5 14 14.5 15
tim e ( s e c o n d )
91
Chapter 7. CONCLUSIONS
This thesis reviewed briefly the fundamental physical quantities and laws of
hydraulics. Then a SIMULINK model for a typical electro-hydraulic servo system was
constructed which included major nonlinearities and was verified on an experimental
system. The theories of nonlinear control and adaptive control were reviewed. Based on
them a nonlinear controller and a parameter adaptation scheme were developed, both
based on Lyapunov stability theory. Using only the controller, pressure tracking for 1 Hz
sine signal with friction cancellation was accomplished on the experimental system. Good
tracking performance was obtained, and the Coulomb plus Stribeck friction model was
verified. However, the performance of the system with the controller alone relies on the
accuracy of the system model. With the adaptation scheme combined, force tracking of 1
Hz sine signal was conducted. Experimental results show that good performance was
obtained, and parameter estimation converged. The experimental results showed that the
proposed control law and adaptation scheme are effective for force/pressure tracking for
relatively low frequency trajectories.
92
Chapter 8. FUTURE WORK
In the chapters above, the tasks of pressure and force tracking of 1 Hz sine signal
for the experimental hydraulic system were accomplished. Both simulation results
performed with MATLAB 5 and experimental data are given. The directionality of the
hydraulic parameter γ is also found. These work provided substantial assistance in
understanding the system dynamics, controller design, adaptation scheme of parameters,
and system performance under such controller and adaptation. They form a firm ground
for achieving better and more desirable performance of the system in terms of pressure and
force tracking. With the aid of these results, we may be able to proceed further in such
directions, namely, (1) using a load cell to measure force directly for force tracking, (2)
tracking of higher frequency and different types of signals, (3) controller design to
guarantee stability and performance for switch from position tracking/regulation to
pressure/force tracking, (4) robustness analysis. Clearly, if a load cell is available for direct
force measure, the estimation of force need not be done, and checking the result of force
tracking could be more straightforward.
With the 1 Hz sine signal tracking result achieved, one direct extension could be to
extend this result to signals with higher frequency and types other than sine signal, such as
square signal and triangular signal. The current pressure tracking method did well with 1
Hz sine signal as well as 2 Hz, however, with higher frequency, such as 5 Hz sine signal,
the feedforward friction canceling term caused undesirable jumps in piston velocity and
position from time to time.
With the pressure tracking result and understanding of the system behaviors under
the developed controller, another possible diversion of current work could be to develop a
scheme to guarantee a good performance for a switch of position tracking to pressure
tracking. Behind the task is the application of injection molding, where the cylinder needs
to first move to a certain position while forcing the melted plastic into the mold, and then
holds the pressure at that certain position for a while to avoid shrinkage from occurring. In
93
the work in this thesis, such switch was already used: to conduct either pressure tracking
or force tracking, the piston was first moved via a position regulation proportional
controller to a specific position such that it contacted with a spring. After that the
pressure/force tracking control began. The switch from position regulation to pressure
tracking worked fine, however, it did not have any guarantee of stability. Hence it
becomes natural to extend this work in this direction: design a controller to
(1) guarantee the stability of the whole system while switching from position tracking to
pressure tracking, and
(2) allow a good switching performance of the system with certain constraints or
requirements, such as the magnitude of velocity, acceleration and change of position
should be kept within a given range.
It would also be necessary to study robustness issue of the controlled system
performance for higher frequency force/pressure tracking, since there are other parameter
uncertainties which have not been compensated yet, and there are other dynamics that
have not been included in the model, such as hysteresis of friction and servo valve dead
zone. How disturbance and noise affect the system performance could be studied and the
limit that the system performance can achieve could be found.
94
REFERENCES
[1]. Alleyne, A., Nonlinear Force Control of an Electro-hydraulic Actuator, Japan/USA
Symposium on Flexible Automation, Vol. 1, pp. 193−200, ASME 1996.
[2]. Alleyne, A., and J. K. Hedrick, Nonlinear Adaptive Control of Active Suspensions,
IEEE Transactions on Control Systems Technology, Vol. 3, No. 1, pp. 94-101, March
1995.
[3]. Alleyne, A., R. Liu and H. Wright, On the Limitations of Force Tracking Control for
Hydraulic Active Suspensions, Proceedings of the 1998 American Control Congress,
Philadelphia, PA, 1998.
[4]. Alleyne, A., P. D. Neuhaus and J. K. Hedrick, Application of Nonlinear Control
Theory to Electronically Controlled Suspensions, Vehicle System Dynamics, Vol. 22,
No. 5-6, pp. 309-320, 1993.
[5]. Ananthakrishnan, S., and R. Fullmer, The Application of a Class of Adaptive Control
Algorithms to Hydraulic Systems, Proceedings of the 1990 American Control
Congress, pp. 1086-1087, San Diego, CA, 1990.
[6]. Åström, K. J., and B. Wittenmark, Adaptive Control, 2nd edition, Addison-Wesley,
1995.
[7]. Axelson, S., and K. S. P. Kumar, Dynamic Feedback Linearization of a Hydraulic
Valve-Actuator Combination, Proceedings of the 1988 American Control Congress,
pp. 2202-2203, Atlanta, GA, 1998.
[8]. Blaine, R. G., Hydraulic Machinery, 3rd edition, E. & F. N. Spon, 1913.
[9]. Bobrow, J.E., and K. Lum, Adaptive, High Bandwidth Control of a Hydraulic
Actuator, Proceedings of the 1995 American Control Conference, pp. 71-75, Seattle,
WA, June 1995.
[10].Brandt, D. M., The Hydraulic System of Case IH Model 1844 and 1822 Cotton
Pickers, Proceedings of the 41st National Conference on Fluid Power, Detroit, MI,
April 1986.
95
[11].Broome, J. W., Hydraulic Controls for Remotely Operated Vehicles, Proceedings of
the 40th National Conference on Fluid Power, pp. 271-276, Chicago, IL, December
1984.
[12].Del Re, L., and A. Isidori, Performance Enhancement of Nonlinear Drives by
Feedback Linearization of Linear-Bilinear Cascade Models, IEEE Transactions on
Control Systems Technology, Vol. 3, No. 3, pp. 299-308, 1995.
[13].Dorf, R. and R. Bishop, Modern Control Systems, Addison-Wesley, 1995.
[14].Dyke, S. J., et al., Role of Control-Structure Interaction in Protective System Design,
Journal of Engineering Mechanics, Vol. 121, No. 2, pp. 322-338, 1995.
[15].Gardner, J. F., et al., Modeling and Tuning of Hydraulic Road Simulators for Heavy
Vehicle Testing, Fluid Power Systems and Technology, Vol. 2, pp. 99-105, Collected
papers presented at the 1995 ASME International Mechanical Engineering Congress
and Exposition, San Francisco, CA, November 1995.
[16].Heinrichs, B., N. Sepehri and A. B. Thornton-Trump, Position-based Impedance
Control of an Industrial Hydraulic Manipulator, IEEE Control Systems Magazine,
Vol. 17, No. 1, pp. 46-52, February 1997.
[17].Ioannou, P. A., and J. Sun, Robust Adaptive Control, PTR Prentice-Hall, Upper
Saddle River, NJ, 1996.
[18].Janczur, Z. J., Development of 8000 PSI Electrohydraulic Flight Controls,
Proceedings of the 39th National Conference on Fluid Power, pp. 1-9, Los Angeles,
CA, December 1983.
[19].Jelali, M., and H. Schwarz, Nonlinear Identification of Hydraulic Servo-Drive
Systems, IEEE Control Systems Magazine, Vol. 15, No. 5, pp. 17-22, October 1995.
[20].Kanellakopoulos, I., P. Kokotovic and A. S. Morse, Systematic Design of Adaptive
Controllers for Feedback Linearizable Systems, IEEE Transactions on Automatic
Control, Vol. 36, No. 11, pp. 1241-1253, November 1991.
[21].Karnopp, D., Computer Simulation of Stick-Slip Friction in Mechanical Dynamic
Systems, Journal of Dynamic Systems, Measurement, and Control, Vol. 107, No. 1,
pp. 100-103, March 1985.
96
[22].Khaimovich, E. M., Hydraulic Control of Machine Tools, McMillan, New York,
1965.
[23].Khalil, H. K., Nonlinear Systems, 2nd edition, Prentice Hall, Upper Saddle River,
New Jersey, 1996.
[24].Kokotovic, P. V., The Joy of Feedback: Nonlinear and Adaptive, IEEE Control
Systems Magazine, Vol. 12, No. 3, pp. 7-17, June 1992.
[25].Lin, S.J., and A. Akers, Optimal Control Theory Applied to Pressure-Controlled
Axial Piston Pump Design, ASME Journal of Dynamic Systems, Measurement and
Control, Vol. 112, No. 3, pp. 475-481, 1990.
[26].Martin, K.F., Stability and Step Response of a Hydraulic Servo with Special
Reference to Unsymmetrical Oil Volume Conditions, Journal of Mechanical
Engineering Science, Vol. 12, No. 5, pp. 331-338, 1970.
[27].Merritt, H. E., Hydraulic Control Systems, Wiley, New York, 1967.
[28].Mayer, E. A., Analytical Evaluation of Servovalves for Flight Simulator Motion
Bases, The Journal of Fluid Control, Vol. 21, Issue 2-3, pp. 27-47, 1992.
[29].Morse, A. C., Dynamic Analysis of the Space Shuttle Hydraulic System, Proceedings
of the 39th National Conference on Fluid Power, pp. 21-25, Los Angeles, CA,
December 1983.
[30].Nair, S. S., R. Singh and K. J. Waldron, Hydraulic Actuation System for Legged
Locomotion, The Journal of Fluid Control, Vol. 21, Issue 2-3, pp. 67-95, 1992.
[31].Pippenger J., and T. Hicks, Industrial Hydraulics, 3rd edition, McGraw-Hill, 1979.
[32].Plummer, A. R., and N. D. Vaughan, Robust Adaptive Control for Hydraulic
Systems, ASME Journal of Dynamic Systems, Measurement, and Control, Vol. 118,
No. 2, pp. 237-244, June 1996.
[33].Slotine, J.-J. E., and W. Li, Applied Nonlinear Control, Prentice Hall, Englewood
Cliffs, New Jersey, 1991.
[34].Stroup, N. G., and E. J. Krukow, Hillside Axial-Flow Combine Hydraulic Systems,
Proceedings of the 37th National Conference on Fluid Power, Chicago, IL, 1981.
97
[35].Stuart, L., and D. Croskrey, Hydraulically Driven Spike Feed Rolls for Log
Debarker, Proceedings of the 39th National Conference on Fluid Power, Los
Angeles, CA, December 1983.
[36].Vilenius, M. J., The Application of Sensitivity Analysis to Electrohydraulic Position
Control Servos, ASME Journal of Dynamic Systems, Measurement, and Control, Vol.
105, No. 2, pp. 77-82, June 1983.
[37].Vossoughi, R., and M. Donath, Dynamic Feedback Linearization for Electro-
hydraulically Actuated Control Systems, ASME Journal of Dynamic Systems,
Measurement and Control, Vol. 117, No. 4, pp. 468-477, 1995.
[38].Wang, D., et al., Development and Verification of a Two-Stage Flow Control
Servovalve Model, Fluid Power Systems and Technology, Vol. 2, pp. 121-129,
Collected papers presented at the 1995 ASME International Mechanical Engineering
Congress and Exposition, San Francisco, CA, November 1995.
[39].Watton, J., and R. C. Barton, Further Contributions to the Response and Stability of
Electrohydraulic Servo Actuators with Unequal Areas - Part 1: System Modeling, pp.
155-160, in Donath, M. (editor), Dynamic Systems: Modeling and Control, ASME,
New York, 1985.
[40].Yun, J. S., and H. S. Cho, Application of an Adaptive Model Following Control
Technique to a Hydraulic Servo System Subjected to Unknown Disturbances, ASME
Journal of Dynamic Systems, Measurement, and Control, Vol. 113, No. 3, pp. 479-
486, September 1991.
[41].Zhu, S., et al., Study on PID, SFDO and MRA Control Performances of Multi-joint
Electro-hydraulic Robot, Proceedings of the 1988 IEEE International Conference on
Systems, Man, and Cybernetics, Vol. 2, pp. 1203-1205, 1988.
98
APPENDIX A
1. main.h:
/* include statements */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <malloc.h>
#include "decl.h"
#include "decl800.h"
#define BOARD 1
#define CH0 0
#define CH1 1
#define CH2 2
#define CH3 3
#define XAIN1_LCHAN 0
#define XAIN2_LCHAN 1
#define XAIN3_LCHAN 2
#define XAIN4_LCHAN 3
#define PULSE_LCHAN 10
#define EVENT_LCHAN 11
#define XAOT1_LCHAN 20
#define XAOT2_LCHAN 21
99
#define SAMPLE_FQ 1000 // in Hz
#define SAMPLE (float) 1.0/SAMPLE_FQ // sample period, in seconds
#define SCOUNT (int) 10000/SAMPLE_FQ*10
#define TIME_PERIOD (float) 3.0 // entire duration of data recorded
// in seconds
#define SP_NO (int) ((SAMPLE_FQ*TIME_PERIOD)) // number of samples
#define T SAMPLE
#define PI 3.14159265F
#define AREA 3.2673e-4F
int error_status = 0;
int i,j = 0; // counter for arrays
float t = 0.0F; // time
float _far *sec;
float _far *x1ain, *x2ain, *x3ain, *x4ain, *x5ain, *x6ain, *x7ain;
float _far *x4da, *dx4da;
float _far *x1aout;
// system parameters
float Ps = 1500.F * 6895.F; // supply pressure: 1500 psi,
// use SI unit all the time
float c1 = 0.0075F; // x1: x(m) = 0.0067 V1(volt) + 0.1531;
float c3 = 1.52319587628866e6F; // x3: PL(pascal) =
// 1.52319587628866e6* V3(volt);
// 1.52319587628866e6 = 1500 * 6895 (pascal)/ 6.79 (Volt)
float c4 = 5.0e-4F;
100
// simplified 1st order valve model
// alpha/gamma is around 10
// k3 is the parameter for e3, 500-2000
// k4 is the parameter for e4, 50-200
// rou3, the parameter for e3, 1.0e-10
// rou3/rougamma is the adaptation gain of gamma(t)
// The original values for alpha and gamma are:
// float alpha = 1.513e10F, gamma = 1.545e9F;
101
float u1d[10]={10*0.0F}, u1df[10]={10*0.0F};
float x2d[10]={10*0.0F}, x2df[10]={10*0.0F};
102
2. initial.c
//#include "main.h"
int erstat;
unsigned int sample_count;
float zero;
void initial()
/*
Allocate memory for sec, x1ain, x2ain, x3ain,
x4ain and x1aout;
Initialize the board, pulse generator, event counter,
four analogue input channels, one analogue output
channel;
Print sample frequency and period.
*/
{
// Allocate memory
103
printf("Memory is not enough. (x2ain)\nTotal period is too
long.\n");
exit(1);
}
104
}
INITIALIZE(&erstat);
if (erstat) {
printf("\n\tInitialize error: %2d\n",erstat);
return;
} // endif
sample_count = SCOUNT;
PULSETR815(PULSE_LCHAN,BOARD,CH0,1,5,5,&erstat);
if (erstat) {
printf("\n\tPULSETR815 error: %2d\n",erstat);
exit(1);
} // endif
EVENT815(EVENT_LCHAN,BOARD,CH1,0,&erstat);
if (erstat) {
printf("\n\tEVENT815 error: %2d\n",erstat);
exit(1);
} // endif
AIN815(XAIN1_LCHAN,BOARD,CH0,1,&erstat);
if (erstat) {
printf("\n\tAIN815 CH 0 error: %2d\n",erstat);
exit(1);
} // endif
AIN815(XAIN2_LCHAN,BOARD,CH1,1,&erstat);
if (erstat) {
printf("\n\tAIN815 CH 1 error: %2d\n",erstat);
exit(1);
} // endif
AIN815(XAIN3_LCHAN,BOARD,CH2,1,&erstat);
if (erstat) {
105
printf("\n\tAIN815 CH 2 error: %2d\n",erstat);
exit(1);
} // endif
AIN815(XAIN4_LCHAN,BOARD,CH3,1,&erstat);
if (erstat) {
printf("\n\tAIN815 CH 3 error: %2d\n",erstat);
exit(1);
} // endif
AOT815(XAOT1_LCHAN,BOARD,CH0,&erstat);
if (erstat) {
printf("\n\tAOT815 CH0 error: %2d\n",erstat);
exit(1);
} // endif
XAOT(XAOT1_LCHAN,&zero,&erstat);
// XAOT(XAOT2_LCHAN,&zero,&erstat);
void start_running() {
do{
106
} while (!kbhit() ); //enddo
if (!getch() )
(void)getch();
printf("\n");
EVINIT(EVENT_LCHAN,&erstat);
if (erstat) {
printf("\n\tEVINIT error: %2d\n",erstat);
exit(1);
} // endif
PULSTART(PULSE_LCHAN,&erstat);
if (erstat) {
printf("\n\tPULSTART error: %2d\n",erstat);
exit(1);
} // endif
EVSTART(EVENT_LCHAN,&erstat);
if (erstat) {
printf("\n\tEVSTART error: %2d\n",erstat);
exit(1);
} // endif
}
107
3. control.c:
// control.c
//
// by Rui Liu
*/
/*
Parameters to be adjusted:
c4: the gain of voltage to valve position
alpha_gamma: the ratio of alpha over gamma
k4: the parameter for e4, 50-200
rou3: the parameter for e3
*/
// include statements
#include "main.h"
#include "initial.c"
#include "mystop.c"
// main
void check_sample_time();
void check_timer_counter();
void nlalgorithm();
float sgn(float);
float filter(float, float*, float*);
void main()
108
initial();
start_running(); // show the value of sample freq,
// then start pulsing and timing
XAIN(XAIN1_LCHAN,&x1in,&erstat);
x1 = c1 * x1in + 0.124F;
wahaha:
{
XAIN(XAIN1_LCHAN,&x1in,&erstat);
x1 = c1 * x1in + 0.124F;
XAOT(XAOT1_LCHAN,&x1out,&erstat);
if (i < SP_NO) {
sec[i] = t;
x1ain[i] = x1;
x2ain[i] = x2;
x3ain[i] = x3;
x4ain[i] = x4;
x1aout[i] = x1out;
i++;
if (i == SP_NO) i=0;
}
t = t + SAMPLE;
check_sample_time();
if (error_status == 1) exit(1);
check_timer_counter();
109
if ((x1 < 0.18F) && (t < 2.0F)) goto wahaha;
do
{
XAIN(XAIN1_LCHAN,&x1in,&erstat);
XAIN(XAIN2_LCHAN,&x2in,&erstat);
XAIN(XAIN3_LCHAN,&x3in,&erstat);
XAIN(XAIN4_LCHAN,&x4in,&erstat);
x1 = c1 * x1in + 0.124F;
if (i>=8)
x11 = x7ain[i-8];
else
x11 = x7ain[i+SP_NO-8];
if (i>=4)
x12 = x7ain[i-4];
else
x12 = x7ain[i+SP_NO-4];
if ( ((x11>=x22) && (x12>=x1)) || ((x11<=x12) && (x12<=x1)) )
x1_new = x12;
else if ( ((x12>=x11) && (x11>=x1)) || ((x12<=x11) &&
(x11<=x1)) )
x1_new = x11;
else
x1_new = x1;
110
x2_new = x21;
else
x2_new = x2;
x3_original = - c3 * x3in;
x3 = 4.9e7F * (x1 - 0.12F);
x3 = x3_original;
x3f = 2.87435689267748 * x3fold1 -
2.75648319522570*x3fold2 + 0.88189313059249*x3fold3 + 0.29146494465726e-4*x3 +
0.87439483397844e-4 * x3old1 + 0.87439483396068e-4*x3old2 + 0.29146494466281e-
4*x3old3;
x3fold3 = x3fold2;
x3fold2 = x3fold1;
x3fold1 = x3f;
x3old3 = x3old2;
x3old2 = x3old1;
x3old1 = x3;
x3 = x3f;
x4 = - c4 * (x4in - 0.400F); // c4 not known,
need to guess
nlalgorithm();
// input: x2, x3, x4;
// output: x1out = u;
x1_out1 = x1out;
XAOT(XAOT1_LCHAN,&x1out,&erstat);
if (i < SP_NO) {
sec[i] = t;
x1ain[i] = x1_new;
x2ain[i] = x2_new;
x3ain[i] = x3_original;
x4ain[i] = x4;
x5ain[i] = x2;
x6ain[i] = gamma;
x7ain[i] = x1;
111
x4da[i] = x4desired;
dx4da[i] = dx4des;
x1aout[i] = x1_out1;
i++;
if (i == SP_NO) i=0;
}
t = t + SAMPLE;
check_sample_time();
if (error_status == 1) goto finish;
check_timer_counter();
finish: mystop(); // stop the timer, write: sec, x1ain, x1aout, x3-
x4ain
// and some MATLAB commands into file "data.m",
// and print total run time
} // end of main()
void check_sample_time() {
112
printf("alarm met...\n");
printf("Your sampling period is too small\n");
printf("t=%f\n",t);
printf("sample_count=%d\n",sample_count);
printf("evread=%d\n", EVREAD(EVENT_LCHAN, &erstat));
error_status = 1;
} // end if
void check_timer_counter() {
// This section of code checks for overflow on the counter of the timer
// chip of the rti-815 board. If it's overflowed, it resets and continues.
do {
} while((unsigned int)
EVREAD(EVENT_LCHAN,&erstat)<sample_count);
void nlalgorithm() {
113
float Ff;
float lrdef1, g3prime;
e3 = x3 - x3des;
e4 = x4 - x4desired;
x1out = u;
114
4. mystop.c:
//#include "main.h"
void mystop()
{
FILE *fptr;
float u_stop;
// Stop the sampling process, zero outputs, write the data to a "data.m"
// file: copy file to matlab directory and run data.m
EVSTOP(EVENT_LCHAN,&erstat);
if (erstat) {
printf("\n\tEVSTOP error: %2d\n",erstat);
exit(1);
} // endif
PULSTOP(PULSE_LCHAN,&erstat);
if (erstat) {
printf("\n\tPULSTOP error: %2d\n",erstat);
exit(1);
} // endif
u_stop = -0.05F;
XAOT(XAOT1_LCHAN,&u_stop,&erstat);
if((fptr = fopen("data.m","w"))==NULL) {
printf("Error opening file\n");
exit(1);
}
115
for (j = i; j < SP_NO; j++) {
fprintf(fptr, "%.3f %.6f %13.5e %13.5e %13.5e %13.5e %9.6f\n",
sec[j],x1ain[j],x2ain[j],x3ain[j],x4ain[j],x6ain[j],
x1aout[j]);
} // endfor
for (j = 0; j < i; j++) {
fprintf(fptr, "%.3f %.6f %13.5e %13.5e %13.5e %13.5e %9.6f\n",
sec[j],x1ain[j],x2ain[j],x3ain[j],x4ain[j],x6ain[j],
x1aout[j]);
} // endfor
fprintf(fptr, "];\n");
//fprintf(fptr, "Y(:,2)=-Y(:,2);\n");
fprintf(fptr, "t=Y(:,1);\n");
fprintf(fptr, "t1=t-min(t);\n");
fprintf(fptr, "X=Y(:,2:5);\n");
fprintf(fptr, "x1=Y(:,2);x2=Y(:,3);x3=Y(:,4);x4=Y(:,5);\n");
fprintf(fptr, "u=Y(:,7);\n");
fprintf(fptr, "%% X(:,1) is the slide position, x1, x\n");
fprintf(fptr, "%% X(:,2) is the slide velocity, x2, v\n");
fprintf(fptr, "%% X(:,3) is the load pressure, x3, PL\n");
fprintf(fptr, "%% X(:,4) is the valve position, x4, Xv\n");
fprintf(fptr, "whitebg('w')\n");
fprintf(fptr, "[bb,aa]=butter(8,0.02);\n");
fprintf(fptr, "plf=filtfilt(bb,aa,X(:,3));\n");
fprintf(fptr, "subplot(4,1,1)\n");
fprintf(fptr, "plot(t,X(:,1));grid\n");
fprintf(fptr, "title('Slide position(x1, m) vs. Time')\n");
fprintf(fptr, "subplot(4,1,2)\n");
fprintf(fptr, "plot(t,X(:,2));grid\n");
fprintf(fptr, "title('Slide velocity(x2, m/s) vs. Time')\n");
fprintf(fptr, "subplot(4,1,3)\n");
fprintf(fptr, "plot(t,X(:,3));grid\n");
fprintf(fptr, "title('Pressure difference(x3, Pa) vs. Time')\n");
fprintf(fptr, "subplot(4,1,4)\n");
fprintf(fptr, "plot(t,X(:,4));grid\n");
fprintf(fptr, "title('Valve position(x4, m) vs. Time')\n");
fprintf(fptr, "figure;plot(t,X(:,3));grid\n");
fprintf(fptr, "title('pressure')\n");
fprintf(fptr, "figure;plot(t,X(:,1));grid\n");
fprintf(fptr, "title('position')\n");
fprintf(fptr, "figure;plot(t,Y(:,6));grid\n");
fprintf(fptr, "title('gamma')\n");
fprintf(fptr, "offset = %.2e; amplitude = %.2e; freq = %.2f;\n",offset,
amplitude, freq, fric_offset, freq, fric_slope);
116
fprintf(fptr, "fric_offset = %.3e; fric_slope = %.3e;\n", fric_offset,
fric_slope);
fprintf(fptr, "ini = 0;\n");
fprintf(fptr, "area = 3.2673e-4;\n");
fclose(fptr);
printf("Output complete\n");
printf("t=%f\n",t);
printf("T=%f\n",T);
117
APPENDIX B
1. Used for system modeling without controller, pressure tracking and force tracking:
K=15000; %Feedback
118
Diam=.007; %Port diameter (m)
w=Diam*pi; %Area gradient
rho=840; %fluid density (840 kg/m3)
theta=69; %Angle of vena contracta: 69 degrees
Cd=.6; %Servovalve orifice coefficient
fmp=0; %Main spool pre-load
Kqp=Cd*w*xcn*sqrt(2/rho)/(2*sqrt(dpn));
Kqc=Cd*w*sqrt(2*dpn/rho);
Fffc=Cd*cos(theta*pi/180)*w*dpn; %Flow force on control spool
Co=Cd*w*sqrt(1/rho); %Flow parameter
119
%Saturation Limits
Qmax = 3e-4; % The servo valve is R04, rated flow QN at dP=35 bar is 10 l/min
% so maximum flow should be about 1.8*QN ~= 18 l/min, or 3e-4 m3/s.
Actlimit=Stm; %(m) Actuator limit
Pslimit=35e6; %(Pa) Pressure limit
Amplimit=.3; %Amplifier saturation
SVlimit=Stsv; %Servo limit
nsv=2.5676e5;
dsv=[1 6.2529e2 2.5676e5];
Km = 16010;
c1 = 0.0075;
c3 = 1.52319587e6;
c4 = Stsv/10;
A = 3.2673e-4;
beta = 1.1961e8 * 8;
Vt = 0.009424778;
m = 24;
Fslip = 230;
Fstick = 210;
fst = -1700;
fv = 20;
delta = 0.01;
delta1 = 0.1;
Ps = 1.03425e7;
120
2. Used only for pressure tracking:
alpha = 1.513e10;
gamma = 0.8e9;
beta3 = 1.0;
k3 = 500;
k4 = 50;
r3 = 5e-11; % rho3
r4 = 0.8e9; % rho4 = gamma;
tau = 1/573;
K = c4;
spring = 16010;
fst = -1144;
area = 3.2673e-4;
delta1 = 0.12;
121
3. Used only for force tracking:
alpha = 1.513e10;
gamma = 0.8e9;
beta3 = 1.0;
k3 = 3000;
k4 = 1000;
r3 = 1e-11; % rho3
r4 = 0.8e9; % rho4 = gamma;
tau = 1/573;
K = c4;
spring = 16010;
fst = -1200;
area = 3.2673e-4;
delta1 = 0.12;
rgamma = 1e-14;
122