Sei sulla pagina 1di 132

NONLINEAR CONTROL OF ELECTRO-HYDRAULIC SERVOSYSTEMS:

THEORY AND EXPERIMENT

BY

RUI LIU

B. Engr., Tsinghua University, 1994

THESIS

Submitted in partial fulfillment of the requirements


for the degree of Master of Science in Mechanical Engineering
in the Graduate College of the
University of Illinois at Urbana-Champaign, 1998

Urbana, Illinois
ABSTRACT

In this thesis, the background information of hydraulic systems was reviewed. A


SIMULINK model for a typical commercial electro-hydraulic servo system was
constructed and verified on an experimental system. The nonlinearities in the model
include orifice flow dynamics, Coulomb friction, Stribeck friction, rate limit and
saturation. The theories of nonlinear control and adaptive control were reviewed. A
Lyapunov-based nonlinear control algorithm was developed for force/pressure tracking of
such electro-hydraulic system. The performance of the controlled system relies on the
accuracy of the system model. To compensate for parameter uncertainties in the model, a
parameter adaptation based on Lyapunov analysis was developed. The adaptation scheme
was coupled with the control law and applied to an experimental system. Friction
modeling and compensation were also added for pressure tracking. The experimental
results show very good tracking for both pressure tracking and force tracking for low
frequency sine signals.

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.

Without their help this thesis could not be created.

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

LIST OF FIGURES ................................................................................................. viii

Chapter 1. INTRODUCTION ...................................................................................... 1

1.1 HYDRAULIC BASICS................................................................................ 1

1.2 HYDRAULIC COMPONENTS.................................................................. 4

1.3 HYDRAULIC CYLINDER DYNAMICS................................................... 5

1.4 BENEFITS AND DRAWBACKS OF HYDRAULIC ACTUATION ........ 9

1.5 APPLICATIONS ....................................................................................... 11

1.6 CONTROL METHODOLOGIES ............................................................ 12

1.7 FORCE VS. POSITION CONTROL........................................................ 15

Chapter 2. SYSTEM MODELING ........................................................................... 17

2.1 SIMULATION........................................................................................... 17

2.2 EXPERIMENTAL VERIFICATION ....................................................... 23

Chapter 3. CONTROLLER DESIGN ....................................................................... 35

3.1 NONLINEAR CONTROL ........................................................................ 35

3.1.1 Why nonlinear control?................................................................. 35

3.1.2 Nonlinear system behavior ............................................................ 35

3.2 LYAPUNOV FUNCTIONS AND LYAPUNOV-BASED DESIGN ......... 36

v
3.2.1 Lyapunov functions ....................................................................... 36

3.2.2 Lyapunov-based controller design................................................. 41

3.3 BACKSTEPPING...................................................................................... 46

3.4 CONTROLLER DESIGN OF THE EXPERIMENTAL SYSTEM......... 48

Chapter 4. CONTROL RESULTS ............................................................................ 52

4.1 SIMULATION........................................................................................... 52

4.2 EXPERIMENT .......................................................................................... 57

4.3 EFFECTS OF CONTROLLER PARAMETER VARIATIONS ............. 65

4.3.1 Effects of k3 on system performance .............................................. 65

4.3.2 Effects of k4 on system performance .............................................. 65

Chapter 5. ADAPTIVE CONTROL.......................................................................... 67

5.1 SENSITIVITY METHODS....................................................................... 68

5.2 GRADIENT AND LEAST SQUARE METHODS BASED ON

ESTIMATION ERROR COST CRITERIA........................................... 70

5.3 LYAPUNOV-BASED DESIGN METHODS............................................ 72

5.4 ADAPTIVE CONTROLLER DESIGN OF THE EXPERIMENTAL

SYSTEM .................................................................................................... 74

Chapter 6. ADAPTIVE CONTROL RESULTS ...................................................... 78

6.1 SIMULATION........................................................................................... 78

vi
6.2 EXPERIMENT .......................................................................................... 83

Chapter 7. CONCLUSIONS....................................................................................... 92

Chapter 8. FUTURE WORK..................................................................................... 93

REFERENCES............................................................................................................ 95

APPENDIX A. C CODE FOR THE IMPLEMENTATION

OF THE CONTROL ALGORITHM .............................................. 99

APPENDIX B. MATLAB FILES FOR SIMULATION.. ................................... 118

vii
LIST OF FIGURES

Figure Page

1.1 Piston concentric in cylinder. ................................................................................... 3

1.2 A typical three-land-four-way spool valve.. ............................................................... 5

1.3 Performance of combination of load and response time

for different kinds of actuation methods.. ............................................................... 10

2.1 A schematic diagram of the experimental system.. ............................................ 17

2.2 Friction model used in the system model.. .............................................................. 20

2.3 Comparison between measured frequency response and that of the second order and

first order models of the servo valve. ....................................................................... 21

2.4 The SIMULINK model of the system.. .................................................................. 22

2.5 Measured (estimated) friction-velocity relation and the friction model of the open

loop system for 1 Hz sine wave.... ........................................................................... 25

2.6 Measured and modeled control input of the open loop system

for 1 Hz sine wave... ............................................................................................... 25

2.7 Measured and modeled valve position of the open loop system

for 1 Hz sine wave.. ................................................................................................ 26

viii
2.8 Measured and modeled load pressure of the open loop system

for 1 Hz sine wave.. ................................................................................................ 26

2.9 Measured and modeled piston velocity of the open loop system

for 1 Hz sine wave. ................................................................................................. 27

2.10 Measured and modeled piston position of the open loop system

for 1 Hz sine wave................................................................................................... 27

2.11 Measured and modeled control input of the closed loop system

for 1 Hz sine wave... ............................................................................................. 28

2.12 Measured and modeled valve position of the closed loop system

for 1 Hz sine wave... ............................................................................................. 28

2.13 Measured and modeled load pressure of the closed loop system

for 1 Hz sine wave... ............................................................................................. 29

2.14 Measured and modeled piston velocity of the closed loop system

for 1 Hz sine wave... ............................................................................................. 29

2.15 Measured and modeled piston position of the closed loop system

for 1 Hz sine wave... ............................................................................................. 30

2.16 Measured and modeled valve position of the open loop system

for 1 Hz square wave... ......................................................................................... 30

iii
2.17 Measured and modeled load pressure of the open loop system

