Weiwen Dissertation

163
A COMPARATIVE STUDY OF NONLINEAR OBSERVERS AND CONTROL DESIGN STRATEGIES WEIWEN WANG Bachelor of Science in Electrical Engineering Guangxi University, P.R. China July 1994 Master of Science in Electrical Engineering Guangxi University, P.R. China July 1997 submitted in partial fulfillment of the requirements for the degree DOCTOR OF ENGINEERING at the CLEVELAND STATE UNIVERSITY December 2003

description

weimen

Transcript of Weiwen Dissertation

Page 1: Weiwen Dissertation

A COMPARATIVE STUDY OF NONLINEAR OBSERVERS

AND CONTROL DESIGN STRATEGIES

WEIWEN WANG

Bachelor of Science in Electrical Engineering

Guangxi University, P.R. China

July 1994

Master of Science in Electrical Engineering

Guangxi University, P.R. China

July 1997

submitted in partial fulfillment of the requirements for the degree

DOCTOR OF ENGINEERING

at the

CLEVELAND STATE UNIVERSITY

December 2003

Page 2: Weiwen Dissertation

This dissertation has been approved

for the Department of ELECTRICAL AND COMPUTER ENGINEERING

and the College of Graduate Studies by

Dissertation Committee Chairperson, Dr. Zhiqiang Gao

Department/Date

Dr. James H. Burghart

Department/Date

Dr. Dan Simon

Department/Date

Dr. Toshinori Munakata

Department/Date

Dr. Anna V. Stankovic

Department/Date

Page 3: Weiwen Dissertation

DEDICATED

TO MY PARENTS

Page 4: Weiwen Dissertation

ACKNOWLEGEMENT

I would like to express my deepest appreciation to my advisor, Dr. Zhiqiang Gao,

for giving me such a challenging opportunity, for his inspiring direction for the research

and for his great support in all aspects of my study.

I wish to thank Professor Jingqing Han, Institute of System Science, Academia

Sinica for his invaluable advice on this research.

I would like to acknowledge the kind support and assistance of Professor Carl

Knospe, University of Virginia, who provide the simulation files and document of the

AMB benchmark problem.

I would like to thank Dr. James H. Burghart, Dr. Dan Simon, Dr. Anna V.

Stankovic and Dr. Toshinori Munakata, who are on my committee, for their time in

reviewing and evaluating this dissertation.

Thanks to Professor George Kramerich, for his encourage and help with my work.

I would also thank the members of Applied Control Research Lab for their help.

They include Shaohua Hu, Yi Hou, Shahid Parvez, Robert Miklosovic, Minshao Zhu,

Bosheng Sun and Jing Liu.

A special thank you goes to my family for their encouragement and support of my

studies.

Page 5: Weiwen Dissertation

v

A COMPARATIVE STUDY OF NONLINEAR OBSERVERS

AND CONTROL DESIGN STRATEGIES

WEIWEN WANG

ABSTRACT

Conventional observers are based on an accurate mathematical model of the plant,

which limits their applications in the real world where the accurate model may not be

available. The Extended State Observer (ESO) is a novel model-independent observer. It

has been successfully applied to many practical applications: such as hard disk computer

drives, web tension regulation, DC-DC converters, and industrial servo systems.

This research focuses on the comparative study of different observers and observer

based control strategies. The purpose is to find a set of practical solutions that make

control design and tuning easy and effective. Three observer methods, including the

ESO, the High Gain Observer (HGO), and the Sliding Mode Observer (SMO) are

investigated. The simulation and experimental results of motion systems show that ESO

has a better overall performance. Active disturbance rejection control (ADRC) is an

ESO-based control strategy. With a novel optimization tuning method, linear ADRC

achieves effective results when dealing with large inertia, friction variations and torque

disturbance. A simulation of an active, magnetic-bearing benchmark problem is used to

test the method. Based on the Popov criterion, a stability analysis of second order ADRC

is investigated.

Keywords: High Gain Observer, Sliding Mode Observer, Extended State

Observer, Active Disturbance Rejection Control, Motion Control, Popov Criterion.

Page 6: Weiwen Dissertation

vi

TABLE OF CONTENTS

Page

NOMENCLATURE............................................................................................. ix

LIST OF TABLES ............................................................................................... xi

LIST OF FIGURES .............................................................................................. v

CHAPTER

I. INTRODUCTION........................................................................................ 1

1.1 Background ......................................................................................... 2

1.2 Nonlinear Control Design Methods Review ....................................... 3

1.2.1 Nonlinear H∞ Method ................................................................... 4

1.2.2 Variable Structure, Sliding-Mode Control .................................... 7

1.2.3 Feedback Linearization ................................................................. 8

1.2.4 Adaptive Nonlinear Control .......................................................... 9

1.2.5 Recursive- Interlacing ................................................................... 9

1.3 Motivation of the Research ............................................................... 10

1.4 Problem Formulation......................................................................... 11

II. NONLINEAR OBSERVERS.................................................................... 13

2.1 Observer-based State Feedback Design ............................................ 14

2.2 High Gain Observers ......................................................................... 18

2.3 Sliding Mode Observers .................................................................... 21

Page 7: Weiwen Dissertation

vii

2.4 Nonlinear Extended State Observers................................................. 22

2.5 Active Disturbance Rejection Control (ADRC)................................ 26

2.6 Summary ........................................................................................... 28

III. COMPARISON OF ADVANCED STATE OBSERVER DESIGN

TECHNIQUES........................................................................................... 29

3.1 Simulation Results............................................................................. 30

3.1.1 Open-loop Comparison ............................................................... 30

3.1.2 Selection of Nonlinear Gains for NESO ..................................... 36

3.1.3 Closed-loop Comparison............................................................. 39

3.2 Hardware Test Results....................................................................... 41

3.3 Summary ........................................................................................... 46

IV. COMPARISON OF CONTROLLERS FOR MOTIONCONTROL

APPLICATIONS ....................................................................................... 47

4.1 Linear Active Disturbance Rejection Control Design Concepts....... 48

4.2 Loop Shaping Design Technique ...................................................... 51

4.3 Simulation Study and Comparison.................................................... 55

4.4 Experiment Study and Comparison................................................... 62

4.5 Summary ........................................................................................... 67

V. NOVEL SOLUTIONS FOR THE ACTIVE MAGNETIC BEARING

BENCHMARK PROBLEM ..................................................................... 68

5.1 Background ....................................................................................... 69

5.2 System Dynamics and Design Specifications ................................... 70

5.3 The Proposed Solutions....................Error! Bookmark not defined.3

Page 8: Weiwen Dissertation

viii

5.4 Simulation Study and Results............................................................ 78

5.5 Summary ........................................................................................... 87

VI. STABILITY ANALYSIS OF ADRC ....................................................... 88

6.1 Absolute Stability .............................................................................. 89

6.2 Stability Analysis of ADRC.............................................................. 92

VII. CONCLUDING REMARKS .................................................................. 96

REFERENCES.................................................................................................. 988

APPENDICES................................................................................................... 106

A. C Source Code used in Hardware Tests ........................................... 1077

B. Parameters of Active Magnetic Bearing Benchmark Problem....... 14848

Page 9: Weiwen Dissertation

ix

NOMENCLATURE

A System matrix of the state space control

B Input matrix of the state space control

C Output matrix of the state space control

L Observer gain matrix of the state space control

x State vector of the state space control

y Output vector of the state space control

u Control command

x Estimate state vector of the state space control

hi Observer gains of the high gain observer

ki Observer gains of the sliding mode observer

f (.) Dynamics of the plant and the disturbance

zi Estimate states of the ESO

w (t) External disturbance of the plant

J Inertia of the load

iβ Gains of the ESO

ig Nonlinear functions of ESO

0ω The observer bandwidth

cω The controller bandwidth

Page 10: Weiwen Dissertation

x

kp Proportional gain of the controller

kd Derivative gain of the controller

cω Closed loop natural frequency

r Reference input

ξ Damping ratio

Tmax Maximum torque

0δ Output error of the plant

Page 11: Weiwen Dissertation

xi

LIST OF TABLES

Table I Controller Parameters......................................................................................... 58

Table II Performances Comparison with ADRC, LADRC and LSC .............................. 66

Table III Simulation Comparison .................................................................................... 85

Page 12: Weiwen Dissertation

v

LIST OF FIGURES

Figure Page

1. The Sliding Condition .................................................................................................. 8

2. State-Feedback Design using an Observer................................................................. 14

3. Comparison of Linear and Nonlinear Gains .............................................................. 24

4. Structure of ADRC..................................................................................................... 26

5. Open Loop Simulation Model.................................................................................... 32

6. Estimation Error of the Nominal Plant....................................................................... 33

7. x3=a (t) and its Estimation z3 ..................................................................................... 34

8. Estimation Error of the Plant with 0.5N-m Coulomb Friction................................... 35

9. Disturbance and its Estimation................................................................................... 35

10. Estimated Error of the Plant with 100% Change of Inertia........................................ 36

11. Disturbance and its Estimation................................................................................... 36

12. Nonlinear Gain Functions .......................................................................................... 37

13. Estimated Error of the Plant with Initial Values ........................................................ 38

14. Observer-based State Feedback Control Configurations ........................................... 39

15. Nominal Responses of the Control Systems .............................................................. 40

16. Simulation Results with 0.5 N-m Coulomb Frictions ................................................ 41

17. Simulation Results with Sinusoid Disturbance .......................................................... 41

18. Experimental Setup .................................................................................................... 42

19. A Diagram for DC Brushless Servo System .............................................................. 42

Page 13: Weiwen Dissertation

vi

20. Responses to the Nominal Plant................................................................................. 44

21. Responses to Coulomb Friction ................................................................................. 45

22. Feedback Control Configuration................................................................................ 51

23. Loop Shaping ............................................................................................................. 53

24. The Simulink Diagram............................................................................................... 55

25. Position Error and Control Signal of ADRC System................................................. 59

26. Position Error and Control Signal of LADRC System .............................................. 59

28. Position Error and Control Signal of ADRC System with Inertia Change ................ 60

29. Position Error and Control Signal of LADRC System with Inertia Change.............. 60

30. Position Error and Control Signal of LSC System with Inertia Change.................... 61

31. Position Error and Control Signal of ADRC System with Torque Disturbance........ 61

32. Position Error and Control Signal of LADRC System with Torque Disturbance ..... 61

33. Position Error and Control Signal of LSC System with Torque Disturbance............ 62

34. Responses of the Nominal Plant ................................................................................ 63

35. Responses of the Plant with 30% Torque Disturbance at 4 second ........................... 64

36. Responses of the Plant with Friction.......................................................................... 65

37. Benchmark experiment (from [59]) ........................................................................... 70

38. Current as a function of flux and air gap length......................................................... 72

39. The AMB Simulation Model...................................................................................... 78

40. The Model of Leakage ............................................................................................... 78

41. The Model of Beam Dynamics .................................................................................. 79

42. Displacement Errors................................................................................................... 80

43. Voltages (u1&u2) and Flux ( 1φ & 2φ ) of PP ................................................................ 81

Page 14: Weiwen Dissertation

vii

44. Voltages (u1&u2) and Flux ( 1φ & 2φ ) of NDP............................................................. 81

45. Voltages (u1&u2) and Flux ( 1φ & 2φ ) of LADRC ....................................................... 82

46. Displacement Errors for the Plant Coil Resistance Increased by 25% ...................... 82

47. Voltages (u1&u2) and flux ( 1φ & 2φ ) of PP ................................................................. 83

48. Voltages (u1&u2) and Flux ( 1φ & 2φ ) of NDP............................................................. 83

49. Voltages (u1&u2) and Flux ( 1φ & 2φ ) of LADRC ....................................................... 84

50. Saturated High Gain Controller Responses (from [61]) ............................................ 86

51. Nonlinear Dynamics Placement Controller Responses.............................................. 87

52. The Problem of Lure and Postnikov .......................................................................... 90

53. Diagram of ADRC ..................................................................................................... 92

Page 15: Weiwen Dissertation

1

CHAPTER I

INTRODUCTION

Automatic control systems were first developed over two thousand years ago. The

primary motivation for feedback control in times of antiquity was the need for the

accurate determination of time. Around 270 B.C., the Greek Ktesibios invented a float

regulator for a water clock, which kept time by regulating the water level in a vessel [1].

In 1868 J.C. Maxwell explained the instabilities exhibited by the flyball governor using

differential equations to describe the control system. Since that time, control theory has

made significant strides.

Page 16: Weiwen Dissertation

2

1.1 Background

The period before 1868 is called “the prehistory of automatic control [2].” In 1877,

E. J. Routh provided a numerical technique for determining when a characteristic

equation has stable roots [Routh 1877], followed by A. M. Lyapunov’s study of the

stability of nonlinear differential equations using a generalized notion of energy in 1892

[Lyapunov 1892]. The period from 1868 to the early 1900s may be called “the primitive

period of automatic control” because of these discoveries.

In 1922 N. Minorsky introduced the Proportional-Integral-Derivative (PID)

controller. During 1930s and 1940s, frequency-domain approaches, the Nyquist stability

criterion, the Bode plot, and the root locus were used to analyze and design single-input

and single-output (SISO) linear systems. Simple compensators like lead-lag were

developed. The term “cybernetics” was coined by Norbert Weiner to refer to control

theory [Weiner 1949, Weiner 1961]. The period from 1900 to 1960 is often called“the

classical period,” and the period from 1960 through the present is “the modern period.”

In a series of famous papers, Kalman and his coauthors discussed the optimal

control of systems and provided the design equations for the linear quadratic regulator

(LQR) and Kalman filter. This approach was firmly rooted in time-domain and relied on

techniques from linear algebra. Today this branch of control still remains very active

under the name of “the linear system theory.” Digital control theory was formulated with

the advent of the microprocessor in 1969. In 1981, the H∞ control approach was proposed

by Zames. The first significant development in optimal control was the famous work of

Pontryagin, Boltyanskii, Gamkrelidze and Mishchenko in 1986.

Page 17: Weiwen Dissertation

3

Finally, everything narrowed down to nonlinear control. Zames, LaSalle, and

Willems contributed a significant amount of work on the theory of the stability of

nonlinear systems. [Zames 1961a, Zames 1961b, LaSalle 1968, and Willems1972].

Compared to classical control theory, modern control design is fundamentally a time-

domain technique. A state-space model of the system is required, which can represent a

multiple-input and multiple-output (MIMO) system as well as a SISO system.

1.2 Review of Nonlinear Control Design Methods

Today, many researchers and designers, from such broad areas as aircraft and

spacecraft control, robotics, process control, and biomedical engineering, have shown an

active interest in the development and applications of nonlinear control methodologies.

Linear control methods work well for the small range of the plant. But, when the required

operation range is large, a linear controller is likely to perform poorly because there is not

proper compensation for nonlinearities in the system.

When designing linear controllers, it is usually necessary to assume that the

parameters of the system model are reasonably well known. However, many control

problems involve uncertainties in the model parameters. A linear controller based on

inaccurate values of the model parameters may exhibit significant performance

degradation or even instability. Nonlinearities can be intentionally introduced into the

controller of a control system so that model uncertainties can be tolerated. Robust

controllers and adaptive controllers are two good examples.

Page 18: Weiwen Dissertation

4

The topic of nonlinear control design for large-range operation has attracted

particular attention because of the advent of microprocessors, which has made the

implementation of nonlinear controllers a relatively simple matter. Modern technology,

such as high-speed, high-accuracy robots and high-performance aircrafts, is also

demanding control systems with more stringent design specifications. Many new papers

and reports have recently been written on nonlinear control research and applications.

1.2.1 Nonlinear H∞ Method

The aim of the work performed in this area is to design a robust controller for

nonlinear systems using generalizations of the highly successful H∞ methods used in

linear systems theory [3, 4, 5, 6].

For the linear system:

( ) ( ) ( ) ( );

( ) ( ) ( ),

0;

.

u w

y yu

T

yu y

T

yu yu

x t Ax t B u t B w t

y t C x t D u t

where

D C

D D I

= + += +

=

=

&

(1.1)

u(t): input; y(t): output; w(t): disturbance.

The problem with H∞ full information control is finding a feedback controller, using the

state and disturbance that minimizes the closed-loop system infinity-norm.

2,[0, ]

,[0, ]

2,[0, ]

( )sup

( )

f

f

f

t

yw t

t

y tJ G

w t∞= =

Page 19: Weiwen Dissertation

5

when J< r, (r is called performance bound). A controller that satisfies this bound is called

a suboptimal controller. The following is the procedure of the Hamilton-Jacobi inequality

(HJI) equation-based design method.

The Hamiltonian Equations are described as

2

0

( , , ) ( ) ( ) ( ) ( ) 2 ( ){ ( ) ( ) ( ) ( )}

ft

T T T

u wJ u w p y t y t r w t w t p t Ax t B u t B w t x t dt= − + + + −∫ & .

( , , , , , ) 0J u w p u w pδ δ δ∇ =

( )

( )

x t

p t

⇒ =

&

&

2( ) ( )

( ) ( )

T T

u u w w

T T

y y

A B B r B B x t x tL

C C A p t p t

− + = − −

(1.2)

with L∞ =2T T

u u w w

T T

y y

A B B r B B

C C A

− − + − −

11 12( )

21 22

( ) ( )

( ) ( )f f fL t t

f f

t t t te

t t t t

φ φφ φ

∞ − − − = − −

1

22 21( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )T T

u u f fu t B P t x t B t t t t x t K t x tφ φ−= − = − − = − (1.3)

The feedback gain exists for arbitrary time intervals, and there is a solution to the H∞

sub-optimal control problem only if the Hamiltonian matrix has no purely imaginary

eigenvalues. The matrix P(t) is the solution of a Riccati equation. It comes from the

Hamilton equation

( ) ( ) ( ) ( ) ( )p t P t x t P t x t= +&& & , ( ) ( ) ( ).p t P t x t= (1.4)

Putting (1.4) into (1.2) yields

2( ) ( ) ( ) ( )( ) ( )T T T T

y y u u w wP t P t A A P t C C P t B B r B B P t−= − − − + −&

Page 20: Weiwen Dissertation

6

For the nonlinear systems,

G: ( ) ( ) 1( ) 2( ) ,

( ) 1( ) ,

x f x f x g x w g x u

y h x h x u

= + ∆ + += +

& (1.5)

Assume f (0) =0, h (0) =0, K: y->u.

( )f x∆ is bounded. 1 ( )( ( ) 1( )) (0, )h x h x h x I′ =

Lemma If ( ( ), ( ))f x h x is zero-state detectable and there exists a positive – definite

function V(x) such that the following Hamilton-Jacobi inequality (HJI) holds:

2

1 1( ) ( ) ( ) 1( ) 1 ( ) ( ) ( ) 2( ) 2 ( ) ( ) '( ) ( ) 0

4 4x x x x x

V x f x V x g x g x V x V x g x g x V x h x h xr

′ ′′ ′+ − + ≤

then the following state feedback law

1( ) 2 '( )

2x

u x g x V′= −

solves the performance problem for the system (1.5).

The key task for nonlinear H∞ control is to obtain necessary and sufficient

conditions from appropriate nonlinear generalizations of the Riccati equations. These

involve partial differential equations and inequalities. Local linearization of (1.5) at x=0,

gives