for 1 Hz square wave... ......................................................................................... 31

2.18 Measured and modeled piston velocity of the open loop system

for 1 Hz square wave... ......................................................................................... 31

2.19 Measured and modeled piston position of the open loop system

for 1 Hz square wave... ......................................................................................... 32

2.20 Measured and modeled valve position of the closed loop system

for 1 Hz square wave... ......................................................................................... 32

2.21 Measured and modeled load pressure of the closed loop system

for 1 Hz square wave... ......................................................................................... 33

2.22 Measured and modeled piston velocity of the closed loop system

for 1 Hz square wave... ......................................................................................... 33

2.23 Measured and modeled piston position of the closed loop system

for 1 Hz square wave... ......................................................................................... 34

4.1 SIMULINK model for the hydraulic system with the nonlinear controller................ 53

4.2 Details of the SIMULINK model of the nonlinear controller... ................................ 54

4.3 Modeled pressure: desired and actual...................................................................... 55

4.4 Modeled valve position: desired and actual... .......................................................... 55

4.5 Modeled data: r3 / 2 *e3*e3 and r4 / 2 *e4*e4 ... ...................................................... 56

4.6 Comparison of the weights of different terms in u.... ............................................... 56

iv
4.7 Modeled position with k4 = 2000... ......................................................................... 57

4.8 A cross section schematic diagram of the Moog direct drive valve... ....................... 58

4.9 The experimental electro-hydraulic system setup..................................................... 59

4.10 Frequency response of the low pass differentiator: 70 s / (s + 70).......................... 59

4.11 1 Hz pressure tracking result.............................................................................. 60

4.12 Verification of the friction model for 1 Hz pressure tracking... ............................ 61

4.13 Desired pressure for 1Hz pressure tracking... ........................................................ 62

4.14 Load pressure for 1 Hz pressure tracking... ......................................................... 63

4.15 Valve position for 1 Hz pressure tracking... ......................................................... 63

4.16 Piston velocity for 1 Hz pressure tracking... ......................................................... 64

4.17 Piston position for 1 Hz pressure tracking........................................................... 64

4.18 Piston position for 1 Hz pressure tracking for k3 = 2000................................... 65

4.19 Piston velocity for 1 Hz pressure tracking for k3 = 2000... ................................ 66

6.1 SIMULINK model for the hydraulic system

with the nonlinear controller and adaptation scheme.... .......................................... 79

6.2 (a) Details of the SIMULINK model of the nonlinear controller

with adaptation scheme...................................................................................... 80

6.2 (b) Details of "Subsystem" block in (a)..................................................................... 80

6.3 Modeled pressure: desired and actual...................................................................... 81

6.4 Modeled valve position: desired and actual..... ........................................................ 82

v
6.5 The evolution history of modeled gammahat ( γ$ )..... .............................................. 82

6.6 The evolution history of measured gammahat ( γ$ )..... ............................................ 85

6.7 The "steady state" of measured gammahat ( γ$ )..... ................................................. 85

6.8 1 Hz force tracking result..... ............................................................................... 86

6.9 Desired and actual valve position for 1 Hz force tracking..... ........................... 86

6.10 Control input for 1 Hz force tracking..... .......................................................... 87

6.11 Valve position for 1 Hz force tracking..... ........................................................ 87

6.12 Force for 1 Hz force tracking............................................................................ 88

6.13 Piston velocity for 1 Hz force tracking...... ....................................................... 88

6.14 Piston position for 1 Hz force tracking............................................................. 89

6.15 Measured (estimated) friction-velocity relation and the friction model

for 1 Hz force tracking.... ..................................................................................... 89

6.16 Desired and actual force for 2 Hz force tracking...... ......................................... 90

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.1 HYDRAULIC BASICS


Hydraulics, the science of liquid flow, has a long history. As early as in the time of
Isaac Newton, he studied the flow of liquid and gave a quantitative definition of viscosity.
In the field of control, both liquids and gases can be used. The term "hydraulic" is used
when liquids are involved, while "pneumatic" is used when gases are involved.
For a study of hydraulics, it is essential for a study of hydraulic fluid, the medium
that carries the power. Hydraulic fluids have two basic types: petroleum base fluids and
synthetic fluids. Petroleum base fluids are by far the most commonly used hydraulic fluid.
They are obtained from refining crude oil. However, there is a major drawback to use such
fluids since they are vulnerable for fire hazard and thus put limits on operation
temperature. Synthetic fluids are formulated such that they are more resistant to burning
and they are used in the scenarios of high operation temperature and closeness to exposed
fire.
The aforementioned chemical property is just one of the many important properties
of hydraulic fluids. Some of other important physical properties are introduced in the
following. At first, each fluid has its mass density, usually denoted as ρ, with the SI unit of
kg/m3, and weight density, usually denoted as γ, with the SI unit of N/m3, where N is an
abbreviation for the unit of force, Newton. Two important physical quantities of liquids,
the bulk modulus and the cubic expansion coefficient, will be introduced by means of the
equation of state. The equation of state of liquids, unlike that of gases, does not have a
direct mathematical derivation from physical laws, and a first order Taylor's series
expansion is used. For the general relation between the mass density, pressure and
temperature,
ρ = f(P, T), (1.1)
because typically the change in density as a function of pressure and temperature is small,
a first order linearization is used:

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

Because of the conservation of mass, equivalent expressions for α and β are:


 ∂P 
β = −V0   , (1.4)
 ∂V  T

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

Figure 1.1 Piston concentric in cylinder.

Viscosity is another important property of any fluid. As mentioned above, Isaac


Newton is considered the first person to give a quantitative definition of viscosity. For the
system in Figure 1.1 (Merritt, 1967), where Cr denotes the radial clearance filled with the
fluid, Newton observed that a force was necessary to make relative motion and the force
(F) was proportional to the area in contact (A) and to the velocity ( x& ), and inversely
proportional to the film thickness Cr, i.e.,
x&
F = µA . (1.6)
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)
ρ

As mentioned above, the bulk modulus can be substantially decreased by entrained


air. It can also be greatly lowered by mechanical compliance, e.g., of the rubber
transmission lines. Thus the definition of effective bulk modulus is introduced. Denote the
total volume of liquid, gas and container by Vt, change of Vt by ∆Vt, and change of
pressure by ∆P, then βe, the effective bulk modulus, is defined by
Vt ∆P
βe = . (1.8)
∆Vt

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.

1.2 HYDRAULIC COMPONENTS


According to (Merritt, 1967), a typical hydraulic system consists of a pump, one or
more control valves, and a hydraulic actuator. The actuator can be either a cylinder
providing linear motion or a hydraulic motor providing rotary motion. The pump makes
use of an electrical motor to transfer electrical energy to mechanical energy, and then
transfers mechanical energy into hydraulic energy. Control valves direct, regulate or
prevent the flow of fluid. The actuator provides the needed motion.
Control valves, by the feature of their constructions, can be classified into three
categories: sliding, seating and flow dividing. The most widely used valves are sliding
valves employing spool type construction. Flapper valves are seating valves, they are used
extensively as the first stage valve in a two-stage electrohydraulic valves. Spool valves are
classified by the number of "ways" flow can enter and leave the valve, by the number of
lands and by the type of center when the valve spool is in neutral position. Shown in
Figure 1.2 is a typical three-land-four-way spool valve. If the width of the land is smaller
than the port in the valve sleeve, the valve is said to have an open center or to be

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.

1.3 HYDRAULIC CYLINDER DYNAMICS

Fi

4 xv

QL
Supply P1
1
Ps Qs
PL = P1 - P2
2

QL
Return P2
3
P0 ≅ 0 Qs

Figure 1.2. A typical three-land-four-way spool valve.

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)

Since W = gρQ, (1.28) can be transformed to


dV0 V0 dP
∑Q in − ∑ Qout =
dt
+
β dt
. (1.29)

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.

1.4 BENEFITS AND DRAWBACKS OF HYDRAULIC ACTUATION


There are several kinds of means of actuation in engineering: mechanical,
electromechanical, hydraulic, pneumatic and etc. Among them, electromechanical and
hydraulic actuators are most widely used. Compared with electrical motors, the
electromechanical actuators, hydraulic actuators have their own characteristics. The
advantages of hydraulic systems are (Merritt, 1967):
(1) Hydraulic systems have large power-to-weight ratios. The torque developed by
hydraulic actuators is proportional to the pressure difference and is only limited by safety

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 )

Figure 1.3 Performance of combination of load and response time


for different kinds of actuation methods.

(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).

1.6 CONTROL METHODOLOGIES


At the very beginning of the use of hydraulic systems, they were used without
electrical interface. Actually they began their applications much earlier than the occurrence
of electricity commercially available to the public. The marriage of electrical devices and
hydraulic devices rendered hydraulic systems more flexibility for use in different scenarios.
As a natural progress of human learning, analysis and control of hydraulic systems began
from linear modeling of the systems. The results based on linear models did not tell the
whole story, since the hydraulic systems are by nature strongly nonlinear, but these results

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.

1.7 FORCE VS. POSITION CONTROL


It was found that so far, most of the research efforts were put into the regulation
and tracking of position for hydraulic systems. In the literature reviewed above, only the
work of (Heinrichs et al., 1997), (Alleyne et al., 1993), and (Alleyne and Hedrick, 1995)
considered explicitly the force tracking problem. This is in contrast to the actual need of
force tracking in many fields, in active suspension, in plastic molding machinery, in
materials handling robots, just to name a few. The work of (Dyke et al., 1995) shed some
insight for the insufficiency of literature, and (Alleyne et al., 1998) made it clearer. The
reason lies in the interaction of the controller dynamics and structure dynamics. Using a
linearized model of the original nonlinear system and frequency domain method, it was
found by Dyke et al. and confirmed by Alleyne et al. that zeros exist in the transfer
function from the current input for the servo valve to the actuator force output. These
zeros in turn are canceled out by poles in the transfer function from the force to the
position of the actuation piston. Since the zeros mentioned above may be lightly damped
in many application scenarios, and they appear at relatively low frequencies depending on
specific applications (about 7 Hz in Dyke et al.’s system and about 4 Hz in Alleyne et
al.’s), it poses a significant challenge for a controller to achieve a high bandwidth force
tracking performance.

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

Figure 2. 1 A schematic diagram of the experimental system.

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 )

Figure 2. 2 Friction model used in the system model.


The friction model includes Karnopp's stiction, Stribeck effect, and viscous friction.

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);

The SIMULINK block diagram of the system is shown as follows.

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

Figure 2. 4 The SIMULINK model of the system.

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.

2.2 EXPERIMENTAL VERIFICATION


Experiments were conducted to test the SIMULINK model. The modeled data
matched well with the experimental data. Figure 2.5 shows the measured (estimated)

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 )

Figure 2. 5 Measured (estimated) friction-velocity relation and the friction model


of the open loop system for 1 Hz sine wave.
Measured (estimated): lighter line, modeled: darker line.

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

7 7.5 8 8.5 9 9.5 10


tim e ( s e c o n d )

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

7 7.5 8 8.5 9 9.5 10


tim e ( s e c o n d )

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

3.1 NONLINEAR CONTROL


3.1.1 Why nonlinear control?
Linear control is a relatively mature subject with a long history. Many powerful
methods exist in linear control area and they have brought a lot of successful military,
industrial and scientific applications, ranging from aircraft/missile motion following for
radar, to industrial machine tool feeding, to the Moon Mission. However, recently many
researchers and designers from broad areas have shown their active interest and put
significant amount of research effort in nonlinear control. The reason is clear: physical and
social systems are by nature nonlinear, only a proper nonlinear model capturing the key
characteristics of a system can be a good representation of the original system. Dealing
with nonlinearity results in improved system model, clearer system analysis, and better
controlled system performance.

3.1.2 Nonlinear system behavior


Compared with linear systems, nonlinear systems demonstrate much richer
behaviors. As stated in (Slotine and Li, 1991), examples of essentially nonlinear
phenomena are:
• Multiple isolated equilibria. Linear systems have either one equilibrium point or no
equilibrium point at all. Nonlinear systems, by contrast, may have more than one
equilibrium point.
• Limit cycles. For a linear time-invariant system to oscillate, it must have a pair of
eigenvalues on the imaginary axis, which is sensitive to disturbance, thus almost
impossible to maintain in practice. Even if the oscillation does exist, the amplitude
would be dependent on the initial state. In reality, stable oscillations are produced only
by nonlinear systems. There exist such nonlinear systems that their motions go to
oscillations with fixed amplitude and frequency. This type of oscillation is called limit
cycle.

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).