(A, B, C)=(1 2

( (0), (0), (0), (0))df dg dg dh

dx dx dx dx

If the H∞ control problem for the linearized system is solvable, then the H∞ problem for

the nonlinear system is solvable locally near x=0. A controller can be constructed near

x=0 using V (x) which is locally smooth.

Page 21: Weiwen Dissertation

7

1.2.2 Variable Structure, Sliding-Mode Control

Variable structure control [7, 8] has been widely used over the last decade for the

control of uncertain systems because of its robustness to modeling uncertainties and

disturbances.

Consider the dynamic system:

( ) ( ) ( ; ) ( ; ) ( ) ( )nx t f X t b X t u t d t= + + (1.6)

where u(t) is scalar control input, x is the scalar output of interest, and

( 1)[ , ,..., ]n TX x x x −= & is the state. The function ( ; )f X t is not exactly known, but the extent

of imprecision f∆ on ( ; )f X t is upper bounded by a known continuous function of X

and t; similar to the control gain b(X; t). The disturbance d (t) is unknown but bounded in

absolute value by a known continuous function of time. The control problem is to get the

state X to track a specific state ( 1)

,[ ,..., ]n T

d d d dX x x x−= & in the presence of model

imprecision on f(X;t), b(X;t) and disturbance of d(t). To guarantee that this is achievable

using a finite control u, it must be assumed:

0

0t

X=

=% (1.7)

where ( 1): [ , ,..., ]n T

dX X X x x x

−= − = &% % % % . A time-varying sliding surface s(t) is defined in the

state-space nR as ( ; ) 0s x t =% with

1( ; ) ( ) , 0nds X t x

dtλ λ−= + >% % (1.8)

where λ is a positive constant. Given initial condition (1.7), the problem of tracking

dX X≡ is equivalent to that of remaining on the surface s(t) for all t>0; indeed s ≡ 0

represents a linear differential equation whose unique solution is 0X ≡% . Thus, the

Page 22: Weiwen Dissertation

8

problem of tracking the n-dimensional vector d

x can be reduced to that of keeping the

scalar quantity s at zero. A sufficient condition for such positive invariance of s (t) is to

choose the control law u(t) of (1.6) to satisfy

21( ; )

2

ds x t s

dtη≤ − (1.9)

where η is a positive constant. Inequality (1.9) constrains trajectories to point towards

the surface s (t) (Fig. 1), and is referred to as the sliding condition.

S (t)

Figure 1: The Sliding Condition

1.2.3 Feedback Linearization

Feedback linearization techniques [7, 8] can be viewed as ways of transforming

original system models into equivalent models of a simpler form. Feedback linearization

is based on the idea of transforming nonlinear dynamics into a linear form by using state

feedback. It has two approaches: input-state linearization for complete linearization and

input-output linearization for partial linearization. They can be used for stabilization and

tracking control problems, single-input or multiple-input systems, and a number of

Page 23: Weiwen Dissertation

9

practical nonlinear control problems, both as a system analysis tool and a controller

design tool.

1.2.4 Adaptive Nonlinear Control

Currently the most systematic methodology for adaptive nonlinear control design is

backstepping [9, 10, 11], which is mainly applicable to systems having a cascaded or

triangular structure. The central idea of the approach is to recursively design controllers

for subsystems in the structure and “step back” the feedback signals towards the control

input. This differs from the conventional feedback linearization in its ability to avoid

cancellation of useful nonlinearities in pursuing the objectives of stabilization and

tracking. In addition, by utilizing the control Lyapunov function, backstepping has the

flexibility to introduce appropriate dynamics in order to make the system behave in a

desirable manner. However, no analytical measure of performance or notions of

optimality have been shown to exist for controllers derived via backstepping approaches.

The two main methods for adaptive backstepping design are the turning function

design and the modular design. These assume that the full state of the system is available

for measurement. If it is not available, the observer backstepping method [12] is used.

1.2.5 Recursive- Interlacing

The recursive-interlacing procedure was proposed for the design of globally-

stabilizing controllers [13, 14, 15]. The procedure introduces new interlacing steps and

combines them with the existing recursive or backstepping design. It is not limited to

systems of any specific order and imposes no restrictions on either locations or types of

Page 24: Weiwen Dissertation

10

(uncertain) dynamics. Backstepping design is included as a special case, and no

assumption is needed on the stability of the nominal system or on the existence of

Lyapunov function. The nonlinear system under investigation contains uncertainties that

do not satisfy any of the previously developed conditions for matching. The recursive-

interlacing procedure is a fully-programmed integration of four components: recursion

(or backstepping), forward interlacing, backward interlacing, and concepts of admissible

fictitious controls and Lyapunov functions.

1.3 Motivation of the Research

From the literature review, it appears that several unresolved issues exist in the

current nonlinear control methods, including

• The need for a model: nonlinear ∞H and feedback linearization requires a model

of the plant to make a design;

• The complexity of design procedure: recursive-interlacing has four components

for its design, and the nonlinear ∞H method requires partial differential equations

and inequalities;

• The lack of robustness: feedback linearization cannot deal with the variety of

parameters;

• Scope of performance improvement: the sliding mode has chattering phenomena,

as well as steady-state error.

Page 25: Weiwen Dissertation

11

Most nonlinear controllers are state feedback controllers. When the state of the

system is unavailable or the sensor is expensive, observers must be used in estimation.

The motivation of this research is to find a set of observer based the control systems that

are relatively independent of the mathematical model, perform better, and are simple to

implement.

Since Minorsky invented PID in 1922, PID-based control technology still remains a

tool of choice in over ninety percent of industrial applications. The goal of this research is

to find a set of novel, practical tools that make control design and tuning easy and

effective.

1.4 Problem Formulation

The Extended State Observer (ESO), proposed by Professor Jingqing Han, can

estimate the state without a mathematical model of the system. It is a novel concept for

observer design, estimating not only the state, but also the internal and external

disturbances, thus making disturbance rejection control possible. The invention of ESO is

a revolutionary concept for control theory and application. It has several properties

including model-independence, active estimation, compensation for disturbances, simple

design, and strong robustness. This method has evolved as an important technique for the

state feedback control of nonlinear systems.

In this dissertation, the concepts of the ESO, the High Gain Observer (HGO), and

the Sliding Mode Observer (SMO) are introduced in Chapter II. Chapter III presents a

Page 26: Weiwen Dissertation

12

comparative study of these three observers, which is based on the robustness of the

performance with respect to the uncertainties of the plant and the observer tracking

errors, both at steady-state and during transients. The optimal tuning methods for linear

active disturbance rejection control (LADRC) and loop-shaping are tested, and along

with active disturbance rejection control (ADRC), are applied to a servo motor system in

Chapter IV. A design procedure for ESO-based control systems is described. The active

magnetic-bearing benchmark problem is solved using LADRC in Chapter V, and Chapter

VI discusses the stability analysis of ADRC.

Page 27: Weiwen Dissertation

13

CHAPTER II

NONLINEAR OBSERVERS

Observers provide state estimates of the plant to closed-loop control algorithms.

The control algorithm is designed in two parts: a “full-state feedback” part based on the

assumption that all of the state variables can be measured and an observer to estimate the

state of the process based on the observer output. In this chapter, the concepts of

observer-based state feedback design are introduced first. The high gain observers,

sliding mode observers and extended state observers are reviewed, followed by an

introduction to ADRC.

Page 28: Weiwen Dissertation

14

2.1 Observer-Based State Feedback Design

The concept of separating the state feedback control design into the full-state

feedback part and observer is known as the separation principle, which has rigorous

validity in linear systems, as well as a limited class of nonlinear systems. Figure 2

illustrates the state-feedback design using an observer.

B

L

A

C∫xu +

++

+−

To controller

yy

Estimated

outputPlant output

Estimated

output error

Figure 2: State-Feedback Design using an Observer

Consider a linear, continuous-time dynamic system

x Ax Bu

y Cx

= +=

& (2.1)

A full-order observer for the linear process is defined by

ˆ ˆ ˆ( )x Ax L y Cx Bu= + − +& (2.2)

The estimation error is

ˆe x x= − (2.3)

From (2.2) and (2.3) we have

ˆ( )e A LC e Ae= − =& (2.4)

Page 29: Weiwen Dissertation

15

The estimation error will converge to zero if A is a stability matrix. When A is constant,

its eigenvalues must be in the open left half-plane. This asymptotic state estimator is

known as the Luenberger observer [16]. Since the matrices A, B and C are defined by the

plant, the only freedom in the design of the observer is in the selection of the gain matrix

L. Optimization and pole placement are two standard design methods.

Since the observer given by (2.2) has the structure of a Kalman filter, its gain matrix

can be chosen as a Kalman filter gain matrix [5], i.e,

1L PC R

−′= (2.5)

where P is the covariance matrix of the estimation error and satisfies the matrix Riccati

equation

1P AP PA PC R CP Q

−′ ′= + − +& (2.6)

where R is a positive definite matrix and Q is a positive semi-definite matrix. In most

applications the steady-state covariance matrix is used in (2.5). This matrix is given by

setting P& in (2.6) to zero. The resulting equation is known as the algebraic Riccati

equation. Algorithms to solve the algebraic Riccati equation are included in popular

control system software packages such as MATLAB and CONTROL-C. In order to make

the gain matrix given by (2.5) and (2.6) to be genuinely optimum, the process noise and

the observation noise must be white, with the matrices Q and R as their spectral densities.

It is nearly impossible to determine these spectral density matrices in practical

applications. Hence, the matrices Q and R are best treated as design parameters that can

be varied to achieve overall system design objectives.

An alternative to solving the algebraic Riccati equation in order to obtain the

observer gain matrix is to select L to place the poles of the observer [17, 18, 19, 20], i.e.,

Page 30: Weiwen Dissertation

16

the eigenvalues of A in (2.4). From (2.4), the characteristic equation of the error is now

given by

det[ ( )] 0sI A LC− − = (2.7)

If L is chosen so that A-LC has stable and reasonably fast eigenvalues, e will then decay

to zero and remain there, independent of the known forcing function u (t), its effect on the

state x (t), and irrespective of the initial condition e (0). Therefore, ˆ( )x t will converge to

x (t), regardless of the value ˆ(0)x . Furthermore, the dynamics of the error can be chosen

for stability, as well as for speed, as opposed to the open-loop dynamics determined by A.

If we do not have an accurate model of the plant (A, B, C), the dynamics of the error are

no longer governed by (2.4). However, we can typically choose L so that the error system

is at least stable and the error remains acceptably small, even with (small) modeling

errors and disturbing inputs. It is important to emphasize that the nature of the plant and

that of the estimator are quite different. The selection of L can be approached in exactly

the same fashion that K is selected in the control-law design. If the desired location of the

estimator error poles is specified as

1 2, ,..., ,i n

s β β β=

then the desired estimator characteristic equation is

1 2( ) ( )( )...( )e n

s s s sα β β β= − − − (2.8)

We can solve for L by comparing coefficients in (2.7) and (2.8).

The observer is used mainly to estimate the state for the purpose of feedback control.

ˆu Gx= − (2.9)

where

x x e= − (2.10)

Page 31: Weiwen Dissertation

17

The closed-loop dynamics is given in part by

( )x Ax BG x e= − −& (2.11)

when a full-order observer is used

ˆ ( )e Ae A LC e= = −& (2.12)

Thus, the complete closed-loop dynamics is

0

x A BG BG x

e A LC e

− = −

&

& (2.13)

Suppose

0

A BG BGA

A LC

− = −

0sI A sI A BG sI A LC− = − + − + = (2.14)

The closed-loop eigenvalues are the eigenvalues of A-BG, the full-state feedback system;

and the eigenvalues of A-LC, the dynamics matrix of the observer. This is a statement of

the well-known separation principle, which permits one to design the observer and the

full-state feedback control independently, with the assurance that the poles of the closed-

loop dynamic system will be the poles selected for the full-state feedback system and

those selected for the observer.

Page 32: Weiwen Dissertation

18

2.2 High Gain Observers

The high gain observer has been used in the design of output feedback controllers

because of its ability to robustly estimate the unmeasured states and derivatives of the

output, while asymptotically attenuating disturbances [21, 22, 23, 24, 25, 26]. The

technique was first introduced by Esfandiari and Khalil and since then has been used in

approximately forty papers.

Consider the second-order nonlinear system:

1 2

2

1

( , )

x x

x x u

y x

== Φ

=

&

& (2.15)

Supposing that ( )u xγ= is a state feedback control that stabilizes the origin x = 0 of the

closed-loop system, the following observer is used

1 2 1 1

2 0 2 1

ˆ ˆ ˆ( )

ˆ ˆ ˆ( , ) ( )

x x h y x

x x u h y x

= + −

= Φ + −

&

& (2.16)

where, 0ˆ( , )x uΦ is a nominal model of the nonlinear function ( , )x uΦ . The estimation

error equations are

1 1 1 2

2 2 1 ( , )

x h x x

x h x x xδ= − +

= − +

&% % %

&% % %

(2.17)

where 0ˆ( , ) ( , ( )) ( , ( ))x x x x x xδ γ γ= Φ − Φ) )

%

1 1 1

2 2 2

ˆ

ˆ

x x xx

x x x

− = = −

%%

% (2.18)

Page 33: Weiwen Dissertation

19

As in any asymptotic observer, the observer gain 1

2

hH

h

=

is designed to achieve

asymptotic error convergence; that is, lim ( ) 0t

x t→∞ =% . In the absence of the disturbance

term ( , ),x xδ % asymptotic error convergence is achieved by designing the observer gain

such that the matrix

1

0

2

1

0

hA

h

− = −

(2.19)

is Hurwitz; that is, its eigenvalues have negative real parts. For this second-order system,

A0 is Hurwitz for any positive constants h1 and h2. In the presence ofδ , the observer gain

must be designed with the additional goal of rejecting the effect of the disturbance term

δ on the estimation error, x% . This is ideally achieved, for any disturbance termδ , if the

transfer function from δ to x% is identically zero. The observer gain can then be

designed 1 2 1h h>> >> , such that the transfer function 0H is arbitrarily close to zero.

0 2

11 2

11( )H s

s hs h s h

= ++ +

(2.20)

In particular, taking

1 21 2 2

,h hα αε ε

= = (2.21)

for some positive constant 1 2, andα α ε , with 1,ε << 0 0lim ( ) 0.H sε → =

The scaled estimation errors are defined as

11 2 2,

xxη η

ε= =%

% (2.22)

Then the newly defined variables satisfy the following equation

1 1 1 2εη α η η= − +&

Page 34: Weiwen Dissertation

20

2 2 1 ( , )x xεη α η εδ= − +& % (2.23)

This equation shows that reducing ε diminishes the effect of the disturbance termδ . It

also shows that, for smallε , the dynamics of the estimation error will be much faster than

the dynamics of x. But the change of variable (2.22) may cause the initial condition

1(0)η to be of order 1

( )Oε

, even when 1(0)x% is of order (1)O . With this initial condition,

the solution of (2.22) will contain a term of the form /1( ) at

ε− for some a>0. While this

exponential mode decays rapidly, it exhibits an impulse-like behavior where the transient

peaks to 1

( )Oε

values before decaying toward zero. This behavior is known as the

peaking phenomenon, which is an intrinsic feature of any HGO design that rejects the

effect of the disturbance term δ in (2.17); that is, any design with 2 1 1.h h>> >> The peak

phenomenon could destabilize the closed-loop system, as the impulse-like behavior is

transmitted from the observer to the plant.

The HGO is basically an approximate differentiator, which can be easily seen in a

special case when the nominal function 0Φ is chosen to be zero; for which the observer

is linear. For the full-order observer (2.16) the transfer function from y to x)

is given by

1 22

2

1 2

1 ( / ) 1

( )

s

s ss s

εα ααε α ε α

+ → + +

as 0ε →

Realizing that the HGO is basically an approximate differentiator, the measurement

noise and unmodeled high frequency sensor dynamics will put a practical limit on how

small ε could be.

Page 35: Weiwen Dissertation

21

The combination of globally-bounded state feedback control with an HGO allows

for a separation approach where the state feedback control is designed to meet the design

objectives first. The HGO follows quickly enough to recover the performance achieved

under state feedback. Most papers that use an HGO incorporate this separation approach.

The HGO has recently been applied in many nonlinear systems. Henrik Rehbinder

and Xiaoming Hu [27] used it to estimate nonlinear pitch and roll for walking robots.

Seungrohk Oh and Hassan K.Khalil [28] discovered the use of nonlinear output-feedback

tracking using HGOs and variable structure control. E.S.Shin and K.W.Lee [29] designed

a robust output feedback control of robot manipulators. J. De Leon, K Busawon, and G.

Acosta [30] used the digital implementation of a HGO-based control for a rigid robot.

Nael H. El-Farra and Pamagiotis D. Christofides [31] designed an HGO with a bounded,

robust, optimal state feedback controller for a broad class of nonlinear processes with

uncertain variables and actuator constraints.

2.3 Sliding Mode Observers

Slotune, Hedrick, and Misawa [32] proposed the design of state observers using

sliding surfaces. Consider a second order system

1x f=&&

where f is a nonlinear, uncertain function of the state x. Based on the above discussion, an

observer structure of the following form is used

Page 36: Weiwen Dissertation

22

1 1 1 2 1 1

2 2 1 2 1

ˆ ˆ sgn( )

ˆ sgn( )

x x x k x

x x f k x

α

α

= − + −

= − + −

& % %

)& % %

(2.24)

where 1 1 1ˆx x x= −% , f

) is the estimated value of f, and the constants

iα ( 1,2)i = are chosen

as in a Luenberger observer in order to place the poles of the linearized system at desired

locations.

The error dynamics can be written:

1 1 1 2 1 1

2 2 1 2 1

sgn( )

sgn( )

x x x k x

x x f k x

αα

= − + −

= − + ∆ −

&% % % %

&% % %

The dynamic uncertainty f∆ is assumed to be explicitly bounded. The switching gain k1

is chosen as a bound on the steady-state estimation error on x2, and k2 is chosen to be

larger than the modeling errors.

2.4 Nonlinear Extended State Observers

The extended state observer is a novel observer for a class of uncertain systems,

proposed by Han [33, 34, 39].

Consider an th

n order nonlinear system described by

( ) ( 1)( , ,..., , ( )) ( )n ny f y y y w t bu t−= +& (2.25)

where f (.) is an uncertain function, ( )w t is the unknown external disturbance, u (t) is the

known control input, and y (t) is the measured output. The system is equivalent to

Page 37: Weiwen Dissertation

23

1 2

1

1

1

:

( )

n n

n

x x

x x bu

x a t

y x

+

+

= = + = =

&

&

&

1

( )n

i

i i

f fa t x w

x w=

∂ ∂= +∂ ∂∑ & & (2.26)

where f (.) has been regarded as an extended state 1nx − . Then the nonlinear continuous

observer is designed for system (2.25):

1

1 2 01 1

1 0

1 0 1 1

( )

( )

:

( )

( )

n n n n

n n n

e z y t

z z g e

z z g e bu

z g e

β

ββ

+

+ + +

= − = − = − +

= −

&

&

&

(2.27)

when t → ∞ , ( ) ( )i i

z t x t→ ( 1)i n∈ + , 1nz + is the estimate of the extended state f . The

observer (2.27) is the ESO for system (2.25). The observer can be given as:

1 2 01 1 1 1

1 0 1 0

1 1 1 1, 1

( ( ), , )

:

( ( ), , )

( ( ), )

n n n n n

n on n n

z z fal z y t

z z fal z y t b u

z fal z y t

β α δ

β α δβ α δ

+ + + +

= − − = − − + = − −

&

&

&

(2.28)

where b0 is the normal value of b, and fal (.) is defined as:

1

( ),

( , , ),

sign

fal

α

α

ε ε ε δε α δ ε ε δ

δ −

>=

0δ > (2.29)

The nonlinear function in (2.29), which is used to make the observer more efficient,

was selected heuristically based on experimental results. Intuitively, it is a nonlinear gain

function where small errors correspond to higher gains, and large errors correspond to

smaller gains. When the error is small, it prevents excessive gain, which causes high

frequency chattering in some simulation studies. Figure 3 illustrates the difference

Page 38: Weiwen Dissertation

24

between the linear and nonlinear gain. If i

α are chosen as unity, then the observer is

equal to the well-known Luenberger observer. The ESO does not include a model, yet

can reconstruct states reliably for nonlinear plants. Because it does not use a model, it is

simpler and easier to construct, easier to implement due to its efficiency in many cases,

and freer from model uncertainties such as parameter variations and external

disturbances. Therefore, in this case, it is robust. If part of 1 2( , , , )f t x x w , says

1 1 2( , , , )f t x x w is known, and then it should be incorporated into the observer as

1 2 01 1 1 1

1 1 1 0 1 0

1 1 1 1 1 1, 1