3.2 LYAPUNOV FUNCTIONS AND LYAPUNOV-BASED DESIGN


3.2.1 Lyapunov functions
Lyapunov's Direct Method:
Let V: D → R be a continuously differentiable function, where D ⊂ R is a domain
containing the origin. The function V is called a Lyapunov function if it satisfies that:
(1) V(0) = 0, and V(x) > 0 for all x ∈ D − {0}, (3.1)
(2) V& ( x ) ≤ 0 in D. (3.2)
If the origin is an equilibrium point of the system and such Lyapunov function exists, then
the origin is stable (in the sense of Lyapunov). Furthermore, if
V& ( x ) < 0 for all x ∈ D − {0}, (3.3)
the origin is asymptotically stable. The statement presented above is the Lyapunov
stability theorem, also called Lyapunov's direct method or the second method of
Lyapunov, given in Lyapunov's Ph.D. thesis in 1896 and restated in (Khalil, 1996).
If a function V satisfies (3.1), that is, V(0) = 0, and V(x) > 0 for all x ≠ 0, then it is
said to be positive definite. If it satisfies a weaker condition V(x) ≥ 0 for x ≠ 0, then it is
said to be positive semidefinite. A function V(x) is said to be negative definite or negative
semidefinite if −V(x) is positive definite or semidefinite. If V(x) does not have a definite
sign as either of the four cases above, it is said to be sign indefinite.

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).

Example 3.1 Consider the second order system


x&1 = x 2
(3.9)
x& 2 = − h( x1 ) − ax 2

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

V& ( x ) = g1(x) x2 − g2(x) [h(x1) + a x2] < 0, for x ≠ 0, (3.11)


and


x
V ( x) = g T ( y )dy > 0, for x ≠ 0. (3.12)
0

Try the form


α ( x ) x1 + β ( x ) x 2 
g( x ) =  , (3.13)
 γ ( x ) x1 + δ ( x ) x 2 
where the scalar functions α(x), β(x), γ(x), and δ(x) are to be determined. To simplify the
choice, let β(x) = β = constant, γ(x) = γ = constant, and δ(x) = δ = constant. The symmetry
requirement gives β = γ. The derivative V& ( x ) is given by

V& ( x ) = −β x1h(x1) − (αδ − β) x 22 + [α(x) x1 − a β x1 − δ h(x1)] x2. (3.14)


Choose
α(x) x1 − a β x1 − δ h(x1) = 0 (3.15)

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,

∫ [aγ y1 + δ h( y1 )]dy1 + ∫ (γ x1 + δ y 2 )dy 2


x1 x2
V ( x) =
0 0

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. ◊

Another way to construct a Lyapunov function candidate is to choose a function


containing quadratic state terms, the coefficients of which need to be determined to make
the derivative negative definite or semidefinite. The procedure is similar to that of variable
gradient method.
The use of Lyapunov functions enables the stability analysis of nonlinear systems
and currently most of the stability analysis conducted on nonlinear systems base on,
explicitly or implicitly, Lyapunov function concepts. According to (Khalil, 1996), the
drawback of Lyapunov stability analysis lies in two key problems. First, it is usually
difficult to find a Lyapunov function useful for stability analysis of a system. It needs skills,
experience, and trial and error. Second, the knowledge of the exact region of attraction
(ROA) of an equilibrium point is very important for maintaining stability of dynamic
systems, however, the estimate of ROA obtained with a constructed Lyapunov function is
usually very conservative and covers only a small, closed portion of the actual ROA.

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)

where f : D → Rn is a locally Lipschitz map from a domain D ⊂ Rn into Rn. Let V : D → R


be a continuously differentiable function such that V& ( x ) ≤ 0 in Ω. Let E be the set of all

points in Ω where V& ( x ) = 0. Let M be the largest invariant set in E. Then every solution

starting in Ω approaches M as t → ∞.

For nonautonomous systems, the following Barbalat's Lemma has equivalent


power to LaSalle's theorem for stability analysis when the same problem emerges: the
derivative of a positive definite function can only be shown to be negative semidefinite.
The following statement of Barbalat's Lemma is taken from (Khalil, 1996).
Barbalat's Lemma:
Let g: R à R be a uniformly continuous function on [0, ∞). Suppose that
t

lim ∫ g ( s)ds exists and is finite, then


t →∞
0

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

condition to be satisfied, usually dg / dt, i.e., V&&( x ) , is shown to be bounded.

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).

(a). Lyapunov redesign


Lyapunov redesign method is used to solve robust stabilization problem. It deals
with a class of uncertain terms which satisfy the matching condition, namely, the uncertain
term enters the state equation exactly at the point where the control variable enters.
Consider the nominal system
x& = f ( x ) + G ( x )u , (3.21)
and the disturbed system

x& = f ( x ) + G ( x )[u + δ (t , x , u)] (3.22)

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.

(b). Sliding control


Sliding control originated in the Soviet literature in the 1950s, at first in the
context of variable structure regulation of linear systems. It was extended into the field of
nonlinear systems and obtained popularity since 1980s. It has successful applications in
control of underwater vehicles, robot manipulators, and automotive applications. The idea
of sliding control came from the intuition that it is much easier to control first-order
systems than to control higher-order systems.
In principle, with sliding control method, perfect performance can be achieved in
the presence of parameter uncertainties. However, it is achieved by high control activity,
and thus either control input saturates or neglected dynamics may be excited, and they
may cause degradation of performance and even instability. Therefore a modification of
the control law is needed to achieve a trade-off between tracking performance and
parametric uncertainty.
Consider the single-input single-output dynamic system
x(n) = f(x) + b(x)u, (3.24)
where the scalar x is the output, x(n) is the nth-derivative of x, the scalar u is the input, and
x = [x x& … x(n-1)] is the state vector. f(x) and b(x) are not exactly known, but the
imprecision of f(x) and b(x) are bounded with the known bounds, and the sign of b(x) is
also known. The control objective is to have the state x to track a desired trajectory xd =
[xd x& d … xd(n−1)]T in the presence of model uncertainties in f(x) and b(x).

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.

Example 3.2: Consider the general second-order system


x = f +u
&& (3.29)
where u is the control input, x is the scalar output, and the dynamics f is not exactly

known, and estimated as f$ . The estimation error on f is assumed to be bounded by a


known function F = F(x, x& ), i.e.,
| f$ − f | ≤ F. (3.30)
For a concrete example
x + a(t) x& 2cos3x = u
&& (3.31)
where a(t) is unknown but satisfies
1 ≤ a(t) ≤ 2,
thus

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

Lyapunov function. However, we can achieve x2 = α2 only with an error z2 = x2 − α1(x1).


Let z1 = x1, so that x1 and x2 are known explicit functions of z1 and z2 and vice versa. Now
the first two system equations can be rewritten as
z&1 = f1 (z1, α1(z1)) + z2 ϕ1(z1, z2),

z&2 = x3 + f2(z1, z2 + α1(z1)) − α&1 , (3.40)

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),

z&2 = z3 + α2(z1, z2) + f2(z1, z2 + α1(z1)) − β1(z1, z2),

z&3 = u + f3(z1, z2 + α1(z1), z3 + α2(z1, z2)) − β2(z1, z2, z3) (3.47)

where β2(z1, z2, z3) is the known expression for α&2 .


Step 3. Now there is no need to imagine a fictitious control, since the control u
already appears in the third system equation. For the new Lyapunov function
V3 = V2 + ½ z32,

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.

3.4 CONTROLLER DESIGN OF THE EXPERIMENTAL SYSTEM


Now, recall that the system equations of our system is
x&1 = x 2
1
x& 2 = ( − kx1 − bx 2 + Ax3 )
m
(3.50)
x& 3 = − α x 2 − β x 3 + (γ Ps − sgn( x 4 ) x 3 ) x 4
1 K
x& 4 = − x4 + u
τ τ
and the control objective is to have the actuator track a specified force or pressure
trajectory. Notice that this is a simplified version since it does not explicitly take friction
into account, and a first order approximation of servo valve model was used. In the
following, we derive a backstepping-like feedback control law. In this chapter we assume
that we know the exact model, and the controller design with parametric uncertainty in the
model will be discussed in Chapter 5.

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 

In practice the term g 3′ , PS − sgn( x 4 ) x 3 , is seldom zero when the system is

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

Sum gain Sum


for
k3 for u1
x4desired

x3error k3 1600*tau

x3desired dot tau/K


du/dt

Derivative2 k4*20
Saturation

f(u) x3desd x4error k4*20


Fcn desired
pressure 4 -K- 1/tau
x3 desired derivative
x4
1/tau
valve position 5e-3/Stsv
out_1 1
signal
generator r3/r4*gamma*10
x3desired
desired 1/tau1
pressure data
3

sqrt(Ps-sign(x4)x3)

Product1

Figure 4. 2 Details of the SIMULINK model of the nonlinear controller.

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 )

Figure 4. 3 Modeled pressure: desired and actual.


Desired trajectory: , actual trajectory: − − −.
-4
x 10
10

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 )

Figure 4. 4 Modeled valve position: desired and actual.


Desired trajectory: , actual trajectory: − − −.

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 )

Figure 4. 5 Modeled data: ρ3 / 2 *e3*e3 and ρ4 / 2 *e4*e4.


ρ3 / 2 *e3*e3: , ρ4 / 2 *e4*e4: − − −. The lower plot is a zoom-in of the one above.

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 )

Figure 4. 6 Comparison of the weights of different terms in u.


x4 / τ: , (ρ3 / ρ4) γ e3 sqrt(Ps − sgn(x4)x3): − − −, the other two are close to the x-axis.

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 )

Figure 4. 7 Modeled position with k4 = 2000.


When k4 increases from 1000 to 2000, the system is unstable.
The piston goes to one side and sticks there.

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)

Figure 4. 10 Frequency response of the low pass differentiator: 70 s / (s + 70).

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 )

Figure 4. 11 1 Hz pressure tracking result.


Desired trajectory (Pdesired = A2 + B2 sin(ω t) + Ff / A) : ……, actual trajectory: .

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 )

Figure 4. 12 Verification of the friction model for 1 Hz pressure tracking.


Modeled friction: ……, actual friction: .

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. 13 Desired pressure for 1 Hz pressure tracking.


Actual desired pressure: , modeled desired pressure: − − −.

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 )

Figure 4. 14 Load pressure for 1 Hz pressure tracking.


Measured pressure: , modeled pressure: − − −.
-3
x 10
2

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 )

Figure 4. 15 Valve position for 1 Hz pressure tracking.


Measured: , modeled: − − −.

63
0.2

0.1
velocity (m/s)

-0.1

5 5.5 6 6.5 7 7.5 8


tim e ( s e c o n d )

Figure 4. 16 Piston velocity for 1 Hz pressure tracking.


Measured: , modeled: − − −.

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 )

Figure 4. 17 Piston position for 1 Hz pressure tracking.


Measured: , modeled: − − −.

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.

4.3.2 Effects of k4 on system performance


If k4 increases, the performance of the system is expected to improve. If k4 is too
big, the system may go unstable. When k4 increases from 1000 to 2000, both the
simulation and the experiment show unstable system performance.

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 )

Figure 4. 18 Piston position for 1 Hz pressure tracking for k3 = 2000.


Measured: , modeled: − − −.

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 )

Figure 4. 19 Piston velocity for 1 Hz pressure tracking for k3 = 2000.


Measured: , modeled: − − −.

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.

Example 5.1 Consider a system described by the model


dy
= − a y + b u, (5.6)
dt
where u is the control variable, y is the measured output, a and b are plant parameters
with known values. The desired reference model is described by
dy m
= − am ym + bm r (5.7)
dt
where r is the command input, ym is the output of the reference model, am and bm are
parameters of the reference model, and r, am, and bm are known.
Let the feedback control law be given by
u(t) = θ1 r(t) − θ2 y(t). (5.8)
θ1 and θ2 are controller parameters. If they are chosen as
bm
θ1 = θ1* = ,
b
am − a
θ2 = θ2* = , (5.9)
b
the input-output relations of the system and the model are the same. This is called perfect
model-following.
Substituting (5.8) into (5.7) yields
bθ1
y= r, (5.9)
p + a + bθ2

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. ◊

With the use of approximate sensitivity functions, it is in general impossible to


prove the global closed-loop stability and convergence of the tracking error to zero. In
simulations, it is observed that the MIT rule and other approximation rules perform well
when the adaptation gain γ and the magnitude of the reference input signal are small.
Averaging techniques were used to confirm these observations and establish local stability
for a certain class of reference input signals. However, globally the schemes based on MIT
rule and other approximations may go unstable. Examples of instability can be found in
(Åström and Wittenmark, 1995).