( ( ), , )

:

( , ,... , ) ( ( ), , )

( , ,..., , ) ( ( ), )

n n n n n n

n n on n n

z z fal z y t

z z f t z z w fal z y t b u

z h t z z w fal z y t

β α χ

β α δβ α δ

+ + + +

= − − = + − − + = − −

&

&

&

(2.30)

where 1 1( , ,...., , )n

h t z z w = 1 1( , ,..., , )n

f t z z w& . This will make the observer more efficient.

The ESO is not only a state observer, but also a disturbance observer. Since Han’s

observer uses nonlinear functions, it was named Nonlinear Extended State Observer

(NESO) and can be applied for MIMO systems also.

y = x

y = f( x, αααα , δδδδ )

x

y

1

δδδδ

Figure 3: Comparison of Linear and Nonlinear Gains

Page 39: Weiwen Dissertation

25

For example, considering an n-dimensional p-input q-output state equation

( )x Ax B u w

y Cx

= + +=

& (2.31)

where w is disturbance, a NESO is defined as

ˆ ˆ ( )

ˆ ( )x x x

x Ax Bu F e

x F e

ββ

= + −

= −

&

& (2.32)

where

ˆ( ) : ( ) ( )e t x t x t= − ;

ˆx

x : Estimation of Extended States;

( )F e 1 1: ( ( , , ),......, ( , , ))n n

fal e fal eα δ α δ= , a 1n× vector;

1 1( ) : ( ( , , ),......, ( , , ))x n n x x

F e fal e fal eα δ α δ+ += , a 1n× vector.

For

ˆx

Bw x= (2.33)

If B has full column rank, the unique solution w can be obtained from the above equation

[35].

Page 40: Weiwen Dissertation

26

2.5 Active Disturbance Rejection Control

Based on ESO, ADRC is developed. Consider a second-order system:

1 2

2 1 2 0

1

( , , , )

x x

x f t x x w b u

y x

= = + =

&

& (2.34)

where 1 2( , , , )f t x x w is the uncertainty of the system. The uncertainty could be external

and internal disturbances, such as measurement noise, sensor noise, frictions, backlash,

and hysteresis, or the variation and uncertainties of the plant dynamics. The inputs of the

system are ,w u , the output is y , and 0b is the known constant. ADRC is applied to

counteract the uncertainty by the estimated signals [36]. The structure of the controller is

illustrated in the following figure.

Profile+_

+_

Non-linearCombination +_

PlantControlled

ExtendedState Observer

(ESO)

1/b0 b0

v(t) v2(t)

v1(t)

u0(t) u(t) y(t)

z3(t)

z2(t)

z1(t)

w(t)

Figure 4: Structure of ADRC

ADRC mainly consists of three parts: the ESO, the Profile Generator, and the

Nonlinear Combination. Using ESO given above to (2.34), we get the z1, z2, z3, which are

Page 41: Weiwen Dissertation

27

the estimated 1x , 2x and 1 2( , , , )f t x x w , respectively. The plant can now be dynamically

compensated by

0 3 0( ) ( ) ( ) /u t u t z t b= − (2.35)

Combining (2.34) with (2.35), we get

1 2

2 0 0

1

x x

x b u

y x

= = =

&

& (2.36)

The control problem of (2.34) is now simplified to a double integrator control problem

(2.36). Here the nonlinear combination takes the form:

0 ( ) ( , , ) ( , , )p p p p d d d d

u t k fal k falε α δ ε α δ= + (2.37)

where 1 1Pv zε = − , 2 2d

v zε = − are error and its differentiation, respectively. The

controller gains are p

k andd

k . The nonlinear controller performs better than the linear

controller [39], providing good gain scheduling and completely agreeing with the

intuition obtained from working with practical problems. As a matter of fact, many fuzzy

logic controllers exhibit these kinds of characteristics on their error surface. ADRC is

defined as the control method where the value of 1 2( , , , )f t x x w is estimated in real time

and compensated by the use of the control signal u . This control law can also be viewed

as an integrator-less PID because the dynamically compensated plant provides the

integral action.

Page 42: Weiwen Dissertation

28

2.6 Summary

Observer structures usually need to include a plant model in their equations which

inevitably accompanies some practical burdens. Without a model, observers cannot be

constructed: even if it is available, unless it is accurate enough, a reliable state

reconstruction could not be expected. Even when a model is accurate enough, the

observer could often become too complicated (because of model complexity) to have any

practical use, especially on a real-time basis. The advantages and benefits of an accurate

and efficient model cannot be emphasized too much, when it is available, unless such a

model is difficult to obtain. HGOs, SMOs, and ESOs are three kinds of observers

designed for the plant in the presence of disturbances, dynamic uncertainties, and

nonlinearities in practical applications.

Page 43: Weiwen Dissertation

29

CHAPTER III

COMPARISON OF ADVANCED STATE OBSERVER DESIGN TECHNIQUES

This chapter presents a comparison study of the characteristics and performances of

the HGO, SMO, and ESO. These observers were originally proposed to address the

dependence of the classical observers, such as the Kalman Filter and the Luenberger

observer, on the accurate mathematical representation of the plant. Several novel

nonlinear gain functions are proposed to address the difficulty of dealing with unknown

initial conditions. The simulations conducted give insight into observer behavior in both

open-loop and closed–loop scenarios. The experimental results are also provided to give

realism.

Page 44: Weiwen Dissertation

30

3.1 Simulation Results

A typical servo motor plant is made up of a motor, a servo drive amplifier, a system

of gears, and a load. This plant is used for software and hardware in the loop simulation.

A current drive is typically used in high performance servo motor systems to reduce the

order of the mathematic model of the servomotor by eliminating the effect of the

inductance. In motion control literature, a servo motor can be approximated as a linear,

time-invariant equation of the following form:

c b

y y uJ J

= +&& & (3.1)

where y is position, u is the motor current, J and, c are the total inertia and total viscous

friction reflected to the load, and b is the total hardware gain which typically includes the

gear ratio. The transfer function is

( )( )

bG s

s Js c=

+ (3.2)

3.1.1 Open-loop Comparison

The criteria for comparison is based on the robustness of the performance with

respect to the uncertainties of plant and the observer tracking errors, both at steady state

and during transients. Simulations are conducted to give insight into observer behavior in

both open-loop and closed-loop scenarios.

An industrial motion control test-bed made by ECP [38] is used for simulation. Its

linear model was derived as:

1.41 23.2y y u= − +&& & (3.3)

Page 45: Weiwen Dissertation

31

where y is the output position, and u is the control voltage sent to the power amplifier

that drives the motor. Initially, no friction, disturbance or backlash is intentionally added.

The model can be written as:

1 2

2 2

1

23.2 1.41

x x

x u x

y x

= = − =

&

& (3.4)

The HGO for the model (3.4) is

1 2 1 1

2 2 2 1

ˆ ˆ ˆ( )

ˆ ˆ ˆ23.2 1.41 ( )

x x h y x

x u x h y x

= + −

= − + −

&

& (3.5)

The observer gains are adjusted as

1 21 2 2

,h hγ γε ε

= = (3.6)

where 0 1ε< << .

The SMO is designed as

1 1 2 1

2 2 2 2

ˆ ˆ sgn( )

ˆ ˆ23.2 1.41 sgn( )

x e x k e

x e u x k e

γ

γ

= − + −

= − + − −

&

& (3.7)

The extended state-space model for (3.4) is

1 2

2 3

3

1

23.2

0

x x

x x u

x

y x

= = + = =

&

&

&

(3.8)

where 21.41x− is treated as 1 2( , , , )f t x x w , as well as an extended state, 3x .

Page 46: Weiwen Dissertation

32

The NESO is given as:

1 2 1 1

2 3 2 2

3 3 3

( )

( ) 23.2

( )

z z g e

z z g e u

z g e

ββ

β

= + = + + =

&

&

&

(3.9)

where e=y-z1. ig (.) 1,2,3i = are the same as (2.29). The Matlab/Simulink package from

Mathworks was used for the simulation in this research. The simulation model is shown

in Figure 5.

Figure 5: Open Loop Simulation Model

Pole placement is used to determine the position of the poles at –4.2, {γ1 , γ2 } in

HGO and SMO, and {βi, i = 1,2,3}in NESO. In addition, ε=0.2 is used for the HGO,

k1=0.5 and k2=15 are used for the SMO, αi = {1, .5, .25} and δ=10-3

are used for the

NESO. All three observers were implemented digitally with a sampling rate of 1 kHz.

The output measurement is corrupted by white noise to make the comparison realistic.

The quality of observers is measured by the speed and accuracy of the states of the

Page 47: Weiwen Dissertation

33

observer converging to those of the plant. To make the comparison fair, the parameters of

the observers are adjusted so that their sensitivities to measurement noise are roughly the

same. The exact outputs of y and y& are obtained directly from the simulation model of

the plant to calculate the state estimation error.

For open-loop tests, the input to the plant is a step function, and the observers are

evaluated according to their capability in tracking the step response. The tests were run

in three conditions:

• Nominal plant;

• Nominal plant plus coulomb friction;

• Nominal plant with 100% increase in inertia.

The same set of observer parameters are used in all simulations. Figure 6 illustrates the

position and velocity estimation errors for the nominal plant in terms of the tracking

errors for y and y& .

Figure 6: Estimation Error of the Nominal Plant

0 1 2 3 4 5- 0 . 0 2 5

- 0 . 0 2

- 0 . 0 1 5

- 0 . 0 1

- 0 . 0 0 5

0

0 . 0 0 5

0 . 0 1

0 . 0 1 5

T i m e ( s e c . )

Y-Z

1 e

stim

atio

n e

rro

r

N E S O

S M O

H G O

0 1 2 3 4 5- 0 . 4

- 0 . 3

- 0 . 2

- 0 . 1

0

0 . 1

0 . 2

0 . 3

T i m e ( s e c . )

Y2

-Z2

estim

atio

n e

rro

r

N E S O

S M O

H G O

Page 48: Weiwen Dissertation

34

All three observers perform well in steady-state and have roughly the same

accuracy and sensitivity to the noise. As expected, NESO takes longer to reach steady-

state, because it does not assume the knowledge of the plant dynamics. Interestingly, z3

converges to the unknown function f = -1.41 y& , as shown in Figure 7.

0 1 2 3 4 5- 2 5

- 2 0

- 1 5

- 1 0

- 5

0

5

T i m e ( s e c . )

Z 3 ( t )

a ( t )

Figure 7: x3=a (t) and its Estimation z3

Figure 8 illustrates the tracking errors for the plant with added coulomb friction.

Only the estimated errors of NESO are zero, clearly demonstrating that NESO is much

more robust than HGO and SMO in the presence of disturbance. Once again, z3

converges quickly and accurately to the combination of unknown dynamics and

disturbance, a(t) = ( , , )f y y w& , as shown in Figure 9. Figure 10 and 11 illustrate the

simulation results for the plant with a 100% increase of inertia. Compared with the other

two observers, the NESO is the quickest in following the states. Its performance is the

best overall, followed by SMO.

Page 49: Weiwen Dissertation

35

Figure 8: Estimation Error of the Plant with 0.5N-m Coulomb Friction

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 2 5

- 2 0

- 1 5

- 1 0

- 5

0

5

T i m e ( s e c . )

Co

ulo

mb

fri

ctio

n

Z 3 ( t )

a ( t )

Figure 9: Disturbance and its Estimation

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 0 . 0 7

- 0 . 0 6

- 0 . 0 5

- 0 . 0 4

- 0 . 0 3

- 0 . 0 2

- 0 . 0 1

0

0 . 0 1

0 . 0 2

T i m e ( s e c . )

Y-Z

1 e

stim

ati

on

err

or N E S O

S M O

H G O

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 1 . 8

- 1 . 6

- 1 . 4

- 1 . 2

- 1

- 0 . 8

- 0 . 6

- 0 . 4

- 0 . 2

0

0 . 2

T i m e ( s e c . )

Y2

-Z2

es

tim

ati

on

err

or

N E S O

S M O

H G O

Page 50: Weiwen Dissertation

36

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 0 . 0 6

- 0 . 0 5

- 0 . 0 4

- 0 . 0 3

- 0 . 0 2

- 0 . 0 1

0

0 . 0 1

0 . 0 2

T i m e ( s e c . )

Y1

-Z1

es

tim

atio

n e

rro

r

N E S O

S M O

H G O

Figure 10: Estimated Error of the Plant with 100% Change of Inertia

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 2 5

- 2 0

- 1 5

- 1 0

- 5

0

5

T i m e ( s e c . )

Dis

turb

an

ce

Z 3 ( t )

a ( t )

Figure 11: Disturbance and its Estimation

3.1.2 Selection of Nonlinear Gains for NESO

The nonlinear gain function for NESO was first proposed by J. Han [39]. The

research for this dissertation revealed that, for the plant with unknown initial conditions,

a new nonlinear function i

f (.), as shown in (3.10), could be used in NESO to avoid

significant transient estimation error:

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 0 . 0 6

- 0 . 0 5

- 0 . 0 4

- 0 . 0 3

- 0 . 0 2

- 0 . 0 1

0

0 . 0 1

0 . 0 2

T i m e ( s e c . )

Y1

-Z1

esti

ma

tio

n e

rro

r

N E S O

S M O

H G O

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 1 . 4

- 1 . 2

- 1

- 0 . 8

- 0 . 6

- 0 . 4

- 0 . 2

0

0 . 2

0 . 4

T i m e ( s e c . )

Y2

-Z2

es

tim

atio

n e

rro

rN E S O

S M O

H G O

Page 51: Weiwen Dissertation

37

2 1 2

1 2

1

( )*( )* ,( , , )

* , , 0

i i i

i i i

i

k e sign e k k ef e k k

k e e

δ δδ δ

+ − >= ≤ >

(3.10)

with 1 2, 0i ik k > . Furthermore, by choosing 0iα < in (2.29), the transient error was

significantly reduced. Three curves from (2.29) and (3.10) are shown in Figure 12 to

illustrate the differences. As in (2.29), δ defines the range of a high gain section where

the observer is very aggressive. This range is usually small.

δδδδ - δδδδ x

y( . )i

f

0

g(.),

-..-..

-.-.-

----

g(.),

0 1α< <0α <

Figure 12: Nonlinear Gain Functions

The following simulation tests were performed for the comparisons of three gain

functions for NESO as shown in Figure 12. The initial conditions are set as

(0) 10y = (rev) and (0) 0y =& . The observer poles used in simulation are placed at –8

rad/sec. The simulation results are shown in Figure 13.

The corresponding gain parameters that are used in simulation are:

(.)if :

11 12 13 1 2 324, 192, 512, 1,k k k δ δ δ= = = = = =

21 22 23200, 60, 130.k k k= = − = −

1(.)g : 11 12 1324, 192, 512,k k k= = = 1 2 3 1δ δ δ= = = ,

1 2 32, 4, 4.α α α= = − = −

2 (.)g : 11 12 1324, 192, 512,k k k= = = 1 2 3 1δ δ δ= = = ,

1 2 32, .2, .2.α α α= = =

Page 52: Weiwen Dissertation

38

Figure 13: Estimated Error of the Plant with Initial Values

The simulation results indicate clearly that the 1(.)g and the (.)if

function achieve the

best performance with the smallest tracking errors. The results also suggest that the

negative power should be used in (2.29) to counter unknown initial conditions.

0 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6- 1

- 0 . 5

0

0 . 5

1

1 . 5

2

2 . 5

3

3 . 5

4

T i m e ( s e c . )

Y1

-Z1

es

tim

atio

n e

rro

r

f i ( . ) - . - . - . g 1 ( . ) g 2 ( . ) . . . . . .

0 0 . 2 0 . 4 0 . 6 0 . 8 1 1 . 2 1 . 4 1 . 6 1 . 8 2- 1 4

- 1 2

- 1 0

- 8

- 6

- 4

- 2

0

2

T i m e ( s e c . )

Y2

-Z2

esti

ma

tio

n e

rro

r

f i ( . ) - . - . - . g 1 ( . ) g 2 ( . ) . . . . . .

0 0 . 2 0 . 4 0 . 6 0 . 8 1 1 . 2 1 . 4 1 . 6 1 . 8 2- 3 5

- 3 0

- 2 5

- 2 0

- 1 5

- 1 0

- 5

0

5

T i m e ( s e c . )

Y3

-Z3

es

tim

atio

n e

rro

r

f i ( . ) - . - . - . g 1 ( . ) g 2 ( . ) . . . . . .

Page 53: Weiwen Dissertation

39

3.1.3 Closed-loop Comparison

Based on their open loop performance, NESO and SMO are evaluated in a closed-

loop feedback setting, such as the one in Figure 14 for NESO. The profile generator

provides the desired state trajectory in both y and y& , using an industry standard

trapezoidal profile. Based on the separation principle, the controller is designed

independently, assuming that all states are accessible in the control law.

Profile

Generator+_

PD +_ Plant

Extended

State Observer

(ESO)

1/b0 b0

r(t)

v1(t)

u0(t) u(t) y(t)

z3(t)

z2(t)

z1(t)

w(t)

Figure 14: Observer-based State Feedback Control Configurations

In the case of NESO, the extended state information, z3, which converges to x3=f

(y, y& , w), is used to compensate for the unknown f (y, y& , w). In particular, the control law

is

3 0

( ) /u z Ke b= − + (3.11)

where e=[v1-z1, -z2] T

and K is the state feedback gain that is equivalent to a proportional-

derivative (PD) controller design. Note that2

z− , instead of1 2( )v t z−& , is used to avoid

taking the derivative of the set point. It is also used to make the closed-loop transfer

function a pure second-order without a zero. Substituting (3.9) in (2.29),

3

( ( , , ) )y f y y w z Ke= − +&& & (3.12)

Page 54: Weiwen Dissertation

40

K can be determined via pole-placement. More details about this design strategy can be

found in [40-43].

For SMO-based state feedback design, only the position and velocity estimates, z1

and z2, are available and the corresponding PD design yields the following closed-loop

system,

0( , , ) 1.41y f y y w Ke y Ke= + = − +&& & & (3.13)

Note that the extended state, z3, is not available in SMO. The poles of the observers are

selected as –12rad/sec. For the controller design, the closed-loop poles are placed at –15

rad/sec. In addition, k1=0.5 and k2=15 are used for SMO, and αi = {1, 0.5, 0.25} and

δ=10-3

are used for NESO. For the sake of fairness, the same observer and control poles

are used for both NESO- and SMO-based designs. The main difference in design is that

the NESO-based method assumes no knowledge of f (y, y& , w).

Simulation results are shown in Figures 15, 16, and 17. Both control systems have

similar output responses for the nominal plant. However, as soon as unknown friction or

disturbances are introduced, the differences between NESO and SMO become apparent;

indicating that the NESO-based design has inherent robustness against the uncertainties.

By estimating f (y, y& , w), instead of modeling it, the controller becomes independent of it.

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

T i m e ( s e c . )

Po

sitio

n e

rro

r (r

ev.)

N E S O . . . . . . . S M O

Figure 15: Nominal Responses of the Control Systems

Page 55: Weiwen Dissertation

41

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

T i m e ( s e c . )

Po

sit

ion

err

or

(re

v.)

N E S O . . . . . . . S M O

Figure 16: Simulation Results with 0.5 N-m Coulomb Frictions

0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4 4 . 5 5- 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

T i m e ( s e c . )

Po

sitio

n e

rro

r (r

ev

.)

N E S O . . . . . . . S M O

Figure 17: Simulation Results with Sinusoid Disturbance

3.2 Hardware Test Results

An industrial motion control test-bed is used to verify the above results and show

potential practical applications. The setup includes a PC-based control platform and a DC

brushless servo system, shown in Figures 18 and 19.

Page 56: Weiwen Dissertation

42

0-5V

Figure 18: Experimental Setup

PC-basedADRC

DACDC Singal

Conditioning

DC drive

(2 channels)

Electro-

mechanicalPlant

Encoders

Quadrature

CountingBoard

Disturbance

Signal

Figure 19: A Diagram for DC Brushless Servo System