5.2 GRADIENT AND LEAST SQUARE METHODS BASED ON


ESTIMATION ERROR COST CRITERIA
The main drawback of the sensitivity methods is that the minimization of the
performance cost function led to sensitivity functions that are not implementable. One way

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. ◊

5.3 LYAPUNOV-BASED DESIGN METHODS


This class of methods is based on Lyapunov direct method, which is stated in
Chapter 3. In this approach, the problem of designing an adaptive control law is
formulated as a stability problem. The dynamics of the control law is chosen such that
conditions for a certain Lyapunov function, which is related to the tracking error and
estimated parameters, are satisfied. An example from (Åström and Wittenmark, 1995)
follows.

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 

If the adaptive laws are chosen as


dθ1
= −γre ,
dt
dθ2
= γye , (5.23)
dt
then
dV
= − am e2. (5.24)
dt
Next Barbalat's Lemma will be applied to show that the error e tends to zero as time tends
dV
to infinity. Since ≤ 0, so V(t) ≤ V(0), hence V(t) is bounded and it follows that e, θ1, θ2
dt
are bounded. This also implies that y = e + ym is bounded. Now
d 2V de
2 = − 2am e = − 2am e [− am e − (bθ2 + a − am ) y + (bθ1 − bm) r]. (5.25)
dt dt
Since r, e and y are bounded, it follows that d2V / dt2 is bounded; thus dV / dt is uniformly
continuous. Now the conditions of Barbalat's Lemma are satisfied and the error e will go
to zero as time t approaches to infinity. Notice, however, that this does not mean the
parameters will go to their correct values. For the parameters to converge to their correct
values, the condition of persistent excitation must be satisfied. ◊

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.

5.4 ADAPTIVE CONTROLLER DESIGN OF THE EXPERIMENTAL


SYSTEM
In this section, to deal with the parameter uncertainties in the model of the
experimental system, a Lyapunov-based adaptive law is developed. The stability analysis is
also given. The reason to choose a Lyapunov-based method is due to its capability to
facilitate a vigorous proof of system stability.
The mathematical model of the system as shown in (2.3) describes a dynamic
system which is very stiff due to low oil compressibility. Therefore, the performance of the
controller relies heavily on the accuracy of the model. To account for the parameter
uncertainties in the model, a parameter estimation scheme is essential. In particular, the
hydraulic parameters in the third state equation are very difficult to measure off-line, and
their values may be slowly varying during the period of operation. Previous experience has
shown that the performance is most sensitive to the value of γ. Therefore, this is the
parameter to be adjusted online. The following adaptation scheme uses a Lyapunov-based
method. Denote the estimated value of γ as γ$ . Consider the new positive definite
function
1 ~2 1 1 1
V2 = V1 + ργ γ = ρ3 e32 + ρ4 e42 + ργ γ~ 2 (5.26)
2 2 2 2
where
γ~ := γ − γ$ , (5.27)

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′

Substitute (5.29) into (5.28),


γ
V&2 = ρ3 e3 ( f 3 − x& 3desired + ( − f 3 + x& 3desired − k 3e3 ) + γ g 3′ e4 )
γ$ (5.30)
+ ρ e ( f − x&
4 4 4 + g u) − ρ e γ&$.
4 desired 4 γ γ

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 ) − ργ γ&$].
γ$

Now determine the control input u based on the estimated parameter γ$ ,

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

g 3′ = PS − sgn( x 4 ) x 3 , by boundedness of x2 and x3, they are both bounded. As stated at

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

e&3 = x& 3 − x& 3desired = −αx 2 − βx 3 + (γ Ps − sgn( x 4 ) x 3 ) x 4 − x& 3desired , (5.38)

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

V&&2 = −2 ρ3 k 3e3e&3 − 2 ρ4 k 4 e4 e&4 , (5.40)

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.

ADAPTIVE CONTROL RESULTS

To apply the controller developed in Chapter 5 to the hydraulic system, both


simulation and experimental verification were done. The designed controller was found to
work well for force tracking task for low frequency signals. Since the force cannot be
readily 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 (or applied force). In the following, the
simulation result is presented first. The experiment result and discussion are then given.

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,

The friction related values were:


Slip friction: + 240 N, − 220 N,

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

Sum Integral f(u) 1e4


Sum
1/mass Total
of of
= v, if slip Slip sign slip offset Friction
forces forces1 huge gain

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 70s 70s


m
velocity s+70 s+70
Sum
velocity data2 1/Area mass LPD1 LPD

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

Figure 6. 1 SIMULINK model for the hydraulic system


with the nonlinear controller and adaptation scheme.

79
1 alpha x4desired

v e lo c i t y x4desired1
alpha
d u /d t

2 beta D e riv a tiv e 1

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

Figure 6. 2 (a) Details of the SIMULINK model of the nonlinear controller


with adaptation scheme.

1 1 Out1

In1
2 1/s 1/u[1]
In2 gamma hat3 reciprocal1
gammahat gammahat
dot limit limit1

Product6

Figure 6. 2 (b) Details of "Subsystem" block in (a).

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 )

Figure 6. 3 Modeled pressure: desired and actual.


Desired trajectory: , actual trajectory: − − −.

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 )

Figure 6. 4 Modeled valve position: desired and actual.


Desired trajectory: , actual trajectory: − − −.
8
x 10
6.35

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 )

Figure 6. 5 The evolution history of modeled gammahat ( γ$ ).

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

for γ$ developed in chapter 5 is

ρ e  − f 3 + x& 3desired − k 3e3 


γ&$ = 3 3  + g 3′ e4  . (5.35)
ργ  γ$ 
So smaller ργ would cause bigger change of value of γ$ . In Figure 6.6, ργ = 1×10−15, while

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 )

Figure 6. 6 The evolution history of measured gammahat ( γ$ ).

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 )

Figure 6. 7 The "steady state" of measured gammahat ( γ$ ).

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 )

Figure 6. 8 1 Hz force tracking result.


Desired force trajectory: − − −, actual force trajectory: .
-4
x 10
12

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 )

Figure 6. 9 Desired and actual valve position for 1 Hz force tracking.


Desired trajectory: , actual trajectory: …….

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 )