The servo system includes a power amplifier, an encoder that provides the position

measurement, and two motors: one as an actuator, and the other as a disturbance source.

The inertia, friction and backlash are all adjustable, making it convenient to test the

control algorithms. The input to the plant is a voltage signal to the servo current

Plant DC drive

Signal

Generator

DC Signal Conditioning

LS7166

Data acquisition

board (Clock 8254,

DAC, RS232)

+/-

3.5V

Page 57: Weiwen Dissertation

43

amplifier. The amplifier input is rated for +/- 10 volts peak and +/- 3.5 volts safe. A safe

value is used because the servo drive for the plant is a dumb amplifier, meaning there is

no over-current protection. If the safe limit were not used, a control scheme would have

to be implemented to prevent damage to the drive. For details on the current drive, see

[38]. A Pentium 133 MHz PC running in DOS is programmed as the controller. It

contains a CIO-DAS16/F data acquisition card to read the position encoder output signal.

This card has two 12-bit analog output channels that are configured 0-5 volts. For details

on setting and programming this card, see [44]. Since the output from the data

acquisition card is 0-5 volts, and +/-3.5 volts is required by the servo amplifier, additional

signal conditioning circuit had to be added. Since the feedback from the control loop is a

quadrature encoder signal, a special quadrature encoder data acquisition card is used

(LS7166 by US Digital). This card can accept input frequencies from DC to 10 MHZ and

is capable of reading four encoders simultaneously. The sampling frequency is 1 kHz.

The output of the controller is limited to ± 3.5 V. The drive system has a dead zone of

± 0.5 V.

The plant is modeled approximately as it was in (3.1). Initially, no friction,

disturbance or backlash is intentionally added. To verify the effectiveness of the NESO,

the same controller poles are used for the NESO-based and SMO-based control systems.

The response of the nominal system is plotted in Figure 19. Figure 20 shows the response

of the plant having coulomb friction. The results indicate that the NESO-based controller

performs better in both steady state accuracy and transient response. A chattering

problem is also apparent in the SMO-based design.

Page 58: Weiwen Dissertation

44

In general, the hardware test results are consistent with those of the software

simulations.

Figure 20: Responses to the Nominal Plant

0 1 2 3 4 5 6 7 8 9 1 00

0 . 2

0 . 4

0 . 6

0 . 8

1

1 . 2

1 . 4

Po

sit

ion (

rev

.)

N E S O . . . . . . . S M O

0 1 2 3 4 5 6 7 8 9 1 0- 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

0 . 3 5

Po

sit

ion

err

or

(re

v.)

0 1 2 3 4 5 6 7 8 9 1 0- 2

- 1 . 5

- 1

- 0 . 5

0

0 . 5

1

1 . 5

2

2 . 5

3

T i m e ( s e c . )

Co

ntr

ol (v

olta

ge

)

Page 59: Weiwen Dissertation

45

Figure 21: Responses to Coulomb Friction

0 1 2 3 4 5 6 7 8 9 1 00

0 . 2

0 . 4

0 . 6

0 . 8

1

1 . 2

1 . 4

Po

sitio

n (

rev.)

N E S O . . . . . . S M O

0 1 2 3 4 5 6 7 8 9 1 0- 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

0 . 2 5

0 . 3

0 . 3 5

Po

sitio

n e

rro

r (r

ev

.)

0 1 2 3 4 5 6 7 8 9 1 0- 1 . 5

- 1

- 0 . 5

0

0 . 5

1

1 . 5

2

2 . 5

3

3 . 5

T i m e ( s e c . )

Co

ntr

ol (v

olta

ge

)

Page 60: Weiwen Dissertation

46

3.3 Summary

A comparison study of advanced observer designs, including NESO, HGO, and

SMO, was performed. A gain modification method is proposed for the NESO to deal with

the unknown initial conditions. Both software simulation and hardware tests are

performed. The following observations are made based on the results:

• As a state estimator, NESO performs better than HGO and SMO. The robustness of

the NESO to plant uncertainty and external disturbance is inherent in its structure.

The chattering problem is the main drawback of the SMO in practical applications.

• The simulation and experimental results seem to justify the design concepts of NESO.

By augmenting the plant and treating the unknown dynamics as an extended state, an

alternative design method for state observers and an alternative to system

identification were discovered. That is, instead of trying to find a mathematical

expression of the dynamics and disturbances, a state observer can be built to estimate

it and compensate for it in real time.

Page 61: Weiwen Dissertation

47

CHAPTER IV

COMPARISON OF CONTROLLERS FOR MOTION

CONTROL APPLICATIONS

ADRC is a NESO-based nonlinear control strategy. The tuning procedure is

complicated. For the sake of simplification and ease for practical application, LADRC is

investigated in this chapter.

A comparison study of performances and characteristics of ADRC, LADRC and

loop shaping design method is presented. Simulation and experimental results are shown,

and the new tuning method of LADRC is given.

Page 62: Weiwen Dissertation

48

4.1 Linear Active Disturbance Rejection Control Design Concepts

ADRC represents a control strategy that is rather independent of the mathematical

models of the plants, thus achieving inherent robustness. An overview of this design

philosophy and the associated algorithms was introduced in Chapter II. Although the

unique advantages of this method have been proven in several practical applications, the

tuning of the controller can be challenging because of the number of nonlinear functions.

Rewrite the plant in (2.34) in state space form as

1 2

2 3 0

3

1

x x

x x b u

x h

y x

= = + = =

&

&

& (4.1)

where 3

,x f h f= = & . It is equal to

x Ax Bu Eh

y Cx

= + +=

& (4.2)

where

[ ]0

0 1 0 0 0

0 0 1 , , 1 0 0 , 0

0 0 0 0 1

A B b C E

= = = =

The linear version of ESO (LESO) can be designed as

ˆ( )

ˆ

z Az Bu L y y

y Cz

= + + −=

& (4.3)

where1 2 3

[ ]T

L β β β= , the observer gain vector, which is obtained using pole placement.

Combining (4.2) and (4.3), the error equation can be written as:

Page 63: Weiwen Dissertation

49

e

e A e Eh= +& (4.4)

where

, 1,2,3i i i

e x z i= − =

1

2

3

1 0

0 1

0 0

eA A LC

βββ

− = − = − −

(4.5)

Obviously, the LESO is BIBO-stable if the roots of the characteristic polynomial of e

A

3 2

1 2 3( )s s s sλ β β β= + + + (4.6)

are all in the left half-plane and h is bounded. Suppose the observer poles are all placed at

oω−

3 2 3

1 2 3( ) ( )

os s s s sλ β β β ω= + + + = + (4.7)

then

2 3

1 2 33 , 3 ,o o oβ ω β ω β ω= = = (4.8)

The choice of o

ω could be a trade-off between how fast the observer tracks the states and

how sensitive it is to the sensor noises.

The control law for the plant (4.1) is given as a

3 0

0

z uu

b

− += (4.9)

Ignoring the inaccuracy of the observer,

3 0 0( )y f z u u= − + ≈&& (4.10)

which is a unit-gain double integrator that can be controlled with a PD controller

0 1 2( )p d

u k r z k z= − − (4.11)

Page 64: Weiwen Dissertation

50

where r is the set point. This results in a pure second-order closed-loop transfer function

of

2

1( )

d p

G ss k s k

=+ +

(4.12)

The gains can be simply selected as

22d c p ck and kξω ω= = (4.13)

where c

ω and ξ are the desired closed-loop natural frequency and damping ratio. ξ can

be simply chosen as one to avoid any oscillations, and c

ω is determined based on the

transient response requirements.

The LESO-based control scheme is referred to as LADRC [45] which uses linear

observer and linear feedback gains in place of the nonlinear ones in (2.29) and (2.37).

Optimization of LADRC

The goal of controller design is to achieve the maximum closed-loop bandwidth,

subject to design constraints. This is denoted as the parameter optimization. There are

only two parameters in LADRC: o

ω , which represents the bandwidth of the observer;

and c

ω , which represents the bandwidth of the controller. The following is the procedure

for determining these optimal parameters:

Step 1: Select an 3 5o c

ω ω≈ � , where c

ω is the bandwidth of a transient profile;

Step 2: Set c o

ω ω= and simulate the LADRC in a simulation;

Page 65: Weiwen Dissertation

51

Step3: Increase both until the noise level and/or oscillations in the control signal and

output exceed the tolerance;

Step4: Increase or decrease c

ω and o

ω individually, to make trade-offs among different

design considerations such as the maximum error during the transient period, the

disturbance attenuation, and the magnitude and smoothness of the controller.

4.2 Loop Shaping Design Technique

The loop shaping design method is a frequency response-based control design

technique, and the only one to comprehensively address multiple design concerns, such

as transient response, disturbance rejection, stability margins, and noise. As a concept and

design tool, loop-shaping has helped practicing engineers greatly improving PID loop

performance and stability margins. Consider the system described in Figure 22.

P(s)

Prefilter Controller Plant

( )c

G s ( )pG s

-

e(t)

Disturbance

d(t)

+Output

y(t)

n(t)

+

Sensor Noise

r(t)

Reference

Input

u(t)

Figure 22: Feedback Control Configuration

Page 66: Weiwen Dissertation

52

Design Specifications:

• Command following

( ) ( )( )

1 ( ) ( ) 1( ) 1 ( ) ( )

p c

p c

p c

G s G sY sG j G j

R s G s G sω ω= ≈ ⇒

+� (4.14)

• Disturbance rejection

( )( )

( ) ( ) 1( ) 1 ( ) ( )

p

p c

p c

G sY ssmall G j G j

D s G s G sω ω= ⇒

+� (4.15)

• Sensor noise reduction

( ) ( )( )

( ) ( ) 1( ) 1 ( ) ( )

p c

p c

p c

G s G sY ssmall G j G j

N s G s G sω ω= − ⇒

+� (4.16)

• Robust stability

( ) ( ) 1

( ) ( ) 11 ( ) ( ) ( )

p c

p c

p c

G j G jG j G j

G j G j lm j

ω ωω ω

ω ω ω< ⇒ ≤

+ (4.17)

• Stability (gain/phase) margin

One pole roll-off at the crossover frequency

Constraints on ( ) ( )p c

G j G jω ω :

Low Frequency: ( ) ( ) 1p c

G j G jω ω �

High Frequency: ( ) ( ) 1p c

G j G jω ω �

Crossover Frequency: good gain and phase margin

The loop shaping design process consists of two steps: 1) converting all design

specifications to loop gain constraints, as shown in Figure 23; and 2) finding a controller

( )c

G jω to meet the specifications.

Page 67: Weiwen Dissertation

53

cωω

LowFrequency

Constraints

HighFrequency

Constraints