Figure 6. 10 Control input for 1 Hz force tracking.


Measured: , modeled: − − −.
-3
x 10
1

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 )

Figure 6. 11 Valve position for 1 Hz force tracking.


Measured: , modeled: − − −.

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 )

Figure 6. 12 Force for 1 Hz force tracking.


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 6. 13 Piston velocity for 1 Hz force tracking.


Measured pressure: , modeled pressure: − − −.

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 )

Figure 6. 14 Piston position for 1 Hz force tracking.


Measured: , modeled: − − −.

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 )

Figure 6. 16 Desired and actual force for 2 Hz force tracking.


Actual: , desired: − − −.
-3
x 10
3.5

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 )

Figure 6. 17 Desired and actual valve position for 2 Hz force tracking.


Actual: , desired: − − −.

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 )

Figure 6. 18 The "steady state" of measured gammahat ( γ$ ) for 2 Hz force tracking.

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

C CODE FOR THE


IMPLEMENTATION OF THE
CONTROL ALGORITHM

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"

// definitions for RTI 815 and Sampler

#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

// RTI-815 uses these parameters


int erstat; // error variable for rti functions
unsigned int sample_count; // variable for counter for sampler
float x1in = 0.0F; // variable for analog in ch1
float x2in = 0.0F; // variable for analog in ch2
float x3in = 0.0F; // variable for analog in ch3
float x4in = 0.0F; // variable for analog in ch4
float x1out = 0.0F, x1_out1 = 0.0F; // variable for analog out ch1
//float x2out = 0.; // variable for analog out ch2
float zero = 0.0F; // zero variable for channels

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;

// initial values of the four states, desired values and errors


float x1 = 0.0F, x2 = 0.0F, x3_original = 0.0F, x3 = 0.0F, x4 = 0.0F,
u = 0.0F;
float x4desired = 0.F, dx4des = 0.F;
float e3 = 0.0F, e4 = 0.0F;

// 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;

float tau = 1/573.4350F;


float K = 5e-4F;
float alpha = 1.513e10F, gamma = .8e9F;
float beta = 1.0F;
float k3 = 500.F;
float k4 = 100.F;
float rou3 = 5.0e-11F;
// float rou3 = 0.0e-10F;
float kspring = 1.47e4F;
float kprime = 4.9e7F; // kprime = kspring / area,
// x3 = 4.9e7 * (x1 - 0.12) w/out friction
float rougamma = 1.0e-13F;

float freq = 1.0F;


float offset = 30.0e5F;
float amplitude = 8.0e5F;

float fric_offset = 0.61e6F;


float fric_slope = 3.5e6F;

// x1_old: for numerical differentiation to get x2


float accel;
float x1_old1 = 0.0F, x1_old2 =0.0F, x1_old3 = 0.0F;
float x1_old4 = 0.0F, x1_old5 =0.0F, x1_old6 = 0.0F;
float x1_old7 = 0.0F, x1_old8 =0.0F, x1_old9 = 0.0F;
float x1_old10 = 0.0F, x1old_avg = 0.0F;
float x1old = 0.0F, x2old = 0.0F, x21 = 0.0F;
float accel_des = 0.0F;
float x4des_old2 = 0.F, x4des_old3 = 0.F;
float x4des_old4 = 0.F;
float x4desold_avg = 0.F;
float x4des_old1 = 0.F, dx4desold = 0.0F;

float x3d[10]={10*0.0F}, x3df[10]={10*0.0F};


float ud[10]={10*0.0F}, udf[10]={10*0.0F};

101
float u1d[10]={10*0.0F}, u1df[10]={10*0.0F};
float x2d[10]={10*0.0F}, x2df[10]={10*0.0F};

float pressure_offset = -1.0e5F;

float vel = 0.0F;

float ac, za, ka = 150.0F, mu = 1.5F, zadot, zaold;


float area = PI/4.0F*(30*30-22*22)*1e-6F, h = 0.00125F;
float x3f = 0.0F, x3fold = 0.0F;
float x3fold1 = 0.0F, x3fold2 = 0.0F, x3fold3 = 0.0F;
float x3old1 = 0.0F, x3old2 = 0.0F, x3old3 = 0.0F;

float x2_new, x21, x22;


float x1_new, x11, x12;

float uf=0.0F, ufold1=0.0F, ufold2 = 0.0F, ufold3 = 0.0F, ufold4 =


0.0F;
float uold1 = 0.0F, uold2 = 0.0F, uold3 = 0.0F, uold4 = 0.0F;

102
2. initial.c

/* This file includes the following functions:


void initial()
void start_running()
*/

//#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