dB )()( ωω jGjG cp

decdB /20−

1ω 2ω

Figure 23: Loop Shaping

Normally, the desired loop gain can be characterized as

1

2

1 1( ) ( ) ( )

1 1

m

p c n

c

sL s G S G s

ss s

ω

ω ω

+ = = + +

(4.18)

where c

ω is the bandwidth, and 1 2, , 0,c c

m andω ω ω ω< > ≥ 0n ≥ are selected to meet

constraints shown in Figure 23. Both m and n are integers. The default values for 1ω and

2ω are

1 /10c

ω ω= (4.19)

2 10 cω ω= (4.20)

which yield a phase margin of approximately ninety degrees. The controller can be

derived from (4.18)

11

2

1 1( ) ( )

1 1

m

c pn

c

sG s G s

ss s

ω

ω ω

−+ = + +

(4.21)

Page 68: Weiwen Dissertation

54

An additional constraint on n is that

1

2

1 1( )

1 1

pn

c

G ss s

ω ω

+ +

is proper. (4.22)

This design is valid only if the plant is minimum phase. For a non-minimum phase plant,

a minimum phase approximation of 1( )pG s− should be used instead. A compromise

between 1ω and the phase margin can be made by adjusting 1ω upwards, which will

increase the low frequency gains as the cost of reducing the phase margin. Similar

compromise can be made between the phase margin and 2ω .

Optimization of loop shaping controller

The controller used here has two parameters, p

k and c

ω . Usually, 0.1 0.7p

k ≈ � .

can be optimized using the following steps:

Step1: Set an initial value of c

ω based on the bandwidth of required transient response;

Step2: Increase c

ω while performing tests on the simulator, until the control signal

becomes too noisy and/or too bumpy, or the output is oscillatory.

Page 69: Weiwen Dissertation

55

4.3 Simulation Study and Comparison

In order to accurately compare the three control algorithms, the simulation system

was set up for the servo motor model, shown in Figure 24. The controller blocks are s-

functions written in c-code.

y

u1

e

Zero-Order

Hold6

Zero-Order

Hold5

Zero-Order

Hold4

Zero-Order

Hold3

Zero-Order

Hold2

Zero-Order

Hold1

In1Out1Out2Out3

In1Out1Out2Out3

In1

Out1

Out2

Out3

Step2

Step1

Step

Out1

Out2

ProfileIn1

In2Out1

LOOP

In1

In2

Out1Out2Out3

LADRC1

In1In2In3

Out1

ADRC

u

Workspace2

e

Workspace1

y

Workspace

Figure 24: The Simulink Diagram

Rewrite the motion control model in (3.3) as below:

23.24( )

( 1.41)p

G ss s

=+

Selecting m=n=2, the loop shaping controller can be obtained from (4.21)

2

1

2

2

2

1

2

2

1 1 ( 1.41)( )

23.241 1

( ) ( 1.41)

23.24 ( 1)( 1)

c

c

c

s s sG s

ss s

s s

s ss

ω

ω ω

ω

ω ω

+ + = + +

+ +=+ +

(4.23)

Page 70: Weiwen Dissertation

56

In the simulations, ( )c

G s is digitized as ( )c

G z using the Tustin or Trapezoidal method at

a sampling time of 1ms.

2( 1)

( 1)

zs

T z

−=+

(4.24)

Assume that 1 2* , 10*c c

kpω ω ω ω= = ,( )

( )( )

c

u zG z

e z= , where ( )u z and ( )e z are the

control signal and the error signal. Combining (4.23) with (4.24), the digitized loop

shaping controller is calculated as

u[k] = (a12-a5*a11*u [k-4]-(a5*a10-8*a11)*u [k-3]-(a11*a4 -8*a10+a5*a9)*u [k-2]-

(a4* a10-8*a9)*u [k-1])/a4/a9.

where k = 0……. n, integer;

a1 = 4 *c

ω + 4 * kp *c

ω *c

ω * h + kp * kp *c

ω *c

ω *c

ω * h * h;

a2 = 2 * kp * kp * c

ω * c

ω * c

ω * h * h – 8 *c

ω ;

a3 = kp * kp * c

ω * c

ω * c

ω * h * h + 4 *c

ω – 4 * kp * h * c

ω *c

ω ;

a4 = 4 + 2 *c

ω * h;

a5 = 4 – 2 * h *c

ω ;

a6 = 200 * c

ω * c

ω * h + 141 * c

ω * c

ω * h * h;

a7 = 282 * c

ω * c

ω * h * h;

a8 =141 * c

ω * c

ω * h * h – 200 * c

ω * c

ω * h;

a9 = 4 + 40 * h * c

ω + 100 * c

ω * c

ω * h * h;

a10 =200 * c

ω * c

ω * h * h - 8;

a11=100 * c

ω * c

ω * h * h – 40 * h * c

ω + 4;

Page 71: Weiwen Dissertation

57

a12 = (a1 * a6 * e[k] + (a1*a7+a2*a6)*e [k-1] + (a1*a8+a2*a7+a3*a6) *e [k-2] + (a2*a8

+a3*a7)*e [k-3] +a3*a8*e [k-4])/23.24.

In addition, a profiler is added into the loop shaping control system to reduce the

overshoot.

1( 0)

11

c

k

sw k

>+

The ADRC controller is formulated as

ESO:

1 2 1 1 1 1

2 3 2 1 2 2 0

3 3 1 3 3

( , , )

( , , )

( , , )

z z fal z y

z z fal z y b u

z fal z y

β α δβ α δ

β α δ

= + − = + − + = −

&

&

&

where 2 3

1 2 33 , 3 ,o o oβ ω β ω β ω= = = ; 0 0;ω > 0; 0.i i

α δ> >

0 ( ) ( , , ) ( , , )p p p p d d d d

u t k fal k falε α δ ε α δ= +

0 3 0( ) ( ) ( ) /u t u t z t b= −

where 1 1Pv zε = −

, 2 2dv zε = − ; 0, 0; ,

p d a dδ δ α α> > are real.

The LADRC controller is designed as

LESO:

1 2 1 1

2 3 2 1 0

3 3 1

( )

( )

( )

z z z y

z z z y b u

z z y

ββ

β

= + − = + − + = −

&

&

&

where 2 3

1 2 33 , 3 ,o o oβ ω β ω β ω= = = , 0 0.ω >

Assume 1ζ = ,

2

0 2

1

2( ) ( )

16.5 16.5

( ) ( )

c cu e t z t

e t r z t

ω ω= −

= −

Page 72: Weiwen Dissertation

58

0 3 0( ) ( ) ( ) /u t u t z t b= −

The parameters for these three controllers are shown in Table I. The sample time h is

0.001 second. The simulation responses of the nominal plant are shown in Figures 25, 26,

and 27. The parameter tuning is based on the same noise sensitivities of the control

signals. Note that the output of the ADRC system has much less transient error than the

LADRC and loop shaping control (LSC) systems because the ADRC controller has two

desired input signals, r and the derivative of r. The setting time and control signals of the

three systems are very similar.

Table I: Controller Parameters

BLOCK PARAMETERS

ADRC

a=20, β1= 3a, β2=3a2;

β3=a3, α1=1.0, δ1=0.01;

α2=0.5, δ2=0.1, α3=0.25;

δ3=0.1, kp=0.1, αp=0.4;

δp=0.01, kd=10, αd=1.5;

δd=0.001, b0=25;

LADRC

a=40, β1 = 3a, β2=3a2;

β3=a3, 30

nω = , b0=25;

LSC kp=0.7, 20c

ω = , k=0.5;

Page 73: Weiwen Dissertation

59

0 1 2 3 4 5 6 7 8 9 1 0 - 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

Po

sitio

n e

rro

r (r

ev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 2

- 1

0

1

2

3

T im e ( s e c . )

Co

ntr

ol (v

olta

ge

)

Figure 25: Position Error and Control Signal of ADRC System

0 1 2 3 4 5 6 7 8 9 1 0 - 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

Po

sitio

n e

rro

r (r

ev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 2

- 1

0

1

2

3

T im e ( s e c . )

Co

ntr

ol (v

olta

ge

)

Figure 26: Position Error and Control Signal of LADRC System

0 1 2 3 4 5 6 7 8 9 1 0 - 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

Po

sitio

n e

rro

r (r

ev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 2

- 1

0

1

2

3

T im e ( s e c . )

Co

ntr

ol (v

olta

ge

)

Figure 27: Position Error and Control Signal of LSC System

Page 74: Weiwen Dissertation

60

In order to test the robustness of the three control systems, the change of inertia and

torque disturbance are added into the plant separately. The parameters of the controllers

remain the same. Figures 28, 29, and 30 show the simulation responses of the plant with

100% inertia increased. The output of LSC system obviously has more overshoot than

the ADRC system. The setting time for the ADRC and LADRC systems is roughly the

same. Figures 31, 32, and 33 illustrate the responses of the plant with 20% torque

disturbance. Note that the system using LSC has the longest recovery time, followed by

ADRC.

0 1 2 3 4 5 6 7 8 9 1 0 - 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

Positio

n e

rror

(rev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 4

- 2

0

2

4

T im e ( s e c . )

Contr

ol (v

oltage)

Figure 28: Position Error and Control Signal of ADRC System with Inertia Change

0 1 2 3 4 5 6 7 8 9 1 0 - 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

Po

sitio

n e

rro

r (r

ev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 4

- 2

0

2

4

T im e ( s e c . )

Co

ntr

ol (v

olta

ge

)

Figure 29: Position Error and Control Signal of LADRC System with Inertia Change

Page 75: Weiwen Dissertation

61

0 1 2 3 4 5 6 7 8 9 1 0 - 0 . 0 5

0

0 . 0 5

0 . 1

0 . 1 5

0 . 2

Po

sitio

n e

rro

r (r

ev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 4

- 2

0

2

4

T im e ( s e c . )

Co

ntr

ol (v

olta

ge

)

Figure 30: Position Error and Control Signal of LSC System with Inertia Change

4 5 6 7 8 9 1 0 - 8

- 6

- 4

- 2

0

2 x 1 0

- 3

Po

sitio

n e

rro

r (r

ev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 2

- 1

0

1

2

3

T im e ( s e c . )

Co

ntr

ol (

volta

ge

)

Figure 31: Position Error and Control Signal of ADRC System with Torque Disturbance

4 5 6 7 8 9 1 0 - 8

- 6

- 4

- 2

0

2 x 1 0

- 3

Po

sitio

n e

rro

r (r

ev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 2

- 1

0

1

2

3

T im e ( s e c . )

Co

ntr

ol (

volta

ge

)

Figure 32: Position Error and Control Signal of LADRC System with Torque Disturbance

Page 76: Weiwen Dissertation

62

4 5 6 7 8 9 1 0 - 8

- 6

- 4

- 2

0

2 x 1 0

- 3

Positi

on

err

or

(rev.)

0 1 2 3 4 5 6 7 8 9 1 0 - 2

- 1

0

1

2

3

T im e ( s e c . )

Co

ntr

ol (

voltag

e)

Figure 33: Position Error and Control Signal of LSC System with Torque Disturbance

4.4 Experimental Study and Comparison

The motion control setup in Chapter III is used for the hardware test. The

parameters of the controllers are the same as those that are used in simulations. The

results for the nominal plant are shown in Figure 34. Note that the system controlled by

LSC has overshoot. Again the ADRC system has the smallest transient error. The

following tests are performed individually in order to compare the robustness of the

controllers:

• Increase the load by 75% (replace two 0.5 Kg weights to the disc at radius of

6.6cm)

• Increase the friction significantly by adjusting the rubbing screw

• Introduce 30% torque disturbance using the disturbance motor

The performances are evaluated in Table II. Figure 35 shows the responses for the plant

with 30% torque disturbance at 4 seconds. Note that the output of LADRC system has the

Page 77: Weiwen Dissertation

63

shortest recovery time. Figure 36 illustrates the responses of the plant with friction. Note

that the performances of the LADRC and LSC systems are better than ADRC.

0 1 2 3 4 5 6 7 8 9 100

0.5

1

1.5P

os

itio

n (

rev

.)

0 1 2 3 4 5 6 7 8 9 10-0.2

0

0.2

Po

sit

ion

Err

or

(re

v.)

0 1 2 3 4 5 6 7 8 9 10-5

0

5

Time (sec.)

Co

ntr

ol

(vo

lta

ge

) ADRC LADRC -.-.-. LSC ......

Figure 34: Responses of the Nominal Plant

.

Page 78: Weiwen Dissertation

64

0 1 2 3 4 5 6 7 8 9 100

0.5

1

1.5

Po

sit

ion

(re

v.)

0 1 2 3 4 5 6 7 8 9 10-0.02

0

0.02

Po

sit

ion

err

or

(re

v.)

0 1 2 3 4 5 6 7 8 9 10-5

0

5

Time (sec.)

Co

ntr

ol

(vo

lta

ge

)

ADRC LADRC -.-.-. LSC ......

Figure 35: Responses of the Plant with 30% Torque Disturbance at 4 second

Page 79: Weiwen Dissertation

65

0 1 2 3 4 5 6 7 8 9 100

0.5

1

1.5

Po

sit

ion

(re

v.)

0 1 2 3 4 5 6 7 8 9 10-0.2

0

0.2

Po

sit

ion

err

or

(re

v.)

0 1 2 3 4 5 6 7 8 9 10-5

0

5

Time (sec.)

Co

ntr

ol

(vo

lta

ge

)

ADRC LADRC -.-.-. LSC ......

Figure 36: Responses of the Plant with Friction

Page 80: Weiwen Dissertation

66

Table II: Performances Comparison with ADRC, LADRC and LSC

Over-

Shoot (%)

Settling Time

(sec.)

Steady State

Error (rev.)

Nominal Case 0.00 0.60 84.889 10−×

Load Added 0.00 0.60 1.87 410−×

Friction Exerted 0.00 2.00 41 10−×

ADRC

30% of Tmax

Disturbance

0.00

2.00

84.889 10−×

Nominal Case 0.00 0.70 84.889 10−×

Load Added 0.00 0.70 84.889 10−×

Friction Exerted 0.00 0.80 41.5 10−×

LADRC

30% of Tmax

Disturbance

0.00

0.10

84.889 10−×

Nominal Case 3.00 0.70 56.254 10−×

Load Added 6.00 0.80 56.254 10−×

Friction Exerted 5.00 0.90 41 10−×

LSC

30% of Tmax

Disturbance

0.50

2.00

0.00

Page 81: Weiwen Dissertation

67

4.5 Summary

The simulation and experimental results presented above demonstrate that with the

optimal tuning method, the loop shaping control can be a viable solution for practical

applications. Since it is a model-based control method, compared with the LADRC and

the ADRC approaches, it has least disturbance rejection ability.

With the optimal tuning method, LADRC can outperform ADRC. The tuning for

the ADRC controller is done through trial-and-error. There is a lot of room for the

performance to be improved. If this problem could be solved, the ADRC system would

get better performance than the LADRC system.

Page 82: Weiwen Dissertation

68

CHAPTER V

NOVEL SOLUTIONS FOR THE ACTIVE MAGNETIC BEARING

BENCHMARK PROBLEM

Active magnetic bearings (AMBs) are bearings used to suspend rotor by magnetic

forces without any contact. They have many advantages over conventional bearings

because contact-free support eliminates mechanical friction, lubrication and wear

problems. In this chapter, based on a nonlinear model of an active magnetic bearing

system, nonlinear controllers are developed for the electromechanical system, using

nonlinear dynamics placement control scheme and LADRC approach. Simulation results

illustrate the performances of these methods.

Page 83: Weiwen Dissertation

69

5.1 Background

AMBs are currently used in many engineering applications (e.g., compressors,

milling spindles, flywheels, and blood pumps). Since they can be actively controlled, they

offer many other potential advantages, such as adjusting the stiffness of the suspending

load, eliminating vibration active damping, or providing an automatic balancing

capability.

There have been many reported methods for the design of AMB controllers. Most

of them are based on the linearized electromechanical system model such as

eigenstructure assignment, H ∞ control [46, 47], sliding mode control [48, 49], µ -

synthesis [50], Q -parameterization [51], and geometric approach [52]. The effective

range of these control systems is usually limited to a very narrow area near the

equilibrium point because the linearized model cannot express the exact behavior of the

system at any other operating points. In AMB systems, where the nonlinearity is

inherently strong, it may be more effective to design a control system based on the

nonlinear model rather than its linear approximation. Feedback linearization (FL) has

been widely accepted [53, 54]. However, FL sometimes cancels out the nonlinear terms

that should not be canceled and, consequently, requires unnecessary control efforts.

Backstepping has been applied to magnetic bearing systems [55-57], based on the

Lyapunov method, and it accounts for the nonlinearities of the AMB system.

Many current linear control design methods are restrictive because they require the

plant to be linear. Based on a nonlinear model of an AMB system, a nonlinear dynamics

placement (NDP) control scheme for the AMB benchmark system [58] is proposed. As

Page 84: Weiwen Dissertation

70

specified in [34, 42, and 43], nonlinear feedback mechanisms are, in general, superior to

the linear ones and should be explored. LADRC, is also proposed for this system

because of its strong disturbance rejection and simple tuning. The research is motivated

by the need to account for the periodic disturbance acting on the AMB system.

5.2 System Dynamics and Design Specifications

The AMB problem is briefly introduced in [58, 59]. The AMB benchmark system

consists of a rigid beam that is free to rotate about a pivot located at its center of mass

(see Figure 37) [59]. The beam’s angular position is controlled via two electromagnets

positioned at each end of the beam. A non-contacting displacement sensor measures the

rotation of the beam. An additional actuator, located at one of the ends of beam, is used to

apply a perturbation force that emulates a periodic, exogenous disturbance. This system

incorporates all of the typical nonlinearities of an AMB system. The plant is open-loop

unstable.

Figure 37: Benchmark experiment (from [59])

Page 85: Weiwen Dissertation

71

The system can be modeled by the differential equations (5.1) through (5.8) [58].

The parameters and the signals used for these equations are listed in Appendix B.

1 1 1

1( ( ) , ) ( )

Rh p g y g y sat u

N Nφ φ= − + + +& (5.1)

2 2 2

1( ( ) , ) ( )

Rh p g y g y sat u

N Nφ φ= − − − +& (5.2)

2

1 1[ ( ) ]f c p g y φ= + (5.3)

2

2 2[ ( ) ]f c p g y φ= − (5.4)

1 2( )L

f f dJ

θ = − −&& (5.5)

with system outputs given by

y Kθ= (5.6)

1 1( ( ) , )I h p g y g yφ= + + (5.7)

2 2( ( ) , )I h p g y g yφ= − − (5.8)

K converts the rotation of the beam to mils and K<0. The flux leakage function (.)p can

be described by the function1( ) ( )p x ax b

−= + , where the constants are given in Appendix B.

The nonlinear function h (.) is given as a look-up table in the simulation model in [58], as

shown in Figure 38.

Page 86: Weiwen Dissertation

72

Figure 38: Current as a function of flux and air gap length

The control objective is to regulate of the beam’s angular position θ, with minimum

employed magnetic flux 1φ and 2φ . The controller is designed to achieve the following

goals:

• High performance in terms of regulating the beam quickly and accurately;

• Better disturbance rejection;

• Strong robustness by increasing the tolerance of the control system to dynamic

variations such as coil resistant change;

• Simple design procedure and ease of implementation for real applications;

The main challenges in this problem include: (1) the system is highly nonlinear; (2)

there is a periodic disturbance torque, d, as shown in (5.5), with the magnitude limited to

less than 4 N-m and frequency between 10 and 50 Hz; and (3) the beam dynamics include

an unmodeled flexible mode.

Page 87: Weiwen Dissertation

73

5.3 The Proposed Solutions

The use of nonlinear gains has been contemplated by many researchers and reported

in literature; see for example [34, 42, 43]. Nonlinear feedback is known to have distinct

characteristics that can be explored in order to bring unique advantages to feedback

control. The nature of the AMB problems and the difficulty in its control design

motivates us to seek such a solution.

Note that the AMB problem described above is similar to a double integrator plant,

as seen in (5.5). Therefore, let’s consider a nominal double integrator plant

y w u= +&& (5.9)

where y is the output, u is the control signal, and w is the disturbance. With r as the

reference input, a typical linear control law is

1 2( )u k r y k y= − − & , 0i

k > i=1, 2 (5.10)

where k1 and k2 are determined to place the closed-loop poles at a predetermined location.

Such a control law, known as proportional-derivative (PD) controller, is widely used in

motion control industry. Difficulties may arise when there is a constant disturbance, w,

which induces a steady-state error. The common remedy is to add an integration term to

the controller, but the associated phase lag reduces the stability margin.

Instead of adding an integrator to address the steady-state error problem associated

with the PD controller in (5.10), an alternative method is to employ nonlinear gains,

instead of linear ones [34, 42, 43]. The main idea is to make the controller more sensitive

to small errors by increasing the gain in the small error region. As demonstrated, this

method not only relieves the controller of the integrator phase lag, but also results in

Page 88: Weiwen Dissertation

74

better disturbance rejection and transient response. That is, nonlinear dynamics can be

purposely placed in the closed-loop system to make it behave better. One such alternative

controller of (5.10) is

1 1 1 2 2 2( , , ) ( , , )u k fal e k fal yα δ α δ= − & (5.11)

where ik >0, e r y= − , 1, 2i = , (.)fal is a nonlinear function, defined as the same as

(2.29)

1

( ). ,( , , )

. ,

asign x x when x

fal xx when x

α

δα δ

δ δ−

>= <

Here, α ,δ are two parameters of the nonlinear function. For 1α= , it is equivalent to the

linear function of y x= . For 0 1,α< < , the nonlinear controller provides higher gain when

error is small and lower gain when error is large. The idea is that making the controller

more responsive to small error helps avoid the use of the integrator control. Here, δ is a

small positive number applied to create a small linear gain area around the origin to avoid

singularity. Combining (5.9) and (5.11), the closed-loop system is purposely made

nonlinear and is, therefore, called NDP.

The AMB problem is solved in two steps: (1) by treating the mechanical part of the

plant as a double integrator, an NDP design is carried out as discussed above; and (2) a

proportional controller is designed for the flux loop.

Combining (5.5) and (5.6) and assuming 0,d = the beam angular acceleration can

be written as

1 2( )

KLy K f f

Jθ= = −&&&& (5.12)

Page 89: Weiwen Dissertation

75

Breaking (5.12) up into two parts, the plant can be represented as

0y u=&& (5.13)

and

0 1 2( )

KLu f f

J= − (5.14)

Applying the NDP approach to (5.13), the control law is chosen as

0 1 1 1 1 2 2 2 2( , , ) ( , , )u k fal e k fal yα δ α δ= − & (5.15)

where e=r-y, and r is the desired position.

To reduce the noise sensitivity, an approximate differentiator, s/(τ s+1)2, is used in

place of the pure differentiation, s, whereτ is the filter time constant to be adjusted

according to the noise level in the control signal. All design parameters can be initially

selected from a linear design and the nonlinearity is gradually added into the simulation

for maximum performance and robustness.

Once u0 is obtained, 1f and 2f can be determined from (5.14). Since both 1f and

2f only take non-negative values, according to (5.3) and (5.4), the following scheme is

used to compute them:

0 1 2 0

0 1 0 2

0, 0, ;

0, , 0.

Ju f f u

K L

Ju f u f

K L

≥ = =

< = = (5.16)

This scheme switches between the two actuators and effectively utilizes the power

supply voltage 1( )sat u and

2( )sat u [61]. Next, the desired flux *φ is obtained by solving

(5.3) and (5.4):

Page 90: Weiwen Dissertation

76

1*

1

/

( )

f c

p g yφ =

+, 2*

2

/

( )

f c

p g yφ =

− (5.17)

and used as the set point for (5.1) and (5.2). Assuming the actuators are operating in

linear regions, (5.1) and (5.2) can be rewritten as

1 1 1

1RI u

N Nφ = − +& (5.18)

2 2 2

1RI u

N Nφ = − +& (5.19)

Because this power electronic component has a much higher bandwidth than its

mechanical counter part, a simple proportional control is usually sufficient. That is, the

control law that makes φ follow *φ is designed as:

*

1 3 1 1 1( )u Nk RIφ φ= − + (5.20)

*

2 4 2 2 2( )u Nk RIφ φ= − + (5.21)

where k3 and k4 are the feedback gains that can be determined using any linear design

method.

The key component here is to use a nonlinear feedback in (5.15) to make the

controller more sensitive to small errors and, therefore, aggressively regulate the beam

position in the presence of external disturbances. It also reduces or even eliminates the

need of an integral control, thus enhancing the stability margins of the closed-loop

control system. This approach has been successfully tested in similar motion control

applications, where it exhibits good disturbance rejection characteristics, and was tested

in simulation for the AMB problem.

Page 91: Weiwen Dissertation

77

Another solution is using the LADRC method, instead of NDP, in the first step. The

signal can be obtained from the LESO. Therefore, the differentiator is not necessary for

this method. The beam angular acceleration equation is

1 2( )KL

y K f f dJ

θ= = − −&&&&

It can be written as

1 2( )KL

y K f f d u uJ

θ= = − − − +&&&& (5.22)

Assume 1 2( )KL

f f f d uJ

= − − − , then

y f u= +&& (5.23)

where f is the uncertainty of the plant. u is the control signal. Applying the LADRC to

(5.22)

LESO:

1 2 1 1

2 3 2 1

3 3 1

( )

( )

( )

z z z y

z z z y u

z z y

ββ

β

= + − = + − + = −

&

&

&

The control law is

3 0u z u= − + , 0 1 2( )p d

u k r z k z= − − , (5.24)

where 2d c

k ξω= and 2

p ck ω= . The plant is changed into

0y u=&& .

The next steps are the same as (5.16) ~ (5.21).

Page 92: Weiwen Dissertation

78

5.4 Simulation Study and Results

The simulation model of AMB [58] is shown in Figure 39. Figures 40 and 41

present the models of leakage and beam dynamics.

5

ddy/dt

4

dy/dt

3

Current2

2

Current 1

1

Displacement

(mi ls)

Gap Flux 2

Gap 2Current2

flux to current 2

Saturation2

Saturation 1

Total Flux 2

gap 2

Gap Flux 2

Leakage 2

gap 1

Total Flux 1

Gap Flux 1

Leakage 1

1

s

1

s

disp

gap1 mils

gap 2 mils

Gap Posi tion

Flux2 Force2

Force calculation2

Flux1 Force1

Force calculation1

Gap 1

Gap Fiux 1

Current 1

Flux to Current 1

Current 2 Volt 2

Coil Resistance 2

Current 1 Volt 1

Coil Resistance 1

Force 1

Force 2

Out 1

Out 1 1

Out 1 2

Beam Dynamics

-K-

1

----------------

Number Turns 2

-K-

1

----------------

Number Turns 1

3

Disturbance

2

U2

1

U1

Figure 39: The AMB Simulation Model

1

Gap Flux 1

Gap1_mils in P1 Out

P1 Gain Calculation

Mult2

Total Flux 1

1

gap 1

1

P1 Out.026496

slope

Sum Product1

Product

1.0528

Intercept

1

Gap1_mils in

Phi_tot / Phi_gap Phi_gap / Phi_tot

Figure 40: The Model of Leakage

Page 93: Weiwen Dissertation

79

1

Out 1

-K-

acc

-5724

Radian to

Mils Gain

Mux

Mux

x' = Ax+Bu

y = Cx+Du

Flexible Modes

1

s

1

s

2

Force 2

1

Force 1

Figure 41: The Model of Beam Dynamics

The proposed control approaches are tested in simulation. The control laws (5.15),

(5.16), (5.20), (5.21), and (5.24) are implemented digitally with a sampling period of 10-4

seconds. In order to more accurately demonstrate the advantages of the NDP approach, a

linear Pole Placement (PP) method is induced to the simulation test. Instead of using the

nonlinear control law that was shown in (5.15), the PP method uses the linear PD control

scheme. A smooth profile is used in simulation as the desired trajectory of the output.

The torque disturbance is ( ) 4sin(40 )d t tπ= . The initial condition is (0) 10y = − mils and

(0) 2y = −& mils/sec. The controller parameters are chosen as follows:

NDP: 53 10p

k = × ,1

0.7α = , 1 0.05δ = , 55 10τ −= × ,

31.5 10d

k = × , 2

0.92α = , 2 1δ = , 3,4 1000k = .

PP: 5 5

3,42 10 , 800, 5 10 , 1000.p dk k kτ −= × = − = × =

LADRC: 3000, 300, 1,o c

ω ω ξ= = =

2 3

1 2 33* , 3* , .

o o oβ ω β ω β ω= = =

Figure 42 illustrates the steady-state displacement errors of the three systems. Note

that the NDP and LADRC systems have smaller steady-state errors than the PP system.

The LADRC system’s setting time is slightly longer than the NDP and the PP systems.

Page 94: Weiwen Dissertation

80

0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

Time(sec.)

Error

PP NDP LADRC

Figure 42: Displacement Errors

Figure 43, 44, and 45 show the voltages (u1&u2) and flux (1

φ &2

φ ) of the PP, the

NDP and the LADRC systems. It is clear that the fluxes that are employed are almost

equal. The controller robustness is evaluated by increasing the coil resistance by 25%

because the actual coil resistance varies with the coil temperature. Other parameters of

the controller and plant are unchanged. The results are shown in Figure 46, 47, 48, and

49. Again, the LADRC and the NPD systems have smaller steady-state error. The fluxes

employed by both systems are almost the same.

Page 95: Weiwen Dissertation

81

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

20

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

Time (sec.)

flux2

flux1

voltage2

voltage1

Figure 43: Voltages (u1&u2) and Flux (1

φ &2

φ ) of PP

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

20

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

Time (sec.)

flux2

flux1

voltage2

voltage1

Figure 44: Voltages (u1&u2) and Flux (1

φ &2

φ ) of NDP

Page 96: Weiwen Dissertation

82

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

20

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

Time (sec.)

flux2

flux1

voltage2

voltage1

Figure 45: Voltages (u1&u2) and Flux (1

φ &2

φ ) of LADRC

0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

Time(sec.)

Error

PP NDP LADRC

Figure 46: Displacement Errors for the Plant Coil Resistance Increased by 25%

Page 97: Weiwen Dissertation

83

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

20

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

Time (sec.)

flux1

flux2

voltage2

voltage1

Figure 47: Voltages (u1&u2) and flux (1

φ &2

φ ) of PP

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

20

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

Time (sec.)

flux2

flux1

voltage2

voltage1

Figure 48: Voltages (u1&u2) and Flux (1

φ &2

φ ) of NDP

Page 98: Weiwen Dissertation

84

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2-10

0

10

20

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

0.5

1x 10

-4

Time (sec.)

flux2

flux1

voltage2

voltage1

Figure 49: Voltages (u1&u2) and Flux (1

φ &2

φ ) of LADRC

To further investigate the robustness of the controller, the following tests are

performed individually:

• Change the frequency of the disturbance to 50Hz;

• Reduce initial position to 5 mils.

The results are evaluated in terms of setting time and steady-state error, which are shown

in Table III. These results reveal that the proposed NDP method and LADRC have

distinct advantage concerning disturbance attenuation.

Page 99: Weiwen Dissertation

85

Table III: Simulation Comparison

Setting time

(2%vs initial

disp.)(sec)

Steady

State

Error (mils)

4sin(40 )d tπ= 0.0218 0.05

4sin(100 )d tπ= 0.0225 0.05

(0) 5 ,

(0) 2 / sec

m ils

m ils

θθ

=

=&

4sin(40 )d tπ=

0.0195 0.05 NDP

25% change

resistance

4sin(40 )d tπ=

0.0216 0.12

4sin(40 )d tπ= 0.023 0.16

4 sin(100 )d tπ= 0.0235 0.16

(0) 5 ,

(0) 2 / sec

mils

mils

θθ

=

=&

4sin(40 )d tπ=

0.021 0.16 PP

25% change

resistance

4sin(40 )d tπ=

N/A 0.35

4sin(40 )d tπ= 0.025 0.06

4sin(100 )d tπ= 0.025 0.1

(0) 5 ,

(0) 2 / sec

mils

mils

θθ

=

=&

4sin(40 )d tπ=

0.03 0.05

LADRC

25% change

resistance

4sin(40 )d tπ=

0.025 0.17

Page 100: Weiwen Dissertation

86

Finally, NDP is compared with the saturated high gain controller proposed in [61].

Figures 50 and 51 plot the responses of the two systems in the same scale. Due to the lack

of information, the simulation results in [61] were directly imported in Figure 50. It

shows that the steady-state error of a saturated high gain controller is 2.5mils, which is

much larger that the one of the NDP system. Furthermore, the control voltages used by

the NDP system are much smaller than those used by the PP system. The NDP system

has an overall better performance in terms of smoothness of the output, smaller steady-

state error, and less control actions required.

Figure 50: Saturated High Gain Controller Responses (from [61])

Page 101: Weiwen Dissertation

87

0 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1- 1 5

- 1 0

- 5

0

5

y

0 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1- 4 0

- 3 0

- 2 0

- 1 0

0

1 0

2 0

3 0

4 0

sa

t(u

1)

0 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1- 4 0

- 3 0

- 2 0

- 1 0

0

1 0

2 0

3 0

4 0

T i m e ( s e c . )

sa

t(u

2)

Figure 51: Nonlinear Dynamics Placement Controller Responses

5.5 Summary

Two novel control methods are proposed to resolve the AMB problem, and

simulation results are very promising. For AMB systems, where the nonlinearity is

inherently strong, a control system based on the nonlinear model is more effective than

on the linear model. Furthermore, both controllers are practical and easily implemented

into a digital controller.

Page 102: Weiwen Dissertation

88

CHAPTER VI

STABILITY ANALYSIS OF ADRC

The ADRC design method introduced earlier is an effective alternative approach,

especially when other controllers cannot achieve the desired performance in terms of set

point change, large parameter drift, large inertia, friction variations, external torque

disturbance and unknown system model. Stability is a basic problem in control system

design. Based on Popov criteria, a stability analysis for the ADRC system is proposed in

this chapter.

Page 103: Weiwen Dissertation

89

6.1 Absolute Stability

Simulation and experimental results show that ADRC has many advantages, such as

faster reaction, smaller overshoot and strong robustness. It can estimate disturbance using

ESO and compensate the system in each sampling period. The dynamic compensation

reduces the system to approximately a double integrator which can be easily controlled

using a PD controller.

Although ADRC is used in many fields, the stability analysis has not been

completely resolved. For ADRC to be considered as a serious contender in industrial

control design, a measure of stability or a certain degree of safety must be provided.

ADRC can be viewed as a nonlinear controller. At present, the approaches that are used

to analyze the stability of nonlinear systems include describing function, phase plane

analysis, the extended circle criterion, and Lyapunov’s method. Lyapunov’s method is

probably the most widely used approach. The second method of Lyapunov determines the

stability of equilibrium in a system by nonlinear differential equations. It is especially

useful when the control systems are described by differential equations. On the other hand,

stability analysis in classical control theory has been centered on frequency-domain

methods, propelled by the beauty, practicality, and generality (for linear systems) of the

Nyquist criterion. Each of these approaches has its advantages. Frequency-domain

methods use very compact model specifications and are able to address robustness through

gain and phase margins. However, the generalization to nonlinear systems of frequency-

domain methods is awkward. Differential equation models have proved a much better way

of addressing nonlinearities overall.

Page 104: Weiwen Dissertation

90

Through the problem of determining conditions for the stability of systems with one

nonlinear element, control witnessed a symbiosis between stability theory of Lyapunov

methods and frequency-domain techniques. The catalyst in this development was Popov’s

stability criterion.

In 1944, Lure and Postnikov [63] began to study the stability of systems of the form

depicted in Figure 52. Such systems are assumed to be completely linearizable with the

exception of a single nonlinear element denoted by f (.). The operator W is assumed to be

linear, time-invariant (LTI), while the nonlinear characteristic f(.) satisfies the following

conditions.

Definition: Function Class {F}. A function is 0

( )f δ said

0( ) { }f Fδ ∈ if it is a real

continuous single-value scalar function that satisfies

0 0( ) 0.fδ δ ≥ (6.1)

where 0

( )f δ is constrained to fall within the first and third quadrants of the0

δ -0

( )f δ

plane.

W(s)

f(.)

input 0δ

0( )f δ

-

+

r=0

Figure 52: The Problem of Lure and Postnikov

Lure and Postnikov determined the conditions for constraints on the LTI plant that would

be sufficient to ensure the stability of the system for any nonlinear gain { }(.)f F∈ . The

resulting criterion could then be applied to any specific problem, where the nonlinear

function is any member of the class{ }F . This concept is an important philosophical basis

Page 105: Weiwen Dissertation

91

for many developments in stability theory. This problem of stability of a system with one

nonlinear element leads also to the Aizerman conjecture. This states that if there exist k1,

k2 such that 1 2

( )fk k

δδ

< < for all Rδ ∈ , and if the linear system obtained by replacing the

nonlinear element by a linear one with gain k, is asymptotically stable for all [ ]1 2,k k k∈ ,

then the nonlinear system is also asymptotically stable in the large. This is also called

absolute stability of the system shown in Figure 52.

Romanian scientist Popov proposed an absolute stability criterion for nonlinear

systems in 1959. It is a kind of absolute stability judge method in frequency field, similar

to the Nyquist method of linear systems. The problem of stability for the non-linear

system can only be solved when computing the frequent properties of a system’s linear

parts. This criterion can be formulated as follows:

Consider the feedback system described by (see Figure 52):

0 0; ; ( )

Tdx Ax bu c x u f

dtδ δ= + = = − (6.2)

with , , ,n n nA R b c R×∈ ∈ and :f R R→ a continuous nonlinearity with (0) 0f = . Denote

by W the transfer function of the linear part, i.e., 1( ) ( ) .TW s c Is A b−= − Assume

furthermore that A is a stability matrix. The matrix A does not need to have all of its

eigenvalues in the open left half of the complex plane. In fact, Popov assumes that A has

all of its eigenvalues in the open left half of the complex plane, except, possibly, one

eigenvalue at the origin.

Popov proves that the equilibrium trajectory 0x = is globally asymptotically stable if

the following conditions are satisfied:

Page 106: Weiwen Dissertation

92

1. 0 0

( ) 0fδ δ > for all 0

0 ,Rδ≠ ∈

2. There exists 0q ≥ such that Re(1 ) ( ) 0qj w jω ω+ ≥ for all .Rω ∈

This result is known as the Popov criterion. The following section will describe how to

analyze the stability of ADRC using the Popov criterion.

6.2 Stability Analysis of ADRC

The diagram of the ADRC system is shown in Figure 53.

Observer

f(e) Plant

r=0 e

-

y

1/b

0u u

-

linear part

Figure 53: Diagram of ADRC

The following assumptions are made:

1. Set point 0r = ;

2. Replacing the NESO of ADRC with the linear one (LESO);

3. Nonlinear feedback functions in (2.37) satisfy the formula

( ) 0, 0ef e e> ≠ .

where 0

( ) ( , , ) ( , , )p p p d d d

f e u k fal e k fal eα δ α δ= = + & .

Page 107: Weiwen Dissertation

93

For a first-order linear plant:

x ax bu

y x

= − +=

& (6.3)

with ,a b R+∈

The LESO for the first-order plant in (6.3) is

1 2 1

2 2 1 ,

o

o o

z z e bu

z e where e y z observer error

ββ

= + += = −

&

&

(6.4)

The control law is

20

,z

u ub

= − (6.5)

with 0

( ) ( ), (0) 0.u f y f y f= − = − = , ( ) 0yf y > , 0.r =

Putting (6.5) into (6.4) and (6.3),

0 2

1 1 0

2 2

o

o

x ax bu z

z e bu

z e

y x

ββ

= − + − = + = =

&

&

& (6.6)

[ ]

1 1 1 1 0

2 2 22

1

2

0 1

0

0 0

1 0 0

x a x b

z z b u

zz

x

y z

z

β ββ β

− − ⇒ = − + −

=

&

&

&

(6.7)

The transfer function of the linear part of the Figure 53 can be obtained as

21

1 1 2

2 2

1 1 2 1 1 2

( )( )

( ) ( )( ) [ ( ) ]

bb s

bs s bsG s C SI A Bs a s a s s a s a

ββ β ββ β β β β β

−+ + + += − = =

+ + + + + + + +.

Page 108: Weiwen Dissertation

94

det( ) 0I Aλ − = ⇒

1

2

2 1 1 2

2

3 1 1 2

0,

1 1 1( ) 4 ,

2 2 2

1 1 1( ) 4 .

2 2 2

a a

a a

λ

λ β β β

λ β β β

= = − − + − − = − − − − −

Since a,β1 and β2 are positive, Re(λ2) and Re(λ3) negative. Therefore the matrix

1 1

2 2

0 1

0

0

a

A β ββ β

− − = − −

is stable. Note that

[ ]2 2

1 2

22 2

1 2 1

( )Re ( )

( ) ( )

baG j

a a

ω β βωω β β β ω

+ −=− − + +

(6.8)

[ ]2 2 2 4 2

1 2 1 2 2

22 2

1 2 1

2( )

( ) ( )m

qb bq qb qa b q bq I G j

a a

β ω ω β ω β β βω ωω β β β ω

− + − − −=− − + +

(6.9)

Re(1 ) ( ) Re(1 )[Re ( ) ( ) ]

Re ( ) ( )

m

m

qj G j qj G j I G j i

G j q I G j

ω ω ω ω ωω ω ω

+ = + += −

(6.10)

Combining (6.8), (6.9) and (6.10),

[ ]2 2 2 2 2 4 2

1 2 1 2 1 2 2

22 2

1 2 1

( ) 2Re(1 ) ( )

( ) ( )

ba qb bq qb qa b q bqj G j

a a

ω β β β ω ω β ω β β βω ωω β β β ω

+ − + − + + ++ =− − + +

(6.11)

Obviously, 2 2

1 2( )aω β β− − + [ ]2

1( )aβ ω+ >0, for all Rω ∈ .

Let 22

aq

β= >0, the numerator of (6.11) becomes

2 2 242 2 1 1

1

2 22 2 2 2

ba qb a babba

β β ω βωββ β

− + + + (6.12)

Page 109: Weiwen Dissertation

95

Since the last three terms in (6.12) are all positive, i.e.

2 2

1

2

0,2

qbβ ωβ

≥4

2

02

abωβ

≥ and 2

1 0.2

a bβ >

Re(1 ) ( ) 0qj w jω ω+ ≥ for all ω ∈R if 2 21

2

ββ ≥ .

That is, according to the Popov criterion, for the first-order ADRC system, equilibrium

trajectory 0x = is globally asymptotically stable if the following conditions are satisfied:

1. The linear plant is asymptotically stable with 0;a >

2. The parameters of the ESO are positive, and 2 21

2

ββ ≥ .

Page 110: Weiwen Dissertation

96

CHAPTER VII

CONCLUDING REMARKS

A comparison study of three advanced observers, including ESO, HGO, and SMO,

is performed using simulations and hardware tests. The results show that ESO performs

better than HGO and SMO for the systems with uncertainties. The robustness of the

NESO is inherent in its structure.

ADRC is a NESO-based nonlinear control strategy, which can compensate for the

nonlinear dynamics in a model-independent way. It has proved to be a powerful and

effective controller. Due to the nonlinear functions used in ADRC, tuning the parameters

to achieve best performance is not straight-forward. LADRC was used to simplify the

design procedure of ADRC. In this dissertation, the effectiveness of LADRC is tested

using experiments on motion control of a DC brushless motor. The experimental results

reveal that LADRC offers the potential of improving the control precision and the quality

of the control signal for the actuators. A comparison of LADRC, ADRC, and loop

Page 111: Weiwen Dissertation

97

shaping design shows that with the optimal tuning method, LADRC can achieve high

performance.

The AMB problem is a good benchmark to test the control method because it is a

highly nonlinear plant with a periodic disturbance torque. Two methods were used for

dealing with this problem: NDP and LADRC. To show the advantages of the NDP

method, a traditional PP method is also used for comparison. Simulation results showed

that LADRC and NDP had better performance than the linear PP method. Their results

also exceed all other control schemes [53, 54, 56, 58].

Based on the assumption that the observer is linear, a stability analysis of second-

order ADRC is discussed by using the Popov criterion. The system equilibrium at 0x =

is shown to be globally asymptotically stable if the following conditions are satisfied: the

linear plant is asymptotically stable, and the parameters of observer satisfy the condition:

2 21 0

2

ββ ≥ > .

For future research, the design process of ADRC can be further investigated so that

the nonlinear gains can be easily tuned for optimal performance. The stability analysis of

high-order ADRC should also be explored.

Page 112: Weiwen Dissertation

98

REFERENCES

[1] Otto Mayr, The Origins of Feedback Control, The MIT Press, 1970.

[2] F.L.Lewis, Applied Optimal Control and Estimation, Prentice Hall, 1992.

[3] Shyh-Pyng Shue, R.K. Agarwal, and Shi P, “Nonlinear H/sub infinity/method for

control of wing rock motions,” Journal of Guidance, Control, and Dynamics. vol. 23,

no.1, pp. 60-68, Jan.-Feb. 2000.

[4] M.R. James, “Nonlinear H/sub infinity control: a stochastic perspective,” Proc. of the

IFIP WG 7.2 International Conference, pp 215-22, 1999.

[5] Jongguk Yim and Jong Hyeon Park, “Nonlinear H/sub infinity/ control of robotic

manipulator,” 1999 IEEE International Conference on Systems, Man, and

Cybernetics, vol. 2, pp. 866-871, 1999.

[6] Guo-ping Lu, Yu-fan Zheng, and Daniel W. C. Ho, “Nonlinear robust H∞ control via

dynamic output feedback,” Systems & Control Letters 39, pp. 193-202, 2000.

[7] William S. Levine, Ed, The Control Handbook, CRC Press, 1996.

[8] Jean-Jacques E. Slotune and W. Li, Applied Nonlinear Control, Prentice-Hall, 1991.

[9] Wassim M. Haddad, Jerry L. Fausz, and Vijaya-sekhar, “A unification between

nonlinear-nonquadratic optimal control and integrator backstepping,” International

Journal of Robust and Nonlinear Control 8, pp. 879-906, 1998.

[10] J. Kaloust, C. Ham, “A nonlinear robust controller for a class of nonlinear uncertain

systems,” Proc. of the ACC, vol. 6, p. 4071, 1999.

Page 113: Weiwen Dissertation

99

[11] Wu Weiguo, Chen Huitang, Wang, Yuejuan, “A novel global tracking control

method for mobile robots,” Proc. of the IEEE International Conference on Intelligent

Robots and Systems. October 17-21, 1999.

[12] Miroslav Krstic, Ioannis Kanellakopoulos, and Petar Kokotovic, Nonlinear and

Adaptive Control Design, John Wiley & Sons, Inc., 1995.

[13] Zhihua Qu, “Robust control of nonlinear uncertain systems without generalized

matching conditions,” IEEE Transactions on Automatic Control, vol. 40, no.8,

August 1995.

[14] Zhihua Qu, “Robust control of nonlinear uncertain systems under generalized

matching conditions,” Automatica, vol. 29, no. 4, pp. 985-998, 1993.

[15] Zhihua Qu, “Robust control of a class of nonlinear uncertain systems,” IEEE

Transactions on Automatic Control, vol. 37, no.9, September 1992.

[16] D. Luenberger, “Observers for multivariable systems,” IEEE Transactions on

Automatic Control, vol. 11, pp. 190-197, 1966.

[17] Gene F. Franklin, J. David Powell, and Abbas Emami-Naeini, Feedback Control of

Dynamic Systems, Addison-Wesley Publishing Company, 1994.

[18] Guangren Duan and Steve Thompson, “Separation principle for robust pole

assignment - An advantage of full-order state observer,” Proc. of the 38th

Conference

on Decision & Control, pp. 76-78, December 1999.

[19] Carla Seatzu and Alessandro Giua, “Observer-controller design for gains via pole

placement and gain-scheduling,” Proc. of the 6th

IEEE Mediterranean Conference,

Alghero, Sardinia, Italy, June 1998.

Page 114: Weiwen Dissertation

100

[20] Gene F. Franklin, J. David Powell, and Michael Workman, Digital Control of

Dynamic Systems, Third Edition, Addison Wesley Longman, Inc., 1997.

[21] H.K. Khalil, “High-gain observers in nonlinear feedback control,” New Directions in

Nonlinear Observer Design (Lecture Notes in Control and Information Sciences) vol.

24, no. 4, pp. 249-268, 1999.

[22] F. Esfandiari and H.K. Khalil, “Output feedback stabilization of fully linearizable

systems,” Int. Journal of Control, vol. 56, pp. 1007-1037, 1992.

[23] Ahmed M. Dabroom and Hassan K. Khalil, “Discrete-time implementation of high-

gain observers for numerical differentiation,” Int. Jounal of Control, vol. 72, no. 17,

pp. 1523-1537, 1999.

[24] Seungrohk Oh and Hassan K. Khalil, “Output feedback stabilization using variable

structure control,” Int. Journal of Control, vol. 62, no.4, pp. 831-848, 1995.

[25] Gildas Besancon, “Further results on high-gain observers for nonlinear systems,”

Proc. of the 38th

Conference on Decision & Control, AZ, pp. 2904-2902, Decemenber

1999.

[26] Eric Bullinger and Frank Allgower, “An adaptive high-gain observer for nonlinear

systems,” Proc. of the 36th

Conference on Decision & Control, San Diego, CA, pp.

4348-4353, December 1997.

[27] Henrik Rehbinder and Xiaoming Hu, “Nonlinear Pitch and Roll Estimation for

Walking Robots,” Proc. of the IEEE International Conference on Robotics &

Automation, San Francisco, CA, April 2000.

Page 115: Weiwen Dissertation

101

[28] Seungrohk OH and Hassan K. Khalil, “Nonlinear Output-Feedback Tracking Using

High-gain Observer and Variable Structure Control,” Automatic. vol. 33, no. 10. pp.

1845-1856, 1997.

[29] E.S.Shin and K.W.Lee, “Robust output feedback control of robot manipulators using

high-gain observer,” Proc. of the 1999 IEEE Int. Conference on Control Application,

HI, August 22-27, 1999.

[30] J. De Leon, K. Busawon, and G. Acosta, “Digital implementation of an observer-

based control for a rigid robot,” International Journal of Robotics and Automation,

vol, 15, no. pp. 131-136, 2000.

[31] Nael H. El-farra and Pamagiotis D. Christofides, “Robust optimal control and

estimate estimation of constrained nonlinear processes,” Computers and Chemical

Engineering, vol. 24, pp. 801-807, 2000.

[32] J.J. E. Slotune, J.K. Hedrick, and E.A. Misawa, “On sliding observers for nonlinear

systems,” Journal of Dynamic Systems, Measurement, and Control, vol. 109, pp. 245-

251, 1987.

[33] J. Han, “Nonlinear State Error Feedback Control,” Control and Design, vol. 10,

no.3, pp. 221-225, 1994 (In Chinese)

[34] J. Han, “Nonlinear Design Methods for Control Systems,” Proc. of the 14th

IFAC

World Congress, Beijing, 1999.

[35] Chi-Tsong Chen, Linear System Theory and Design, Third edition, Oxford

University Press, Inc., 1999.

[36] J. Han, “Auto-Disturbance Rejection Control and its Applications,” Control and

Decision, vol. 13, no. 1, pp.19-23, 1998. (In Chinese)

Page 116: Weiwen Dissertation

102

[37] J.Han and Yuan Luilin, “The Discrete Form of Tracking- Differentiator,” Systems

Science and Mathematical Science, vol. 19, no. 3, pp 268-273, 1999. (In Chinese)

[38] “Manual for Model 220 Industrial Emulator/Servo Trainer,” Educational Control

Products, Woodland Hills, CA 91367, 1995.

[39] J.Han, “A class of extended state observers for uncertain systems,” Control and

Decision, vol. 10, no. 1, pp. 85-88, 1995.

[40] Y. Hou, Z. Gao, F .Jiang, and B.T. Boulter, “Active disturbance rejection control for

web tension regulation,” Proc. of the 40th

IEEE Conference on Decision and Control,

Orlando, FL, pp. 4974-4979, December 2001.

[41] Z. Gao, S.Hu, and F. Jiang, “A novel motion control design approach based on

active disturbance rejection,” Proc. of the 40th

IEEE Conference on Decision and

Control, Orlando, FL, pp. 4877-4882, December 2001.

[42] Zhiqiang Gao, “From Linear to Nonlinear Control Means: a Practical Progression,”

ISA Emerging Technology Conference, September 12, 2001.

[43] Zhiqiang Gao, Yi Huang, and Jingqing Han, “An Alternative Paradigm for Control

System Design,” Proc. of the 40th

IEEE Conference on Decision and Control,

Orlando, FL, pp. 4578-4585, December 2001.

[44] “CIO-DAS16/F Users Manual,” Computer Boards, Inc., 1994.

[45] Zhiqiang Gao, “Scaling and Bandwidth-Parameterization Based Controller Tuning,”

Proc. of the ACC, Denver, CO, June 4-6, 2003.

[46] M. Fujita, K. Hatake, and F. Matsumura, “Loop Shaping based Robust Control of a

Magnetic Bearing,” IEEE Control Systems Magazine, vol. 13, no. 4, pp. 57-65,

August 1993.

Page 117: Weiwen Dissertation

103

[47] T. Sugie, T. Urashima, and K. Fujimoto, “A Control Lyapunov Function Approach

to Stabilization of Nonlinear Systems with H ∞ Control,” Proc. of the ACC, Chicago, IL,

pp. 2139-2143, June 2000.

[48] P. Allaire, and A. Sinha, “Robust Sliding Mode Control of A Planar Rigid Rotor

System on Magnetic Bearing,” Proc. of the Sixth International Symposium on

Magnetic Bearings, MIT, MA, pp. 577-586, 1998.

[49] A. Rundell, S. Drakunov, and R. DeCarlo, “A Sliding Mode Observer and Controller

for Stabilization of a Rotational Motion of a Vertical Shaft Magnetic Bearing,” IEEE

Transactions on Control System Technology, vol. 4, no. 5, pp.598-608, 1996.

[50] K. Nonami and T. Ito, “ µ Synthesis of Flexible Rotor-Magnetic Bearing Systems,”

IEEE Transactions on Control Systems Technology, vol. 4, no. 5, September 1996.

[51] A. Mohamed, F. Matsumura, T. Namerikawa, and Jun-Ho Lee, “ Q -

parameterization/ µ Control of an Electromagnetic Suspension System,” Proc. of the

6th IEEE Conference on Control Applications, Hatford, CT, pp.604-608, October,

1997.

[52] T. Mizuno and H. Bleuler, “Self-Sensing Magnetic Bearing Control System Design

Using the Geometric Approach,” Control Eng. Practice, vol. 3, no. 7, pp. 925-932,

1995.

[53] R.D. Smith and W.F. Weldon, “Nonlinear Control of a Rigid Rotor Magnetic

Bearing System: Modeling and Simulation with Full State Feedback,” IEEE Trans.

Magnetics, vol. 31, no. 2, pp. 973-980, March 1995.

Page 118: Weiwen Dissertation

104

[54] T.Sugie and K.Fujimoto, “Controller Design for an Inverted Pendulum based on

Approximate Linearization,” Int. Journal of Robust and Nonlinear Control, vol. 8,

pp. 585-597, 1998.

[55] M.S. de Queiroz and D.M. Dawson, “Nonlinear Control of Active Magnetic

Bearings: A Backstepping Approach,” IEEE Trans. Control Systems Tech., vol. 4, no.

5, pp. 545-552, September 1996.

[56] M.S. de Queiroz, D.M. Dawson, and H. Canbolat, “A Backstepping-Type Controller

for a 6-DOF Active Magnetic Bearing System,” Proc. IEEE Conference on Decision

and Control, Kobe, Japan, pp. 3370-3375, Dec. 1996.

[57] M.S. de Queiroz, D.M. Dawson, and A.Suri, “Nonlinear Control of a Large Gap 2-

DOF Magnetic Bearing System Based on a Coupled Force Model,” IEEE Proc.

Control Theory and Applications, vol. 145, no. 3, pp. 269-276, May 1998.

[58] Carl R. Knospe, “The Nonlinear Control Benchmark Experiment,” Proc. of the

ACC, Chicago, IL, pp. 2134-2138, June 2000.

[59] J. Ghosh, D. Mukherjee, M. Baloh, and B. Paden, “Nonlinear Control of a

Benchmark Beam Balance Experiment Using Variable Hyperbolic Bias,” Proc. of the

ACC, Chicago, IL, June 2000.

[60] M. Krstic, I. Kanellakopoulos, and P.V. Kokotovic, Nonlinear and Adaptive Control

Design, John Wiley & Sons, New York, 1995.

[61] Zongli Lin and Carl Knospe, “A Saturated High Gain Control for a Benchmark

Experiment,” Proc. of the ACC, Chicago, IL, pp. 2644-2648, June 2000.

[62] V.M. Popov, “Absolute Stability of Nonlinear Systems of Automatic Control,”

Automation and Remote Control, vol. 22, pp. 857-875, February 1962.

Page 119: Weiwen Dissertation

105

[63] A.I. Lure and V.N. Postnikov, “On the theory of stability of control systems,”

Principles Mat. Mech., vol. 8, no. 3, 1994.

[64] Yi Huang, Kekang Xu, Jingqing Han, and James Lam, “Flight Control Design Using

Extended State Observer and Non-smooth Feedback,” Proc. of the 40th

IEEE

Conference on Decision and Control, Orlando, FL, pp. 223-228, December 2001.

Page 120: Weiwen Dissertation

106

APPENDICES

Page 121: Weiwen Dissertation

107

A. C Source Code used in Hardware Tests

/* LS7166 APPLICATION NOTE, EXAMPLE PROVIDED FOR REFERENCE BY */

/* U.S. Digital Corp (206) 260-7451 3-11-93 */

/* note: pin 3 and pin 4 are normally high, pin 18 to address 0 */

/* Borland C source code */

#include <stdio.h>

#include <dos.h>

#include <conio.h>

/* addresses */

#define BASE 0X340 /* base address of interface board */

#define DATA1 BASE+0 /* data register of LS7166 */

#define CONTROL1 BASE+1 /* control register of LS7166 */

#define LOAD BASE+8 /* a write toggles pin 3 of LS7166 */

/* LS7166 commands */

#define MASTER_RESET 0X20 /* master reset command */

#define INPUT_SETUP 0X68 /* setup counter input mode */

#define QUAD_X1 0XC1 /* quadrature multiplier to 1 */

#define QUAD_X2 0XC2 /* quadrature multiplier to 2 */

#define QUAD_X4 0XC3 /* quadrature multiplier to 4 */

Page 122: Weiwen Dissertation

108

#define ADDR_RESET 0X01 /* reset address pointer */

#define LATCH_CNTR 0X02 /* latch counter */

#define CNTR_RESET 0X04 /* reset counter */

#define PRESET_CTR 0X08 /* transfer preset to counter */

unsigned long cntr_ol=0x080000000; /* output of the CNTR */

unsigned char bwt_old; /* the last BWT flag */

unsigned char cyt_old; /* the last CYT flag */

void init_7166(void) { /* initialize the 7166 */

unsigned char status;

outportb(CONTROL1, MASTER_RESET);

outportb(CONTROL1, INPUT_SETUP);

outportb(CONTROL1, QUAD_X4);

outportb(CONTROL1, CNTR_RESET);

/* preset counter to 44 */

outportb(CONTROL1, ADDR_RESET); /* reset addr */

outportb(DATA1, 0x0); /* output preset value */

outportb(DATA1, 0x0); /* output preset value */

outportb(DATA1, 0x080); /* output preset value */

outportb(CONTROL1, PRESET_CTR); /* preset to counter */

Page 123: Weiwen Dissertation

109

status = inportb(CONTROL1);

bwt_old = status & 0x01;

cyt_old = status & 0x02;

}

void soft_latch(void) { /* latch position with software command */

outportb(CONTROL1, LATCH_CNTR); /* counter to latch */

}

void hard_latch(void) { /* latch position with low pulse on pin 3 */

outportb(LOAD, 0); /* toggle pin 3 of LS 7166 */

}

unsigned long read_7166(void) { /* read position of encoder */

unsigned char status;

unsigned long position;

soft_latch();

status = inportb(CONTROL1);

outportb(CONTROL1, ADDR_RESET); /* reset address pointer */

position = (unsigned long)inportb(DATA1); /* least significant byte */

position += (unsigned long)inportb(DATA1) << 8;

position += (unsigned long)inportb(DATA1) <<16; /* most significant byte */

cntr_ol = ( cntr_ol & 0x0ff000000)|position;

Page 124: Weiwen Dissertation

110

if ((status&0x01) != bwt_old) {

cntr_ol -= 0x01000000;

}

if ((status&0x02) != cyt_old) {

cntr_ol += 0x01000000;

}

bwt_old = status&0x01;

cyt_old = status&0x02;

return (cntr_ol);

}

/* Initialize the 8254 */

#include <stdio.h>

#include <dos.h>

#include <conio.h>

void init_8254(void) { /* initialize the 8254 */

outportb(0x43, 0xBA); /* config count down from FFFFh(65535) */

outportb(0x42, 0x0);

outportb(0x42, 0x0);

Page 125: Weiwen Dissertation

111

}

long read_8254(void) {

long t1,t2,t;

outportb(0x43, 0x80); /* latch new time of loop */

t1 = (long)inportb(0x42);

t2 = (long)inportb(0x42);

t=t1+t2*256;

return (t);

}

/* DAC program */

/* Borland C source code */

#include <stdio.h>

#include <dos.h>

#include <conio.h>

/* addresses */

#define DAC_BASE 0X300 /* base address of DAC board */

void DAC_out(double voltage){

Page 126: Weiwen Dissertation

112

double D;

int DH,DL;

if(voltage>5.0) voltage=5.0;

if(voltage<0.0) voltage=0.0;

D=4095*voltage/5.0;

DH=D/16;

DL=D-DH*16;

DL=DL*16;

outport(DAC_BASE+6, DL);

outport(DAC_BASE+7, DH);

}

void init_DAC(void) { /* initialize the DAC board */

DAC_out(2.5);

}

Page 127: Weiwen Dissertation

113

****************************************************************

Loop shaping Control for Servo Motor with trapezoid profile December 2002

****************************************************************

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <dos.h>

#include <conio.h>

#define pi 3.141592653589793

unsigned long read_7166();

long read_8254();

void main(){

double a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12;

double u=0,u_1=0,u_2=0,u_3=0,u_4=0; /* control signal */

double e=0, e_1=0, e_2=0, e_3=0, e_4=0; /* error signal */

double t=0,h, ysp=0; /* time and simulation stepsize */

double V_max, t5, v0, out; /* parameters of trapezoid */

/* parameters of controller */

double kp=0.7, wc=20;

Page 128: Weiwen Dissertation

114

double feedback = 0;

FILE *fp;

int i, I=10,k=0,n=15,first=1;

int K=1000;

char buff[10];

long t_previous,t_current,position;

int time_count;

double *Time;

double *Feedback;

double *Control_out;

double *error;

double *Control;

fp=fopen("loop_trz.dat","w");

if (fp==NULL) {printf("Can't creat the output file out.dat!\n");exit(1);}

printf("\n Input how many revolutions to go [default 1]: ");

gets(buff);

if (strlen(buff) == 0) v0=1;

else

v0 = atof(buff);

printf("\n Input the max speed (rad/sec) [default 14]: ");

gets(buff);

Page 129: Weiwen Dissertation

115

if (strlen(buff) == 0) V_max= 14.0;

else

V_max = atof(buff);

printf("\n Input the kp [default 0.7]: ");

gets(buff);

if (strlen(buff) == 0) kp = 0.7;

else

kp = atof(buff);

printf("kp=%f\n", kp);

printf("\n Input the wc (rad/sec) [default 20]: ");

gets(buff);

if (strlen(buff) == 0) wc = 20.0;

else

wc = atof(buff);

printf("wc = %f\n",wc);

Time = (double *)malloc(K*sizeof(double));

if (!Time) {printf(" No enough memory for Time Array!\n");

exit(1);}

Control_out=(double *)malloc(K*sizeof(double));

if (!Control_out) {printf(" No enough memory for Control_out Array!\n");

exit(1);}

Page 130: Weiwen Dissertation

116

Control = (double *)malloc(K*sizeof(double));

if (!Control) {printf(" No enough memory for Control Array!\n");

exit(1);}

Feedback=(double *)malloc(K*sizeof(double));

if (!Feedback) {printf(" No enough memory for Feedback Array!\n");

exit(1);}

error = (double *) malloc(K*sizeof(double));

if (!error) {printf(" No enough memory for error array!\n");

exit(1);}

printf("Program running...\n");

printf(" \n");

printf("Press any key to exit.\n");

init_DAC();

init_7166();

init_8254();

t5 = 3*pi*v0/V_max;

Page 131: Weiwen Dissertation

117

a1=4*wc+4*kp*wc*wc*h+kp*kp*wc*wc*wc*h*h;

a2=2*kp*kp*wc*wc*wc*h*h-8*wc;

a3=kp*kp*wc*wc*wc*h*h+4*wc-4*kp*h*wc*wc;

a4=4+2*wc*h;

a5=4-2*h*wc;

a6=200*wc*wc*h+141*wc*wc*h*h;

a7=282*wc*wc*h*h;

a8=141*wc*wc*h*h-200*wc*wc*h;

a9=4+40*h*wc+100*wc*wc*h*h;

a10=200*wc*wc*h*h-8;

a11=100*wc*wc*h*h-40*h*wc+4;

t_previous=read_8254(); /* right now, h=0.0, feedback=0.0 */

while(!kbhit()) {

for (i=0;i<I;i++) { /* every I steps output a data */

delay(n);

t_current=read_8254();

if (t_current>t_previous) t_previous+=65536;

time_count=(int)(t_previous-t_current);

h=(double)time_count/1193180.0;

if (first) h=0.001;

t_previous=t_current;

t=t+h;

Page 132: Weiwen Dissertation

118

position=read_7166()-(unsigned long)0x080800000;

feedback=(double)(position*2*pi/16000.0);

if (t<= t5/3) ysp = 3*V_max/t5/2*t*t;

else

if (t<= 2*t5/ 3) ysp = V_max * t5/6 + V_max * (t-t5/3);

else

if (t<=t5) ysp = V_max * t5/2

+ ((t-2*t5/3)*t5-(t*t-4*t5*t5/9)/2)*3*V_max/t5;

else

ysp = 2*V_max*t5/3;

e=ysp-feedback;

if (first) {

first=0;

continue;

}

a12=(a1*a6*e+(a1*a7+a2*a6)*e_1+(a1*a8+a2*a7+a3*a6)*e_2+(a2*a8+a3*a7)*e_3+a3

*a8*e_4)/23.24;

u=(a12-a5*a11*u_4-(a5*a10-8*a11)*u_3-(a11*a4-8*a10+a5*a9)*u_2-(a4*a10-

8*a9)*u_1)/a4/a9;

e_4=e_3;

Page 133: Weiwen Dissertation

119

e_3=e_2;

e_2=e_1;

e_1=e;

u_4=u_3;

u_3=u_2;

u_2=u_1;

u_1=u;

if (u > 3.5) u = 3.5;

if (u <-3.5) u =-3.5;

out=5.0*u/7.0+2.5;

DAC_out(out);

} /* for i loop */

if ( k < K ) {

Time[k]=t;

if ( k == 0) Control[k] = 0;

else Control[k] = (feedback - Feedback[k-1])/h/10;

/* Control[k]=u0; */

Control_out[k]=u;

Feedback[k]=feedback;

error[k] = e;

Page 134: Weiwen Dissertation

120

++k;

}

else

goto exit1;

} /* for k loop */

exit1:

init_DAC();

for(k=0;k<K;k++){

fprintf(fp,"%f %f %f %f %f\n",Time[k],Control[k],

Control_out[k],Feedback[k],error[k]);}

fclose(fp);

printf("Program completed !\n");

}

/* end of main */

Page 135: Weiwen Dissertation

121

*********************************************************************

ESO based state feedback control (LADRC) for Servo Motor using trapezoid profile,

August 2002

*********************************************************************

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <dos.h>

#include <conio.h>

#define pi 3.141592653589793

double fal(double x,double alpha,double delta);

unsigned long read_7166();

long read_8254();

void main(){

double z1=0,z2=0,z3=0; /* three states of ESO */

double v1,v2,v3; /* temple states of ESO */

double z4=0,z5=0;

double v4,v5;

double u0,u=0,out; /* control signal */

Page 136: Weiwen Dissertation

122

double t=0,h=0; /* time and simulation step size */

double beta_01=12, alpha_01=0.5, delta_01=0.001,

beta_02=10, alpha_02=1.0, delta_02=0.001,

beta_03=160, alpha_03=2.0, delta_03=0.001;

double r=20,rr=20,v0=0.125*2*pi;

double V_max, t1; /* parameters of trapezoid */

double K_P=1, K_D=1;

double b0=25;

double e,fe,fe1,fe2;

double e1=0,e2=0;

double feedback=0;

FILE *fp;

int i,I=10,k=0,n=15;

int K=1000;

char buff[10];

long t_previous,t_current,position;

int time_count;

double *Time;

double *Feedback;

double *Control_out;

double *error;

double *error_dot;

Page 137: Weiwen Dissertation

123

double *Control;

fp=fopen("parasw.dat","r");

if (fp==NULL) {printf("Can't open the parameters file paras.dat !\n");exit(1);}

fscanf(fp,"%lf %lf\n",&r,&v0);

fscanf(fp,"%lf\n",&K_P);

fscanf(fp,"%lf\n",&K_D);

fscanf(fp,"%lf %lf %lf\n",&beta_01,&alpha_01, &delta_01);

fscanf(fp,"%lf %lf %lf\n",&beta_02,&alpha_02, &delta_02);

fscanf(fp,"%lf %lf %lf\n",&beta_03,&alpha_03, &delta_03);

fscanf(fp,"%lf",&b0);

fscanf(fp,"%lf",&rr);

fclose(fp);

fp=fopen("eso_trz.dat","w");

if (fp==NULL) {printf("Can't creat the output file out.dat!\n");exit(1);}

printf("\n Input how many revolutions to go [default 1]: ");

gets(buff);

if (strlen(buff) == 0) v0=1;

else

v0 = atof(buff);

printf("\n Input the max speed (rad/sec) [default 14]: ");

gets(buff);

if (strlen(buff) == 0) V_max= 14.0;

Page 138: Weiwen Dissertation

124

else

V_max = atof(buff);

r=fabs(r);

if (r>rr) r=rr;

t1 = 3*pi*v0/V_max;

printf("Program running...\n");

printf(" \n");

printf("Press any key to exit.\n");

Time = (double *)malloc(K*sizeof(double));

if (!Time) {printf(" No enough memory for Time Array!\n");

exit(1);}

Control_out=(double *)malloc(K*sizeof(double));

if (!Control_out) {printf(" No enough memory for Control_out Array!\n");

exit(1);}

Control = (double *)malloc(K*sizeof(double));

if (!Control) {printf(" No enough memory for Control Array!\n");

exit(1);}

Feedback=(double *)malloc(K*sizeof(double));

if (!Feedback) {printf(" No enough memory for Feedback Array!\n");

exit(1);}

error = (double *) malloc(K*sizeof(double));

if (!error) {printf(" No enough memory for error array!\n");

exit(1);}

Page 139: Weiwen Dissertation

125

error_dot = (double *) malloc(K*sizeof(double));

if (!error_dot) { printf(" No enough memory for error_dot arry!\n");

exit(1);}

delay(n);

init_DAC();

init_7166();

init_8254();

t_previous=read_8254 (); /* right now, h=0.0, feedback=0.0 */

while(!kbhit()) {

for (i=0;i<I;i++) { /* every I steps output a data */

t=t+h;

/* ESO */

position=read_7166()-(unsigned long)0x080800000;

feedback=(double)(position*2*pi/16000.0);

e=z1-feedback;

fe=fal(e,alpha_01,delta_01);

v1=z1+h*(z2-beta_01*fe);

fe=fal(e,alpha_02,delta_02);

v2=z2+h*(z3-beta_02*fe+b0*u);

fe=fal(e,alpha_03,delta_03);

v3=z3-h*beta_03*fe;

if (t<= t1/3) v4 = 3*V_max/t1/2*t*t;

Page 140: Weiwen Dissertation

126

else

if (t<= 2*t1/3) v4 = V_max * t1/6 + V_max * (t-t1/3);

else

if (t<=t1) v4 = V_max * t1/2

+ ((t-2*t1/3)*t1-(t*t-4*t1*t1/9)/2)*3*V_max/t1;

else

v4 = 2*V_max*t1/3;

if (h == 0) v5 =0;

else

v5 = (v4 - z4)/h;

z4=v4; z5=v5;

e1=z4-z1;

e2=-z2;

u0=K_P*e1+K_D*e2;

u=u0-z3/b0;

if (u > 3.5) u = 3.5;

if (u <-3.5) u =-3.5;

out=5.0*u/7.0+2.5;

DAC_out(out);

delay(n);

Page 141: Weiwen Dissertation

127

t_current=read_8254();

if (t_current>t_previous) t_previous+=65536;

time_count=(int)(t_previous-t_current);

h=(double)time_count/1193180.0;

t_previous=t_current;

z1=v1;z2=v2;z3=v3;

} /* for i loop */

if ( k < K ) {

Time[k]=t;

if ( k == 0) Control[k] = 0;

else Control[k] = (feedback - Feedback[k-1])/h/10;

Control_out[k]=u;

Feedback[k]=feedback;

error[k] = z3;

error_dot[k] = z5;

++k;

}

else

goto exit1;

} /* for k loop */

exit1:

init_DAC();

Page 142: Weiwen Dissertation

128

for(k=0;k<K;k++){

fprintf(fp,"%f %f %f %f %f %f\n",Time[k],Control[k],

Control_out[k],Feedback[k],error[k],error_dot[k]);}

fclose(fp);

printf("Program completed !\n");

} /* end of main */

double fal(double x,double alpha,double delta) {

if(x>delta) return(pow(x,alpha));

else if(x<-delta) return(-pow(-x,alpha));

else return(x*pow(delta,alpha-1));

}

Page 143: Weiwen Dissertation

129

*************************************************

ADRC for Servo Motor using trapezoid profile, May 2000

*************************************************

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <dos.h>

#include <conio.h>

#define pi 3.141592653589793

double sature(double x, double delta);

double fal(double x,double alpha,double delta);

double fst2(double x1, double x2, double u0, double r, double h);

unsigned long read_7166();

long read_8254();

void main(){

double z1=0,z2=0,z3=0; /* three states of ESO */

double v1,v2,v3; /* temple states of ESO */

double z4=0,z5=0;

double v4,v5;

Page 144: Weiwen Dissertation

130

double u0,u=0,out; /* control signal */

double t=0,h=0; /* time and simulation step size */

double beta_01=12, alpha_01=0.5, delta_01=0.001, /* parameters of ESO */

beta_02=10, alpha_02=1.0, delta_02=0.001,

beta_03=160, alpha_03=2.0, delta_03=0.001;

double r=20,rr=20,v0=0.125*2*pi;

double V_max, t1; /* parameters of trapezoid */

double K_P=2, alpha_P=0.75, delta_P=0.001, /* parameters of Nonlinear Combination */

K_D=0.5, alpha_D=1.5, delta_D=0.001;

double b0=15.04;

double e,fe,fe1,fe2;

double e1=0,e2=0;

double feedback=0;

FILE *fp;

int i,I=10,k=0,n=15;

int K=1000;

char buff[10];

long t_previous,t_current,position;

int time_count;

double *Time;

double *Feedback;

Page 145: Weiwen Dissertation

131

double *Control_out;

double *error;

double *error_dot;

double *Control;

fp=fopen("paras1.dat","r");

if (fp==NULL) {printf("Can't open the parameters file paras.dat !\n");exit(1);}

fscanf(fp,"%lf %lf\n",&r,&v0);

fscanf(fp,"%lf %lf %lf\n",&K_P, &alpha_P, &delta_P);

fscanf(fp,"%lf %lf %lf\n",&K_D, &alpha_D, &delta_D);

fscanf(fp,"%lf %lf %lf\n",&beta_01,&alpha_01, &delta_01);

fscanf(fp,"%lf %lf %lf\n",&beta_02,&alpha_02, &delta_02);

fscanf(fp,"%lf %lf %lf\n",&beta_03,&alpha_03, &delta_03);

fscanf(fp,"%lf",&b0);

fscanf(fp,"%lf",&rr);

fclose(fp);

fp=fopen("adrc_trz.dat","w");

if (fp==NULL) {printf("Can't creat the output file out.dat!\n");exit(1);}

printf("\n Input how many revolutions to go [default 1]: ");

Page 146: Weiwen Dissertation

132

gets(buff);

if (strlen(buff) == 0) v0=1;

else

v0 = atof(buff);

printf("\n Input the max speed (rad/sec) [default 14]: ");

gets(buff);

if (strlen(buff) == 0) V_max= 14.0;

else

V_max = atof(buff);

r=fabs(r);

if (r>rr) r=rr;

t1 = 3*pi*v0/V_max;

printf("Program running...\n");

printf(" \n");

printf("Press any key to exit.\n");

Time = (double *)malloc(K*sizeof(double));

if (!Time) {printf(" No enough memory for Time Array!\n");

exit(1);}

Page 147: Weiwen Dissertation

133

Control_out=(double *)malloc(K*sizeof(double));

if (!Control_out) {printf(" No enough memory for Control_out Array!\n");

exit(1);}

Control = (double *)malloc(K*sizeof(double));

if (!Control) {printf(" No enough memory for Control Array!\n");

exit(1);}

Feedback=(double *)malloc(K*sizeof(double));

if (!Feedback) {printf(" No enough memory for Feedback Array!\n");

exit(1);}

error = (double *) malloc(K*sizeof(double));

if (!error) {printf(" No enough memory for error array!\n");

exit(1);}

error_dot = (double *) malloc(K*sizeof(double));

if (!error_dot) { printf(" No enough memory for error_dot arry!\n");

exit(1);}

delay(n);

init_DAC();

Page 148: Weiwen Dissertation

134

init_7166();

init_8254();

t_previous=read_8254(); /* right now, h=0.0, feedback=0.0 */

while(!kbhit()) {

for (i=0;i<I;i++) { /* every I steps output a data */

t=t+h;

/* ESO */

position=read_7166()-(unsigned long)0x080800000;

feedback=(double)(position*2*pi/16000.0);

e=z1-feedback;

fe=fal(e,alpha_01,delta_01);

v1=z1+h*(z2-beta_01*fe);

fe=fal(e,alpha_02,delta_02);

Page 149: Weiwen Dissertation

135

v2=z2+h*(z3-beta_02*fe+b0*u);

fe=fal(e,alpha_03,delta_03);

v3=z3-h*beta_03*fe;

if (t <= t1/3) v4 = 3*V_max/t1/2*t*t;

else

if (t<= 2*t1/3) v4 = V_max * t1/6 + V_max * (t-t1/3);

else

if (t<=t1) v4 = V_max * t1/2

+ ((t-2*t1/3)*t1-(t*t-4*t1*t1/9)/2)*3*V_max/t1;

else

v4 = 2*V_max*t1/3;

if (h == 0) v5 =0;

else

v5 = (v4 - z4)/h;

z4=v4; z5=v5;

e1=z4-z1;

e2=z5-z2;

fe1=fal(e1,alpha_P,delta_P);

Page 150: Weiwen Dissertation

136

fe2=fal(e2,alpha_D,delta_D);

u0=K_P*fe1+K_D*fe2;

u=u0-z3/b0;

if (u > 3.5) u = 3.5;

if (u <-3.5) u =-3.5;

out=5.0*u/7.0+2.5;

DAC_out(out);

delay(n);

t_current=read_8254();

if (t_current>t_previous) t_previous+=65536;

time_count=(int)(t_previous-t_current);

h=(double)time_count/1193180.0;

t_previous=t_current;

z1=v1;z2=v2;z3=v3;

} /* for i loop */

Page 151: Weiwen Dissertation

137

if ( k < K ) {

Time[k]=t;

if ( k == 0) Control[k] = 0;

else Control[k] = (feedback - Feedback[k-1])/h/10;

Control_out[k]=u;

Feedback[k]=feedback;

error[k] = z3;

error_dot[k] = z5;

++k;

}

else

goto exit1;

} /* for k loop */

exit1;

init_DAC();

for(k=0;k<K;k++){

fprintf(fp,"%f %f %f %f %f %f\n",Time[k],Control[k],

Control_out[k],Feedback[k],error[k],error_dot[k]);}

Page 152: Weiwen Dissertation

138

fclose(fp);

printf("Program completed !\n");

} /* end of main */

double sature(double x, double delta) {

if (x>delta) return(1.0);

else if (x<-delta) return(-1.0);

else return(x/delta);

}

double fal(double x,double alpha,double delta) {

if(x>delta) return(pow(x,alpha));

else if(x<-delta) return(-pow(-x,alpha));

else return(x*pow(delta,alpha-1));

}

double fst2(double x1, double x2, double u0, double r, double h)

{

double d,d0,y1,a0,a1;

Page 153: Weiwen Dissertation

139

d=r*h;

d0=d*h;

y1=x1-u0+h*x2;

a0=sqrt(d*d+8.0*r*fabs(y1));

if (y1>d0) a1=x2+(a0-d)/2.0;

else if (y1<-d0) a1=x2-(a0-d)/2.0;

else a1=x2+y1/h;

return(-r*sature(a1,d));

}

Page 154: Weiwen Dissertation

140

***********************************************************************

Slid Mode Observer based state feedback control for Servo Motor using trapezoid profile,

August 2002

************************************************************************

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <dos.h>

#include <conio.h>

#define pi 3.141592653589793

double fal(double x,double alpha,double delta);

unsigned long read_7166();

long read_8254();

void main(){

double z1=0,z2=0; /* two states of Slid */

double v1,v2; /* temple states of Slid */

double z4=0,z5=0;

double v4,v5;

double u=0,out; /* control signal */

double t=0,h=0; /* time and simulation step size */

Page 155: Weiwen Dissertation

141

/* parameters of Slid */

double beta_01=7, alpha_01= 0.5, beta_02= 7.8, alpha_02=15;

double r=20,rr=20,v0=0.125*2*pi;

double V_max, t1; /* parameters of trapezoid */

double K_P=1, K_D=4.5; /* parameters of state feedback */

double b0=25;

double e,fe,fe1,fe2;

double e1=0,e2=0;

double feedback=0;

FILE *fp;

int i,I=10,k=0,n=15;

int K=1000;

char buff[10];

long t_previous,t_current,position;

int time_count;

double *Time;

double *Feedback;

double *Control_out;

double *error;

double *error_dot;

double *Control;

fp=fopen("paraslid.dat","r");

Page 156: Weiwen Dissertation

142

if (fp==NULL) {printf("Can't open the parameters file paras.dat !\n");exit(1);}

fscanf(fp,"%lf %lf\n",&r,&v0);

fscanf(fp,"%lf\n",&K_P);

fscanf(fp,"%lf\n",&K_D);

fscanf(fp,"%lf %lf\n",&beta_01,&alpha_01);

fscanf(fp,"%lf %lf\n",&beta_02,&alpha_02);

fscanf(fp,"%lf",&b0);

fscanf(fp,"%lf",&rr);

fclose(fp);

printf(" r= %lf\n", r);

printf("v0= %lf\n", v0);

printf(" beta_01= %lf\n", beta_01);

printf("alpha_01= %lf\n", alpha_01);

printf("beta_02 = %lf\n", beta_02);

printf("alpha_02= %lf\n", alpha_02);

fp=fopen("slid_trz.dat","w");

if (fp==NULL) {printf("Can't creat the output file out.dat!\n");exit(1);}

printf("\n Input how many revolutions to go [default 1]: ");

gets(buff);

if (strlen(buff) == 0) v0=1;

Page 157: Weiwen Dissertation

143

else

v0 = atof(buff);

printf("\n Input the max speed (rad/sec) [default 14]: ");

gets(buff);

if (strlen(buff) == 0) V_max= 14.0;

else

V_max = atof(buff);

r=fabs(r);

if (r>rr) r=rr;

t1 = 3*pi*v0/V_max;

printf("Program running...\n");

printf(" \n");

printf("Press any key to exit.\n");

Time = (double *)malloc(K*sizeof(double));

if (!Time) {printf(" No enough memory for Time Array!\n");

exit(1);}

Control_out=(double *)malloc(K*sizeof(double));

if (!Control_out) {printf(" No enough memory for Control_out Array!\n");

exit(1);}

Control = (double *)malloc(K*sizeof(double));

Page 158: Weiwen Dissertation

144

if (!Control) {printf(" No enough memory for Control Array!\n");

exit(1);}

Feedback=(double *)malloc(K*sizeof(double));

if (!Feedback) {printf(" No enough memory for Feedback Array!\n");

exit(1);}

error = (double *) malloc(K*sizeof(double));

if (!error) {printf(" No enough memory for error array!\n");

exit(1);}

error_dot = (double *) malloc(K*sizeof(double));

if (!error_dot) { printf(" No enough memory for error_dot arry!\n");

exit(1);}

delay(n);

init_DAC();

init_7166();

init_8254();

t_previous=read_8254(); /* right now, h=0.0, feedback=0.0 */

while(!kbhit()) {

for (i=0;i<I;i++) { /* every I steps output a data */

t=t+h;

position=read_7166()-(unsigned long)0x080800000;

feedback=(double)(position*2*pi/16000.0);

e=z1-feedback;

Page 159: Weiwen Dissertation

145

fe=sgn(e);

v1=z1+h*(z2-beta_01*e-alpha_01*fe);

v2=z2+h*(-1.41*z2-beta_02*e+b0*u-alpha_02*fe);

if (t<= t1/3) v4 = 3*V_max/t1/2*t*t;

else

if (t<= 2*t1/3) v4 = V_max * t1/6 + V_max * (t-t1/3);

else

if (t<=t1) v4 = V_max * t1/2

+ ((t-2*t1/3)*t1-(t*t-4*t1*t1/9)/2)*3*V_max/t1;

else

v4 = 2*V_max*t1/3;

if (h == 0) v5 =0;

else

v5 = (v4 - z4)/h;

z4=v4; z5=v5;

e1=z4-z1;

e2=-z2;

u=K_P*e1+K_D*e2;

if (u > 3.5) u = 3.5;

if (u <-3.5) u =-3.5;

out=5.0*u/7.0+2.5;

Page 160: Weiwen Dissertation

146

DAC_out(out);

delay(n);

t_current=read_8254();

if (t_current>t_previous) t_previous+=65536;

time_count=(int)(t_previous-t_current);

h=(double)time_count/1193180.0;

t_previous=t_current;

z1=v1;z2=v2;

/*printf("position= %ld\n", position);*/

} /* for i loop */

if ( k < K ) {

Time[k]=t;

if ( k == 0) Control[k] = 0;

else Control[k] = (feedback - Feedback[k-1])/h/10;

Control_out[k]=u;

Feedback[k]=feedback;

++k;

}

else

goto exit1;

} /* for k loop */

exit1:

Page 161: Weiwen Dissertation

147

init_DAC();

for(k=0;k<K;k++){

fprintf(fp,"%f %f %f %f\n",Time[k],Control[k],

Control_out[k],Feedback[k]);}

fclose(fp);

printf("Program completed !\n");

} /* end of main */

int sgn(double x) {

if(x>0) return(1);

else if(x<0) return(-1);

else return(0);

}

Page 162: Weiwen Dissertation

148

B. Parameters of Active Magnetic Bearing Benchmark Problem

Signals

total magnetic flux produced by actuator

, 1, 2i i =

iu command voltage applied to actuator coil

if

force produced upon beam by actuator

, 1, 2i i =

θ rotation angle of beam, 0.00178θ ≤ radian

g nominal air gap length, 13 mils

y

displacement of beam’s end as measured

by sensor, 10y ≤ mils

iI current in coil of actuator , 1,2i i =

d disturbance torque applied to beam

Nonlinearities

(.)p ratio of air gap flux to total flux,

1( ) ( )p x ax b −= +

(.)h current as a function of gap flux and gap

length

Constants

J mass moment of inertia of beam,

Page 163: Weiwen Dissertation

149

0.00967J = kg-m2

L

distance from pivot to actuator,

0.145L = m

N

number of coil turns in each actuator,

321N =

R coil resistance, 1.55R ohms=

K

conversion factor (radians to mils)

5724 /K mils rad= −

sV power supply voltage, 30

sV = volts

a,b,c

magnetic constants,

90.0265, 1.053, 5.87 10a b c= = = ×