if (NULL == (sec = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (sec)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x1ain = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x1ain)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x2ain = (float *) calloc(SP_NO, sizeof( float )))) {

103
printf("Memory is not enough. (x2ain)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x3ain = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x3ain)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x4ain = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x4ain)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x5ain = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x5ain)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x6ain = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x6ain)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x7ain = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x6ain)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (x4da = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x4da)\nTotal period is too
long.\n");
exit(1);
}

if (NULL == (dx4da = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (dx4da)\nTotal period is too
long.\n");
exit(1);

104
}

if (NULL == (x1aout = (float *) calloc(SP_NO, sizeof( float )))) {


printf("Memory is not enough. (x1aout)\nTotal period is too
long.\n");
exit(1);
}

// Begin initializing physical and logical channels, event and


// pulsing channels for sampling and zero output channels

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

/* I don't need the second analog output so far


AOT815(XAOT2_LCHAN,BOARD,CH1,&erstat);
if (erstat) {
printf("\n\tAOT815 CH1 error: %2d\n",erstat);
exit(1);
} // endif
*/

// Zero output channels

XAOT(XAOT1_LCHAN,&zero,&erstat);
// XAOT(XAOT2_LCHAN,&zero,&erstat);

printf("sample_fq: %d\n", SAMPLE_FQ);


printf("sample time(sec): %f\n", T);

void start_running() {

long int kkk=0;

printf("Please press any key to start data collection\n");

do{

106
} while (!kbhit() ); //enddo
if (!getch() )
(void)getch();
printf("\n");

printf("\n\nRunning... press any key to stop data collection\n");

// Start timer channels pulsing and counting

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

/* This file includes the following functions:


void main()
void check_sample_time()
void check_timer_counter()
float sgn(float number)
void nlalgorithm()

*/

/*
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

extern void mystop();


extern void initial();
extern void start_running();

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

// Do loop for controller/data collection

XAIN(XAIN1_LCHAN,&x1in,&erstat);
x1 = c1 * x1in + 0.124F;
wahaha:
{
XAIN(XAIN1_LCHAN,&x1in,&erstat);

x1 = c1 * x1in + 0.124F;

x1out = 64.0F * (x1 - 0.18F);

if (x1out > 4.95)


x1out = 4.95F;
else if (x1out < -4.95)
x1out = -4.95F;

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;

// the following is a low pass differentiator + a median filter


// applying on the position signal and obtain values of velocity

x2 = 0.93239381990595 * x2old + 70.0 * (x1 - x1old);


x1old = x1;
x2old = x2;
if (i>=8)
x21 = x5ain[i-8];
else
x21 = x5ain[i+SP_NO-8];
if (i>=4)
x22 = x5ain[i-4];
else
x22 = x5ain[i+SP_NO-4];
if ( ((x21>=x22) && (x22>=x2)) || ((x21<=x22) &&
(x22<=x2)) )
x2_new = x22;
else if ( ((x22>=x21) && (x21>=x2)) || ((x22<=x21)
&& (x21<=x2)) )

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;

if (x1out > 9.95)


x1out = 9.95F;
else if (x1out < -9.95)
x1out = -9.95F;

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();

} //end of control/data collection do loop


// while ( ! kbhit() );
while ( t < 8.00001 );

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() {

// This next section checks to see if the controller/data collection has


// taken up too much time and is longer than the sampling time allowed.
// It may also be because you are running in windows: run in dos!

if ((unsigned int) EVREAD(EVENT_LCHAN,&erstat) > sample_count)


{
EVSTOP(EVENT_LCHAN,&erstat);
if (erstat) {
printf("\n\tEVSTOP error: %2d\n",erstat);
} // endif
PULSTOP(PULSE_LCHAN,&erstat);
if (erstat) {
printf("\n\tPULSTOP error: %2d\n",erstat);
}// endif

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);

if (sample_count < 60000) {


sample_count = sample_count + SCOUNT;
} else {
sample_count = SCOUNT;
EVSTOP(EVENT_LCHAN,&erstat);
EVINIT(EVENT_LCHAN,&erstat);
EVSTART(EVENT_LCHAN,&erstat);
} // endif

float sgn(float number) {


if (number > 0.0F) return(1.0F);
if (number < 0.0F) return(-1.0F);
else return(0.0F);
}

void nlalgorithm() {

float x3des, dx3des, dx2, x2_old1;

113
float Ff;
float lrdef1, g3prime;

if (abs(x2) <= 0.1)


{
Ff = fric_offset * sgn(x2) - fric_slope * x2;
}
else
Ff = 0.4e6F * sgn(x2);

x3des = offset + amplitude * (float) sin(freq * 2.0F * PI * t) + Ff;

e3 = x3 - x3des;

if (abs(x2) <= 0.1)


dx2 = (x2 - x2_old1) / T;
else
dx2 = 0.0F;
x2_old1 = x2;
dx3des = amplitude * freq * 2.0F * PI * (float) cos(freq * 2.0F * PI *
t)
- fric_slope * dx2;

lrdef1 = alpha * (x2_new) + beta * x3 + dx3des + k3 * e3;


g3prime = (float) sqrt(Ps + sgn(x4) * x3);

x4desired = 1.0F * lrdef1 / (gamma * g3prime);

e4 = x4 - x4desired;

dx4des = 0.93239381990595 * dx4desold + 70.0 * (x4desired -


x4des_old1);
x4des_old1 = x4desired;
dx4desold = dx4des;

u = 1600.0F * 1.0F * (x4 + tau * dx4des +


10.0F * tau * (-2.0F * k4 * e4 + 1.0F * rou3 * e3 * g3prime) );

x1out = u;

114
4. mystop.c:

//#include "main.h"

int erstat; float zero; int j; int i; float x1; float t;

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);
}

fprintf(fptr, "%% data.m\n");


fprintf(fptr, "%% alpha, beta, gamma = %.3e, %.1f, %.3e\n",
alpha, beta, gamma);
fprintf(fptr, "%% k3, k4, rou3 = %.1f, %.1f, %.2e\n",
k3, k4, rou3);
fprintf(fptr, "%% time(sec) x1 x2 x3 x4 u gamma x4desired dx4des\n");
fprintf(fptr, "Y = [\n");

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

MATLAB FILES FOR SIMULATION

1. Used for system modeling without controller, pressure tracking and force tracking:

% Parameter used for simulation

Stsv=2.54e-4/2; %Stroke length of servovalve (m)


% 5/1000 of 1 inch = 0.05*0.0254=2.54e-4 (m)
Stm=.100; %Stroke length of Main spool (m)
Mc=.0573; %Mass of servovalve (kg)
Mm=25; %Mass of main cylinder (kg)

Dm1=.022; %Diameter of main spool rod (m)


Dm2=.030; %Diameter of main spool land (m)

Am=((Dm2/2)^2-(Dm1/2)^2)*pi; %Surface area of main spool (m^2)


Cc=36.5; %Damping on servovalve
Cm=36.1*10; %Damping on main cylinder

Kc=18000; %Centering spring on main spool


Vt=Dm2*pi*Stm; %Volume of main cylinder (m^3)
Amp=2.1286; %Signal amplification

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

Ps=1.03425e7;%Supply Pressure (Pa)


xmn=0; %Nominal main spool position
xcn=.00035; %Nominal Control spool position

%Calculate control pressure


pcn=((K*xmn-fmp)/Am)+Ps; %Nominal control pressure level
dpmo=Ps-pcn; %Pressure drop across control spool for meter out
dpmi=pcn; %Pressure drop across control spool for meter in
dpn=dpmi; %Control pressure

%Calculate bulk modulus of fluid


pctair=10; %Percent air in oil at atmospheric pressure
betaair=pcn+1e5;
betaoil=1.32e9+10.1*(pcn+1e5);
vair=(Vt*pctair/100)*(1e5/(pcn+1e5))^(1/1.4);
voil=Vt-vair;
beta=Vt/((vair/betaair)+(voil/betaoil));
beta = beta/8; %according to my calculation with Merritt's book

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

Potrebbero piacerti anche