0% found this document useful (0 votes)
105 views245 pages

Un Chapitre

This document provides an overview and outline of a lecture on state space modeling. It introduces key concepts in state space representation including state and output equations, conversion from ordinary differential equations to state space form, and system interconnection. It also outlines the topics that will be covered in the lecture, including realization of transfer functions, analysis of linear time invariant systems including stability, controllability and observability, and design of observers and controllers. The lecture aims to present modern control theory using a state space approach and linear algebra.

Uploaded by

Hassaan Ahmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views245 pages

Un Chapitre

This document provides an overview and outline of a lecture on state space modeling. It introduces key concepts in state space representation including state and output equations, conversion from ordinary differential equations to state space form, and system interconnection. It also outlines the topics that will be covered in the lecture, including realization of transfer functions, analysis of linear time invariant systems including stability, controllability and observability, and design of observers and controllers. The lecture aims to present modern control theory using a state space approach and linear algebra.

Uploaded by

Hassaan Ahmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 245

State Space Modelling

Thierry Miquel

To cite this version:


Thierry Miquel. State Space Modelling. Master. ENAC, France. 2021. �hal-02987750v2�

HAL Id: hal-02987750


https://cel.archives-ouvertes.fr/hal-02987750v2
Submitted on 12 Jan 2021

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.

Distributed under a Creative Commons Attribution - NonCommercial| 4.0 International


License
State Space Modelling
Lecture notes - Draft

Thierry Miquel

[email protected]

January 11, 2021


2
Course overview

Classical control theory is intrinsically linked to the frequency domain and the
s-plane. The main drawback of classical control theory is the diculty to
apply it in Multi-Input Multi-Output (MIMO) systems. Rudolf Emil Kalman
(Hungarian-born American, May 19, 1930  July 2, 2016) is one of the greatest
protagonist of modern control theory1 . He has introduced the concept of state
as well as linear algebra and matrices in control theory. With this formalism
systems with multiple inputs and outputs could easily be treated.
The purpose of this lecture is to present an overview of modern control
theory. More specically, the objectives are the following:

− to learn how to model dynamic systems in the state-space and the state-
space representation of transfer functions;

− to learn linear dynamical systems analysis in state-space: more specically


to solve the time invariant state equation and to get some insight on
controllability, observability and stability;

− to learn state-space methods for observers and controllers design.

Assumed knowledge encompass linear algebra, Laplace transform and linear


ordinary dierential equations (ODE)
This lecture is organized as follows:

− The rst chapter focuses on the state-space representation as well as state-


space representation associated to system interconnection;

− The conversion from transfer functions to state-space representation is


presented in the second chapter. This is also called transfer function
realization;

− The analysis of linear dynamical systems is presented in the third chapter;


more specically we will concentrate on the solution of the state equation
and present the notions of controllability, observability and stability;

− The fourth chapter is dedicated to observers design. This chapter focuses


on Luenberger observer, state observer for SISO systems in observable
canonical form, state observer for SISO systems in arbitrary state-space
representation and state observer for MIMO systems will be presented.
1
http://www.uta.edu/utari/acs/history.htm
4

− The fth chapter is dedicated to observers and controllers design. As far


as observers and controllers are linked through the duality principle the
frame of this chapter will be similar to the previous chapter: state feedback
controller for SISO systems in controllable canonical form, state feedback
controller for SISO systems in arbitrary state-space representation, static
state feedback controller and static output feedback controller for MIMO
systems will be presented.
References

[1] Modern Control Systems, Richard C. Dorf, Robert H. Bishop,


Prentice Hall

[2] Feedback Control of Dynamic Systems, Gene F. Franklin, J Powel,


Abbas Emami-Naeini, Pearson

[3] Linear Control System Analysis and Design, Constantine H.


Houpis, Stuart N. Sheldon, John J. D'Azzo, CRC Press

[4] Modern Control Engineering, P.N. Paraskevopoulos, CRC Press


[5] Control Engineering: An Introductory Course, Michael Johnson,
Jacqueline Wilkie, Palgrave Macmillan

[6] Control Engineering: A Modern Approach, P. Bélanger, Oxford


University Press

[7] Multivariable Feedback Control Analysis and design, S. Skogestad


and I. Postlethwaite, Wiley
6 References
Table of contents

1 State-space representation 11
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 State and output equations . . . . . . . . . . . . . . . . . . . . . 12
1.3 From ordinary dierential equations to state-space representation 14
1.3.1 Brunovsky's canonical form . . . . . . . . . . . . . . . . . 14
1.3.2 Linearization of non-linear time-invariant state-space
representation . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 From state-space representation to transfer function . . . . . . . 21
1.5 Zeros of a transfer function - Rosenbrock's system matrix . . . . 23
1.6 Faddeev-Leverrier's method to compute (sI − A)−1 . . . . . . . . 25
1.7 Matrix inversion lemma . . . . . . . . . . . . . . . . . . . . . . . 28
1.8 Interconnection of systems . . . . . . . . . . . . . . . . . . . . . . 29
1.8.1 Parallel interconnection . . . . . . . . . . . . . . . . . . . 29
1.8.2 Series interconnection . . . . . . . . . . . . . . . . . . . . 30
1.8.3 Feedback interconnection . . . . . . . . . . . . . . . . . . 31

2 Realization of transfer functions 33


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2 Non-unicity of state-space representation . . . . . . . . . . . . . . 33
2.2.1 Similarity transformations . . . . . . . . . . . . . . . . . . 33
2.2.2 Inverse of a similarity transformation . . . . . . . . . . . . 35
2.3 Realization of SISO transfer function . . . . . . . . . . . . . . . . 35
2.3.1 Controllable canonical form . . . . . . . . . . . . . . . . . 36
2.3.2 Poles and zeros of the transfer function . . . . . . . . . . . 39
2.3.3 Similarity transformation to controllable canonical form . 39
2.3.4 Observable canonical form . . . . . . . . . . . . . . . . . . 46
2.3.5 Similarity transformation to observable canonical form . . 49
2.3.6 Diagonal (or modal) form . . . . . . . . . . . . . . . . . . 56
2.3.7 Algebraic and geometric multiplicity of an eigenvalue . . . 63
2.3.8 Jordan form and generalized eigenvectors . . . . . . . . . 64
2.4 Realization of SIMO transfer function . . . . . . . . . . . . . . . 70
2.4.1 Generic procedure . . . . . . . . . . . . . . . . . . . . . . 70
2.4.2 Controllable canonical form . . . . . . . . . . . . . . . . . 72
2.5 Realization of MIMO transfer function . . . . . . . . . . . . . . . 75
2.5.1 Generic procedure . . . . . . . . . . . . . . . . . . . . . . 75
2.5.2 Controllable canonical form . . . . . . . . . . . . . . . . . 77
8 Table of contents

2.5.3 Diagonal (or modal) form . . . . . . . . . . . . . . . . . . 78


2.6 Minimal realization . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.6.1 System's dimension . . . . . . . . . . . . . . . . . . . . . . 81
2.6.2 Gilbert's minimal realization . . . . . . . . . . . . . . . . 84
2.6.3 Ho-Kalman algorithm . . . . . . . . . . . . . . . . . . . . 85

3 Analysis of Linear Time Invariant systems 87


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2 Solving the time invariant state equation . . . . . . . . . . . . . . 87
3.3 Output response . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4 Impulse and unit step responses . . . . . . . . . . . . . . . . . . . 89
3.5 Matrix exponential . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.5.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.5.2 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.5.3 Computation of eAt thanks to the diagonal form of A . . 93
3.5.4 Computation of eAt thanks to the Laplace transform . . . 97
3.6 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.7 Controllability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.7.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.7.2 Use of the diagonal form: Gilbert's criteria . . . . . . . . 104
3.7.3 Popov-Belevitch-Hautus (PBH) test . . . . . . . . . . . . 105
3.7.4 Kalman's controllability rank condition . . . . . . . . . . 106
3.7.5 Uncontrollable mode . . . . . . . . . . . . . . . . . . . . . 108
3.7.6 Stabilizability . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.8 Observability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.8.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.8.2 Use of the diagonal form: Gilbert's criteria . . . . . . . . 111
3.8.3 Popov-Belevitch-Hautus (PBH) test . . . . . . . . . . . . 112
3.8.4 Kalman's observability rank condition . . . . . . . . . . . 113
3.8.5 Unobservable mode . . . . . . . . . . . . . . . . . . . . . . 115
3.8.6 Detectability . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.9 Interpretation of the diagonal (or modal) decomposition . . . . . 115
3.10 Duality principle . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.11 Kalman decomposition . . . . . . . . . . . . . . . . . . . . . . . . 118
3.11.1 Controllable / uncontrollable decomposition . . . . . . . . 118
3.11.2 Observable / unobservable decomposition . . . . . . . . . 119
3.11.3 Canonical decomposition . . . . . . . . . . . . . . . . . . . 120
3.12 Minimal realization (again!) . . . . . . . . . . . . . . . . . . . . . 124

4 Observer design 125


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
4.2 Luenberger observer . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.3 State observer for SISO systems in observable canonical form . . 128
4.4 State observer for SISO systems in arbitrary state-space
representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.5 Ackermann's formula . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.6 State observer for MIMO systems - Roppenecker's formula . . . . 134
Table of contents 9

4.7 Reduced-order observer . . . . . . . . . . . . . . . . . . . . . . . 138

5 Controller design 141


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.2 Static state feedback controller . . . . . . . . . . . . . . . . . . . 141
5.3 Control of SISO systems . . . . . . . . . . . . . . . . . . . . . . . 143
5.3.1 State feedback controller in controllable canonical form . . 143
5.3.2 State feedback controller in arbitrary state-space
representation . . . . . . . . . . . . . . . . . . . . . . . . . 144
5.3.3 Ackermann's formula . . . . . . . . . . . . . . . . . . . . . 146
5.3.4 Zeros of closed-loop transfer function . . . . . . . . . . . . 149
5.4 Observer-based controller . . . . . . . . . . . . . . . . . . . . . . 149
5.4.1 Separation principle . . . . . . . . . . . . . . . . . . . . . 149
5.4.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.4.3 Transfer function . . . . . . . . . . . . . . . . . . . . . . . 153
5.4.4 Algebraic controller design . . . . . . . . . . . . . . . . . . 153
5.5 Control of MIMO systems . . . . . . . . . . . . . . . . . . . . . . 155
5.5.1 Frequency domain approach for state feedback . . . . . . 155
5.5.2 Invariance of (transmission) zeros under state feedback . . 157
5.6 Pre-ltering applied to SISO plants . . . . . . . . . . . . . . . . . 157
5.7 Control with integral action . . . . . . . . . . . . . . . . . . . . . 159
5.7.1 Roppenecker's formula . . . . . . . . . . . . . . . . . . . . 160
5.8 Solving general algebraic Riccati and Lyapunov equations . . . . 165
5.9 Static output feedback . . . . . . . . . . . . . . . . . . . . . . . . 167
5.9.1 Partial eigenvalues assignment . . . . . . . . . . . . . . . 167
5.9.2 Changing PID controller into static output feedback . . . 170
5.9.3 Adding integrators, controllability and observability indexes172
5.10 Mode decoupling . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.10.1 Input-output decoupling . . . . . . . . . . . . . . . . . . . 173
5.10.2 Eigenstructure assignment . . . . . . . . . . . . . . . . . . 175
5.10.3 Design procedure . . . . . . . . . . . . . . . . . . . . . . . 177
5.10.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
5.11 Dynamical output feedback control . . . . . . . . . . . . . . . . . 184
5.11.1 From dynamical output feedback to observer-based control 184
5.11.2 Dynamic compensator for pole placement . . . . . . . . . 185
5.11.3 Dynamical output feedback . . . . . . . . . . . . . . . . . 186
5.12 Sensitivity to additive uncertainties . . . . . . . . . . . . . . . . . 189

Appendices 193
A Refresher on linear algebra 195
A.1 Section overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
A.2 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
A.2.1 Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . 195
A.2.2 Vectors operations . . . . . . . . . . . . . . . . . . . . . . 196
A.3 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
A.3.1 Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . 197
10 Table of contents

A.3.2 Matrix Operations . . . . . . . . . . . . . . . . . . . . . . 198


A.3.3 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
A.3.4 Determinant and inverse . . . . . . . . . . . . . . . . . . . 199
A.4 Eigenvalues and eigenvectors . . . . . . . . . . . . . . . . . . . . 200

B Overview of Lagrangian Mechanics 203


B.1 Euler-Lagrange equations . . . . . . . . . . . . . . . . . . . . . . 203
B.2 Robot arm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
B.3 Quadrotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
B.3.1 Inertial frame and body frame . . . . . . . . . . . . . . . . 208
B.3.2 Kinematic relationships . . . . . . . . . . . . . . . . . . . 209
B.3.3 Forces and torques . . . . . . . . . . . . . . . . . . . . . . 210
B.3.4 Generalized coordinates . . . . . . . . . . . . . . . . . . . 211
B.3.5 Inertia matrix . . . . . . . . . . . . . . . . . . . . . . . . . 212
B.3.6 Kinetic energy . . . . . . . . . . . . . . . . . . . . . . . . 212
B.3.7 Potential energy . . . . . . . . . . . . . . . . . . . . . . . 213
B.3.8 Lagrangian . . . . . . . . . . . . . . . . . . . . . . . . . . 213
B.3.9 Euler-Lagrange equations . . . . . . . . . . . . . . . . . . 213
B.3.10 Newton-Euler equations . . . . . . . . . . . . . . . . . . . 215
B.3.11 Translational equations of motion with wind . . . . . . . . 216
B.3.12 Small angle approximation of angular dynamics . . . . . . 217
B.3.13 Synthesis model . . . . . . . . . . . . . . . . . . . . . . . . 218

C Singular perturbations and hierarchical control 219


C.1 Block triangular and block diagonal forms . . . . . . . . . . . . . 219
C.1.1 Block triangular form . . . . . . . . . . . . . . . . . . . . 219
C.1.2 Block diagonal form . . . . . . . . . . . . . . . . . . . . . 220
C.1.3 Similarity transformation . . . . . . . . . . . . . . . . . . 221
C.2 Singularly perturbed system . . . . . . . . . . . . . . . . . . . . . 222
C.3 Two-frequency-scale transfer function . . . . . . . . . . . . . . . . 223
C.4 Hierarchical state feedback of singularly perturbed system . . . . 225
C.5 Hierarchical output feedback of singularly perturbed system . . . 229

D Introduction to fractional systems 233


D.1 Pre-ltering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
D.2 Design steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
D.3 Pre-ltering design for non-minimum phase feedback loop . . . . 235
D.4 CRONE approximation of fractional derivative . . . . . . . . . . 236
D.5 State space fractional systems . . . . . . . . . . . . . . . . . . . . 238
D.6 Approximation of fractional systems based on dierentiation
operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
D.7 Approximation of fractional systems based on integration operator241
Chapter 1

State-space representation

1.1 Introduction
This chapter focuses on the state-space representation as well as conversions
from state-space representation to transfer function. The state-space
representation associated to system interconnection is also presented.
The notion of state-space representation has been developed in the former
Soviet Union where control engineers preferred to manipulate dierential
equations rather than transfer functions which originates in the United States
of America. The diusion to the Western world of state-space representation
started after the rst congress of the International Federation of Automatic
Control (IFAC) which took place in Moscow in 1960.
One of the interest of the state-space representation is that it enables to
generalize the analysis and control of Multi-Input Multi-Output (MIMO) linear
systems with the same formalism than Single-Input Single-Output (SISO) linear
systems.
Let's start with an example. We consider a system described by the following
second-order linear dierential equation with a damping ratio denoted m, an
undamped natural frequency ω0 and a static gain K :

1 d2 y(t) 2m dy(t)
+ + y(t) = Ku(t) (1.1)
ω02 dt2 ω0 dt

Here y(t) denotes the output of the system whereas u(t) is its input. The
preceding relationship represents the input-ouput description of the system.
The transfer function is obtained thanks to the Laplace transform and
assuming that the initial conditions are zero (that is ẏ(t) = ÿ(t) = 0). We get:
1 2 2m
ω02
s Y (s) + ω0 sY (s) + Y (s) = KU (s)
Y (s) Kω02 (1.2)
⇔ F (s) = U (s) = s2 +2mω0 s+ω02

Now rather than computing the transfer function, let's assume that we wish
to transform the preceding second order dierential equation into a single rst
order vector dierential equation. To do that we introduce two new variables,
12 Chapter 1. State-space representation

say x1 and x2 , which are dened for example as follows:

y(t) = Kω02 x1 (t)



(1.3)
ẋ1 (t) = x2 (t)

Thanks to the new variables x1 and x2 the second order dierential equation
(1.1) can now be written as follows:
(
dy(t) 2 dx1 (t) = Kω 2 x (t)
dt = Kω0 dt 0 2
d2 y(t)
dt2
2 dx2 (t)
= Kω0 dt (1.4)
dx2 (t)
⇒ dt + 2mω0 x2 (t) + ω02 x1 (t) = u(t)

The second equation of (1.3) and equation (1.4) form a system of two coupled
rst order linear dierential equations:
(
dx1 (t)
= x2 (t)
dt
dx2 (t) (1.5)
dt = −2mω0 x2 (t) − ω02 x1 (t) + u(t)

In is worth
 noticing
 that variables x1 (t) and x2 (t) constitute a vector which
x1 (t)
is denoted : this is the state vector. Equation (1.5) can be rewritten
x2 (t)
in a vector form as follows:
      
d x1 (t) 0 1 x1 (t) 0
= 2 + u(t) (1.6)
dt x2 (t) −ω0 −2mω0 x2 (t) 1

Furthermore using the rst  equation


 of (1.3) it is seen that the output y(t)
x1 (t)
is related to the state vector by the following relationship:
x2 (t)
 
x1 (t)
Kω02 0 (1.7)
 
y(t) =
x2 (t)

Equations (1.6) and (1.7) constitute the so called state-space representation


of the second order system model (1.4). This representation can be generalized
as follows: 
ẋ(t) = Ax(t) + Bu(t)
(1.8)
y(t) = Cx(t) + Du(t)
The state-space representation is formed by a state vector and a state
equation. This representation enables to describe the dynamics of a linear
dynamical systems through n rst order dierential equations, where n is the
size of the state vector, or equivalently through a single rst order vector
dierential equation.

1.2 State and output equations


Any system that can be described by a nite number of nth order linear
dierential equations with constant coecients, or any system that can be
1.2. State and output equations 13

Figure 1.1: Block diagram of a state-space representation

approximated by them, can be described using the following state-space


representation:

ẋ(t) = Ax(t) + Bu(t)
(1.9)
y(t) = Cx(t) + Du(t)
Where:
− x(t) is the state vector, which is of dimension n. The number n of the
state vector components is called the order of the system;

− u(t) is the input of the system;


− y(t) is the output of the system.
State vector x(t) can be dened as a set of variables such that their
knowledge at the initial time t0 = 0, together with knowledge of system inputs
u(t) at t ≥ 0 are sucient to predict the future system state and output y(t)
for all time t > 0.
Both equations in (1.9) have a name:
− Equation ẋ(t) = Ax(t) + Bu(t) is named as the state equation;
− Equation y(t) = Cx(t) + Du(t) is named as the output equation.
The state equation and the output equation both constitute the state-space
representation of the system.
The block diagram corresponding to state-space representation (1.9) is
shown in Figure 1.1.
Furthermore matrices (A, B, C, D) which dene the state-space
representation of the system are named as follows 1 :
− A is the state matrix and relates how the current state aects the state
change ẋ(t). This is a constant n × n square matrix where n is the size of
the state vector;

− B is the control matrix and determines how the system inputs u(t) aects
the state change; This is a constant n × m matrix where m is the number
of system inputs;
1
https://en.wikibooks.org/wiki/Control_Systems/State-Space_Equations
14 Chapter 1. State-space representation

− C is the output matrix and determines the relationship between the system
state x(t) and the system outputs y(t). This is a constant p × n matrix
where p is the number of system outputs;

− D is the feedforward matrix and allows for the system input u(t) to aect
the system output y(t) directly. This is a constant p × m matrix.

1.3 From ordinary dierential equations to


state-space representation
1.3.1 Brunovsky's canonical form
Let's consider a Single-Input Single-Output (SISO) dynamical system modelled
by the following input-output relationship, which is an nth order non-linear
time-invariant Ordinary Dierential Equation (ODE):

dn y(t) dy(t) d2 y(t) dn−1 y(t)


 
= g y(t), , ,··· , , u(t) (1.10)
dtn dt dt2 dtn−1
This is a time-invariant input-output relationship because time t does not
explicitly appears in function g .
The usual way to get a state-space equation from the nth order non-linear
time-invariant ordinary dierential equation (1.10) is to choose the components
x1 (t), · · · , xn (t) of the state vector x(t) as follows:

y(t)
 
 
x1 (t)  dy(t) 
 x2 (t)  dt 
  d2 y(t) 
..
 
dt2
(1.11)
 
x(t) =  .  :=  ..
  

 xn−1 (t)
 
 . 

dn−2 y(t)
  
xn (t) dtn−2
 
dn−1 y(t)
dtn−1

Thus Equation (1.10) reads:

   
ẋ1 (t) x1 (t)
 ẋ2 (t)   x2 (t) 
.. ..
   
ẋ(t) =  . = .  := f (x(t), u(t)) (1.12)
   
   
 ẋn−1 (t)   xn−1 (t) 
ẋn (t) g (x1 , · · · , xn−1 , u(t))

Furthermore:
(1.13)
 
y(t) := x1 (t) = 1 0 ··· 0 x(t)

This special non-linear state equation is called the Brunovsky's canonical


form.
1.3. From ordinary dierential equations to state-space representation 15

1.3.2 Linearization of non-linear time-invariant state-space


representation
More generally most of Multi-Input Multi-Output (MIMO) dynamical systems
can be modelled by a nite number of coupled non-linear rst order ordinary
dierential equations (ODE) as follows:

ẋ(t) = f (x(t), u(t)) (1.14)

The Brunovsky's canonical form may be used to obtain the rst order
ordinary dierential equations.
In the preceding state equation f is called a vector eld. This is a time-
invariant state-space representation because time t does not explicitly appears
in the vector eld f .
When the vector eld f is non-linear there exists quite few mathematical
tools which enable to catch the intrinsic behavior of the system. Nevertheless
this situation radically changes when vector eld f is linear both in the state x(t)
and in the control u(t). The good news is that it is quite simple to approximate
a non-linear model with a linear model around an equilibrium point.
We will rst dene what we mean by equilibrium point and then we will see
how to get a linear model from a non-linear model.
An equilibrium point is a constant value of the pair (x(t), u(t)), which will
be denoted (xe , ue ), such that:

0 = f (xe , ue ) (1.15)

It is worth noticing that as soon as (xe , ue ) is a constant value then we have


ẋe = 0.
Then the linearization process consists in computing the Taylor expansion
of vector eld f around the equilibrium point (xe , ue ) and to stop it at order 1.
Using the fact that f (xe , ue ) = 0 the linearization of a vector eld f (x(t), u(t))
around the equilibrium point (xe , ue ) reads:

f (xe + δx, ue + δu) ≈ Aδx + Bδu (1.16)

Where: 
δx(t) = x(t) − xe
(1.17)
δu(t) = u(t) − ue
And where matrices A and B are constant matrices:

∂f (x,u)
 A = ∂x

u=ue ,x=xe (1.18)
∂f (x,u)
 B = ∂u

u=ue ,x=xe

Furthermore as far as xe is a constant vector we can write:

d (x(t) − xe )
ẋ(t) = ẋ(t) − 0 = ẋ(t) − x˙e = = δ ẋ(t) (1.19)
dt
16 Chapter 1. State-space representation

Thus the non-linear time-invariant state equation (1.14) turns to be a linear


time-invariant state equation:

δ ẋ(t) = Aδx(t) + Bδu(t) (1.20)

As far as the output equation is concerned we follow the same track. We


start with the following non-linear output equation:

y(t) = h (x(t), u(t)) (1.21)

Proceeding as to the state equation, we approximate the vector eld h by


its Taylor expansion at order 1 around the equilibrium point (xe , ue ):

y(t) = h (xe , ue ) + h (δx(t) + xe , δu(t) + ue ) ≈ y e + Cδx + Dδu (1.22)

Where:
y e = h (xe , ue ) (1.23)
And where matrices C and D are constant matrices:

∂h(x,u)

 C = ∂x u=u ,x=x
e
∂h(x,u)
e (1.24)
 D = ∂u

u=ue ,x=xe

Let's introduce the dierence δy(t) as follows:

δy(t) = y(t) − y e (1.25)

Thus the non-linear output equation (1.21) turns to be a linear output


equation:
δy(t) = Cδx(t) + Dδu(t) (1.26)
Consequently a non-linear time-invariant state representation:

ẋ(t) = f (x(t), u(t))
(1.27)
y(t) = h (x(t), u(t))

can be approximated around an equilibrium point (xe , ue ), dened by


0 = f (xe , ue ), by the following linear time-invariant state-space representation:

δ ẋ(t) = Aδx(t) + Bδu(t)
(1.28)
δy(t) = Cδx(t) + Dδu(t)

Nevertheless is worth noticing that the linearization process is an


approximation that is only valid around a region close to the equilibrium
point.
The δ notation indicates that the approximation of the non-linear state-space
representation is made around an equilibrium point. This is usually omitted and
the previous state-space representation will be simply rewritten as follows:

ẋ(t) = Ax(t) + Bu(t)
(1.29)
y(t) = Cx(t) + Du(t)
1.3. From ordinary dierential equations to state-space representation 17

Example 1.1. Let's consider a ctitious system whose dynamics reads:


d3 y(t)
= cos(ÿ(t)) + e3ẏ(t) − tan(y(t)) + u(t) (1.30)
dt3
Find a non-linear state-space representation of this system with the
Brunovsky's choice for the components of the state vector. Then linearize the
state-space representation around the equilibrium output ye = 0.
As far as the dierential equation which describes the dynamics of the system
is of order 3, there are 3 components in the state vector:
 
x1 (t)
x(t) =  x2 (t)  (1.31)
x3 (t)
The Brunovsky's canonical form is obtained by choosing the following
components for the state vector:
   
x1 (t) y(t)
x(t) =  x2 (t)  =  ẏ(t)  (1.32)
x3 (t) ÿ(t)
With this choice the dynamics of the system reads:
    

 ẋ1 (t) x2 (t)
ẋ2 (t)  =  x3 (t)
 
(1.33)

ẋ3 (t) cos(x3 (t)) + e 3x 2 (t) − tan(x1 (t)) + u(t)


y(t) = x1 (t)

The preceding relationships are of the form:



ẋ(t) = f (x(t), u(t))
(1.34)
y(t) = h (x(t), u(t))
Setting the equilibrium output to be ye = 0 leads to the following equilibrium
point xe :    
ye 0
ye = 0 ⇒ xe =  ẏe  =  0  (1.35)
ÿe 0
Similarly the value of the control ue at the equilibrium point is obtained by
solving the following equation:
d3 ye
dt3
= cos(ÿe ) + e3ẏe − tan(ye ) + ue
⇒ 0 = cos(0) + e3×0 − tan(0) + ue (1.36)
⇒ ue = −2
Matrices A and B are constant matrices which are computed as follows:
    
 0 1 0 0 1 0
 ∂f (x,u)


 A= ∂x =  0 0 1 = 0 0 1 
 u=ue ,x=xe 2 (x )
 3x2e
− 1 + tan 3e −sin(x3e ) −1 3 0

  1e
 0
∂f (x,u)

B= = 0 

 

 ∂u u=u ,x=x
 e e
1
(1.37)
18 Chapter 1. State-space representation

Similarly matrices C and D are constant matrices which are computed as


follows: 
∂h(x,u)  
  C= ∂x = 1 0 0
u=ue ,x=xe (1.38)
∂h(x,u)
 D = ∂u
 =0
u=ue ,x=xe

Consequently the non-linear


time-invariant state representation
d3 y(t)
dt3
= cos(ÿ(t)) + − tan(y(t)) + u(t) can be approximated around the
e3ẏ(t)
equilibrium output ye = 0 by the following linear time-invariant state-space
representation:
    

 0 1 0 0
δ ẋ(t) = Aδx(t) + Bδu(t) = 0 0 1 δx(t) + 0  δu(t)

(1.39)
  

  −1 3 0 1
δy(t) = Cδx(t) + Dδu(t) = 1 0 0 δx(t)

The Scilab code to get the state matrix A around the equilibrium point (xe =
0, ue = −2) is the following:

function xdot = f(x,u)


xdot = zeros(3,1);
xdot(1) = x(2);
xdot(2) = x(3);
xdot(3) = cos(x(3)) + exp(3*x(2)) - tan(x(1)) + u;
endfunction

xe = zeros(3,1);
xe(3) = 0;
ue = -2;
disp(f(xe,ue), 'f(xe,ue)=');
disp(numderivative(list(f,ue),xe),'df/dx=');


Example 1.2. We consider the following equations which represent the


dynamics of an aircraft considered as a point with constant mass2 :


 mV̇ = T − D − mg sin(γ)
 mV γ̇ = L cos(φ) − mg cos(γ)
(1.40)

 mV cos(γ)ψ̇ = L sin(φ)

φ̇ = p
Where:
− V is the airspeed of the aircraft;
− γ is the ight path angle;
− ψ is the heading;
2
Etkin B., Dynamics of Atmospheric Flight, Dover Publications, 2005
1.3. From ordinary dierential equations to state-space representation 19

− φ is the bank angle;


− m is the mass (assumed constant) of the aircraft;
− T is the Thrust force applied by the engines on the aircraft model;
− D is the Drag force;
− g is the acceleration of gravity (g = 9.80665 m/s2 );
− L is the Lift force;
− φ is the bank angle;
− p is the roll rate.
We will assume that the aircraft control vector u(t) has the following
components:
− The longitudinal load factor nx :
T −D
nx = (1.41)
mg

− The vertical load factor nz :


L
nz = (1.42)
mg
− The roll rate p
Taking into account the components of the control vector u(t) the dynamics
of the aircraft model (1.40) reads as follows:


 V̇ = g (nx − sin(γ))
 γ̇ = g (n cos(φ) − cos(γ))

V z
sin(φ) (1.43)

 ψ̇ = Vg cos(γ) nz

φ̇ = p

This is clearly a non-linear time-invariant state equation of the form:


ẋ = f (x, u) (1.44)

Where: (  T
x= V γ ψ φ
 T (1.45)
u = nx nz p
Let (xe , ue ) be an equilibrium point dened by:
f (xe , ue ) = 0 (1.46)

The equilibrium point (or trim) for the aircraft model is obtained by
arbitrarily setting the values of state vector xe = Ve γe ψe φe T which
 

are airspeed, ight path angle, heading and bank angle, respectively. From that
20 Chapter 1. State-space representation

value of the state vector


T e
x we get the value of the corresponding control vector
ue = nxe nze pe by solving the following set of equations:


 0 = g (nxe − sin(γe ))
 0 = g (nze cos(φe ) − cos(γe ))

Ve
sin(φe ) (1.47)

 0 = Vge cos(γe)
nze

0 = pe

We get:


 pe = 0

 φe = 0
(1.48)

 nze = cos(γe )
cos(φe ) here φe = 0 ⇒ nze = cos(γe )

 nxe = sin(γe )

Let δx(t) and δx(t) be dened as follows:



x(t) = xe + δx(t)
(1.49)
u(t) = ue + δu(t)

The linearization of the vector eld f around the equilibrium point (xe , ue )
reads:

∂f (x, u) ∂f (x, u)
δ ẋ(t) ≈ δx(t) + δu(t) (1.50)
∂x u=u ∂u u=u
e ,x=xe e ,x=xe

Assuming a level ight (γe = 0) we get the following expression of the state
vector at the equilibrium:  
Ve
 γe = 0 
xe = 
 ψe 
 (1.51)
φe = 0
Thus the control vector at the equilibrium reads:
 
nxe = sin (γe ) = 0
ue =  nze = cos (γe ) = 1  (1.52)
pe = 0
Consequently:
 
0 −g cos(γ) 0 0
 − g (nz cos(φ) − cos(γ)) g
0 − Vg nz sin(φ)
V sin(γ)

∂f (x,u) 2
= V
 
sin(φ) sin(φ) sin(γ) g cos(φ)
∂x u=u ,x=x − Vg2 cos(γ) nz − Vg nz 0 V cos(γ) nz

e e  cos2 (γ) 
0 0 0 0 x = xe




u = ue
 
0 −g 0 0
 0 0 0 0 
=
 0 g 

0 0 Ve
0 0 0 0
(1.53)
1.4. From state-space representation to transfer function 21

And:
 
g 0 0
g

∂f (x,u)
 0 V cos(φ) 0 

=

∂u u=u ,x=x g sin(φ)
0 0  V = Ve

e e  V cos(γ)
0 0 1 γ = γe = 0
nz = nze = cos (γe ) = 1

(1.54)


φ = φe = 0


 
g 0 0
 0 g
Ve 0 
=
 0

0 0 
0 0 1

Finally using the fact that γe = 0 ⇒ δγ = γ , φe = 0 ⇒ δφ = φ and


pe = 0 ⇒ δp = p we get the following linear time-invariant state equation:
      
δ V̇ 0 −g 0 0 δV g 0 0  
 γ̇   0 0 0 0   γ   0 g 0  δnx
 δ ψ̇  =  0
+ Ve   δnz  (1.55)
0 0 Vge   δψ   0 0 0 
   
p
φ̇ 0 0 0 0 φ 0 0 1

Obviously this is a state equation of the form δ ẋ(t) = Aδx(t) + Bδu(t).


It can be seen that the linear aircraft model can be decoupled into longitudinal
and lateral dynamics:
− Longitudinal linearized dynamics:
       
δ V̇ 0 −g δV g 0 δnx
= + g (1.56)
γ̇ 0 0 δγ 0 Ve δnz

− Lateral linearized dynamics:


   g    
δ ψ̇ 0 δψ 0
= Ve + p (1.57)
φ̇ 0 0 φ 1

The previous equations show that:


− Airspeed variation is commanded by the longitudinal load factor nx ;
− Flight path angle variation is commanded by the vertical load factor nz ;
− Heading variation is commanded by the roll rate p.


1.4 From state-space representation to transfer


function
Let's consider the state-space representation (1.9) with state vector x(t), input
vector u(t) and output vector y(t). The transfer function relates the relationship
22 Chapter 1. State-space representation

between the Laplace transform of the output vector, Y (s) = L y(t) , and the
 

Laplace transform of the input vector, U (s) = L [u(t)], assuming no initial


condition, that is x(t)|t=0+ = 0. From (1.9) we get:

sX(s) = AX(s) + BU (s)
x(t)|t=0+ = 0 ⇒ (1.58)
Y (s) = CX(s) + DU (s)
From the rst equation of (1.58) we obtain the expression of the Laplace
transform of the state vector (be careful to multiply s by the identity matrix to
obtain a matrix with the same size than A ):

(sI − A) X(s) = BU (s) ⇔ X(s) = (sI − A)−1 BU (s) (1.59)

And using this result in the second equation of (1.58) leads to the expression
of the transfer function F(s) of the system:
 
Y (s) = CX(s) + DU (s) = C (sI − A)−1 B + D U (s) := F(s)U (s) (1.60)

Where the transfer function F(s) of the system has the following expression:

F(s) = C (sI − A)−1 B + D (1.61)

It is worth noticing that the denominator of the transfer function F(s) is


also the determinant of matrix sI − A. Indeed the inverse of sI − A is given by:
1
(sI − A)−1 = adj(sI − A) (1.62)
det(sI − A)

Where adj(sI − A) is the adjugate of matrix sI − A (that is the transpose of the


matrix of cofactors 3 ). Consequently, and assuming no pole-zero cancellation
between adj(sI − A) and det(sI − A), the eigenvalues of matrix A are also the
poles of the transfer function F(s).
From (1.62) it can be seen that the polynomials which form the numerator of
C (sI − A)−1 B have a degree which is strictly lower than the degree of det(sI −
A). Indeed the entry in the ith row and j th column of the cofactor matrix of
sI − A (and thus the adjugate matrix) is formed by the determinant of the
submatrix formed by deleting the ith row and j th column of matrix sI − A;
thus each determinant of those submatrices have a degree which is strictly lower
than the degree of det(sI − A). We say that C (sI − A)−1 B is a strictly proper
rational matrix which means that:

lim C (sI − A)−1 B = 0 (1.63)


s→∞

In the general case of MIMO systems F(s) is a matrix of rational fractions:


the number of rows of F(s) is equal to the number of outputs of the system
(that is the size of the output vector y(t)) whereas the number of columns of
F(s) is equal to the number of inputs of the system (that is the size of the input
vector u(t)).
3
https://en.wikipedia.org/wiki/Invertible_matrix
1.5. Zeros of a transfer function - Rosenbrock's system matrix 23

1.5 Zeros of a transfer function - Rosenbrock's system


matrix
Let R(s) be the so-called Rosenbrock's system matrix, as proposed in 1967 by
Howard H. Rosenbrock4 :
 
sI − A −B
R(s) = (1.64)
C D

From the fact that transfer function F(s) reads F(s) = C (sI − A)−1 B + D,
the following relationship holds:
    
I 0 I 0 sI − A −B
R(s) =
−C (sI − A)−1 I −C (sI − A)−1 I C D
 
sI − A −B
=
0 F(s)
  (1.65)
I 0
Matrix is a square matrix for which the following
−C (sI − A)−1 I
relationship holds:
 
I 0
det =1 (1.66)
−C (sI − A)−1 I
Now assume that R(s) is a square matrix. Using the property
det (XY) = det (X) det (Y), we get the following property for the
Rosenbrock's system matrix R(s):
    
I 0 sI − A −B
det −1 R(s) = det
 −C (sI − A) I  0 F(s)
I 0
⇒ det det (R(s)) = det (sI − A) det (F(s))
−C (sI − A)−1 I
⇒ det (R(s)) = det (sI − A) det (F(s))
(1.67)
For SISO systems we have det (F(s)) = F (s) and consequently the preceding
property reduces as follows:
det (R(s))
det (F(s)) = F (s) ⇒ F (s) = (1.68)
det (sI − A)
For non-square matrices, the Sylvester's rank inequality states that if X is
a m × n matrix and Y is a n × k matrix, then the following relationship holds:
rank (X) + rank (Y) − n ≤ rank (XY) ≤ min (rank (X) , rank (Y)) (1.69)
For MIMO systems the transfer function between input i and output j is
given by:  
sI − A −bi
det
cTj dij
Fij (s) = (1.70)
det(sI − A)
4
https://en.wikipedia.org/wiki/Rosenbrock_system_matrix
24 Chapter 1. State-space representation

where bi is the ith column of B and cTj the j th row of C.


Furthermore in the general case of MIMO linear time invariant systems, the
(transmission) zeros of a transfer function F(s) are dened as  the values of s
sI − A −B
such that the rank of the Rosenbrock's system matrix R(s) =
C D
is lower than its normal rank, meaning that the rank of R(s) drops.
When R(s) is a square matrix this means that R(s) is not invertible; in such
a situation the (transmission) zeros are the values of s such that det (R(s)) = 0.
Furthermore when R(s) is a square matrix a (transmission) zero z in the
transfer function F(s) indicates that there exists non-zero input vectors u(t)
which produces a null output vector y(t). Let's write the state vector x(t) and
input vector u(t) as follows where z is a (transmission) zero of the system:

x(t) = x0 ezt

(1.71)
u(t) = u0 ezt

Imposing a null output vector y(t) we get from the state-space representation
(1.9):

zx0 ezt = Ax0 ezt + Bu0 ezt


 
ẋ(t) = Ax(t) + Bu(t)
⇔ (1.72)
y(t) = Cx(t) + Du(t) 0 = Cx0 ezt + Du0 ezt
That is:
(zI − A) x0 ezt − Bu0 ezt = 0
    
sI − A −B x0
⇔ ezt = 0 (1.73)
Cx0 ezt + Du0 ezt = 0 C D s=z
u0

This relationship holds for a non-zero input vector u(t) = u0 ezt and a
non-zero state vector x(t) = x0 ezt when the values of s are chosen such that
R(s) is not invertible (R(s) is assumed to be square); in such a situation the
(transmission) zeros are the values of s such that det (R(s)) = 0. We thus
retrieve Rosenbrock's result.
Example 1.3. Let's consider the following state-space representation:
    
−7 −12 1
ẋ(t) = x(t) + u(t)

 1  0 0 (1.74)
y(t) = 1 2 x(t)

From the identication with the general form of a state-space representation


(1.9) it is clear that D = 0. Furthermore we get the following expression for the
transfer function:
F (s) = C (sI − A)−1 B
 s + 7 12 −1 1
   

= 1 2
−1 s 0  
s −12 1
1 (1.75)
 
= 1 2 s(s+7)+12
1
  s + 7 0
1
  s
= s2 +7s+12 1 2
1
s+2
= s2 +7s+12
1.6. Faddeev-Leverrier's method to compute (sI − A)−1 25

It can be checked the denominator of the transfer function F (s) is also the
determinant of matrix sI − A.
 
s + 7 12
det(sI − A) = det = s2 + 7s + 12 (1.76)
−1 s
Furthermore as far as F (s) is the transfer function of a SISO system it can
also be checked that its numerator of can be obtained thanks to the following
relationship:
 
  s + 7 12 −1
sI − A −B
det = det  −1 s 0  = s + 2 (1.77)
C D
1 2 0
Thus the only (transmission) zero for this system is s = −2.


1.6 Faddeev-Leverrier's method to compute


−1
(sI − A)
Let A be a n × n matrix with coecients in R. Then matrix (sI − A)−1 ,
which is called the resolvent of A, may be obtained by a method proposed by
D.K. Faddeev (Dmitrii Konstantinovitch Faddeev, 1907 - 1989, was a Russian
mathematician). This is a modication of a method proposed by U.J.J. Leverrier
(Urbain Jean Joseph Le Verrier, 1811 - 1877, was a French mathematician who
specialized in celestial mechanics and is best known for predicting the existence
and position of Neptune using only mathematics 5 ). The starting point of the
method is to relate the resolvent of matrix A to its characteristic polynomial
det (sI − A) through the following relationship:
N(s) F0 sn−1 + F1 sn−2 + · · · + Fn−1
(sI − A)−1 = = (1.78)
det (sI − A) sn − d1 sn−1 − · · · − dn
where the adjugate matrix N(s) is a polynomial matrix in s of degree n − 1 with
constant n × n coecient matrices F0 , · · · , Fn−1 .
The Faddeev-Leverrier's method indicates that the n matrices Fk and
coecients dk in (1.78) can be computed recursively as follows:

 F0 = I
and F1 = AF0 − d1 I

 d1 = tr (AF0 )



d = 1
tr (AF ) and F2 = AF1 − d2 I

 .2 2 1



..
dk = k1 tr (AFk−1 ) and Fk = AFk−1 − dk I (1.79)



.

 .

.




dn = n1 tr (AFn−1 )

and det (sI − A) = sn − d1 sn−1 − · · · − dn


5
https://en.wikipedia.org/wiki/Urbain_Le_Verrier
26 Chapter 1. State-space representation

To arrive at the Faddeev-Leverrier's method we shall compare coecients of


like powers of s in the following formula which is derived from (1.78):

(sI − A) F0 sn−1 + F1 sn−2 + · · · + Fn−1 = I sn − d1 sn−1 − · · · − dn (1.80)


 

and obtain immediately that matrices Fk are given by:




 F0 = I
 F1 = AF0 − d1 I



F2 = AF1 − d2 I (1.81)
..
.





Fk = AFk−1 − dk I

The rest of the proof can be found in the paper of Shui-Hung Hou 6 .

Example 1.4. Compute the resolvent of matrix A where:


 
0 1
A= (1.82)
0 0

Matrix A is a 2 × 2 matrix. The Faddeev-Leverrier's method gives:



 F0 = I
d1 = tr (AF0 ) = tr (A) = 0 and F1 = AF0 − d1 I = A
(1.83)
d2 = 12 tr (AF1 ) = 12 tr A2 = 0

and det (sI − A) = s2 − d1 s − d2 = s2
Then:
1 1
   
−1 F0 s + F1 1 s 1
(sI − A) = = 2 = s s2
1 (1.84)
det (sI − A) s 0 s 0 s2

Example 1.5. Compute the resolvent of matrix A where:


 
1 2
A= (1.85)
0 −5

Matrix A is a 2 × 2 matrix. The Faddeev-Leverrier's method gives:




 F0 = I  
5 2

d1 = tr (AF0 ) = −4 and F1 = AF0 − d1 I =


0 −1
  (1.86)
5 0


 d2 = 12 tr (AF1 ) = 21 tr =5


0 5
and det (sI − A) = s2 − d1 s − d2 = s2 + 4s − 5 = (s − 1)(s + 5)
6
Shui-Hung Hou, A Simple Proof of the Leverrier-Faddeev Characteristic Polynomial
Algorithm, SIAM Review, Vol. 40, No. 3 (Sep., 1998), pp. 706-709
1.6. Faddeev-Leverrier's method to compute (sI − A)−1 27

Then:
 
s+5 2
(sI − A)−1 = F0 s+F1
det(sI−A) = 1
(s−1)(s+5) 0 s−1
"
1 2
# (1.87)
s−1 (s−1)(s+5)
= 1
0 s+5

Example 1.6. Compute the resolvent of matrix A where:


 
0 1
A= (1.88)
−ω02 −2mω0

Matrix A is a 2 × 2 matrix. The Faddeev-Leverrier's method gives:




 F0 = I  
2mω0 1

d1 = tr (AF0 ) = −2mω0 and F1 = AF0 − d1 I =


−ω02 0
(1.89)
−ω02
 
0


 d2 = 21 tr (AF1 ) = 21 tr = −ω02


−4mω03 −ω02
and det (sI − A) = s2 − d1 s − d2 = s2 + 2mω0 s + ω02
Then:
(sI − A)−1 = F0 s+F1
det(sI−A)
(1.90)
 
1 s + 2mω0 1
= s2 +2mω0 s+ω02 −ω02 s


Example 1.7. Compute the resolvent of matrix A where:


 
2 −1 0
A= 0 1 0  (1.91)
1 −1 1

Matrix A is a 3 × 3 matrix. The Faddeev-Leverrier's method gives:




 F0 = I  
−2 −1 0



and F1 = AF0 − d1 I =  0 −3 0 




 d1 = tr (AF0 ) = 4

 1 −1 −3



 


 −4 1 0
 d2 = 12 tr (AF1 ) = 1

 0 −3 0  = −5
2 tr


−1 1 −3
 (1.92)
1 1 0




F = AF − d = 0 2 0 



 2 1 2 I 
−1

 1 2



 


 2 0 0
d3 = 31 tr (AF2 ) = 13 tr  0 2 0  = 2





0 0 2

and det (sI − A) = s − d1 s − d2 s − d3 = s3 − 4s2 + 5s − 2
3 2
28 Chapter 1. State-space representation

Then:
F0 s2 +F1 s+F2
(sI − A)−1 = det(sI−A) 
s2 − 2s + 1

−s + 1 0
= s3 −4s21+5s−2  0 s2 − 3s + 2 0 
s−1 −s + 1 2
s − 3s + 2

(s − 1)2
 
−(s − 1) 0
1
= (s−2)(s−1)2
 0 (s − 2)(s − 1) 0 
s−1 −(s −
 1) (s − 2)(s − 1)
−1
 1
s−2 (s−1)(s−2) 0
1
= 0 0 
 
s−1
1 −1 1
(s−1)(s−2) (s−1)(s−2) s−1
(1.93)


1.7 Matrix inversion lemma


Assuming that A11 and A22 are invertible matrices, the inversion of a
partitioned matrix reads as follows:
−1
−A−1
  
A11 A12 Q1 11 A12 Q2
= −1
A21 A22  −A22 A21 Q1 Q2
(1.94)
−Q1 A12 A−1

Q1 22
=
−Q2 A21 A−1
11 Q2
where: ( −1
Q1 = A11 − A12 A−1
22 A21 
−1 (1.95)
Q2 = A22 − A21 A−1
11 A12
We can check that:
−A−1
    
A11 A12 Q1 11 A12 Q2 I 0
= (1.96)
A21 A22 −A−1
22 A21 Q1 Q2 0 I
and that:
−Q1 A12 A−1
    
A11 A12 Q1 I 0
22 = (1.97)
A21 A22 −Q2 A21 A−1
11 Q2 0 I
Matrix inversion formula can be used to compute the resolvent of A, that
is matrix (sI − A)−1 .
From the preceding relationships the matrix inversion lemma reads as
follows:
−1
A11 − A12 A−1
22 A21
−1
= A−1 −1 −1
11 + A11 A12 A22 − A21 A11 A12 A21 A−1
11 (1.98)
In the particular case of upper triangular matrix where A21 = 0, the
preceding relationships simplify as follows:
−1  −1
A11 −A−1 A12 A−1
 
A11 A12
= 11 22 (1.99)
0 A22 0 A−1
22
1.8. Interconnection of systems 29

Figure 1.2: Parallel interconnection of systems

1.8 Interconnection of systems


We will consider in the following the state-space representation resulting from
dierent systems interconnection. This will be useful to get the state-space
representation of complex models.
Lets consider two linear time-invariant system
 with 
transfer
 functions F
1 (s)
A1 B1 A2 B2
and F2 (s) and state-space representations and :
C1 D1 C2 D2
 
ẋ1 (t) = A1 x1 (t) + B1 u1 (t) ẋ2 (t) = A2 x2 (t) + B2 u2 (t)
and (1.100)
y 1 (t) = C1 x1 (t) + D1 u1 (t) y 2 (t) = C2 x2 (t) + D2 u2 (t)

The state vector attached to the interconnection of two systems, whatever


the type of interconnection, is the vector x(t) dened by:
 
x1 (t)
x(t) = (1.101)
x2 (t)

The output of the interconnection is denoted y(t) whereas the input is


denoted u(t).

1.8.1 Parallel interconnection


Parallel interconnection is depicted on Figure 1.2. The transfer function F(s) of
the parallel interconnection between two systems with transfer function F1 (s)
and F2 (s) is:
F(s) = F1 (s) + F2 (s) (1.102)
Parallel interconnection is obtained when both systems have a common input
and by summing the outputs assuming that the dimension of the outputs t:

u(t) = u1 (t) = u2 (t)
(1.103)
y(t) = y 1 (t) + y 2 (t)

The state-space representation of the parallel interconnection is the


following:     
A1 0 B1
ẋ(t) = x(t) + u(t)

 0 A2  B2 (1.104)
y(t) = C1 C2 x(t) + (D1 + D2 ) u(t)

30 Chapter 1. State-space representation

Figure 1.3: Series interconnection of systems

This result can also be easily retrieved by summing the realization of each
transfer function:

F(s) = F1 (s) + F2 (s)


= C1 (sI − A1 )−1 B1 + D1 + C2 (sI − A2 )−1 B2 + D2
 (sI − A1 )−1
  
 0 B1
= C1 C2 + D1 + D 2
0 (sI − A2 )−1 B2
 −1  
  sI − A1 0 B1
= C1 C2 + D1 + D2
0 sI − A2 B2
  −1  
  A1 0 B1
= C1 C2 sI − + D 1 + D2
0 A2 B2
(1.105)
The preceding relationship indicates that the realization of the sum F1 (s) +
F2 (s) of two transfer functions is:
 
A1 0 B1
F1 (s) + F2 (s) =  0 A2 B2  (1.106)
C1 C2 D1 + D2

1.8.2 Series interconnection


Series interconnection is depicted on Figure 1.3. The transfer function F(s) of
the series interconnection between two systems with transfer function F1 (s) and
F2 (s) is:
F(s) = F2 (s)F1 (s) (1.107)
Series interconnection is obtained when the output of the rst system enters
the second system as an input:

 u2 (t) = y 1 (t)
y(t) = y 2 (t) (1.108)

u(t) = u1 (t)

The state-space representation of the series interconnection is the following:


    
A1 0 B1
ẋ(t) = x(t) + u(t)

 2 C1
B A2  B2 D1 (1.109)
y(t) = D2 C1 C2 x(t) + D2 D1 u(t)

1.8. Interconnection of systems 31

Figure 1.4: Feedback interconnection of systems

1.8.3 Feedback interconnection


Feedback interconnection is depicted on Figure 1.4. To get the transfer function
F(s) of the feedback interconnection between two systems with transfer function
F1 (s) and F2 (s) we write the relationship between the Laplace transform Y (s)
of the output vector and the Laplace transform of input vector U (s):

Y (s) = F1 (s) (U (s) − F2 (s)Y (s))


⇔ (I − F1 (s)F2 (s)) Y (s) = F1 (s)U (s) (1.110)
⇔ Y (s) = (I − F1 (s)F2 (s))−1 F1 (s)U (s)

We nally get:
F(s) = (I − F1 (s)F2 (s))−1 F1 (s) (1.111)

As depicted on Figure 1.4 feedback interconnection is obtained when the


output of the rst system enters the second system as an input and by feeding
the rst system by the dierence between the system input u(t) and the output
of the second system (assuming that the dimension t):

 u1 (t) = u(t) − y 2 (t) ⇔ u(t) = u1 (t) + y 2 (t)


y(t) = y 1 (t) (1.112)


u2 (t) = y 1 (t)

Thus the state-space representation of the feedback interconnection is the


following:
  
B1 − B 1 D 2 MD1

 ẋ(t) = Af x(t) + u(t)



  B2 D1 − B2 D1 D2 MD1 
A1 − B1 D2 MC1 −B1 C2 + B1 D2 MD1 C2


Af =
B2 C1 − B2 D1 D2 MC1 A2 − B2 D1 C2 + B2 D1 D2 MD1 C2
D1 D2 )−1




 M = (I + 
  
C1 −D1 C2 x(t) + D1 u(t)

 y(t) = M
(1.113)
In the special case of an unity feedback we have:
   
A2 B2 0 0
F2 (s) = I ⇔ = (1.114)
C2 D2 0 K2
32 Chapter 1. State-space representation

Thus the preceding relationships reduce as follows:

B1 − B1 K2 (I + D1 )−1 D1
  

 ẋ(t) = A f x(t) + u(t)
0



A1 − B1 K2 (I + D1 K2 )−1 C1 0
  
A = (1.115)
f
0 0



 
 y(t) = (I + D K )−1  C 0  x(t) + D u(t)

1 2 1 1

It is clear from the preceding equation that the state vector of the system
reduces to its rst component x1 (t). Thus the preceding state-space realization
reads:
    
 ẋ1 (t) = A1 − B1 K2 (I + D1 K2 )−1 C1 x1 (t) + B1 − B1 K2 (I + D1 )−1 D1 u(t)
 
 y(t) = (I + D1 K2 )−1 C1 x1 (t) + D1 u(t)
(1.116)
Chapter 2

Realization of transfer functions

2.1 Introduction
A realization of a transfer function F(s) consists in nding a state-space model
given the input-output description of the system through its transfer function.
More specically we call realization of a transfer function F(s) any quadruplet
(A, B, C, D) such that:
F(s) = C (sI − A)−1 B + D (2.1)
We said that a transfer function F(s) is realizable if F(s) is rational and
proper. The state-space representation of a transfer function F(s) is then:

ẋ(t) = Ax(t) + Bu(t)
(2.2)
y(t) = Cx(t) + Du(t)
This chapter focuses on canonical realizations of transfer functions that are
the controllable canonical form, the observable canonical form and the
diagonal (or modal) form. Realization of SISO (Single-Input Single Output),
SIMO (Single-Input Multiple-Outputs) and MIMO (Multiple-Inputs
Multiple-Outputs) linear time invariant systems will be presented.

2.2 Non-unicity of state-space representation


2.2.1 Similarity transformations
Contrary to linear dierential equation or transfer function which describe the
dynamics of a system in a single manner the state-space representation of a
system is not unique. Indeed they are several ways to choose the internal
variables which describe the dynamics of the system, that is the state vector
x(t), without changing the input-output representation of the system, that is
both the dierential equation and the transfer function.
To be more specic let's consider the state-space representation (2.2) with
state vector x(t). Then choose a similarity transformation with an invertible
change of basis matrix Pn which denes a new state vector xn (t) as follows:
x(t) = Pn xn (t) ⇔ xn (t) = P−1
n x(t) (2.3)
34 Chapter 2. Realization of transfer functions

Then take the time derivative of xn (t):

ẋn (t) = P−1


n ẋ(t) (2.4)

The time derivative of x(t) is obtained thanks to (2.2). By replacing x(t) by


xn (t) we get:
ẋ(t) = Ax(t) + Bu(t) = APn xn (t) + Bu(t) (2.5)

Thus we nally get:

ẋn (t) = P−1 −1 −1



n ẋ(t) = Pn APn xn (t) + Pn Bu(t)
(2.6)
y(t) = CPn xn (t) + Du(t)

We can match the preceding equations with the general form of a state-space
representation (2.2) by rewriting it as follows:

ẋn (t) = An xn (t) + Bn u(t)
(2.7)
y(t) = Cn xn (t) + Du(t)

Where:
 An = P−1

n APn
Bn = P−1
n B (2.8)
Cn = CPn

It is worth noticing that the feedforward matrix D is independent of the


choice of the state vector.
Now let's focus on the transfer function. With the new state vector xn (t)
the transfer function F(s) has the following expression:

F(s) = Cn (sI − An )−1 Bn + D (2.9)

Using the expressions of (2.8) to express An , Bn and Cn as a function of


A, B and C we get:
−1
F(s) = CPn sI − P−1
n APn P−1
n B+D (2.10)

−1
Now use the fact that I = P−1
n Pn and that (XYZ) = Z−1 Y−1 X−1 (as
soon as matrices X, Y and Z are invertible) to get:
−1 −1
F(s) = CPn sP−1 −1
n Pn − Pn AP n P B+D
−1
−1 −1 n
= CPn Pn (sI − A) Pn Pn B + D
−1 (2.11)
= CPn P−1n (sI − A) P P
n n
−1 B + D

= C (sI − A)−1 B + D

We obviously retrieve the expression of the transfer function F(s) given by


matrices (A, B, C, D). Thus the expression of the transfer function is
independent of the choice of the state vector.
2.3. Realization of SISO transfer function 35

2.2.2 Inverse of a similarity transformation


Let v 1 , v 2 , · · · , v n be the n vectors which form matrix Pn :

(2.12)
 
Pn = v1 v2 · · · vn

As far as matrix Pn is invertible vectors v 1 , v 2 , · · · , v n are independent. Let


x(t) = Pn xn (t). Denoting by xn1 , xn2 , · · · , xnn the components of vector xn (t)
we get:
 
xn1
 xn2 
xn (t) =  .  ⇒ x(t) = Pn xn (t) = xn1 v 1 + xn2 v 2 + · · · + xnn v n (2.13)
 
 .. 
xnn

Thus the state vector x(t) can be decomposed along the components of the
change of basis matrix Pn .
The inverse of the change of basis matrix Pn can be written in terms of rows
as follows:  T 
w1
 wT 
 2 
P−1
n =  ..  (2.14)
 . 
wTn
Since P−1
n Pn = I it follows that:

wT1 v 1 wT1 v 2 · · · wT1 v n


 
 wT2 v 1 wT2 v 2 · · · wT2 v n 
P−1
n Pn = .. .. ..  = I (2.15)
 
 . . . 
T T T
wn v 1 wn v 2 · · · wn v n

Hence the relationship between vectors wi and v j is the following:

1 if i = j

wTi v j = (2.16)
0 if i 6= j

2.3 Realization of SISO transfer function


We have seen that a given transfer function F(s) can be obtained by an innity
number of state-space representations. We call realization of a transfer function
F(s) any quadruplet (A, B, C, D) such that:

F(s) = C (sI − A)−1 B + D (2.17)

The preceding relationship is usually written as follows:


 
A B
F(s) = (2.18)
C D
36 Chapter 2. Realization of transfer functions

We consider the following Single-Input Single-Output (SISO) transfer


function which is composed of the sum between a strictly proper rational
fraction and a constant value d:
Y (s) N (s)
= F (s) = +d (2.19)
U (s) D(s)

Where N (s) and D(s) are polynomials in s such that the degree of N (s) is
strictly lower than the degree of D(s):

D(s) = a0 + a1 s + · · · + an−1 sn−1 + 1 × sn



(2.20)
N (s) = n0 + n1 s + · · · + nn−1 sn−1

It is worth noticing that polynomial D(s) is assumed to be a monic


polynomial without loss of generally. This means that the leading coecient
(that is the coecient of sn ) of D(s) is 1. Indeed D(s) is identied to
det (sI − A).
When identifying (2.19) with (2.17) we get:

d = D = lim F(s) (2.21)


s→∞

Thus all we need now is to nd a triplet (A, B, C) such that:

N (s)
= C (sI − A)−1 B (2.22)
D(s)

2.3.1 Controllable canonical form


One solution of the realization problem is the following quadruplet:
  
0 1 0 0
..


.
  


  0 0 1 0 
. .
  
. .

 Ac =  
. .

0

 

  
0 0 0 1

  


−a0 −a1 −a2 · · · −an−1








  

 0
 0  (2.23)
 .. 

  
B =  . 



 c
  


  0 

1







  
Cc = n0 n1 · · · nn−2 nn−1









D=d

The quadruplet (Ac , Bc , Cc , d) is called the controllable canonical form of


the SISO transfer function F (s).
2.3. Realization of SISO transfer function 37

Alternatively the following realization is also called the controllable


canonical form of the SISO transfer function F (s). Compared with (2.23)
value 1 appears in the lower diagonal of the state matrix which is obtained by
choosing a similarity transformation with value 1 on the antidiagonal (or
counter diagonal):
  
 0 0 0 −a 0
..

.
  
−a1 
  1 0

 0
. . .
  
. . .

. . .

Aca =  0
 
−a2 



.. ..

  
. .
  
0

  


0 · · · 0 1 −a



 n−1




  
 1
(2.24)
  0 
Bca =  ... 

  

  


  


  0 

0







  
Cca = nn−1 nn−2 · · · n1 n0









D=d
To get the realization (2.23) we start by expressing the output Y (s) of SISO
system (2.19) as follows:
U (s)
Y (s) = N (s) + dU (s) (2.25)
D(s)
Now let's focus on the following intermediate variable Z(s) which is dened
as follows:
U (s) U (s)
Z(s) = = (2.26)
D(s) a0 + a1 s + a2 s + · · · + an−1 sn−1 + sn
2

That is:

a0 Z(s) + a1 sZ(s) + a2 s2 Z(s) + · · · + an−1 sn−1 Z(s) + sn Z(s) = U (s) (2.27)


Then we dene the components of the state vector x(t) as follows:


 x1 (t) := z(t)
 x2 (t) := ẋ1 (t) = ż(t)



x3 (t) := ẋ2 (t) = z̈(t) (2.28)
..
.





xn (t) := ẋn−1 (t) = z (n−1) (t)

Coming back in the time domain Equation (2.27) is rewritten as follows:


a0 x1 (t) + a1 x2 (t) + a2 x3 (t) + · · · + an−1 xn (t) + ẋn (t) = u(t)
(2.29)
⇔ ẋn (t) = −a0 x1 (t) − a1 x2 (t) − a2 x3 (t) − · · · − an−1 xn (t) + u(t)
38 Chapter 2. Realization of transfer functions

The intermediate variable Z(s) allows us to express the output Y (s) as


follows:

Y (s) = N (s)Z(s) + dU (s) = n0 + · · · + nn−1 sn−1 Z(s) + dU (s) (2.30)




That is, coming back if the time domain:

y(t) = n0 z(t) + · · · + nn−1 z (n−1) (t) + du(t) (2.31)

The use of the components of the state vector which have been previously
dened leads to the following expression of the output y(t):

y(t) = n0 x1 (t) + · · · + nn−1 xn (t) + du(t) (2.32)

By combining in vector form Equations (2.28), (2.29) and (2.32) we retrieve


the state-space representation (2.23).
Thus by ordering the numerator and the denominator of the transfer function
F (s) according to the increasing power of s and taking care that the leading
coecient of the polynomial in the denominator is 1, the controllable canonical
form (2.23) of a SISO transfer function F (s) is immediate.

Example 2.1. Let's consider the following transfer function:


(s + 1)(s + 2) s2 + 3s + 2
F (s) = = 2 (2.33)
2(s + 3)(s + 4) 2s + 14s + 24

We are looking for the controllable canonical form of this transfer function.
First we have to set to 1 the leading coecient of the polynomial which
appears in the denominator of the transfer function F (s). We get:
0.5s2 + 1.5s + 1
F (s) = (2.34)
1 × s2 + 7s + 12

Then we decompose F (s) as a sum between a strictly proper rational fraction


and a constant coecient d. Constant coecient d is obtained thanks to the
following relationship:
0.5s2 + 1.5s + 1
d = lim F (s) = lim = 0.5 (2.35)
s→∞ s→∞ 1 × s2 + 7s + 12

Thus the strictly proper transfer function N (s)/D(s) is obtained by


subtracting d to F (s):
N (s) 0.5s2 + 1.5s + 1 −2s − 5
= F (s) − d = 2
− 0.5 = 2 (2.36)
D(s) 1 × s + 7s + 12 s + 7s + 12

We nally get:
N (s) −2s − 5
F (s) = +d= 2 + 0.5 (2.37)
D(s) s + 7s + 12
2.3. Realization of SISO transfer function 39

Then we apply Equation (2.23) to get the controllable canonical form of F (s):
    
0 1 0 1

 Ac = =



 −a0 −a1 −12 −7



  
0


Bc =

1 (2.38)



    
Cc = n0 n1 = −5 −2









D = 0.5


2.3.2 Poles and zeros of the transfer function


It is worth noticing that the numerator of the transfer function only depends on
matrices B and C whereas the denominator of the transfer function is built from
the characteristic polynomial coming from the eigenvalues of the state matrix
A.
As far as the transfer function does not depend on the state space realization
which is used, we can get this result by using the controllable canonical form.
Indeed we can check that transfer function Cc (sI − Ac )−1 Bc has a denominator
which only depends on the state matrix Ac whereas its numerator only depends
on Cc , which provides the coecients of the numerator:

    
∗ ∗ 1 0
1 ∗ ∗ s   .. 
  . 
 
(sI − Ac )−1 Bc =  .. .. ..
 
 det (sI − Ac )  . . .
   
  0 
∗ ∗ sn−1 1
  (2.39)
1
Cc  s 
⇒ Cc (sI − Ac )−1 Bc = .. 
 
det (sI − Ac )  . 

sn−1
More generally, the characteristic polynomial of the state matrix A sets
the denominator of the transfer function whereas the product B C sets the
coecients of the numerator of a strictly proper transfer function (that is a
transfer function where D = 0). Consequently state matrix A sets the poles of
a transfer function whereas product B C sets its zeros.

2.3.3 Similarity transformation to controllable canonical form


We consider the following general state-space representation:

ẋ(t) = Ax(t) + Bu(t)
(2.40)
y(t) = Cx(t) + Du(t)
where the size of the state vector x(t) is n.
40 Chapter 2. Realization of transfer functions

Use of the controllability matrix


The controllable canonical form (2.23) exists if and only if the following matrix
Qc , which is called the controllability matrix, has full rank:

Qc = B AB · · · An−1 B (2.41)
 

As soon as the characteristic polynomial of matrix A is computed the state


matrix Ac as well as the control matrix Bc corresponding to the controllable
canonical form are known. Thus the controllability matrix in the controllable
canonical basis, which will be denoted Qcc , can be computed as follows:

Qcc = Bc Ac Bc · · · Acn−1 Bc (2.42)


 

At that point matrices Ac and Bc are known. The only matrix which need
to be computed is the output matrix Cc . Let Pc be the change of basis matrix
which denes the new state vector in the controllable canonical basis. From
(2.8) we get:
Cc = CPc (2.43)
And:
Ac = P−1

c APc
(2.44)
Bc = P−1
c B
k
Using these two last equations within (2.42) and the fact that P−1
c APc =
Pc−1 APc · · · P−1 AP = P −1 Ak P , we get the following expression of matrix
| {z c }c c c
k-times
Qcc :

Qcc = h Bc Ac Bc · · · Acn−1 Bc
 
i
= P−1 −1 AP P−1 B · · · −1 AP n−1 P−1 B

B P c P c
 c c c c c
= P−1 −1 −1 n−1 B (2.45)

c B Pc AB · · · Pc A
= P−1 B AB · · · An−1 B

c
= P−1
c Qc

We nally get:
P−1 −1 −1
c = Qcc Qc ⇔ Pc = Qc Qcc (2.46)
Furthermore the controllable canonical form (2.23) is obtained by the
following similarity transformation:

x(t) = Pc xc (t) ⇔ xc (t) = P−1


c x(t) (2.47)

Alternatively the constant nonsingular matrix P−1c can be obtained through


the state matrix A and the last row q c of the inverse of the controllability
T

matrix Qc as follows:

q Tc
   

 ..   qT A 
−1  .  −1 c
Qc =   ⇒ Pc =  .. (2.48)
 
.

 ∗   
q Tc q Tc An−1
2.3. Realization of SISO transfer function 41

To get this result we write from (2.8) the following similarity transformation:

Ac = P−1 −1 −1
c APc ⇔ Ac Pc = Pc A (2.49)

Let's denote det (sI − A) as follows:

det (sI − A) = sn + an−1 sn−1 + · · · + a1 s + a0 (2.50)

Thus the coecients ai of the state matrix Ac corresponding to the


controllable canonical form are known and matrix Ac is written as follows:
 
0 1 0 0
..
.
 
 0 0 1 0 
.. .. (2.51)
 
Ac =  . .


 0 

 0 0 0 1 
−a0 −a1 −a2 · · · −an−1

Furthermore let's write the unknown matrix P−1


c as follows:
 T 
r1
−1  .. 
Pc =  .  (2.52)
rTn

Thus the rows of the unknown matrix P−1


c can be obtained thanks to the
following similarity transformation:

 Ac P−1 −1
c = Pc A 
0 1 0 0
.. 
rT1
 
rT1

.

0 0 1 0
(2.53)
 

⇔ .. ..
 ..  =  ..  A
. . .   . 

 0 
rTn rTn
 
 0 0 0 1 
−a0 −a1 −a2 · · · −an−1

Working out with the rst n − 1th rows gives the following equations:
 T

 r2 = rT1 A
 r T = r T A = r T A2

3 2 1
.. (2.54)


 .
 T
rn = rTn−1 A = rT1 An−1

Furthermore from (2.8) we get the relationship Bc = P−1 c B which is


rewritten as follows:
 
0  T
 r1 B = 0
 T 
r1  0  
 ..

 ..   ..  .
 
P−1
c B = Bc ⇔  .  B =  .  ⇔ (2.55)
   r T B=0
rTn  0   n−1


rTn B = 1
1
42 Chapter 2. Realization of transfer functions

Combining (2.54) and (2.55) we get:


 T

 r1 B = 0
T T
 r2 B = r1 AB = 0



.. (2.56)
 .
 rTn−1 B = rT1 An−2 B = 0



 T
rn B = rT1 An−1 B = 1

These equations can in turn be written in matrix form as:

rT1 B AB · · · An−2 B An−1 B = 0 0 · · · 0 1 (2.57)


   

Let's introduce the controllability matrix Qc :

Qc = B AB · · · An−1 B (2.58)
 

Assuming that matrix Qc has full rank we get:

rT1 Qc = 0 0 · · · 0 1 ⇔ rT1 = 0 0 · · · 0 1 Q−1 (2.59)


   
c

From the preceding equation it is clear that rT1 is the last row of the inverse
of the controllability matrix Qc . We will denote it q Tc :

rT1 := q Tc (2.60)

Having the expression of rT1 we can then go back to (2.54) and construct all
c .
the rows of P−1

Example 2.2. We consider the following general state-space representation:



ẋ(t) = Ax(t) + Bu(t)
(2.61)
y(t) = Cx(t) + Du(t)

where:  
28.5 −17.5


 A =



 58.5 −35.5



  
2


B=

4 (2.62)



  
C = 7 −4









D = 0.5
We are looking for the controllable canonical form of this state-space
representation.
First we build the controllability matrix Qc from (2.41):
 
2 −13
(2.63)
 
Qc = B AB =
4 −25
2.3. Realization of SISO transfer function 43

To build matrix Qcc let's compute det (sI − A):


det (sI − A) = s2 + a1 s + a0 = s2 + 7s + 12 (2.64)

As soon as matrix Ac is built from the denominator of the transfer function,


that is from det (sI − A), we get:
   
0 1 0 1
Ac = = (2.65)
−a0 −a1 −12 −7

Furthermore matrix Bc is straightforward for the controllable canonical form:


 
0
Bc = (2.66)
1

Thus we are in position to compute matrix Qcc :


 
0 1
(2.67)
 
Qcc = Bc Ac Bc =
1 −7

Then we use (2.46) to build the similarity transformation:


  −1
2 −13 0 1
Pc = Qc Q−1
cc =
  4 −25 1 −7
2 −13 7 1
= (2.68)
 4 −25
 1 0
1 2
=
3 4

Alternatively we can use (2.48) to build the similarity transformation:


 
 
−25 13 ∗
Q−1 = 1
=
c
−4 2   q Tc 
2 (2.69)
⇒ q Tc = 12 −4 2 = −2 1


And:
q Tc
   
−2 1
P−1
c = = (2.70)
q Tc A 1.5 −0.5
Using the similarity relationships (2.8) we nally get the following
controllable canonical form of the state-space representation:
      
−1 −2 1 28.5 −17.5 1 2 0 1

 Ac = Pc APc = =



  1.5 −0.5   58.5 −35.5
 3 4 −12 −7
−2 1 2 0

Bc = P−1
c B= =

 1.5 −0.5
 4
 1
1 2

    
 Cc = CPc = 7 −4 = −5 −2


3 4
(2.71)

44 Chapter 2. Realization of transfer functions

Iterative method
Equivalently change of basis matrix Pc of the similarity transformation can be
obtained as follows:
(2.72)
 
Pc = c1 c2 · · · cn
where:
 det (sI − A) = sn + an−1 sn−1 + · · · + a1 s + a0

c =B (2.73)
 n
ck = Ack+1 + ak B ∀ n − 1 ≥ k ≥ 1
To get this result we write from (2.8) the following similarity transformation:

Ac = P−1
c APc ⇔ Pc Ac = APc (2.74)

Let's denote det (sI − A) as follows:

det (sI − A) = sn + an−1 sn−1 + · · · + a1 s + a0 (2.75)

Thus the coecients ai of the state matrix Ac corresponding to the


controllable canonical form are known and matrix Ac written as follows:
 
0 1 0 0
..
.
 
 0 0 1 0 
. . (2.76)
 
Ac =   .. .. 0


 
 0 0 0 1 
−a0 −a1 −a2 · · · −an−1

Furthermore let's write the unknown change of basis matrix Pc as follows:

(2.77)
 
Pc = c1 c2 · · · cn

Thus the columns of the unknown matrix Pc can be obtained thanks to the
similarity transformation:

 Pc Ac = APc 
0 1 0 0
..
.
 
 0 0 1 0 
.. ..
    
⇔ c1 c2 · · · cn  . .
 = A c1 c2 · · · cn

 0 

 0 0 0 1 
−a0 −a1 −a2 · · · −an−1
(2.78)
That is:


 0 = a0 cn + Ac1
 c = a1 c + Ac
 
1 n 2 0 = a0 cn + Ac1
.. ⇔ (2.79)

 . ck = Ack+1 + ak cn ∀ n − 1 ≥ k ≥ 1

cn−1 = an−1 cn + Acn

2.3. Realization of SISO transfer function 45

Furthermore from (2.8) we get the relationship Bc = P−1


c B which is
rewritten as follows:
 
0
 0 
Pc Bc = B ⇔ c1 c2 · · · cn  ...  = B ⇒ cn = B
 
(2.80)
  
 
 0 
1

Combining the last equation of (2.79) with (2.80) gives the proposed result:

cn = B
(2.81)
ck = Ack+1 + ak B ∀ n − 1 ≥ k ≥ 1

Example 2.3. We consider the following general state-space representation:



ẋ(t) = Ax(t) + Bu(t)
(2.82)
y(t) = Cx(t) + Du(t)

where:  
28.5 −17.5


 A=



 58.5 −35.5



  
2


B=

4 (2.83)



  
C = 7 −4









D = 0.5
This is the same state-space representation than the one which has been used
in the previous example. We have seen that the similarity transformation which
leads to the controllable canonical form is the following:
 
−2 1
P−1
c = (2.84)
1.5 −0.5

It is easy to compute matrix Pc , that is the inverse of P−1


c . We get the
following expression:  
1 2
Pc = (2.85)
3 4
We will check the expression of matrix Pc thanks to the iterative method
proposed in (2.73). We get:

2


 det (sI − A)
 =s + 7s + 12
2


c2 = B =

4        (2.86)
28.5 −17.5 2 2 1


 c1 = Ac2 + a1 B = +7 =


58.5 −35.5 4 4 3
46 Chapter 2. Realization of transfer functions

Thus we fortunately retrieve the expression of matrix Pc :

 
1 2
(2.87)
 
Pc = c1 c2 =
3 4

2.3.4 Observable canonical form

Another solution of the realization problem is the following quadruplet:

  
 0 0 0 −a0
..

.
  
−a1
  1 0

 0 
..

  
.

Ao =  0 1
 
0 −a2

 

. . . ..
  
. . . ..

 . .

  

 

0 0 1 −an−1








  
 n0
 n1  (2.88)

 .. 

  
B =
 . 

 o

  



  nn−2 

nn−1







  
Co = 0 0 · · · 0 1









D=d

The quadruplet (Ao , Bo , Co , d) is called the observable canonical form of the


SISO transfer function F (s).

Alternatively the following realization is also called the observable


canonical form of the SISO transfer function F (s). Compared with (2.88)
value 1 appears in the upper diagonal of the state matrix which is obtained by
choosing a similarity transformation with value 1 on the antidiagonal (or
2.3. Realization of SISO transfer function 47

counter diagonal):
 
0 1 0 0

..


.
  


  0 0 1 0 
.. ..
  
Aoa = 

. .
 
0

  

  



  0 0 0 1 
−a0 −a1 −a2 · · · −an−1








  
 nn−1
(2.89)
 nn−2
  
 
 ···
Boa = 

 

 


  n1 

n0







  
··· 0 0



 Coa = 1 0





D=d
To get the realization (2.88) we start by expressing the output Y (s) of SISO
system (2.19) as follows:
Y (s) N (s)
= + d ⇔ (Y (s) − dU (s)) D(s) = N (s)U (s) (2.90)
U (s) D(s)
That is:

a0 + a1 s + a2 s2 + · · · + an−1 sn−1 + sn (Y (s) − d U (s))




= n0 + n1 s + · · · + nn−1 sn−1 U (s) (2.91)




Dividing by sn we get:
a a1 a2 an−1 
0
+ + + · · · + + 1 (Y (s) − d U (s))
sn sn−1 sn−2 ns
0 n1 n2 nn−1 
= n + n−1 + n−2 + · · · + U (s) (2.92)
s s s s
When regrouping the terms according the increasing power of 1
s we obtain:

1 1
Y (s) = d U (s) + (αn−1 U (s) − an−1 Y (s)) + 2 (αn−2 U (s) − an−2 Y (s)) +
s s
1
· · · + n (α0 U (s) − a0 Y (s)) (2.93)
s
Where:
αi = ni + d ai (2.94)
That is:

1 1 
Y (s) = d U (s) + αn−1 U (s) − an−1 Y (s) + αn−2 U (s) − an−2 Y (s) +
s s
 
1 1 
··· + α0 U (s) − a0 Y (s) (2.95)
s s
48 Chapter 2. Realization of transfer functions

Then we dene the Laplace transform of the components of the state vector
x(t) as follows:


 sX1 (s) = α0 U (s) − a0 Y (s)
 sX2 (s) = α1 U (s) − a1 Y (s) + X1 (s)



sX3 (s) = α2 U (s) − a2 Y (s) + X2 (s) (2.96)
..
.





sXn (s) = αn−1 U (s) − an−1 Y (s) + Xn−1 (s)

So we get:
1 
Y (s) = d U (s) + sXn (s) = d U (s) + Xn (s) (2.97)
s
Replacing Y (s) by Xn (s) and using the fact that αi = ni + d ai Equation
(2.96) is rewritten as follows:


 sX1 (s) = α0 U (s) − a0 (d U (s) + Xn (s))



 = −a0 Xn (s) + n0 U (s)
sX2 (s) = α1 U (s) − a1 (d U (s) + Xn (s)) + X1 (s)




= X1 (s) − a1 Xn (s) + n1 U (s)




sX3 (s) = α2 U (s) − a2 (d U (s) + Xn (s)) + X2 (s) (2.98)

 = X2 (s) − a2 Xn (s) + n2 U (s)
.

..






sXn (s) = αn−1 U (s) − an−1 (d U (s) + Xn (s)) + Xn−1 (s)




= Xn−1 (s) − an−1 Xn (s) + nn−1 U (s)

Coming back in the time domain we nally get:




 ẋ1 (t) = −a0 xn (t) + n0 u(t)
 ẋ2 (t) = x1 (t) − a1 xn (t) + n1 u(t)



ẋ3 (t) = x2 (t) − a2 xn (t) + n2 u(t) (2.99)
..
.





ẋn (t) = xn−1 (t) − an−1 xn (t) + nn−1 u(t)

And:
y(t) = xn (t) + d u(t) (2.100)
The preceding equations written in vector form leads to the observable
canonical form of Equation (2.88).
Thus by ordering the numerator and the denominator of the transfer function
F (s) according to the increasing power of s and taking care that the leading
coecient of the polynomial in the denominator is 1, the observable canonical
form (2.88) of a SISO transfer function F (s) is immediate.

Example 2.4. Let's consider the following transfer function:


(s + 1)(s + 2) s2 + 3s + 2
F (s) = = 2 (2.101)
2(s + 3)(s + 4) 2s + 14s + 24
2.3. Realization of SISO transfer function 49

We are looking for the observable canonical form of this transfer function.
As in the preceding example we rst set to 1 the leading coecient of the
polynomial which appears in the denominator of the transfer function F (s). We
get:
0.5s2 + 1.5s + 1
F (s) = (2.102)
1 × s2 + 7s + 12
Then we decompose F (s) as a sum between a strictly proper rational fraction
and a constant coecient d. Constant coecient d is obtained thanks to the
following relationship:
0.5s2 + 1.5s + 1
d = lim F(s) = lim = 0.5 (2.103)
s→∞ s→∞ 1 × s2 + 7s + 12

Thus the strictly proper transfer function N (s)/D(s) is obtained by


subtracting d to F (s):

N (s) 0.5s2 + 1.5s + 1 −2s − 5


= F (s) − d = − 0.5 = 2 (2.104)
D(s) 1 × s2 + 7s + 12 s + 7s + 12

We nally get:
N (s) −2s − 5
F (s) = +d= 2 + 0.5 (2.105)
D(s) s + 7s + 12

Then we apply Equation (2.88) to get the observable canonical form of F (s):
   
−a0 0 −12

0

 A o = =



 1 −a1 1 −7



    
n0 −5


Bo = =

n1 −2 (2.106)



  
Co = 0 1









D = 0.5

2.3.5 Similarity transformation to observable canonical form


We consider the following general state-space representation:

ẋ(t) = Ax(t) + Bu(t)
(2.107)
y(t) = Cx(t) + Du(t)

where the size of the state vector x(t) is n.


50 Chapter 2. Realization of transfer functions

Use of the observability matrix


The observable canonical form (2.88) exists if and only if the following matrix
Qo , which is called the observability matrix, has full rank:
 
C
 CA 
Qo =  .. (2.108)
 
.

 
CAn−1

As soon as the characteristic polynomial of matrix A is computed the state


matrix Ao as well as the output matrix Co corresponding to the observable
canonical form are known. Thus the observability matrix in the observable
canonical basis, which will be denoted Qoo , can be computed as follows:
 
Co
 Co Ao 
Qoo =  .. (2.109)
 
.

 
Co Aon−1

At that point matrices Ao and Co are known. The only matrix which need
to be computed is the control matrix Bo . Let Po be the change of basis matrix
which denes the new state vector in the observable canonical basis. From (2.8)
we get:
Bo = P−1o B (2.110)
And:
Ao = P−1

o APo
(2.111)
Co = CPo
Using these last two equations within (2.109) leads to the following
expression of matrix Qoo :
   
Co CPo
 Co Ao   CPo P−1
o APo

Qoo =  .. = .
   
 .



 .
.


n−1 −1
n−1
C A
 o o  CPo Po  APo
CPo C (2.112)
 CAPo   CA 
= .. = ..  Po
   
 .   . 
CAn−1 Po CAn−1
= Qo Po

We nally get:
Po = Q−1 −1 −1
o Qoo ⇔ Po = Qoo Qo (2.113)
Furthermore the observable canonical form (2.88) is obtained by the
following similarity transformation:

x(t) = Po xo (t) ⇔ xo (t) = P−1


o x(t) (2.114)
2.3. Realization of SISO transfer function 51

Alternatively the constant nonsingular matrix Po can be obtained through


the state matrix A and the last column q o of the inverse of the observability
matrix Qo as follows:

Q−1 q o Aq o · · · An−1 q o (2.115)


   
o = ∗ · · · ∗ qo ⇒ Po =

To get this result we write from (2.8) the following similarity transformation:

Ao = P−1
o APo ⇔ Po Ao = APo (2.116)

Let's denote det (sI − A) as follows:

det (sI − A) = sn + an−1 sn−1 + · · · + a1 s + a0 (2.117)

Thus the coecients ai of the state matrix Ao corresponding to the


observable canonical form are known and matrix Ao is written as follows:
 
0 0 0 −a0
..
.
 
 1 0 0 −a1 
..
 
Ao =  . (2.118)
 
0 1 0 −a2 
.. . . .. ..
 
. . . .
 
 
0 0 1 −an−1

Furthermore let's write the unknown matrix Po as follows:

(2.119)
 
Po = c1 · · · cn

Thus the columns of the unknown change of basis matrix Po can be obtained
thanks to the following similarity transformation:

 Po Ao = APo 
0 0 0 −a0
 . .. 
 1 0 0 −a1 
 .

.
  
⇔ c1 · · · cn  0 1 .  = A c1 · · · cn
 
0 −a2
 .. . . . . ..
 
 . . . .


0 0 1 −an−1
(2.120)
Working out with the rst n − 1th columns gives the following equations:


 c2 = Ac1
 c = Ac = A2 c

3 2 1
.. (2.121)


 .
cn = Acn−1 = An−1 c1

52 Chapter 2. Realization of transfer functions

Furthermore from (2.8) we get the relationship CPo = Co which is rewritten


as follows:
CPo = Co   
⇔C  c1 · · · cn = 0 · · · 0 1
 Cc1 = 0

 Cc2 = 0 (2.122)



⇔ ..
 .
Ccn−1 = 0




Ccn = 1

Combining (2.121) and (2.122) we get:



 Cc1 = 0

 Cc2 = CAc1 = 0



.. (2.123)
 .
Ccn−1 = CAn−2 c1 = 0




Ccn = CAn−1 c1 = 1

These equations can in turn be written in matrix form as:


   
C 0
 CA   0 
..  .. 
   
. c =  .  (2.124)
 
  1
   
 CAn−2   0 
CA n−1 1

Let's introduce the observability matrix Qo :


 
C
 CA 
Qo =  .. (2.125)
 
.

 
CAn−1

Assuming that matrix Qo has full rank we get:


   
0 0
 0   0 
Qo c1 =  ...  ⇔ c1 = Q−1 ..
   
. (2.126)
   
o  
   
 0   0 
1 1

From the preceding equation it is clear that c1 is the last column of the
inverse of the observability matrix Qo . We will denote it q o :

c1 := q o (2.127)

Having the expression of c1 we can then go back to (2.121) and construct


all the columns of Po .
2.3. Realization of SISO transfer function 53

Example 2.5. We consider the following general state-space representation:



ẋ(t) = Ax(t) + Bu(t)
(2.128)
y(t) = Cx(t) + Du(t)

where:  
28.5 −17.5


 A=



 58.5 −35.5



  
2


B=

4 (2.129)



  
C = 7 −4









D = 0.5
We are looking for the observable canonical form of this state-space
representation.
First we build the observability matrix Qo from (2.108):
   
C 7 −4
Qo = = (2.130)
CA −34.5 19.5

To build matrix Qoo let's compute det (sI − A):


det (sI − A) = s2 + a1 s + a0 = s2 + 7s + 12 (2.131)

As soon as matrix Ao is built from the denominator of the transfer function,


that is from det (sI − A), we get:
   
0 −a0 0 −12
Ao = = (2.132)
1 −a1 1 −7

Furthermore matrix Co is straightforward for the observable canonical form:


(2.133)
 
Co = 0 1

Thus we are in position to compute matrix Qoo :


   
Co 0 1
Qoo = = (2.134)
Co Ao 1 −7

Then we use (2.113) to build the similarity transformation:


 −1  
7 −4 0 1
Po = Q−1
o Qoo =
 −34.5
 19.5  1 −7
1 19.5 4 0 1
= −1.5 34.5 7   1 −7 
 (2.135)
2 −19.5 −4 0 1
= 3
 −34.5 −7  1 −7
2 −4 8.5
= 3 −7 14.5
54 Chapter 2. Realization of transfer functions

Alternatively we can use (2.115) to build the similarity transformation:


 
−19.5 −4
Q−1 2
 
o = 3 = ∗ qo
−34.5
 −7
 (2.136)
−4
⇒ q o = 23
−7
And:  
2 −4 8.5
(2.137)
 
Po = q o Aq o =
3 −7 14.5
Using the similarity relationships (2.8) we nally get the following observable
canonical form of the state-space representation:
       
−1 14.5 −8.5 28.5 −17.5 2 −4 8.5 0 −12

 Ao = Po APo = 3 =



  7 −4  58.5 −35.5 −7 14.5 1 −7
14.5 −8.5 2 −5

Bo = P−1
o B= =

 7 −4
 4  −2
−4 8.5


 Co = CPo = 7 −4 23
   
= 0 1


−7 14.5
(2.138)


Iterative method
Equivalently the inverse of the change of basis matrix Po of the similarity
transformation can be obtained as follows:
 T 
r1
 rT 
 2 
P−1
o =  ..  (2.139)
 . 
rTn
where:
 det (sI − A) = sn + an−1 sn−1 + · · · + a1 s + a0

rT = C (2.140)
 nT
rk = rTk+1 A + ak C ∀ n − 1 ≥ k ≥ 1
To get this result we write from (2.8) the following similarity transformation:
Ao = P−1 −1 −1
o APo ⇔ Ao Po = Po A (2.141)
Let's denote det (sI − A) as follows:
det (sI − A) = sn + an−1 sn−1 + · · · + a1 s + a0 (2.142)
Thus the coecients ai of the state matrix Ao corresponding to the
observable canonical form are known and matrix Ao is written as follows:
 
0 0 0 −a0
..
.
 
 1 0 0 −a1 
..
 
Ao =  0 1 . (2.143)
 
0 −a 2 
 .. . . . . ..
 
 . . . .


0 0 1 −an−1
2.3. Realization of SISO transfer function 55

Furthermore let's write the inverse of the unknown change of basis matrix
Po as follows:
 T 
r1
 rT 
 2 
P−1
o =  ..  (2.144)
 . 
rTn

Thus the columns of the unknown matrix Po can be obtained thanks to the
similarity transformation:

 Ao P−1 −1
o = Po A
0 0 0 −a0
..  rT1 rT1
   
.

 1 0 0 −a1   T


..   r2
  rT2 
(2.145)
⇔ .  . = .. A
   
0 1 0 −a2   ..

.. . . .. ..
  . 
. . . .
 
  rTn rTn
0 0 1 −an−1

That is:


 −a0 rTn = rT1 A
 r T − a1 r T = r T A
0 = rT1 A + a0 rTn
 
1 n 2
.. ⇔
rTk = rTk+1 A + ak rTn ∀ n − 1 ≥ k ≥ 1


 .
 T
rn−1 − an−1 rTn = rTn A
(2.146)
Furthermore from (2.8) we get the relationship Co = CPo which is rewritten
as follows:

rT1
 

 rT2 
Co P−1  = C ⇒ rTn = C (2.147)

o =C⇔ 0 ··· 0 1 ..
 
.

 
rTn

Combining the last equation of (2.146) with (2.147) gives the proposed
result:
 T
rn = C
(2.148)
rTk = rTk+1 A + ak C ∀ n − 1 ≥ k ≥ 1

Example 2.6. We consider the following general state-space representation:



ẋ(t) = Ax(t) + Bu(t)
(2.149)
y(t) = Cx(t) + Du(t)
56 Chapter 2. Realization of transfer functions

where:
 
28.5 −17.5


 A=



 58.5 −35.5



  
2


B=

4 (2.150)



  
C = 7 −4









D = 0.5

This is the same state-space representation than the one which has been used
in the previous example. We have seen that the similarity transformation which
leads to the controllable canonical form is the following:
 
2 −4 8.5
Po = (2.151)
3 −7 14.5

o , that is the inverse of Po . We get the


It is easy to compute matrix P−1
following expression:
 
14.5 −8.5
P−1
o = (2.152)
7 −4

We will check the expression of matrix P−1


o thanks to the iterative method
proposed in (2.140). We get:

2

 det (sI − A) = s + 7s + 12
 T

r2 = C = 7 −4  
 28.5 −17.5
 rT1 = rT2 A + a1 C = 7 −4
    
+ 7 7 −4 = 14.5 −8.5


58.5 −35.5
(2.153)
Thus we fortunately retrieve the expression of matrix Po :
−1

rT1
   
14.5 −8.5
P−1
o = = (2.154)
rT2 7 −4

2.3.6 Diagonal (or modal) form


One particular useful canonical form is called the diagonal (Jordan) or modal
form. The diagonal form is obtained thanks to the partial fraction expansion of
transfer function F (s). This is a diagonal representation of the state-space model
when all the poles of F (s) are distinct; otherwise this is a Jordan representation.
2.3. Realization of SISO transfer function 57

Transfer function with distinct poles


Assume for now that transfer function F (s) has distinct poles λi . Then the
partial fraction expansion of F (s) reads:
Y (s) N (s)
U (s) = F (s) = D(s) +d
= N (s)
(s−λ1 )(s−λ2 )···(s−λn ) + d
(2.155)
r1 r2 rn
= s−λ1 + s−λ2 + · · · + s−λn +d

Number ri is called the residue of transfer function F (s) in λi . When the


multiplicity of the pole (or eigenvalue) λi is 1 it is clear from the preceding
relationship that the residue ri can be obtained thanks to the following formula:

ri = (s − λi )F (s)|s=λi (2.156)

Now we dene constants bi and ci such that the product bi ci is equal to ri :

ri = ci bi (2.157)

Consequently transfer function F (s) can be written as follows:


c1 b1 c2 b2 cn bn
F (s) = + + ··· + +d (2.158)
s − λ1 s − λ2 s − λn
Then we dene the Laplace transform of the components
x1 (t), x2 (t), · · · , xn (t) of the state vector x(t) as follows:

X (s) b1
 U1(s) = s−λ

 1
 X2 (s) = b2


U (s) s−λ2
. (2.159)

 ..

 Xn (s) = bn


U (s) s−λn

Using (2.159) transfer function F (s) can be written as follows:


Y (s)
= F (s) = c1 XU1(s)
(s)
+ c2 XU2(s)
(s)
+ · · · + cn XUn(s)
(s)
+d
U (s) (2.160)
⇒ Y (s) = c1 X1 (s) + c2 X2 (s) + · · · + cn Xn (s) + dU (s)

Coming back to the time domain we get:

y(t) = c1 x1 (t) + c2 x2 (t) + · · · + cn xn (t) + du(t) (2.161)

Whereas in the time domain (2.159) reads:




 ẋ1 (t) = λ1 x1 (t) + b1 u(t)
 ẋ2 (t) = λ2 x2 (t) + b2 u(t)

.. (2.162)


 .
ẋn (t) = λn xn (t) + bn u(t)

Equations (2.162) and (2.161) lead to the following state-space


representation, which is called the diagonal (Jordan) or modal form:
58 Chapter 2. Realization of transfer functions


ẋ(t) = Ax(t) + Bu(t)
(2.163)
y(t) = Cx(t) + Du(t)
where:   
λ1 0 0
.. 



. 
 

  0 λ2

 A =  ..

..

.

 .

0 




···



 0 0 λn




  

 b1
 b2  (2.164)
B= .
  
 ..

 

 


bn







  
C = c1 c2 · · · cn









D=d

Example 2.7. Let's consider the following transfer function:


(s + 1)(s + 2) s2 + 3s + 2
F (s) = = 2 (2.165)
2(s + 3)(s + 4) 2s + 14s + 24

We are looking for the diagonal form of this transfer function.


First we have to set to 1 the leading coecient of the polynomial which
appears in the denominator of the transfer function F (s). We get:
0.5s2 + 1.5s + 1
F (s) = (2.166)
1 × s2 + 7s + 12

Then we decompose F (s) as a sum between a strictly proper rational fraction


and a constant coecient d. Constant coecient d is obtained thanks to the
following relationship:
0.5s2 + 1.5s + 1
d = lim F(s) = lim = 0.5 (2.167)
s→∞ s→∞ 1 × s2 + 7s + 12

Thus the strictly proper transfer function N (s)/D(s) is obtained by


subtracting d to F (s):
N (s) 0.5s2 + 1.5s + 1 −2s − 5
= F (s) − d = − 0.5 = 2 (2.168)
D(s) 1 × s2 + 7s + 12 s + 7s + 12

The two poles of F (s) are −3 and −4. Thus the partial fraction expansion
of F (s) reads:
r1 r2 r1 r2
F (s) = + +d= + − 0.5 (2.169)
s+3 s+4 s+3 s+4
2.3. Realization of SISO transfer function 59

where the residues r1 and r2 are:



 r1 = (s + 3)F (s)|s=−3 (s+1)(s+2) (−3+1)(−3+2)
2(s+4) s=−3 = 2(−3+4) =1
(2.170)
 r2 = (s + 4)F (s)|s=−4 (s+1)(s+2) = (−4+1)(−4+2)
= −3

2(s+3) s=−4 2(−4+3)

We nally get:
N (s) 1 −3
F (s) = +d= + + 0.5 (2.171)
D(s) s+3 s+4
Residues r1 and r2 are expressed for example as follows:

r1 = 1 = 1 × 1 = c1 × b1
(2.172)
r2 = −3 = −3 × 1 = c2 × b2

Then we apply Equation (2.164) to get the diagonal canonical form of F (s):
   
−3 0

λ1 0

 A= =



 0 λ2 0 −4



    
b1 1


B= =

b2 −3 (2.173)



    
C = c1 c2 = 1 1









D = d = 0.5


Similarity transformation to diagonal form


Assume that  state matrix
 A has distinct eigenvalues λi . Starting from a
A B
realization let Pm be the change of basis matrix such that:
C d
 
λ1 0 0
.. 
. 

 0 λ2
Am =   = P−1
m APm (2.174)
 .. ..
 . .

0 
0 ··· 0 λn

We will denote Pm as follows:

(2.175)
 
Pm = v 1 v 2 · · · v n

It can be seen that vectors v i are the eigenvectors of matrix A. Indeed let
λi be an eigenvalue of A. Then:

 Av 1 = λ1 v 1

.. (2.176)
 .
Av n = λn v n

60 Chapter 2. Realization of transfer functions

Writing this equation in vector form leads to the following relationship:


 
λ1 0 0
.. 
. 

  0 λ2
(2.177)
  
v1 v2 · · · vn   .. ..
 = A v1 v2 · · · vn
 . .

0 
0 ··· 0 λn

That is:  
λ1 0 0
.. 
. 

 0 λ2
Pm 
 .. ..
 = APm (2.178)
 . .

0 
0 ··· 0 λn
Or equivalently:
 
λ1 0 0
.. 
. 

 0 λ2
 = P−1
m APm (2.179)
 .. ..

 . .

0 
0 ··· 0 λn

The inverse of the change of basis matrix Pn can be written in terms of rows
as follows:  T 
w1
 wT 
 2 
P−1
m =  ..  (2.180)
 . 
wTn

It can be seen that vectors wi are the eigenvectors of matrix AT . Indeed


let λi be an eigenvalue of A, which is also an eigenvalue of AT as far as
det (sI − A) = det (sI − A)T = det sI − AT . Then:


AT wi = λi wi ⇒ wTi A = λi wTi (2.181)

Thus by multiplying by v j and using the fact that v j is an eigenvector of A,


that is Av j = λj v j , we get:

λi wTi v j = wTi Av j = λj wTi v j ⇒ (λi − λj ) wTi v j = 0 (2.182)

Since λi 6= λj ∀i 6= j we nally get:

wTi v j = 0 if i 6= j (2.183)

As far as wi and v j are dened to within a constant we impose wTi v j =


1 if i = j . Consequently:

1 if i = j

T
wi v j = (2.184)
0 if i 6= j
2.3. Realization of SISO transfer function 61

Transfer function with complex conjugate pair of poles


If some of the poles are complex so are the residues and so is the diagonal form.
This may be inconvenient. We will see hereafter how to retrieve real matrices
corresponding to the diagonal form.
Assume that λ and λ is a complex conjugate pair of poles of F (s):

r1 r1
F (s) = + (2.185)
s−λ s−λ

Let α be the real part of the pole λ and β its imaginary part:

λ = α + jβ ⇔ λ = α − jβ (2.186)

According to the preceding section the state-space representation of F (s) is


the following:
    
λ 0 α + jβ 0

 Am = =



 0 λ 0 α − jβ



  
b1


Bm =

b1 (2.187)



  



 Cm = c1 c1





D=0

Where:
r1 = b1 c1 ⇒ r1 = b1 c1 (2.188)

It is clear that the diagonal form of transfer function F (s) is complex. From
the preceding realization we get the following equations:

ẋ1 (t) = (α + jβ) x1 (t) + b1 u(t)
(2.189)
ẋ2 (t) = (α − jβ) x2 (t) + b1 u(t)

We deduce from the preceding equation that the state components x1 (t) and
x2 (t) are complex conjugate. Let xR (t) be the real part of x1 (t) and xI (t) its
imaginary part:

x1 (t) = xR (t) + jxI (t) ⇒ x2 (t) = x1 (t) = xR (t) − jxI (t) (2.190)

Thus Equation (2.189) reads:



ẋR (t) + j ẋI (t) = (α + jβ) (xR (t) + jxI (t)) + b1 u(t)
(2.191)
ẋR (t) − j ẋI (t) = (α − jβ) (xR (t) − jxI (t)) + b1 u(t)

We deduce two new equations from the two preceding equations as follows:
the rst new equation is obtained by adding the two preceding equations and
62 Chapter 2. Realization of transfer functions

dividing the result by 2 whereas the second new equation is obtained by


subtracting the two preceding equations and dividing the result by 2j . We get:
(
ẋR (t) = αxR (t) − βxI (t) + b1 +b
2 u(t)
1

−b1 (2.192)
ẋI (t) = βxR (t) + αxI (t) + b12j u(t)

As far as the output y(t) is concerned we can express it as a function of the


new components xR (t) and xI (t) of the state vector:

y(t) = c1 x1 (t) + c1 x1 (t)


= c1 (xR (t) + jxI (t)) + c1 (xR (t) − jxI (t)) (2.193)
= (c1 + c1 ) xR (t) + j (c1 − c1 ) xI (t)

Consequently the complex diagonal form in Equation (2.187) is rendered real


by using the real part and the imaginary part of the complex state component
which appear in the state vector rather than the complex state component and
its conjugate. Indeed Equations (2.192) and (2.193) lead to the following state-
space representation where matrices (Am , Bm , Cm , D) are real:
 
−β

α

 Am =



 β α



 " #


 b1 +b1

Bm = b1 −b 2
1 (2.194)
 2j



  
Cm = (c1 + c1 ) j (c1 − c1 )









D=0
It can be seen that complex matrix A has the same determinant than the
real matrix Am :
     
α + jβ 0 α −β
det sI − = det sI − (2.195)
0 α − jβ β α
Example 2.8. Let's consider the following transfer function:
s+2
F (s) = (2.196)
s2 − 2s + 5
The two poles of F (s) are λ1 = 1 + 2j and λ1 = 1 − 2j . Thus the partial
fraction expansion of F (s) reads:
s+2 s+2 r1 r2
F (s) = = = + where λ1 = 1 + 2j
s2 − 2s + 5 (s − λ1 )(s − λ1 ) s − λ1 s − λ1
(2.197)
where the residues r1 and r2 are:

 r1 = (s − λ1 )F (s)|s=λ = s+2 3+2j 2−3j
1 s−λ1 s=λ1
= 4j = 4
3−2j 2+3j
(2.198)
s+2

 r2 = (s − λ1 )F (s) = = = = r1
s=λ1 s−λ1 s=λ −4j 4
1
2.3. Realization of SISO transfer function 63

We nally get:
2−3j 2+3j
r1 r2
F (s) = + = 4
+ 4
(2.199)
s − λ1 s − λ1 s − (1 + 2j) s − (1 − 2j)

Residues r1 and r2 are expressed for example as follows:


 2−3j 1
r1 = = (2 − 3j) × = c1 × b1
4
2+3j
4
1 (2.200)
r2 = 4 = (2 + 3j) × 4 = c̄1 × b̄1

Then we apply Equation (2.164) to get the diagonal canonical form of F (s):
      
λ1 0 α + jβ 0 1 + 2j 0

 Am = = =



 0 λ1 0 α − jβ 0 1 − 2j



    
b1 1

1

Bm = =

b1 4 1 (2.201)



    
2 − 3j 2 + 3j



 Cm = c1 c1 =





D=0

This complex diagonal form realization is rendered real by using (2.194):


   
−β −2

α 1

 Am = =



 β α 2 1



 " #
 b1 +b1  
1

1
 2
Bm = b1 −b1 = 4

0 (2.202)
 2j



    
Cm = (c1 + c1 ) j (c1 − c1 ) = 4 6









D=0

For both realizations we can check that F (s) = Cm (sI − Am )−1 Bm + D but
in the last realzation matrices (Am , Bm , Cm , D) are real.


2.3.7 Algebraic and geometric multiplicity of an eigenvalue


The algebraic multiplicity ni of an eigenvalue λi of matrix A ∈ Rn×n is the
number of times λi appears as a root of the characteristic polynomial det(sI−A).
The geometric multiplicity qi of an eigenvalue λi of matrix A ∈ Rn×n is the
dimension of the kernel of λi I − A.
If for every eigenvalue of A the geometric multiplicity equals the algebraic
multiplicity, then matrix A is said to be diagonalizable
64 Chapter 2. Realization of transfer functions

Example 2.9. Let's consider the following matrix:


 
2 3
A= (2.203)
0 2
We have:
det(sI − A) = (s − 2)2 (2.204)
Consequently the algebraic multiplicity of eigenvalue λ1 = 2 is n1 = 2.
In order to get the geometric multiplicity of eigenvalue λ1 we consider the
following matrix:  
0 −3
λ1 I − A = (2.205)
0 0
The dimension of the kernel of λ1 I − A is clearly 1. Consequently the
geometric multiplicity of eigenvalue λ1 is q1 = 1.


2.3.8 Jordan form and generalized eigenvectors


Matrix A is not diagonalizable when there is at least one eigenvalue with a
geometric multiplicity (dimension of its eigenspace) which is strictly less than
its algebraic multiplicity. If for every eigenvalue of A the geometric multiplicity
equals the algebraic multiplicity then A is diagonalizable. If not, the diagonal
form of matrix A is replaced by its Jordan form which is achieved through the
so-called generalized eigenvectors.
A nonzero vector v λi which satises the following properties is called a
generalized eigenvector of A corresponding to eigenvalue λi :
(
(A − λi I)k v λi = 0
(2.206)
(A − λi I)k−1 v λi 6= 0
It is clear that when k = 1 the preceding denition leads to the usual
denition of eigenvector.
It can be shown that:
   
ker (A − λi I)k ⊂ ker (A − λi I)k+1 (2.207)

Furthermore if A is an n × n matrix with an eigenvalue λi with algebraic


multiplicity ni then there is some integer νi ≤ ni such that the following property
holds:
dim (ker ((A − λi I)νi )) = ni (2.208)
The Jordan block Jλi of matrix A corresponding of eigenvalue λi with
algebraic multiplicity ni is the following ni × ni matrix:
 
λi 1 0 ··· 0
 0 λi 1 0 ··· 
 .. . . . . . .
 
J λi =  . . . . (2.209)


 
 λi 1 
0 · · · · · · 0 λi
| {z }
ni terms
2.3. Realization of SISO transfer function 65

To get the Jordan form of any n × n square matrix A with eigenvalues λi


with algebraic multiplicity ni we must compute the nullspace of (A − λi I)ni or
equivalently the nullspace of (A − λi I)n (in that situation there is no need to
know ni ). Let v λi ,ni be a vector which spans the nullspace of (A − λi I)ni but
which does not belong to the nullspace of (A − λi I)ni −1 :

(A − λi I)ni v λi ,ni = 0

(2.210)
(A − λi I)ni −1 v λi ,ni 6= 0
Then the following chain of vectors can be formed:

 v λi ,ni −1 = (A − λi I) v λi ,ni
2

λi ,ni −2 = (A − λi I) v λi ,ni −1 = (A − λi I) v λi ,ni
 v

.. (2.211)

 .
v λi ,1 = (A − λi I)ni −1 v λi ,ni

Let Pλi be the matrix formed by the chain of vectors v λi ,1 · · · v λi ,ni .


 

Then the Jordan form J of matrix A of order n corresponding is obtained as:


  
−1 P = Pλ1 · · · Pλn
J = P AP where  (2.212)
Pλi = v λi ,1 · · · v λi ,ni

Transfer function with multiple poles on the same location


Now assume that transfer function F (s) has a pole λ of multiplicity n. Partial
fraction expansion of F (s) results in:
Y (s) r1 r2 rn
= F (s) = + 2
+ ··· + +d (2.213)
U (s) s − λ (s − λ) (s − λ)n
It is clear from the preceding relationship that the numbers ri ∀ n ≥ i ≥ 1
can be obtained thanks to the following formula:
dn−i

1 n
(2.214)

ri = ((s − λ) F (s)) ∀n≥i≥1
(n − i)! dsn−i
s=λ

Number r1 is called the residue of transfer function F (s) in λ.


Then we dene the Laplace transform of the components x1 (t), · · · , xn (t) of
the state vector x(t) as follows:
Xi (s) 1
= ∀n≥i≥1 (2.215)
U (s) (s − λ)n−i+1
Using (2.215) transfer function F (s) can be written as follows:
Y (s)
= F (s) = r1 XUn(s)
(s)
+ r2 Xn−1 (s) X1 (s)
U (s) + · · · + rn U (s) + d
U (s) (2.216)
⇒ Y (s) = r1 Xn (s) + r2 Xn−1 (s) + · · · + rn X1 (s) + dU (s)
Coming back to the time domain and rearranging the order of the state
vector components we get:

y(t) = rn x1 (t) + rn−1 x2 (t) + · · · + r1 xn (t) + du(t) (2.217)


66 Chapter 2. Realization of transfer functions

The n components of the state vector x(t) dened by (2.215) reads:


Xi (s) 1
U (s) = (s−λ)n−i+1
∀1≤i≤n

Xn (s)
 1


 U (s) = s−λ
Xn−1 (s) 1 Xn (s)
⇒ Xn−1 (s) =

U (s) = (s−λ)2 (2.218)

s−λ


..

⇔ .

X2 (s) 1
⇒ X2 (s) = Xs−λ
3 (s)

 U (s) =

(s−λ)n−1


 X1 (s)
 1 X2 (s)
U (s) = (s−λ)n ⇒ X1 (s) = s−λ

Coming back in the time domain and reversing the order of the equations
we get: 

 ẋ1 (t) = λx1 (t) + x2 (t)
 ẋ2 (t) = λx2 (t) + x3 (t)



.. (2.219)
 .
ẋn−1 (t) = λxn−1 (t) + xn (t)




ẋn (t) = λxn (t) + u(t)

Equations (2.219) and (2.217) lead to the following state-space


representation, which is called the diagonal (Jordan) or modal form:

ẋ(t) = Ax(t) + Bu(t)
(2.220)
y(t) = Cx(t) + Du(t)
Matrix A is a n × n square matrix, B is a vector with n rows and C is a
row with n columns:
  
 λ 1 0 ···
 0 ... ... ... 



  

A=

 .. . . . .

 
. . .
 
1

  


0 ··· 0 λ





 | {z }
n terms






  
0 (2.221)
.. 
B= . 

 

  



  0 

1







  
C = rn rn−1 · · · r1









 D=d

Alternatively we can introduce polynomials N1 (s) and N2 (s) dened as


follows:
r1 r2 rn N1 (s)N2 (s)
F (s) = + + ··· + = (2.222)
s − λ (s − λ)2 (s − λ)n (s − λ)n
2.3. Realization of SISO transfer function 67

Then Pradin1 has shown that equivalent diagonal form realizations of


transfer function F (s) are the following where A is a n × n square matrix, B a
vector with n rows and C a row with n columns:
  
 λ 1 0 ···
 0 ... ... ... 



  

A= . .

..
  
. .

. . .
 
1 

 


0 ··· 0 λ





 | {z }
n terms






..

  
.

  (2.223)
  1 d2 N (s) 

B= 2 2
 2!1 dsd
 

 s=λ 
1! ds N2 (s) s=λ

  


N2 (s)|s=λ







 h i
d2

N1 (s)|s=λ 1!1 ds d
N1 (s) s=λ 2!1 ds

C = 2 N1 (s) ...



 s=λ





 D=d

The preceding relationships can be extended to the general case where


transfer function F (s) has poles λi with multiplicity ni :
P ri1 rini
F (s) = i s−λ + ri2i )2 + · · · + (s−λi )ni +d
P Pnii (s−λ rij
= i j=1 (s−λ j + d (2.224)
P Ni1 (s)Ni2 (s)i )
= i (s−λi )ni + d

Then it is shown in 1
that a diagonal form realization of transfer function
F (s) is the following:
  

 A1


 A=
 A2 
..

 
.








  
B1



B=
 B2  (2.225)
..
 
.








  
C = C1 C2 · · ·









D=d
Matrix Ai is a ni × ni square matrix, Bi is a vector with ni rows and Ci is
1
Bernard Pradin, Automatique Linéaire - Systémes multivariables, Notes de cours INSA
2000
68 Chapter 2. Realization of transfer functions

a row with ni columns:

  
 λi 1 0 ···
. . .. 

 0 .. ..

. 

 

Ai = 

 .. . . . .

 
 . . .
 



 1 
0 ··· 0 λi





 | {z }
ni terms






  
0 (2.226)
 .. 
Bi =  . 



  




  0 
1








  



 Ci = rini · · · ri2 ri1




D=d

or equivalently:

 
0 ···

λi 1
 0 ... ... ... 



  

Ai =  . .

..
  
. .

 . . .
 
1 




0 ··· 0 λi





 | {z }

 ni terms




..

  

.

(2.227)
 1 d22 Ni2 (s)
 
 
Bi =  2! ds

s=λi 

 
1 d
 
1! ds Ni2 (s) s=λi

  






 Ni2 (s)|s=λi



 h i
1 d2
Ni1 (s)|s=λi 1!1 ds d

C = Ni1 (s) s=λ 2! ds2 Ni1 (s) s=λ ...

i


 i

 i




D=d

Transfer function with multiple complex conjugate pair of poles on


the same location

If some of the poles are complex so are the residues and so is the Jordan form.
This may be inconvenient. Assume that λ and λ is a complex conjugate pair of
2.3. Realization of SISO transfer function 69

poles of F (s) with multiplicity 3:

r1 r2 r3
F (s) = + 2
+
s − λ (s − λ) (s − λ)3
r1 r2 r3
+ + 2
+ (2.228)
s − λ (s − λ) (s − λ)3

Let α be the real part of the pole λ and β its imaginary part:

λ = α + jβ ⇔ λ = α − jβ (2.229)

Using the result of the preceding section the Jordan form of transfer function
F (s) is the following:

λ 1 0 0 0 0
 


 0 λ 1 0 0 0

  

 

  0 0 λ 0 0 0 
A =

  


  0 0 0 λ 1 0 

  

  0 0 0 0 λ 1 





 0 0 0 0 0 λ



  
0



 0


 (2.230)
 1


 B=






  0 
  


  0 




 1



  
C = r3 r2 r1 r3 r2 r1









D=0

It is clear that the Jordan form of transfer function F (s) is complex. This
complex Jordan form is rendered real by using the real part and the imaginary
part of the complex state components which appear in the state vector rather
than the complex state components and its conjugate. This is the same kind of
trick which has been used in the section dealing with complex conjugate pair of
poles. The real state matrix An is the following:
 
Jab I 0  
α −β
An =  0 Jab I  where Jab = (2.231)
β α
0 0 Jab

It can be seen that complex matrix A has the same determinant than the
following real matrix An :

det (sI − A) = det (sI − An ) (2.232)


70 Chapter 2. Realization of transfer functions

2.4 Realization of SIMO transfer function


The acronym SIMO stands for Single-Input Multiple-Output. The transfer
function F(s) relates the relationship between the Laplace transform of the
output of the system, y(t), which is a vector, and the Laplace transform of the
input of the system, u(t), which is a scalar as in the SISO case. Thus
 in that
situation the transfer function becomes a vector. Let Y (s) = L y(t) and
U (s) = L [u(t)]. Thus we write:

Y (s) = F(s)U (s) (2.233)

As in the SISO case, the realization of a SIMO transfer function F(s) consists
in nding any quadruplet (A, B, C, D) such that:

F(s) = C (sI − A)−1 B + D (2.234)

We will consider in the following a SIMO system with p outputs. Thus Y (s)
is a vector of p rows and U (s) a scalar. Several kind of realizations are possible
which will be presented hereafter.

2.4.1 Generic procedure


In the SIMO case we can always write the transfer function F(s) as a vector
composed of p transfer functions of SISO systems:

 
F1 (s)
F(s) =  ...  (2.235)
 

Fp (s)

 
Ai Bi
If we realize Fi (s) by then one realization of F(s) is the
Ci di
following:

 
A1 0 ··· B1
.. .. 
. . 

 0
..
 
.
   
Ai Bi Ap Bp 
(2.236)

Fi (s) = ⇒ F(s) =  
Ci di  C1 0 ··· d1 
.. .. 
 
. . 

 0
..
 
. Cp dp
2.4. Realization of SIMO transfer function 71

To get the previous result we have to write F(s) as follows:


C1 (sI − A1 )−1 B1 + d1
   
F1 (s)
F(s) =  ...  =  ..
.
   

−1
 Fp (s)  p(sI − Ap ) Bp + dp 
C
C1 0 · · · (sI − A1 )−1 B1

d1
.. ..   .. 
.
 
= 0 
. + . 
..
 
−1
dp
 . Cp   (sI − Ap ) Bp
−1

C1 0 · · · (sI − A1 ) 0 ···
  
B1 d1
.. ..  .   . 
 .  +  . 
. .
 
= 0  0 . .
.. ..
  
−1 Bp dp
. Cp . (sI − Ap )
   −1 
C1 0 · · · (sI − A1 ) 0 ···
  
B1 d1
.. ..   .   . 
  .  +  . 
. .
  
=  0 0 . .
 
.. ..
  
. Cp . (sI − Ap ) B p d p
(2.237)
From the preceding relationship we deduce the realization (2.236).
Example 2.10. Let's consider the following SIMO transfer function:
 s+1 
F(s) = s2 +6s+9
5 (2.238)
s2 +6s+9

F(s) is the transfer function of a system with p = 2 outputs, which is the


number of rows of F(s), and one input, which is the number of columns of F(s).
We notice that F(s) is a strictly proper. Consequently:
 
0
d= (2.239)
0
Then we write the transfer function Fsp (s) := F(s) as the ratio between a
polynomial vector N(s) with p = 2 rows and a polynomial Ψ(s):
 
s+1
N(s) 5
F(s) := Fsp (s) = = 2 (2.240)
Ψ(s) s + 6s + 9
A realization of transfer function F1 (s) = s+1
s2 +6s+9
is for example the
controllable canonical form:
 
0 1 0
s+1
F1 (s) = 2 =  −9 −6 1  (2.241)
s + 6s + 9
1 1 0
Similarly a realization of transfer function F2 (s) = 5
s2 +6s+9
is for example
the controllable canonical form:
 
0 1 0
5
F2 (s) = 2 =  −9 −6 1  (2.242)
s + 6s + 9
5 0 0
72 Chapter 2. Realization of transfer functions

Applying the generic procedure we get a realization of the SIMO transfer


function F(s):  
0 1 0 0 0
 −9 −6 0 0 1 
 
 0 0 0 1 0
(2.243)

F(s) = 
 0 0 −9 −6 1


 
 1 1 0 0 0 
0 0 5 0 0


2.4.2 Controllable canonical form


We can also write the transfer function F(s) as follows:
 
d1
F(s) = Fsp (s) +  ...  = Fsp (s) + d (2.244)
 

dp

where d is a constant vector and Fsp (s) a strictly proper transfer function:

lims→∞ F(s) = d
(2.245)
lims→∞ Fsp (s) = 0

With the same argument than in the SISO case we have:


 
d1
D = d =  ...  (2.246)
 

dp

Then we have to nd matrices (A, B, C) such that:

Fsp (s) = C (sI − A)−1 B (2.247)

To get the controllable canonical form we write the transfer function Fsp (s)
as the ratio between a polynomial vector N(s) with p rows and a polynomial
Ψ(s):  
N1 (s)
..
.
 
 
N(s) Np (s)
Fsp (s) = = (2.248)
Ψ(s) Ψ(s)
Then we build for each SISO transfer function Ni (s)/Ψ(s) a controllable
realization (Ac , Bc , Ci , 0). Note that:

− Matrix Ac is common to each realization because the denominator Ψ(s)


of each transfer function Ni (s)/Ψ(s) is the same. When we write Ψ(s) as
follows:
Ψ(s) = sn + an−1 sn−1 + · · · + a1 s + a0 (2.249)
2.4. Realization of SIMO transfer function 73

Then Ac is a n × n square matrix:


 
0 1 0 0

 0 . .. 
0 1 0 
.. .. (2.250)
 
Ac = 
. .

 0 

 0 0 0 1 
−a0 −a1 −a2 · · · −an−1

− Vector Bc is common to each realization because we use the controllable


canonical form of each SISO transfer function Ni (s)/Ψ(s). This is a vector
vector with n rows:  
0
 .. 
Bc =  .  (2.251)
 
 0 
1

− Each vector Ci is dedicated to one output. This is a row vector with p


columns formed with the coecients of polynomials Ni (s).

Then the controllable canonical form of the SIMO transfer function F(s) is
the following:  
Ac Bc
 C1 d1 
F(s) =  . ..  (2.252)
 
 . . . 
Cp dp

Example 2.11. Let's consider the following SIMO transfer function:


 1 
F(s) = s+1
2 (2.253)
s+2

F(s) is the transfer function of a system with p = 2 outputs, which is the


number of rows of F(s), and one input, which is the number of columns of F(s).
We notice that F(s) is a strictly proper. Consequently:
 
0
d= (2.254)
0

Then we write the transfer function Fsp (s) := F(s) as the ratio between a
polynomial vector N(s) with p = 2 rows and a polynomial Ψ(s):
   
s+2 s+2
N(s) 2(s + 1) 2(s + 1)
F(s) := Fsp (s) = = = 2 (2.255)
Ψ(s) (s + 1)(s + 2) s + 3s + 2

Then matrix Ac of the controllable canonical form of F(s) is obtained


thanks to the coecients of the denominator Ψ(s) whereas vector Bc is set by
74 Chapter 2. Realization of transfer functions

the controllable canonical form:


  
0 1
 Ac =


 −2 −3 (2.256)
0
 Bc =


1

Vector Cc is obtained thanks to the coecients of the polynomial vector N(s)


:  
2 1
Cc = (2.257)
2 2
We nally get:  
0 1 0
 −2 −3 1 
F(s) = 
 2
 (2.258)
1 0 
2 2 0


Example 2.12. Let's consider the following SIMO transfer function:


 s+1 
F(s) = s2 +6s+9
5 (2.259)
s2 +6s+9

F(s) is the transfer function of a system with p = 2 outputs, which is the


number of rows of F(s), and one input, which is the number of columns of F(s).
We notice that F(s) is a strictly proper. Consequently:
 
0
d= (2.260)
0

Then we write the transfer function Fsp (s) := F(s) as the ratio between a
polynomial vector N(s) with p = 2 rows and a polynomial Ψ(s):
 
s+1
N(s) 5
F(s) := Fsp (s) = = 2 (2.261)
Ψ(s) s + 6s + 9

Then matrix Ac of the controllable canonical form of F(s) is obtained


thanks to the coecients of the denominator Ψ(s) whereas vector Bc is set by
the controllable canonical form:
  
0 1
 Ac =


 −9 −6 (2.262)
0
 Bc =


1

Vector Cc is obtained thanks to the coecients of the polynomial vector N(s)


:  
1 1
Cc = (2.263)
5 0
2.5. Realization of MIMO transfer function 75

We nally get:  
0 1 0
 −9 −6 1 
F(s) = 
 1
 (2.264)
1 0 
5 0 0


2.5 Realization of MIMO transfer function


The acronym MIMO stands for Multi-Input Multiple-Output.
The transfer function F(s) relates the relationship between the Laplace
transform of the output of the system, which is a vector, and the Laplace
transform of the input of the system, which is also a vector in the MIMO case.
Due to the fact that the output y(t) of the system and the input u(t) of the
system are no more  scalars but vectors it is not possible to express the ratio
between Y (s) = L y(t) and U (s) = L [u(t)]. Thus we write:


Y (s) = F(s)U (s) (2.265)

We will consider in the following a MIMO system with p outputs and m


inputs. Then Y (s) = L y(t) is a vector of p rows, U (s) = L [u(t)] is a vector


of m rows and transfer function F(s) is a matrix with m columns and p rows.
As in the SIMO case, the realization of a MIMO transfer function F(s)
consists in nding any quadruplet (A, B, C, D) such that:

F(s) = C (sI − A)−1 B + D (2.266)

2.5.1 Generic procedure


In the MIMO case we can always write the transfer function F(s) as a matrix
composed of p × m transfer functions of SISO systems Fij (s):
 
F11 (s) · · · F1m (s)
F(s) =  .. .. (2.267)
. .
 

Fp1 (s) · · · Fpm (s)

The transfer function F(s) can be written as the sum of SIMO systems:
 
F11 (s)
..  
F(s) =  .  1 0 ··· 0 +

Fp1 (s)
 
F1m (s)
..  
(2.268)
··· +  .  0 ··· 0 1

Fpm (s)
76 Chapter 2. Realization of transfer functions

That is:
   
F(s) = F1 (s) 1 0 · · · 0 + · · · + Fm (s) 0 · · · 0 1
0 ... 0 1 0 ... 0 (2.269)
= m
P
i=1 Fi (s)
|{z}
i-th column

 
F1i (s)
If we realize the SIMO system Fi (s) =  ..
.  in the ith column of F(s)
 

Fpi (s)
 
Ai Bi
by then one realization of transfer function F(s) is the following:
Ci Di
 
F1i (s)  
Fi (s) =  .
..
Ai Bi
=
 
Ci Di
Fpi (s)
 
A1 0 · · · B1 0 · · ·
 0 ... ..
.
 
0  (2.270)

⇒ F(s) = 
 .. ..
 . .

Am Bm 
C1 · · · Cm D1 · · · Dm

The state-space representation of each SIMO transfer function Fi (s) can


be obtained thanks to the controllable canonical form (2.252). The achieved
state-space representation is block diagonal but is not necessarily minimal (see
section 2.6).
To get this result we use the same kind of demonstration than the one which
has been to obtain the generic procedure seen in Equation (2.236). Indeed:

   
F(s) = F1 (s) 1 0 · · · 0  + · · · + Fm (s) 0 · · · 0 1
=  F1 (s) · · · Fm (s)
= C1 (sI − A1 )−1 B −1

1 + D 1 · · · C m (sI − A m ) B m + D m
(sI − A1 )−1 B1 0
 
···
..
.
    
= C1 · · · Cm  0  + D1 · · · Dm
..
 
. (sI − Am )−1  Bm
−1
 
(sI − A1 ) 0 ··· B1 0 · · ·
..
.   0 ...
   
= C1 · · · Cm  0 
.. ..
  
−1
. (sI − Am ) .  Bm
+ D1 · · · Dm
 −1  
(sI − A1 ) 0 ··· B1 0 · · ·
..   0 . . .
.
     
= C1 · · · Cm   0 
.. ..
   
. (sI − Am ) .  Bm
+ D1 · · · Dm
(2.271)
2.5. Realization of MIMO transfer function 77

2.5.2 Controllable canonical form


In the MIMO case, transfer function F(s) can always be expanded as follows
where p × m constant matrices Ci , i = 1, · · · , n − 1 and D are of the same size
than transfer function F(s) with m inputs and p outputs:

N(s) Cn−1 sn−1 + · · · + C1 s + C0


F(s) = +D= +D (2.272)
Ψ(s) 1 × sn + an−1 sn−1 + · · · + a1 s + a0
Following the same procedure than in the SISO case, and by denoting Im the
identity matrix of dimension m, the controllable canonical form of F(s) reads:
 
Ac Bc
F(s) = (2.273)
Cc D

where:
  
0 Im 0 0
.

.

.
  
0 0 0


  Im 
. .
  
.. ..

 Ac = 
 
0

 

  
0 0 0



  I m 
−a0 Im −a1 Im −a2 Im · · · −an−1 Im








  

 0
 0  (2.274)
.. 

  
 Bc = 
 . 


  



  0 




 Im



  
Cc = C0 C1 · · · Cn−2 Cn−1









D = lims→∞ F(s)

Example 2.13. Let's consider the following transfer function:


 2 s+1 
F(s) = s+2
1
s+3
5 (2.275)
s+2 s+2

Let's decompose F(s) as follows:


 2 −2   
s+2 s+3 0 1
F(s) = 1 5 +
s+2 s+2 0 0
 

2(s + 3) −2(s + 2) 
s+3 5(s + 3) (2.276)
 
0 1
= (s+2)(s+3) +
   
0 0

2 −2  s+
6 −4 
1 5 3 15
 
0 1
= s2 +5s+6
+
0 0
78 Chapter 2. Realization of transfer functions

The system describe by transfer function F(s) has m = 2 inputs. Using


(2.274) leads to the following controllable canonical realization of F(s):
    
ẋ(t) Ac Bc x(t)
= (2.277)
y(t) Cc D u(t)

where:   

 0 0 1 0
0 0 0 1 

 
Ac = 

 


  −6 0 −5 0 

0 −6 0 −5








  



 0 0

  0 0 
Bc = 

(2.278)

 1 0 
0 1








  
 Cc = 6 −4 2 −2






 3 15 1 5



  
0 1


 D=


0 0
This result can be checked by using Equation (2.1).


2.5.3 Diagonal (or modal) form


As in the SIMO case we expand F(s) as follows:

F(s) = Fsp (s) + D (2.279)

where D is a constant matrix and Fsp (s) a strictly proper transfer function:

lims→∞ F(s) = D
(2.280)
lims→∞ Fsp (s) = 0

Then we have to nd matrices (A, B, C) such that:

Fsp (s) = C (sI − A)−1 B (2.281)

To get the diagonal (or modal) form we write the transfer function Fsp (s)
as the sum between rational fractions. Let λ1 , · · · , λr be the r distinct roots
of Ψ(s) and ni the multiplicity of root λi . Then we get the following partial
fraction expansion of Fsp (s) where matrices Rij are constant:
ni
XX Rij
Fsp (s) = (2.282)
(s − λi )j
i j=1
2.5. Realization of MIMO transfer function 79

The diagonal (or modal) form of the MIMO transfer function F(s) is the
following:  
J1 0 · · · B1
.. 
 0 ... . 

F(s) =  .
  (2.283)
 . . Jr Br 

C1 · · · Cr D
Denoting by ni the multiplicity of the root λi , m the number of inputs of
the system and Im the identity matrix of size m × m, matrices Ji , Bi and Ci
are dened as follows:

− The Jordan matrix Ji is a (m × ni ) × (m × ni ) matrix with the following


expression:  
λi Im Im 0 ···
.. .. .. 
. . . 

 0
Ji =  .

.. ..
 (2.284)
 .. . . Im 

0 · · · 0 λi Im
| {z }
ni termes λi Im

It is worth noticing that matrix (sI − Ji )−1 reads:

(s − λi )−1 Im (s − λi )−2 Im · · · (s − λi )−ni Im


 
.
(s − λi )−1 Im . . (s − λi )−ni +1 Im 
 
−1
 0
(sI − Ji ) =  
.. .. .. ..

. . . .

 
0 ··· 0 (s − λi )−1 Im
(2.285)

− Bi is a (m × ni ) × m matrix:
 
0
 .. 
Bi =  .  (2.286)
 
 0 
Im

− Ci is a p × (m × ni ) matrix:

(2.287)
 
Ci = Rini · · · Ri2 Ri1

An alternative diagonal (or modal) form also exists. To get it rst let's focus
on the realization of the following p × m transfer function Fi (s) with a pole λ
of multiplicity i:
 
Iρi 0ρi ×(m−ρi )
0(p−ρi )×ρi 0(p−ρi )×(m−ρi )
Fi (s) = (2.288)
(s − λ)i
80 Chapter 2. Realization of transfer functions

where Iρi is the identity matrix of dimension ρi and 0p×m the null matrix
with p rows and m columns.
Then we recall the inverse of the following n × n bidiagonal matrix:
 −1
λ−2 · · · λ−n
  
λ −1 0 λ
.. −1 . . .
.
   
λ −1 λ
(2.289)
   
L= ⇒L =
.. ..

. −1  . λ−2 
   
 
0 λ 0 λ−1

The alternative diagonal (or modal) form of Fi (s) is then the following 2 :
   
Ai Bi 0nρi ×(m−ρi )
(2.290)
 
Fi (s) =  Ci 
0p×m
0(p−ρi )×nρi

where Ai is a (n × ρi ) × (n × ρi ) square matrix, BTi (the transpose of Bi ) a


ρi × (n × ρi ) matrix whose ρi rows are built from row vector 0 0 · · · 1 and
| {z }
n terms
Ci a ρi ×(n×ρi ) matrix whose ρi rows are built from row vector 1 0 · · · 0 :
| {z }
n terms
  
  λ 1 0 ···
Ji 0 · · ·

 0 .. .. ... 
. .


.. ..

  
. .

where Ji = 
 
Ai =  0

..

  
. . .
    
.. .. J 1 

 

i

0 0 λ



 | {z }
ρi terms

 | {z }
n terms







0 0 ··· 01×n · · ·

1

 

 


  | {z } 

n terms

 
.. ..
 
BTi =  . . ρi terms
 
 
  
01×n ··· 0 0 · · · 1 

  
 


 | {z } 



 n terms



1 0 ··· 01×n · · ·
 
0
 

 

 | {z } 
  

 n terms 
.. ..

  
Ci =  . .  ρi terms

  


  
01×n ··· 1 0 · · · 0 

  

 

 | {z } 

n terms
(2.291)
Now let's consider the following transfer function Fi (s) where Ni1 is a
constant p × ρi matrix, Ni2 a constant ρi × m matrix and Ni1 Ni2 is a p × m
2
Toshiya Morisue, Minimal Realization of a Transfer Function Matrix with Multiple Poles,
Transactions of the Society of Instrument and Control Engineers, Volume 21 (1985) Issue 6
Pages 546-549
2.6. Minimal realization 81

constant matrix of rank ρi :


Ni1 Ni2 Ni1 Iρi Ni2
Fi (s) = = where rank (Ni1 Ni2 ) = ρi (2.292)
(s − λ)i (s − λ)i
From the preceding realization it is clear that the alternative diagonal (or
modal) form of Fi (s) is the following:
 
Ai Bi Ni2
Fi (s) = (2.293)
Ni1 Ci 0p×m
Finally let's consider a p × m transfer function F(s) which has pole λ with
multiplicity n and where R(s) is a matrix of polynomial of degree strictly lower
than n. The partial fraction expansion of F(s) reads:
R(s)
F(s) = (s−λ)n
R1
= s−λ R2
+ (s−λ) 2 + ··· +
Rn
(s−λ)n (2.294)
Pn Ri
= i=1 (s−λ)i

Constant matrices Ri are dened by:


dn−i

1 n
(2.295)

Ri = n−i
(s − λ) F(s)
(n − i)! ds s=λ

Let ρi be the rank of constant matrix Ri :


ρi = rank (Ri ) (2.296)

Each term Ri can be expanded as a product of two constant matrices Ni1


and Ni2 where Ni1 is a p × ρi matrix and Ni2 a ρi × m matrix:

Ri = Ni1 Ni2 = Ni1 Iρi Ni2 (2.297)

Then the alternative diagonal (or modal) form of the MIMO transfer function
F(s) is the following:
 
A1 0 ··· B1 N12
n .. ..
. .
 
X 0
(2.298)
 
F(s) = Fi (s) + D = 

..

.

i=1  An Bn Nn2 
N11 C1 · · · Nn1 Cn D
This diagonal (or modal) form of F(s) is in general not minimal (see section
2.6).

2.6 Minimal realization


2.6.1 System's dimension
Let's start with an example and consider the following transfer functions:
 1
F1 (s) = s+1
s+2 (2.299)
F2 (s) = s2 +3s+2
82 Chapter 2. Realization of transfer functions

From the preceding sections it can be seen that the controllable canonical
form of transfer functions F1 (s) and F2 (s) are the following:
    
A1 B1 −1 1

 F1 (s) = =
C1 D1  1 0



(2.300)

  0 1 0
A2 B2
F (s) = = −2 −3 1

 2
  
C2 D2


2 1 0

It is clear that the dimension of state matrix A1 is 1 and the dimension of


state matrix A2 is 2.
On the other hand it can be seen that the poles of transfer function F2 (s)
are −1 and −2:
s2 + 3s + 2 = (s + 1)(s + 2) (2.301)
Consequently F2 (s) reads:
s+2 s+2 1
F2 (s) = = = (2.302)
s2 + 3s + 2 (s + 1)(s + 2) s+1
Thus we nally get:
F2 (s) = F1 (s) (2.303)
Despite the fact that F2 (s) = F1 (s) we have obtained two realizations with
dierent size of the state matrix. This usually appears when pole-zero
cancellation appears in the transfer function.
The order of a realization is the size of state matrix A. So in that example
the order of the realization of F2 (s) is greater than the order of the realization
of F1 (s).
This example can be extended to the general case where the dimension of
the state matrix A corresponding to the same transfer function F(s) may vary.
We said that a realization of a transfer function F(s) is minimal if there exists
no realization of lesser order whose transfer function is F(s).
For SISO systems it can be proven that a realization of transfer function F(s)
is minimal if and only if the two polynomials C adj(sI − A)B and det(sI − A)
are coprime.
For MIMO systems it can be proven that a realization of transfer function
F(s) is minimal if and only if the characteristic polynomial of matrix A is equal
to the Least Common Multiple (LCM), or Greatest Common Factor (GCF), of
the denominators of all possible non zero minors (of all sizes) in F(s) 3 .
We recall that minors or order k are the determinants of square sub-matrices
of dimension k . More precisely if F(s) is a p × m matrix then the minors of
order k are obtained by computing the determinant of all the square k × k
sub-matrices where p − k rows and m − k columns of F(s) have been deleted.
To nd the Least Common Multiple (LCM) of two polynomials simply
factor each of the two polynomials completely. Then take the product of all
factors (common and not common), every factor being aected with its
3
Mohammed Dahleh, Munther A. Dahleh, George Verghese, Lectures on Dynamic Systems
and Control, Massachuasetts Institute of Technology
2.6. Minimal realization 83

greatest exponent. Finally multiply the obtained polynomial by a constant to


obtain amonic polynomial.

A B
Let be a minimal realization of a transfer function F(s). Then
C D
the eigenvalues of A are identical to the poles of F(s). If the realization is not
minimal then the poles of F(s) are a subset of the eigenvalues of A. It can be
proven that Gilbert's diagonal realization is a minimal realization.
Example 2.14. Let's consider the following transfer function:
 1 1 
F(s) = s+1
2
s+2
3 (2.304)
s+1 s+1

A rst realization of F(s) is obtained by writing a realization of each SISO


transfer function:
−1
 
1 0

 −1 2 0 

−2 0 1
(2.305)
 
F(s) =  

 −1 0 3 

 1 0 1 0 0 0 
0 1 0 1 0 0
The characteristic polynomial of state matrix A is:
det(sI − A) = (s + 1)3 (s + 2) (2.306)
Whereas the Least Common Multiple (LCM) of the denominators of all
possible non zero minors (of all sizes) in F(s) is the following:


 den (m11 (s)) = s + 1
 den (m12 (s)) = s + 2


den (m21 (s)) = s + 1 ⇒ LCM = (s + 1)2 (s + 2) (2.307)
den (m22 (s)) = s + 1




den (F(s)) = (s + 1)2 (s + 2)

As far as det(sI − A) 6= LCM we conclude that the realization is not


minimal. Furthermore the characteristic polynomial of any state matrix of a
minimal realization shall be the LCM, that is here (s + 1)2 (s + 2).
An other realization of F(s) can be obtained by writing F(s) in diagonal (or
modal) form as explained in section 2.5.3:
   
1 1   1 0  
F(s) = 1 0 + 0 1
s+1 2 s+1 3
 
1 1
(2.308)
 
+ 0 1
s+2 0
Then we get:
−1
 
1 0
 −1 0 1 
(2.309)
 
F(s) = 
 −2 0 1 

 1 0 1 0 0 
2 3 0 0 0
84 Chapter 2. Realization of transfer functions

Because F(s) has distinct roots we can also use for this example Gilbert's
realization as explained in section 2.6.2:
   
1 1 1 1 0 1 0 1
F(s) = R1 + R2 = + (2.310)
s+1 s+2 s+1 2 3 s+2 0 0
 
1 0
− The rank of matrix R1 = is ρ1 = 2. Thus we write R1 = C1 B1
2 3
where C1 is a p × ρ1 = 2 × 2 matrix and B1 is a ρ1 × m = 2 × 2 matrix.
We choose for example:
  
1 0
C = R =

 1
 1
2 3
 (2.311)
1 0
 B1 = I =


0 1

 
0 1
− The rank of matrix R2 = is ρ2 = 1. Thus we write R2 = C2 B2
0 0
where C2 is a p × ρ2 = 2 × 1 matrix and B2 is a ρ2 × m = 1 × 2 matrix.
We choose for example:
  
1
C2 =

0  (2.312)
B2 = I = 0 1

Then we get:
−1
 
  1 0
Λ1 0 B1  −1 0 1 
(2.313)
 
F(s) =  0 λ2 B2  =
 −2 0 1 

C1 C2 D  1 0 1 0 0 
2 3 0 0 0

For this example we get the same realization than (2.309).


With this realization we have det(sI − A) = LCM = (s + 1)2 (s + 2). Thus
we conclude that this realization is minimal.


2.6.2 Gilbert's minimal realization


Let's write the p × m transfer function F(s) as follows:

F(s) = Fsp (s) + D (2.314)

where D is a constant matrix and Fsp (s) a strictly proper transfer function:

lims→∞ F(s) = D
(2.315)
lims→∞ Fsp (s) = 0
2.6. Minimal realization 85

We consider in that section MIMO systems in which the denominator


polynomial of the strictly proper transfer function Fsp (s) has distinct roots:
X Ri
Fsp (s) = (2.316)
s − λi
i

The residue Ri can be obtained as:

Ri = lim (s − λi ) Fsp (s) = lim (s − λi ) F(s) (2.317)


s→λi s→λi

Now let ρi be the rank of Ri :

ρi = rank (Ri ) (2.318)

and write Ri as follows where Ci is a p × ρi constant matrix and Bi a ρi × m


constant matrix:
Ri = Ci Bi (2.319)
Then a realization of the transfer function F(s) is the following4 :
 
Λ1 0 · · · B1
.. 
 0 ... . 

F(s) =  .
  (2.320)
 ..

Λm Bm 
C1 · · · Cm D

where matrices Λi = λi Iρi are diagonal matrices of size ρi .


Moreover Gilbert's realization is minimal with order n given by:
X
n= ρi (2.321)
i

2.6.3 Ho-Kalman algorithm


   
A m Bm A B
To get a minimal realization from a realization we
Cm D C D
can use the Ho-Kalman algorithm which is described hereafter:

− Let r be the dimension of the state matrix A, which may not be minimal.
First compute the observability
 matrix Qo and the controllability matrix
A B
Qc of the realization :
C D
  

 C


  CA 
Qo =  ..
  
. (2.322)

 
 r−1
 CA




Qc = B AB · · · Ar−1 B
 

4
Thomas Kailath, Linear Systems, Prentice-Hall, 1st Edition
86 Chapter 2. Realization of transfer functions

The realization is minimal if and only if:


rank (Qo ) = rank (Qc ) (2.323)

In all situations the dimension n of the system is given by:


n = min (rank (Qo ) , rank (Qc )) (2.324)
 
A B
− If the realization is not minimal then compute the singular
C D
value decomposition (svd ) of the product Qo Qc :

Qo Qc = UΣVT (2.325)
Matrix Σ is a rectangular diagonal matrix with non-negative real
coecients situated on its diagonal. The strictly positive coecients of
Σ are called the singular values of Qo Qc . The number of singular values
of Qo Qc (which are the strictly positive coecients within the diagonal
of matrix Σ) isthe dimension
 n of the system. Again note that n 6= r if
A B
the realization is not minimal.
C D
− Let Σn be the square diagonal matrix built from the n singular values
of Qo Qc (which are the non-zero coecients within the diagonal matrix
Σ), Un the matrix built from the n columns of U corresponding to the
aux n singular values and Vn the matrix built from the n columns of V
corresponding to the aux n singular values:
  T 
 Σn 0 Vn
T
(2.326)

Qo Qc = UΣV = Un Us
0 Σs VsT
− Matrices On and Cn are dened as follows:
(
1/2
On = Un Σn
On Cn = Un Σn VnT where 1/2 (2.327)
Cn = Σn VnT

− Then the state matrix Am of a minimal realization is obtained as follows:


Am = Σn−1/2 UTn (Qo AQc ) Vn Σ−1/2
n (2.328)

− Let m be the number of inputs of the system and p its number of outputs
and Im the identity matrix of size m. Matrix Bm and Cm of the minimal
realization are obtained as follows:

  
   Im
 Im

 1/2
 0 

 B =C 
m n
0  = Σn VnT

..

.. . (2.329)
 
.
 



 0
1/2
    
0 ··· 0 On = Ip 0 · · · 0 Un Σn

Cm = Ip
− Matrix D is independent of the realization.
Chapter 3

Analysis of Linear Time


Invariant systems

3.1 Introduction
This chapter is dedicated to the analysis of linear dynamical systems. More
specically we will concentrate on the solution of the state equation and we will
present the notions of controllability, observability and stability. Those notions
will enable the modal analysis of Linear Time Invariant (LTI) dynamical systems

3.2 Solving the time invariant state equation


We have seen that the state equation attached to a linear time invariant system
is the following:

ẋ(t) = Ax(t) + Bu(t) (3.1)

The purpose of this section is to obtain the general solution of this linear
dierential equation, which is actually a vector equation.
The solution of the non-homogeneous state equation ẋ(t) = Ax(t) + Bu(t)
can be obtained by the Laplace transform. Indeed the Laplace transform of this
equation yields:
sX(s) − x(0) = AX(s) + BU (s) (3.2)

That is:
(sI − A) X(s) = x(0) + BU (s) (3.3)

Pre-multiplying both sides of this equation by (sI − A)−1 leads to the


following equation:

X(s) = (sI − A)−1 x(0) + (sI − A)−1 BU (s) (3.4)

By taking the inverse Laplace transform of this equation we get the


88 Chapter 3. Analysis of Linear Time Invariant systems

expression of the state vector x(t):

x(t) = L−1 [X(s)]


h i
= L−1 (sI − A)−1 x(0) + (sI − A)−1 BU (s) (3.5)
h i h i
= L−1 (sI − A)−1 x(0) + L−1 (sI − A)−1 BU (s)

To inverse the preceding equation in the s domain and come back in the
time domain we will use the following properties of the Laplace transform:
− Convolution theorem: let x(t) and y(t) be two causal scalar signals and
denote by X(s) and Y (s) their Laplace transforms, respectively. Then the
product X(s)Y (s) is the Laplace transform of the convolution between
x(t) and y(t) which is denoted by x(t) ∗ y(t):

X(s)Y (s) = L [x(t) ∗ y(t)] ⇔ L−1 [X(s)Y (s)] = x(t) ∗ y(t) (3.6)

Where: Z t
x(t) ∗ y(t) = x(t − τ )y(τ )dτ (3.7)
0

This relationship is readily extended to the vector case where X(t) is a


matrix and y(t) a vector:
Z t
−1
L [X(s)Y (s)] = X(t) ∗ y(t) = X(t − τ )y(τ )dτ (3.8)
0

− Laplace transform of exponential matrix: in the scalar case we have seen


that:
1 h i
L eat = = (s − a)−1 ⇔ L−1 (s − a)−1 = eat (3.9)
 
s−a
This relationship is readily extended to the vector case as follows:
h i
L eAt = (sI − A)−1 ⇔ L−1 (sI − A)−1 = eAt (3.10)
 

Thus the inverse Laplace transform of Equation (3.5) leads to the expression
of the state vector x(t) which solves the state equation (3.1):
Z t
At
x(t) = e x(0) + eA(t−τ ) Bu(τ )dτ (3.11)
0

The solution x(t) of Equation (3.5) is often referred to as the state trajectory
or the system trajectory.
Exponential eAt is dened as the transition matrix Φ(t):

Φ(t) = eAt (3.12)

In the more general case of time dependent linear dierential equation of


the form ẋ(t) =R A(t)x(t) + B(t)u(t) the expression of the state vector is x(t) =
t
Φ(t, t0 )x(0) + t0 Φ(t, τ )Bu(τ )dτ where Φ(t, t0 ) is also named the transition
3.3. Output response 89

matrix (or Green's matrix). In this case the transition matrix is a solution of
the homogeneous equation ∂Φ(t,t ∂t
0)
= A(t)Φ(t, t0 ). In addition Φ(t, t) = I ∀t
and Φ(t, t0 ) = φ(t)φ−1 (t0 ) where φ(t) is the solution of ẋ(t) = A(t)x(t). For a
linear time invariant system the transition matrix Φ(t, t0 ) is Φ(t, t0 ) = eA(t−t0 ) ;
as far as for the time invariant case the initial time t0 is meaningless we can
choose t0 = 0 and we retrieve Φ(t) = eAt .

3.3 Output response


We have seen that the output vector y(t) of the state space representation is
obtained thanks to the output equation. Using the expression of the state vector
x(t) we get:

y(t) = Cx(t)
 + Du(t)R 
t
= C eAt x(0) + 0 eA(t−τ ) Bu(τ )dτ + Du(t) (3.13)
Rt
= CeAt x(0) + 0 CeA(t−τ ) Bu(τ )dτ + Du(t)

− The term CeAt x(0) is called the zero-input response (or output) of the
system; this is the response of the system when there is no input signal
u(t) applied on the system;
Rt
− The term 0 CeA(t−τ ) Bu(τ )dτ + Du(t) is called the zero-state output (or
response) of the system; this is the response of the system when there is
no initial condition x(0) applied on the system.

3.4 Impulse and unit step responses


The impulse response of a dynamical system is the zero-state output of the
system when the input signal u(t) is the impulse δ(t) called the Dirac delta
function.
Setting in (3.13) the input signal u(t) to the Dirac delta function δ(t) and
putting the initial conditions x(0) to zero leads to the following expression of
the impulse response of the system:
Z t
y(t) = CeA(t−τ ) Bδ(τ )dτ + Dδ(t) (3.14)
0
Rt
The term 0 CeA(t−τ ) Bδ(τ )dτ can be expressed as the convolution between
the matrix CeAt B and the input vector δ(τ ). We get:

y(t) = CeAt B ∗ δ(t) + Dδ(t) (3.15)

Using the fact that the Dirac delta function δ(t) is the neutral element for
convolution we can write CeAt B ∗ δ(t) = CeAt B. Consequently the output
vector y(t), that is the impulse response of a linear time invariant system which
will be denoted h(t), can be expressed as follows:

y(t) := h(t) = CeAt B + Dδ(t) (3.16)


90 Chapter 3. Analysis of Linear Time Invariant systems

The Laplace transform of the impulse response h(t) is dened to be the


transfer function F(s) of the system. Using the fact that the Laplace transform
of the Dirac delta function δ(t) is 1 we retrieve the following expression for the
transfer function F(s) of the linear system:

F(s) = L [h(t)] = C (sI − A)−1 B + D (3.17)

The unit step response is the response of the system to the unit step input.
Setting in (3.13) the input signal u(t) to u(t) = 1 ∀t > 0 and putting the initial
conditions x(0) to zero leads to the following expression of the unit step response
of the system:
Rt
y(t) = 0 CeA(t−τ
R
) Bdτ + D1

t
= CeAt 0 e−Aτ dτ B + D1
 t  (3.18)
= Ce At −A e −1 −Aτ B + D1
τ =0 
= CeAt A−1 − A−1 e−At B + D1

Using the fact that eAt A−1 = A−1 eAt (which is easy to show using the
series expansion of eAt ) and assuming that matrix A−1 exists, we nally get the
following expression for the unit step response of the system:

y(t) = CA−1 eAt − I B + D1 (3.19)




3.5 Matrix exponential


3.5.1 Denition
Let A be a n × n square matrix. The matrix exponential is a n × n matrix which
is dened by analogy with the scalar exponential and its series as follows:
∞ ∞
X (At)k X (At)k
eAt = =I+ (3.20)
k! k!
k=0 k=1

This calculus involves an innity of terms and it is in general impossible to


compute it by hand except for some specic cases, for example if matrix A is
nilpotent.
A matrix A is nilpotent if there exists an integer k such that Ak = 0. The
smallest value of k is called the index of nilpotency (of the nilpotent matrix). In
this case the matrix exponential eAt can be computed directly from the series
expansion as the series terminates after a nite number of terms:

t2 tk−1
eAt = I + At + A2 + · · · + Ak−1 (3.21)
2! (k − 1)!

A necessary and sucient condition for a n × n square matrix A to be


nilpotent is that its characteristic polynomial det (sI − A) is equal to sn :

Ak = 0 ⇔ det (sI − A) = sn where k ≤ n (3.22)


3.5. Matrix exponential 91

We recall that the minimal polynomial πA (s) of a matrix A is the monic


polynomial (a monic polynomial is a polynomial in which the leading coecient
(the nonzero coecient of highest degree) is equal to 1) of least degree such
that πA (A) = 0. The minimal polynomial divides the characteristic polynomial
χA (s) := det (sI − A) of matrix A. Consequently its degree is lower or equal to
the order n of matrix A.
A matrix A is said to be cyclic if and only if its characteristic polynomial is
the same than its minimal polynomial.
Furthermore matrix A is diagonalizable if and only if its minimal
polynomial's roots are all of multiplicity one.
The previous result to compute eAt when A is nilpotent can be generalized
to the case where the minimal polynomial πA (s) of A reads (s − λ)k . Indeed
we get in this case:

πA (s) = (s − λ)k ⇒ (A − λI)k = 0 (3.23)

Thus matrix A − λI is nilpotent and we can write:

t2 tk−1
e(A−λI)t = I + (A − λI) t + (A − λI)2 + · · · + (A − λI)k−1 (3.24)
2! (k − 1)!

As soon as matrices A and λI commute the following relationship holds:

e(A−λI)t = e−λt eAt ⇒ eAt = eλt e(A−λI)t (3.25)

Thus as soon as πA (s) = (s − λ)k we nally get the following result:

eAt =
t2 tk−1
 
2
eλt
I + (A − λI) t + (A − λI) + · · · + (A − λI)k−1 (3.26)
2! (k − 1)!
 
0 1
Example 3.1. Let A = . The characteristic polynomial of A is:
0 0
 
s −1
det (sI − A) = det = s2 (3.27)
0 s

Consequently matrix A is nilpotent and eAt can be computed as follows:


   
0 1 0 0
A= ⇒ A2 =
0 0 0 0
 (3.28)
1 t
⇒ eAt = I + At =
0 1


92 Chapter 3. Analysis of Linear Time Invariant systems

3.5.2 Properties
The following properties hold 1 :

− Value at t = 0:
eAt t=0 = e0 = I (3.29)

− Derivation:
d At
e = AeAt = eAt A (3.30)
dt
− Integration: Z t
e At
=I+A eAτ dτ (3.31)
0

− In general:
e(A+B)t 6= eAt eBt 6= eBt eAt (3.32)

Nevertheless if matrices A and B commute (meaning that AB = BA)


then:
e(A+B)t = eAt eBt = eBt eAt (3.33)

As far as the product AA commutes we have:

eAt eAτ = eA(t+τ ) = eAτ eAt (3.34)

And thus setting τ to −t we get:


−1
eAt = e−At (3.35)

− Let λ(A) be the eigenvalues of matrix A. Then:

λ eAt = eλ(A)t (3.36)




− Let det (A) be the determinant of matrix A and tr (A) be the trace of
matrix A. Then:
det eAt = etr(A)t (3.37)


Example 3.2. Let's consider the following matrices A and B:


  
0 1

 A=
0 0



  (3.38)
1 0


 B=


0 0

It is clear that A et B do not commute. Indeed:


   
0 0 0 1
AB = 6= BA = (3.39)
0 0 0 0
1
https://en.wikipedia.org/wiki/Matrix_exponential
3.5. Matrix exponential 93

Consequently we expect that eAt eBt 6= eBt eAt . We will check it by using the
preceding denitions and properties:
 
1 t
e At
= (3.40)
0 1
And:

tk 0
P∞ tk
   
k P∞ (Bt)k 1+ 0
(Bt) = ⇒ eBt =I+ k=1 k! = k=1 k!
0 0 0 1
(3.41)
et
 
0
⇔ eBt =
0 1

It is clear that:
et t et tet
   
e e At Bt
= 6= e eBt At
= (3.42)
0 1 0 1

We can also easily check the following properties:


  
d At 0 1
dt e = AeAt = eAt A
=


 0t 0 

(3.43)
d Bt e 0
dt e = BeBt = eBt B =


0 0

3.5.3 Computation of eAt thanks to the diagonal form of A


We will assume in that section that matrix A is diagonalizable or equivalently
that matrix A has linearly independent eigenvectors; this means that for all
eigenvalues λi of A the rank of matrix λi I − A is equal to the size of A minus
the multiplicity of λi .
Assuming that matrix A is diagonalizable then there exists a similarity
transformation such that:
 
λ1
A = PΛP−1 where Λ =  .. (3.44)
.
 

λn

The change of basis matrix P, as well as its inverse P−1 , can be obtained as
follows:

− Let v i be the eigenvector of A corresponding to eigenvalue λi . As far as


the n×n matrix A is assumed to have n linearly independent eigenvectors
we can write: 
 Av 1 = λ1 v 1

.. (3.45)
 .
Av n = λn v n

94 Chapter 3. Analysis of Linear Time Invariant systems

− The preceding relationship can be written in a vector form as follows:


 
λ1
    .. (3.46)
A v1 . . . vn = v1 . . . vn  .


λn

− Identifying the preceding equation with AP = PΛ we nally get

(3.47)
 
P = v1 v2 · · · vn

− Furthermore let wi be the eigenvectors of matrix AT :

AT wj = λj wj ⇔ wTj A = λj wTj (3.48)

It can be seen that vectors wj et v i are orthogonal. Indeed:

λj wTj v i = wTj Av i = wTj λi v i ⇔ (λi − λj ) wTj v i = 0


(3.49)
⇒ wTj v i = 0 si j 6= i

Thus imposing wTi v i = 1 ∀i, the inverse of matrix P is obtained as follows:


 T 
w1
 wT 
 2 
wTi v i = 1 ∀i ⇒ P−1 =  .  (3.50)
 .. 
wTn

0 if j =

6 i
Indeed using wTj v i = we get:
1 if j = i
 T 
w1
 wT  
 2 
P−1 P =  .  v 1 v 2 · · · v n

 . .
T
 wnT
w1 v 1 wT1 v 2 · · · wT1 v n

 wT v wT v · · · wT2 v n 
 2 1 2 2
= . .. .. (3.51)

 . . . .


T T ·· · wTn v n
 wn v 1 wn v 2
1 0 ··· 0
 0 1 ··· 0 
= . . .. =I
 
 .. . . . 
0 0 ··· 1

Then, as soon as matrix A diagonalizable, eAt can be obtained thanks to


the following relationship :
n
X
eAt = PeΛt P−1 = v i wTi eλi t (3.52)
i=1
3.5. Matrix exponential 95

The preceding relationship is easily obtained by using the series development


of the exponential:
∞ k ∞ ∞
!
PΛtP−1
X PΛtP−1 X P (Λt)k P−1 X (Λt)k
e = = =P P−1 (3.53)
k! k! k!
k=0 k=0 k=0

As far as the diagonal (or modal) matrix Λ is diagonal we get:


  k 
λ1  λt 
. e 1

..

 Λk = 
 
⇒ eΛt =  .. (3.54)
.
   
λk 
 n λn t
e

 k
e = ∞ (Λt)
 Λt P
k=0 k!

Thus using the expression of P and P−1 :


 λt 
e 1
eAt = PeΛt P−1 = P  ..  −1
. P

eλ n t
 wT1 (3.55)
 
 λt
e 1
 wT
.

 
..  2
= v1 v2 · · · vn    ..
 
 .

e λn t

wTn
We nally get:
n
X n
X
eAt = v i eλi t wTi = v i wTi eλi t (3.56)
i=1 i=1
 
1 2
Example 3.3. Compute where A =
eAt .
0 −5
Le characteristic polynomial of A reads:
 
s − 1 −2
det (sI − A) = det = (s − 1)(s + 5) (3.57)
0 s+5
The two eigenvalues λ1 = 1 and λ2 = −5 of A are distinct. Since the size
of A is equal to the number of the distinct eigenvalues we conclude that matrix
A is diagonalizable.
 
v11
− Let v1 = be the eigenvector of A corresponding to λ1 = 1. We
v12
have:     
1 2 v11 v11
=1×
0 −5 v12 v12
v11 + 2v12 = v11 (3.58)

−5v12 = v12
⇒ v12 = 0
Thus the expression of eigenvector v1 is:
 
v11
v1 = (3.59)
0
96 Chapter 3. Analysis of Linear Time Invariant systems
 
v21
− Let v2 = be the eigenvector of A corresponding to λ2 = −5. We
v22
have:     
1 2 v21 v21
= −5 ×
0 −5 v22 v22
v21 + 2v22 = −5v21
⇔ (3.60)
−5v22 = −5v22
⇒ 6v21 + 2v22 = 0
⇔ v22 = −3v21
Thus the expression of eigenvector v2 is:
 
v21
v2 = (3.61)
−3v21
 
w11
− Let w1 = be the eigenvector of AT corresponding to λ1 = 1. We
w12
have:     
1 0 w11 w11
=1×
2 −5 w12 w12
w11 = w11
⇔ (3.62)
2w11 − 5w12 = w12
⇒ 2w11 − 6w12 = 0
⇔ w11 = 3w12
Thus the expression of eigenvector w1 is:
 
3w12
w1 = (3.63)
w12

It is clear that w1 and v2 are orthogonal:


 
v21
wT1 v 2 = (3.64)
 
3w12 w12 =0
−3v21
 
w21
− Let w2 = be the eigenvector of AT corresponding to λ2 = −5. We
w22
have:     
1 0 w21 w21
= −5 ×
2 −5 w22 w22
w21 = −5w21 (3.65)

2w21 − 5w22 = −5w22
⇒ w21 = 0
Thus the expression of eigenvector w2 is:
 
0
w2 = (3.66)
w22

It is clear that w2 and v1 are orthogonal:


 
v11
wT2 v 1 (3.67)
 
= 0 w22 =0
0
3.5. Matrix exponential 97

Finally v1 , v2 , w1 and w2 are chosen such that wT1 v1 = wT2 v2 = 1. We can


chose for example:
       
v11 1 3w12 1
v1 = = and w1 = = 1 (3.68)
0 0 w12 3

And:
− 31
       
v21 0 0
v2 = = and w2 = = (3.69)
−3v21 1 w22 1
Then applying Equation (3.52) we get:
eAt = ni=1 v i wTi eλi t
P
= v1 wT1eλ1 t + v 2 wT2 eλ2t
− 13

1 t 1
e−5t 0 1
   
= e 1 3 +
 0 1   1
1
(3.70)
1 3 0 −
= et + 3 e−5t
0 0
 t 1 t 1 −5t  0 1
e 3e − 3e
=
0 e−5t

We can check that eAt t=0 = I.


3.5.4 Computation of eAt thanks to the Laplace transform


Computation of eAt can be done thanks to the Laplace transform. Denoting by
L the Laplace transform and by L−1 the inverse Laplace transform we have the
following property which extends to the vector case a well-known result in the
scalar case:
h i
L eAt = (sI − A)−1 ⇔ eAt = L−1 (sI − A)−1 ∀ t ≥ 0 (3.71)
 

Matrix (sI − A)−1 is called the resolvent of matrix A. It can be computed


thanks to the Faddeev-Leverrier's method for example (see section 1.6).
The inverse Laplace transform is taken for each term of the resolvent of
matrix A. We recall that the inverse Laplace transform of a strictly proper
rational fraction F (s) (i.e. the degree of the denominator is strictly greater than
the degree of the denominator) can be obtained thanks to the Mellin-Fourier
integral.
The Mellin-Fourier integral reads:
X
g(t) = L−1 [F (s)] = Res F (s)est ∀t ≥ 0 (3.72)
 

poles of F (s)

The residue Res F (s)est shall be computed around each pole of F (s).
 

Assuming that λk is a pole of multiplicity nk then the residue of F (s) around


pole λk is given by:
dnk −1

1 nk
st st
(3.73)
 
Ress=λk F (s)e = n −1
(s − λk ) F (s)e
(nk − 1)! ds k
s=λk
98 Chapter 3. Analysis of Linear Time Invariant systems

Alternatively if resolvent of matrix A is decomposed as N(s)


Ψ(s) where degree
of polynomial matrix N(s) is strictly lower than degree of polynomial Ψ(s) =
nk then the use of Mellin-Fourier integral leads to the following
Q
k (s − λk )
expression of eAt :

(sI − A)−1 = N(s)


Ψ(s) =
Q N(s) n
k (s−λk )
k
dnk −1 N(s) st
(3.74)
⇒ e = k (nk −1)! dsnk −1 (s − λk )nk
At 1
P
Ψ(s) e s=λ
k

Example 3.4. Compute eAt where:


 
0 1
A= (3.75)
0 0

Here n = 2 and the Faddeev-Leverrier's method (see section 1.6) reads:



 F0 = I
d1 = tr (AF0 ) = tr (A) = 0 and F1 = AF0 − d1 I = A
(3.76)
d2 = 12 tr (AF1 ) = 12 tr A2 = 0

and det (sI − A) = s2 − d1 s − d2 = s2

Thus:
1 1
   
−1 1 1 s 1
(sI − A) = (F0 s + F1 ) = 2 = s s2
1 (3.77)
det (sI − A) s 0 s 0 s

Then we have to apply the Mellin-Fourier integral as well as the residue


theorem on each term of the resolvent matrix of A:

d1−1 1 st
L−1
1  1 st  1

s = Res s e s=0
= s
(1−1)! ds1−1 s e = est s=0 = 1
(3.78)

s=0
d2−1 2 1 st
L−1 s12 = Res s12 est s=0 = (2−1)!
1

= test s=0 = t
   
ds2−1
s s2
e
s=0

We nally get:

1 1
      
0 1 −1 1 t
exp t =L s s2
1 = (3.79)
0 0 0 s 0 1

Alternatively resolvent of matrix A can be decomposed as N(s)


Ψ(s) . Indeed we
have seen that:
 
−1 1 s 1
(sI − A) = 2 (3.80)
s 0 s
3.5. Matrix exponential 99

The use of Mellin-Fourier integral leads to the following expression of eAt :


(sI − A)−1 = N(s)
Ψ(s)
dnk −1
⇒ eAt = 1
(s − λk )nk N(s) st
P
k (nk −1)! dsnk −1 Ψ(s) e
  s=λk
1 d2−1 2 1 s 1
= (2−1)! ds2−1 s s2 est
0 s s=0
 
d s 1 st

= ds e

0 s s=0
   (3.81)
1 0 st
s 1 st

= e + t e
0 1 0 s
  s=0  s=0
1 0 0 1
= + t
 0 1  0 0
1 t
=
0 1


Example 3.5. Compute eAt where:


 
1 1
A= (3.82)
0 0
We have:
 −1  
−1 s − 1 −1 1 s 1
(sI − A) = = (3.83)
0 s s(s − 1) 0 s−1

Thus (sI − A)−1 = N(s)Ψ(s) where Ψ(s) = s(s − 1) has two roots, λ1 = 0 and
λ2 = 1, each of multiplicity 1: n1 = n2 = 1.
The use of Mellin-Fourier integral leads to the following expression of eAt :
(sI − A)−1 = N(s)
Ψ(s)
dnk −1
⇒ eAt = 1
(s − λk )nk N(s) st
P
k (nk −1)! dsnk −1 Ψ(s) e
  s=λk
1 d1−1 s 1
s 1

= (1−1)! ds1−1 s(s−1)
est
0 s−1 s=0 

1 d 1−1 1 s 1 st

+ (1−1)! ds1−1 (s − 1) s(s−1) e
  
0 s−1
 s=1 (3.84)
1 s 1 st
1 s 1
= s−1 e + s est
0 s−1 s=0
0 s−1 s=1
   
0 −1 1 1 t
= + e
 0t 1t  0 0
e e −1
=
0 1


Example 3.6. Compute eAt where:


 
1 2
A= (3.85)
0 −5
100 Chapter 3. Analysis of Linear Time Invariant systems

Here n = 2 and the Faddeev-Leverrier's method (see section 1.6) reads:




 F0 = I  
5 2

d1 = tr (AF0 ) = −4 and F1 = AF0 − d1 I =


0 −1
  (3.86)
5 0


 d2 = 12 tr (AF1 ) = 21 tr =5


0 5
and det (sI − A) = s2 − d1 s − d2 = s2 + 4s − 5 = (s − 1)(s + 5)
Thus:
 
s+5 2
(sI − A)−1 = 1
det(sI−A)
1
(F0 s + F1 ) = (s−1)(s+5)
0 s−1
"
1 2
# (3.87)
−1 s−1 (s−1)(s+5)
⇔ (sI − A) = 1
0 s+5

Then we have to apply the Mellin-Fourier integral as well as the residue


theorem on each term of the resolvent matrix of A:
 h i
 L−1 1
= et
h s−1 i



L−1 s+51
= e−5t (3.88)
 h i
 −1
 2 1 t 1 −5t
 1 t 1 −5t
 L (s−1)(s+5) = 2 6e − 6e = 3e − 3e
We nally get:
" #
   1 2
1 2 −1 s−1 (s−1)(s+5)
exp t =L 1
0 −5 0
 t 1 t 1 −5t s+5 (3.89)
e 3e − 3e
=
0 e−5t
Alternatively resolvent of matrix A can be decomposed as N(s)
Ψ(s) . Indeed we
have seen that:
 
−1 1 s+5 2
(sI − A) = (3.90)
(s − 1)(s + 5) 0 s−1
The use of Mellin-Fourier integral leads to the following expression of eAt :
(sI − A)−1 = N(s)
Ψ(s)
dnk −1
⇒ eAt = 1
(s − λk )nk N(s) st
P
k (nk −1)! dsnk −1 Ψ(s) e
  s=λ k
1 s+5 2 st

= (s − 1) (s−1)(s+5) e
0 s−1
 s=1
1 s + 5 2
+ (s + 5) (s−1)(s+5) est
0 s−1 s=−5 (3.91)
1 1
   
1 3 st
0 − 3 st

= e + e
0 0 s=1
0 1 s=−5
0 − 13 e−5t
 t 1 t   
e 3e
= + −5t
 0t 10 t 1 −5t0  e
e 3e − 3e
=
0 e−5t

3.6. Stability 101

Example 3.7. Compute eAt where:


 
2 −1 0
A= 0 1 0  (3.92)
1 −1 1

From the Faddeev-Leverrier's method (see section 1.6) we get:


−1
 1

s−2 (s−1)(s−2) 0
(sI − A)−1 =  0 1
0  (3.93)
 
s−1
1 −1 1
(s−1)(s−2) (s−1)(s−2) s−1

Then we have to apply the Mellin-Fourier integral as well as the residue


theorem on each term of the resolvent matrix of A:
 h i
 L −1 1
= e2t
h s−2 i



L−1 s−1 1
= et (3.94)
 h i
 L−1 1
 2t t
(s−1)(s−2) = e − e

We nally get:
e2t et − e2t 0
 

eAt = 0 et 0  (3.95)
e − e e − e2t et
2t t t

3.6 Stability
There are two dierent denitions of stability: internal stability and input-
output stability:
− A linear time-invariant system is internally stable if its the zero-input state
eAt x0 moves towards zero for any initial state x0 ;
− A linear time-invariant system is input-output stable if its zero-state
output is bounded for all bounded inputs; this type of stability is also
called Bounded-Input Bounded-Output (BIBO) stability.
We have seen in (3.13) that the output response y(t) of a linear time-invariant
system is the following:
Z t
At
y(t) = Ce x0 + CeA(t−τ ) Bu(τ )dτ + Du(t) (3.96)
0

Assuming that matrix A is diagonalizable, we have seen in (3.52) that eAt


can be obtained thanks to the following relationship :
n
X
−1
eAt
= Pe PΛt
= v i wTi eλi t (3.97)
i=1

Thus;
102 Chapter 3. Analysis of Linear Time Invariant systems

− The zero-input state, which is obtained when u(t) = 0, has the following
expression:
Xn
At
x(t) = e x0 = v i wTi eλi t x0 (3.98)
i=1

Consequently the zero-input state moves towards zero for any initial state
x0 as soon as all the eigenvalues λi of matrix A are situated in the open
left-half plane (they have strictly negative real part). This means that a
linear time-invariant system is internally stable when all the eigenvalues
λi of matrix A are situated in the open left-half plane (i.e. they have
strictly negative real part).
The result which have been shown assuming that matrix A is
diagonalizable can be extended to the general case where matrix A is
not diagonalizable; in that situation this is the Jordan form of A which
leads to the same result concerning internal stability.

− The zero-state output, which is obtained when x0 = 0, has the following


expression:
Rt
y(t) = 0 CeA(t−τ ) Bu(τ)dτ + Du(t)
(3.99)
= CeAt B + Dδ(t) ∗ u(t)

It can be shown that the zero-state output is bounded if and only all the
poles of each term of the transfer function F(s) are situated in the open
left-half plane (i.e. they have strictly negative real part):

F(s) = L CeAt B + Dδ(t) = C (sI − A)−1 B + D (3.100)


 

The two types of stability are related. Indeed:

− If a linear time invariant system is internally stable it is also input-output


(or BIBO) stable because all the poles of the transfer function F(s) are
eigenvalues of matrix A;

− Nevertheless the converse is not true since matrix A could have unstable
hidden modes which do not appear in the poles of F(s). Indeed there may
be pole-zero cancellation while computing F(s). Thus a system may be
BIBO stable even when some eigenvalues of A do not have negative real
part.

Example 3.8. Let's consider the following realization:


 
  −1 10 −2
A B
= 0 1 0  (3.101)
C D
−2 3 −2

Matrix A has a stable mode, which is −1, and an unstable mode, which is
1. Thus the system is not internally stable.
3.7. Controllability 103

When computing the transfer function of the system we can observe a pole
/ zero cancellation of the unstable mode:

F (s) = C (sI − A)−1 B + D


 1 10   
  s+1 s 2 −1 −2
= −2 3 −2
0 1
s−1 0 (3.102)
4
= s+1 −2
−2s+2
= s+1

The pole of the transfer function F (s) is −1. Thus the system is BIBO stable
but not internally stable.


3.7 Controllability
3.7.1 Denition
Let's consider the state trajectory x(t) of a linear time-invariant system:
Z t
At
x(t) = e x0 + eA(t−τ ) Bu(τ )dτ (3.103)
0

Where A is a n × n real matrix and B is a n × m real matrix.


Controllability answers the question whether it is possible to control the
state vector x(t) through an appropriate choice of the input signal u(t).
More precisely an initial state x0 is said controllable if and only if there
exists an input signal u(t) which is able to move the state vector x(t) from an
initial state x(0) = x0 at t = 0 to the origin x(tf ) = 0 in a nite time tf . We
said that a system is controllable when any arbitrary initial state x0 ∈ Rn is
controllable 2 .
If the system is controllable then the input signal u(t) which is able to move
the state vector x(t) from an initial state x(0) = x0 at t = 0 to the origin
x(tf ) = 0 in a nite time tf reads3 :

T (t −t)
u(t) = −BT eA f
Wc−1 (tf )eAtf x0 (3.104)

Where Wc (tf ) is a symmetric matrix dened as follows:

Z tf

Wc (tf ) = eAτ BBT eA dτ (3.105)
0

2
https://en.wikibooks.org/wiki/Control_Systems/Controllability_and_Observability
3
S. Skogestad and I. Postlethwaite: Multivariable Feedback Control Analysis and design,
Wiley, 1996; 2005
104 Chapter 3. Analysis of Linear Time Invariant systems

Indeed when x(tf ) is computed with this control we get x(tf ) = 0:

x(tf ) = eAtf x0 + 0 f eA(tf −τ ) Bu(τ )dτ


Rt

= eAtf x0 − 0 f eA(tf −τ ) BBT eA 


Rt T (t −τ )
f Wc−1 (tf )eAtf x0 dτ
0 T
= eAtf x0 + tf eAv BBT eA v dv Wc−1 (tf )eAtf x0
R
R  (3.106)
t T
= eAtf x0 − 0 f eAτ BBT eA τ dτ Wc−1 (tf )eAtf x0
= eAtf x0 − Wc (tf )Wc−1 (tf )eAtf x0
=0

More generally one can verify that a particular input which achieves x(tf ) =
xf is given by3 :

T (t −t)
u(t) = −BT eA Wc−1 (tf ) eAtf x0 − xf (3.107)

f

Consequently a system is controllable if and only if symmetric matrix Wc (tf )


is nonsingular for any tf > 0. Furthermore Wc (t) is the solution of the following
dierential equation:

d
AWc (t) + Wc (t)AT + BBT = Wc (t) (3.108)
dt

If all eigenvalues of matrix A have negative real parts (A is said to be


Hurwitz ) then Wc (t) tends towards a constant matrix as t → ∞. The
controllability Gramian Wc is the following positive denite symmetric
matrix:
Z ∞
T
Wc = eAτ BBT eA τ dτ (3.109)
0

It can be shown that Wc is the unique solution of the following Lyapunov


equation:

AWc + Wc AT + BBT = 0 (3.110)

3.7.2 Use of the diagonal form: Gilbert's criteria


Assuming that all eigenvalues are distinct, controllability property can be readily
analyzed by inspecting the null rows of the input matrix B as soon as we get
the modal (or diagonal) form of the state space representation.
Indeed we have seen in the the chapter dedicated to the state-space
representation that for a single input system matrices A and B of the state
equation ẋ(t) = Ax(t) + Bu(t) read as follows assuming that matrix A has n
3.7. Controllability 105

independent eigenvectors :
  
 λ1 0 0
.. 


. 
 

  0 λ2


 A = 
.. ..

. . 0 

  

 


 0 · · · 0 λn
(3.111)
  
b1




b2

  

B = ..

  
.

  

  

bn

Thus in the time domain the diagonal form of the state space representation
ẋ(t) = Ax(t) + Bu(t) reads:


 ẋ1 (t) = λ1 x1 (t) + b1 u(t)
 ẋ2 (t) = λ2 x2 (t) + b2 u(t)

.. (3.112)


 .
ẋn (t) = λn xn (t) + bn u(t)

Consequently if at least one of the bi 's coecients is zero then the state
component xi (t) is independent of the input signal u(t) and the state is
uncontrollable.
For multi inputs system with m inputs then matrix B has m columns and
the preceding analysis is readily extended to each column of matrix B assuming
that the state space representation is the diagonal form.
Gilbert's controllability criteria (1963) states that a multi inputs system
with distinct eigenvalues is controllable if and only if each row of control matrix
B of the diagonal realization (all eigenvalues are distinct) has at least one non
zero element.

3.7.3 Popov-Belevitch-Hautus (PBH) test


There exists another test for controllability which is called the Popov-Belevitch-
Hautus (PBH) test.
Popov-Belevitch-Hautus (PBH) test indicates that  a linear system is
controllable when the rank of matrix A − λi I B is equal to n for all
eigenvalues {λi } of matrix A.
A linear system is stabilizable when the rank of matrix A − λi I B is
 

equal to n for all unstable eigenvalues {λi } of matrix A.


Eigenvalues λi for which rank of matrix A − λi I B is not equal to n


are said uncontrollable.


Example 3.9. Let's consider the following realization:
 
  −1 10 −2
A B
= 0 1 0  (3.113)
C D
−2 3 −2
106 Chapter 3. Analysis of Linear Time Invariant systems

Matrix A has two modes, λ1 = −1 and λ2 = 1.


Let's apply the PBH test for λ1 = −1:
 
0 10 −2
(3.114)
 
rank A − λ1 I B = rank =2
0 2 0

We conclude that the mode λ1 = −1 is controllable.


Let's apply the PBH test for λ2 = 1:
 
−2 10 −2
(3.115)
 
rank A − λ2 I B = rank = 1 6= 2
0 0 0

We conclude that the mode λ2 = 1 is not controllable.




3.7.4 Kalman's controllability rank condition


Let Qc be the controllability matrix. Matrix Qc is dened as follows:

Qc = B AB · · · An−1 B (3.116)
 

It can be shown that a linear system is controllable if and only if the rank of
the controllability matrix Qc is equal to n. This is the Kalman's controllability
rank condition.
The sketch of the demonstration is the following:

− First we recall that the expression of the state vector x(t) at time t = tf
which solves the state equation (3.1) is:
Z tf
x(tf ) = e Atf
x0 + eA(tf −τ ) Bu(τ )dτ (3.117)
0

As far as x0 , tf and x(tf ) are assumed to be known we rewrite the


preceding equation as follows:
Z tf
−Atf
e x(tf ) − x0 = e−Aτ Bu(τ )dτ (3.118)
0

− To continue the sketch of the proof we need the CayleyHamilton theorem.


Let χA (s) be the characteristic polynomial of the n × n matrix A. We
write the characteristic polynomial χA (s) of matrix A as follows:

χA (s) := det(sI − A) = sn + an−1 sn−1 + · · · + a1 s + a0 (3.119)

The CayleyHamilton theorem states that substituting matrix A for s in


the characteristic polynomial χA (s) of matrix A results in the zero matrix
4
:
χA (A) = 0 = An + an−1 An−1 + · · · + a1 A + a0 I (3.120)
4
https://en.wikipedia.org/wiki/CayleyHamilton_theorem
3.7. Controllability 107

From the preceding equation it is clear that we can express An as a


function of Ak where 0 ≤ k ≤ n − 1:
An = −an−1 An−1 − · · · − a1 A − a0 I (3.121)
More generally this relationship allows to replace a term of the form Am
where m ≥ n by a linear combination of Ak where 0 ≤ k ≤ n − 1. When
we use this property to replace the terms Am where m ≥ n in the series
expansion of eAt we get the following relationship:

(At)k Pn−1 Ak tk P∞ Ak tk
 eAt = ∞
P
k=0 k! = k=0 k! +

k=n k!
An = −an−1 An−1 − · · · − a1 A − a0 I (3.122)
 Am = Pn−1 α Ai ∀m ≥ n

i=0 i

Consequently the series expansion of eAt can be cut so that no power of


matrix A greater that n appears in the series expansion:
n−1
X
eAt = γk (t)Ak (3.123)
k=0

where γk (t) are functions of time t. As far as det(sI − A) is equal to


zero when s = λi is an eigenvalue of matrix A the preceding matrix
relationship is also be obtained for all the eigenvalues of matrix A. We
obtain the following relationship which is satised by the functions γk (t):
n−1
X
eλi t = γk (t)λki (3.124)
k=0

− Using (3.123) and the fact that functions γk (t) are scalar functions (3.118)
is rewritten as follows:
Rt
e−Atf x(tf ) − x0 = 0 f e−Aτ Bu(τ )dτ
R t Pn−1
= 0 f k=0 γ (−τ )Ak Bu(τ )dτ
Pn−1 R tf k (3.125)
= k=0 0 γk (−τ )Ak Bu(τ )dτ
Pn−1 k R tf
= k=0 A B 0 γk (−τ )u(τ )dτ

Now let's introduce vector w(tf ) whose n components


w0 (tf ), w1 (tf ), · · · , wn−1 (tf ) are dened as follows:
Z tf
wk (tf ) = γk (−τ )u(τ )dτ ∀ 0 ≤ k ≤ n − 1 (3.126)
0

Thus Equation (3.125) reads:


R tf
e−Atf x(tf ) − x0 = n−1 k
P
k=0 A B 0 wk (tf )  
w0 (tf )
 w1 (tf ) 
B AB · · · An−1 B (3.127)

= ..
 
.
 
 
wn−1 (tf )
= Qc w(tf )
108 Chapter 3. Analysis of Linear Time Invariant systems

In order to be able to compute the expression of vector w(tf ) and then


solving the integral equation in the input signal u(t), the controllability
matrix Qo shall be invertible; consequently the rank of the controllability
matrix Qc shall be equal to n. Thus we retrieve the Kalman's
controllability rank condition.
Example 3.10. Let's consider the following realization:
 
  −1 10 −2
A B
= 0 1 0  (3.128)
C D
−2 3 −2
The controllability matrix Qc reads:
 
Qc =  B AB   
−2 −1 10 −2
=
 0 0 1 0 (3.129)
−2 2
=
0 0

Consequently rank (Qc ) = 1 6= 2. We conclude that the system in not


controllable.


3.7.5 Uncontrollable mode


Following Bélanger5 a state xc̄ 6= 0 is uncontrollable if the zero-state output of
the system (i.e. the system's response to the input signal u(t) 6= 0 when the
initial state x0 is zero) is orthogonal to xc̄ for all nal time tf > 0 and all input
signal u(t). An uncontrollable state xc̄ 6= 0 satises the following equation:

xTc̄ B AB · · · An−1 B = 0 (3.130)


 

Equivalently the pair (A, B) is uncontrollable if and only if there exists an


eigenvector wi of AT such that wTi B = 0. If wTi B = 0 then the mode λi (i.e.
the eigenvalue) corresponding to wi is called an uncontrollable mode.
Indeed if wi is an eigenvector of matrix AT corresponding to the mode (i.e.
the eigenvalue) λi then AT wi = λi wi ⇔ wTi A = λi wTi . Specializing xc̄ to wi
Equation (3.130) reads:

0 = wTi  B AB · · · An−1 B 
 

= wTi B λi B · · · λn−1
i B (3.131)
T n−1

= w i B 1 λi · · · λi

Coupling wTi A = λi wTi and wTi B = 0 leads to the Popov-Belevitch-Hautus


(PBH) test for controllability:
 T
wi A = λi wTi
⇔ wTi A − λi I B = 0 (3.132)
 
T
wi B = 0
5
P. Bélanger, Control EngineeControl Engineering: A Modern Approach, P. Bélanger,
Oxford University Press, 2005
3.7. Controllability 109

Example 3.11. Let's consider the following realization:


 
  −1 10 −2
A B
= 0 1 0  (3.133)
C D
−2 3 −2

Matrix A has two modes, λ1 = −1 and λ2 = 1. We have seen that the mode
λ2 = 1 is not controllable. We will check that there no input signal u(t) which
is able to move towards zero an initial state x0 which is set to the value of an
eigenvector of AT corresponding to the uncontrollable mode λ2 = 1.
Let w2 be an eigenvector of AT corresponding to the uncontrollable mode
λ2 = 1:  
−1 0
AT w 2 = λ2 w 2 ⇔ w2 = w2 (3.134)
10 1
 
w21
We expand w2 as to get:
w22
     
−1 0 w21 w21 −w21 = w21
= ⇒ (3.135)
10 1 w22 w22 10w21 + w22 = w22

We nally get:  
0
w21 = 0 ⇒ w2 = (3.136)
w22
Now let's express the state vector x(t) assuming that the initial state x0 is
set to w2 . We have:
Rt
x(t) = eAt x0 + 0 eA(t−τ ) Bu(τ )dτ
(3.137)
 
At 0 R t A(t−τ ) −2
=e + 0e u(τ )dτ
w22 0
Where: h i
eAt = L−1 (sI − A)−1
 −1 !
s + 1 −10
= L−1
0 s−1
  
−1 1 s−1 10
=L (s+1)(s−1) (3.138)
" 0 s+1
#!
1 10
= L−1 s+1 (s+1)(s−1)
1
0 s−1
 −t t 5e−t

e 5e −
=
0 et
Consequently state vector x(t) reads:
e−t 5et − 5e−t
  
0
x(t) =
0 et w22
Z t  −(t−τ )
5e(t−τ ) − 5e−(t−τ )
 
e −2
+ u(τ )dτ (3.139)
0 0 e(t−τ ) 0
110 Chapter 3. Analysis of Linear Time Invariant systems

That is:
Z t
5et − 5e−t −2e−(t−τ )
  
x(t) = w22 + u(τ )dτ (3.140)
et 0 0
It is clear that for this specic initial state the input vector u(t) will not act
on the second component of x(t) whatever its expression. Consequently it will
not be possible to nd a control u(t) which moves towards zero the initial state
vector x0 = w2 : this state is uncontrollable and the system is said uncontrollable.


3.7.6 Stabilizability
A linear system is stabilizable if all unstable modes are controllable or
equivalently if all uncontrollable modes are stable.

3.8 Observability
3.8.1 Denition
Let's consider the output response y(t) of a linear time-invariant system:
Z t
At
y(t) = Ce x0 + CeA(t−τ ) Bu(τ )dτ + Du(t) (3.141)
0

Let's dene vector ỹ(t) as follows:


Z t
ỹ(t) = y(t) − CeA(t−τ ) Bu(τ )dτ − Du(t) (3.142)
0

Thus we get:
CeAt x0 = ỹ(t) (3.143)
Observability answers the question whether it is possible to determine the
initial state x0 through the observation of ỹ(t), that is from the output signal
y(t) and the knowledge of the input signal u(t).
More precisely an initial state x0 is observable if and only if the initial
state can be determined from ỹ(t) which is observed through the time interval
0 ≤ t ≤ tf , that is from the knowledge of the output signal y(t) and the input
signal u(t) that are observed through the time interval 0 ≤ t ≤ tf . A system is
said to be observable when any arbitrary initial state x0 ∈ Rn is observable.
If the system is observable then the value x0 of the initial state can be
determined from signal ỹ(t) that has been observed through the time interval
0 ≤ t ≤ tf as follows:
Z tf
T
x0 = Wo−1 (tf ) eA τ CT ỹ(τ )dτ (3.144)
0

Where Wo (tf ) is a symmetric matrix dened as follows:


Z tf
T
Wo (tf ) = eA τ CT CeAτ dτ (3.145)
0
3.8. Observability 111

Indeed from CeAt x0 = ỹ(t) we get:


CeAt x0 = ỹ(t)
T T
⇒ eA t CT CeAt x0 = eA t CT ỹ(t)
R tf AT τ T Aτ Rt T
⇒ 0 e C Ce dτ x0 = 0 f eA τ CT ỹ(τ )dτ (3.146)
R tf AT τ T
⇔ Wo (tf )x0 = 0 e C ỹ(τ )dτ
−1
R tf AT τ T
⇔ x0 = Wo (tf ) 0 e C ỹ(τ )dτ
Consequently a system is observable if and only if symmetric matrix Wo (tf )
is nonsingular for any tf > 0. Furthermore Wo (t) is the solution of the following
dierential equation:
d
AT Wo (t) + Wo (t)A + CT C = Wo (t) (3.147)
dt
If all eigenvalues of matrix A have negative real parts (A is said to be
Hurwitz ) then Wo (t) tends towards a constant matrix as t → ∞. The
observability Gramian Wo is the following positive denite symmetric matrix:
Z ∞
T
Wo = eA τ CT CeAτ dτ (3.148)
0
It can be shown that Wo is the unique solution of the following Lyapunov
equation:
AT Wo + Wo A + CT C = 0 (3.149)

3.8.2 Use of the diagonal form: Gilbert's criteria


Assuming that all eigenvalues are distinct, observability property can be readily
analyzed by inspecting the null columns of the output matrix C as soon as we
get the modal (or diagonal) form of the state space representation.
Indeed we have seen in the the chapter dedicated to the state-space
representation that for a single output system matrix C of the output
equation y(t) = Cx(t) + Du(t) read as follows assuming that matrix A has n
independent eigenvectors :
(3.150)
 
A = c1 c2 · · · cn
Thus in the time domain the diagonal form of the state space representation
y(t) = Cx(t) + Du(t) reads:
y(t) = c1 x1 (t) + c2 x2 (t) + · · · + cn xn (t) + Du(t) (3.151)
Consequently if at least one of the ci 's coecients is zero then the output
signal y(t) is independent of the state component xi (t) and the state is
unobservable.
For multi outputs system with p outputs then matrix C has p rows and the
preceding analysis is readily extended to each row of matrix C assuming that
the state space representation is the diagonal form.
Gilbert's observability criteria (1963) states that a multi outputs system with
distinct eigenvalues is observable if and only if each column of output matrix
C of the diagonal realization (all eigenvalues are distinct) has at least one non
zero element.
112 Chapter 3. Analysis of Linear Time Invariant systems

3.8.3 Popov-Belevitch-Hautus (PBH) test


There exists another test for observability which is called the Popov-Belevitch-
Hautus (PBH) test.
Popov-Belevitch-Hautus (PBH) test  indicates that a linear system is
A − λi I
observable when the rank of matrix is equal to n for all
C
eigenvalues {λi } of matrix A.
 
A − λi I
A linear system is detectable when the rank of matrix is equal
C
to n for all unstable eigenvalues {λi } of matrix A.
 
A − λi I
Eigenvalues λi for which rank of matrix is not equal to n are
C
said unobservable.
If {λ1 , · · · , λq } is the set of observables modes then it can be shown that
(s − λ1 ) · · · (s − λq ) is an annihilating polynomial of CAi :

(s − λ1 ) · · · (s − λq ) = sq + aq−1 sq−1 + · · · + a1 s + a0
(3.152)
⇒ CAq + aq−1 CAq−1 + · · · + a1 CA + a0 C = 0

Then we can use relationship y = Cx + Du to compute y (q) + aq−1 y (q−1) +


· · · + a1 ẏ + a0 y and nally obtain the input-output relationship between output
vector y and input vector u.

Example 3.12. Let's consider the following realization:


 
  −1 0 −2
A B
=  10 1 3  (3.153)
C D
−2 0 −2

Matrix A has two modes, λ1 = −1 and λ2 = 1.


Let's apply the PBH test for λ1 = −1:
 
  0 0
A − λ1 I
rank = rank  10 2  = 2 (3.154)
C
−2 0

We conclude that the mode λ1 = −1 is observable.


Let's apply the PBH test for λ2 = 1:
 
  −2 0
A − λ2 I
rank = rank  10 0  = 1 6= 2 (3.155)
C
−2 0

We conclude that the mode λ2 = 1 is not observable.



3.8. Observability 113

3.8.4 Kalman's observability rank condition


Let Qo be the observability matrix. Matrix Qo is dened as follows:
 
C
 CA 
Qo =  .. (3.156)
 
.

 
CAn−1

It can be shown that a linear system is observable if and only if the rank of
the observability matrix Qo is equal to n. This is the Kalman's observability
rank condition.
The sketch of the demonstration is the following:

− First we recall that the expression of the output vector y(t) at time t with
respect to the state vector x(t) is:

y(t) = Cx(t) + Du(t) (3.157)

where x(t) solves the state equation (3.1):


Z t
x(t) = eAt x0 + eA(t−τ ) Bu(τ )dτ (3.158)
0

Thus:
Z t
At
y(t) = Ce x0 + C eA(t−τ ) Bu(τ )dτ + Du(t) (3.159)
0

As far as y(t), t and u(t) are assumed to be known we rewrite the preceding
equation as follows:
Z t
y(t) − C eA(t−τ ) Bu(τ )dτ − Du(t) = CeAt x0 (3.160)
0

− To continue the sketch of the proof we need the CayleyHamilton theorem.


As shown in (3.123) this theorem indicates that eAt can be written as
follows:
n−1
X
eAt = γk (t)Ak (3.161)
k=0

where γk (t) are functions of time t.

− Using (3.123) and the fact that functions γk (t) are scalar functions CeAt x0
reads: Pn−1
CeAt x0 = C k=0 γk (t)Ak x0
Pn−1
=  k=0 Cγk (t)Ak x0 (3.162)
Pn−1 k x
= γ
k=0 k (t)CA 0
114 Chapter 3. Analysis of Linear Time Invariant systems

Now let's sample the time interval 0 ≤ t ≤ tf into n values of time,


t1 = 0, t2 , · · · , tn−1 , tn = tf which are situated inside the time interval
0 ≤ t ≤ tf . Using (3.160) for each value ti of the time we get:
Rt
y(t1 ) − C 0 1 eA(t1 −τ ) Bu(τ )dτ − Du(t1 )
 
Rt
 y(t2 ) − C 0 2 eA(t2 −τ ) Bu(τ )dτ − Du(t2 ) 
..
 
.
 
 
R tn A(t −τ )
y(tn ) − C 0 e n Bu(τ )dτ − Du(tn )
  
γ0 (t1 ) γ1 (t1 ) · · · γn−1 (t1 ) C
 γ0 (t2 ) γ1 (t2 ) · · · γn−1 (t2 )  CA 
= .. .. .. .. ..  x0 (3.163)
  
. . . . .

  
γ0 (tn ) γ1 (tn ) · · · γn−1 (tn ) CAn−1

That is:
Rt
y(t1 ) − C 0 1 eA(t1 −τ ) Bu(τ )dτ − Du(t1 )
 
Rt
 y(t2 ) − C 0 2 eA(t2 −τ ) Bu(τ )dτ − Du(t2 ) 
..  = VQo x0 (3.164)
 
.

 
R tn A(t −τ )
y(tn ) − C 0 e n Bu(τ )dτ − Du(tn )

Where:  
γ0 (t1 ) γ1 (t1 ) · · · γn−1 (t1 )
 γ0 (t2 ) γ1 (t2 ) · · · γn−1 (t2 ) 
V= .. .. .. .. (3.165)
 
. . . .

 
γ0 (tn ) γ1 (tn ) · · · γn−1 (tn )

In order to be able to compute the expression of vector x0 from (3.164)


and assuming that matrix V is invertible (which is always the case when
all the eigenvalues of matrix A are distinct), the observability matrix Qo
shall be invertible; consequently the rank of the observability matrix Qo
shall be equal to n. Thus we retrieve the Kalman's observability rank
condition.
Example 3.13. Let's consider the following realization:
 
  −1 0 −2
A B
=  10 1 3  (3.166)
C D
−2 0 −2
The observability matrix Qo reads:
 
C
Qo =
 CA   
−2  0
(3.167)

=   −1 0 
−2 0
  10 1
−2 0
=
2 0
3.9. Interpretation of the diagonal (or modal) decomposition 115

Consequently rank (Qo ) = 1 6= 2. We conclude that the system in not


observable.


3.8.5 Unobservable mode


Following Bélanger5 a state xō 6= 0 is said to be unobservable if the zero-input
response of the system (i.e. the system's response to the initial condition x(0) =
x0 6= 0 when the input signal u(t) is zero) with x(0) = xō is zero ∀ t ≥ 0. An
unobservable state xō 6= 0 satises the following equation:
 
C
 CA 
..  xō = 0 (3.168)
 
.

 
CAn−1

Equivalently the pair (A, C) is unobservable if and only if there exists an


eigenvector v i of matrix A such that Cv i = 0. If Cv i = 0 then the mode λi (i.e.
the eigenvalue) corresponding to v i is called an unobservable mode.
Indeed if v i is an eigenvector of matrix A corresponding to the mode (i.e.
the eigenvalue) λi then Av i = λi v i . Specializing xō to v i Equation (3.168) reads:
     
C C 1
 CA   Cλi   λi 
..  vi =  ..  v i =  ..  Cv i = 0 (3.169)
     
. . . 

    
CAn−1 Cλn−1
i λn−1
i

Coupling Av i = λi v i and Cv i = 0 leads to the Popov-Belevitch-Hautus


(PBH) test for observability:
  
Av i = λi v i A − λi I
⇔ vi = 0 (3.170)
Cv i = 0 C

3.8.6 Detectability
A linear system is detectable if all unstable modes are observable or equivalently
if all unobservable modes are stable.

3.9 Interpretation of the diagonal (or modal)


decomposition
When the state matrix A is diagonalizable we have seen in (3.56) that eAt reads
as follows where v i is a right eigenvector corresponding to eigenvalue λi and wi
is a left eigenvector corresponding to the same eigenvalue λi :
n
X
eAt = v i wTi eλi t (3.171)
i=1
116 Chapter 3. Analysis of Linear Time Invariant systems

On the other hand we know from (3.13) that the output response of the
system can be expressed as follows:
Z t
At
y(t) = Ce x(0) + CeA(t−τ ) Bu(τ )dτ + Du(t) (3.172)
0

Gathering the two previous results leads to the following expression of the
output vector y(t) where it is worth noticing that wTi x(0) is a scalar:

n
X n
X Z t
λi t
wTi x(0) eλi (t−τ ) wTi Bu(τ )dτ

y(t) = Cv i e + Cv i
i=1 i=1 0

+ Du(t) (3.173)

The product Cv i is called the direction in the output space associated with
eigenvalue λi . From the preceding equation it is clear that if Cv i = 0 then any
motion in the direction v i cannot be observed in the output y(t) and we say
that eigenvalue λi is unobservable.
The product wTi B is called the direction in the input space associated with
eigenvalue λi . From the preceding equation we cannotice that if wTi B = 0 the
control input u(t) cannot participate to the motion in the direction v i and we
say that eigenvalue λi is uncontrollable.
As a consequence the coupling between inputs, states and outputs is set by
the eigenvectors v i and wTi . It can be seen that those vectors also inuence the
numerator of the transfer function F(s) which reads:

n
Cv i wTi B
F(s) = C (sI − A)−1 B + D =
X
+D (3.174)
s − λi
i=1

Indeed let Λ be the diagonal form of the diagonalizable matrix A:


 
λ1
.. (3.175)
Λ= .
 

λn

We have seen that the change of basis matrix P as well as its inverse P−1
have the following expression:
  

 P = v1 v 2 · · · v n
wT1




 wT
Λ = P−1 AP where (3.176)

−1 =  2
P  ..

 .

 

 

wTn

Using the fact that (XY)−1 = Y−1 X−1 for any two inversible square
3.9. Interpretation of the diagonal (or modal) decomposition 117

Figure 3.1: Modal decomposition of a transfer function

matrices the transfer function F(s) reads:

F(s) = C (sI − A)−1 B + D


−1
= C P sI − P−1 AP P−1

B+D
= CP (sI − Λ)−1 P−1 B + D
−1
= C P sI − P−1 AP P−1

B+D
−1 −1
= CP (sI − Λ) P B + D
wT1 B
 
 1 
  s−λ1
..
 wT2 B 
= Cv 1 Cv 2 · · · Cv n . .. +D
 
.
 
1
 
 
s−λn wTn B
wT
1B
s−λ1
wT
2B
 
  s−λ2

= Cv 1 Cv 2 · · · Cv n .. +D
 


 . 

wT
nB
s−λn
(3.177)
We nally get:
n
X Cv i wTi B
F(s) = +D (3.178)
s − λi
i=1

Figure 3.1 presents the diagonal (or modal) decomposition of the transfer
function F(s) where xm (t) is the state vector expressed in the diagonal (or
modal) basis and matrices Λ, P and P−1 are dened as follows:
  
 λ1
..


Λ= .

  

 

λn 



(3.179)

P = v1 · · ·  v n
wT1



P−1 =  ... 



  



wTn

118 Chapter 3. Analysis of Linear Time Invariant systems

3.10 Duality principle


The concept of controllability and observability was introduced by American-
Hungarian engineer Rudolf E. Kalman for linear dynamic systems 6 . Let's
consider a system which is denoted Σ. Then system ΣD , which is the dual of
Σ, as dened as follows:

T
AT CT
    
A B A B
Σ= ⇒ ΣD = dual (Σ) = = (3.180)
C D C D BT DT

The duality principle indicates that:

− System Σ is observable if and only if system ΣD is controllable.

− System Σ is controllable if and only if system ΣD is observable.

Furthermore we cannotice that the observable canonical form is the dual of


the controllable canonical form.

3.11 Kalman decomposition


3.11.1 Controllable / uncontrollable decomposition
We recall that the controllability matrix Qc is dened as follows:

B AB · · · An−1 B (3.181)
 
Qc =

Suppose that the system is not controllable, meaning that:


rank (Qc ) = nc < n (3.182)

Let Pcc̄ be the following change of basis matrix which denes a new state
vector xcc̄ (t) as follows:

x(t) = Pcc̄ xcc̄ (t) ⇔ xcc̄ (t) = P−1


cc̄ x(t) (3.183)

The rst nc columns of Pcc̄ are chosen to be nc independent columns of Qc


whereas the remaining n − nc columns are arbitrarily chosen such that Pcc̄ is
invertible: h i
Pcc̄ = q 1 · · · q nc q nc +1 · · · q n (3.184)

Then, according to the results in section 2.2, the state-space representation


involving the state vector xcc̄ (t) reads:

ẋcc̄ (t) = Acc̄ xcc̄ (t) + Bcc̄ u(t)
(3.185)
y(t) = Ccc̄ xcc̄ (t) + Du(t)
6
R. E. Kalman, On the General Theory of Control Systems, Proceeding of the 1st IFAC
congress, Moscow 1960
3.11. Kalman decomposition 119

where:   
−1 Ac A12

 Acc̄ = Pcc̄ APcc̄ :=
0 Ac̄



(3.186)

−1 Bc
Bcc̄ = Pcc̄ B :=
 0



 
Ccc̄ = CPcc̄ := Cc Cc̄

It is worth noticing that the feedforward matrix D is independent of the


choice of the state vector.
The state vector xcc̄ (t) can be split into vector xc (t), which represents the
controllable states, and vector xc̄ (t) which represents the uncontrollable states:
 
xc (t)
xcc̄ (t) := (3.187)
xc̄ (t)

Furthermore, the reduced-order state equation of the controllable state


vector xc (t) is controllable and has the same transfer function than the full
state equation: 
ẋc (t) = Ac xc (t) + Bc u(t)
(3.188)
y(t) = Cc xc (t) + Du(t)

3.11.2 Observable / unobservable decomposition


We recall that the observability matrix Qo is dened as follows:
 
C
 CA 
Qo =  .. (3.189)
 
.

 
CAn−1

Suppose that the system is not observable, meaning that:


rank (Qo ) = no < n (3.190)

Let Poō be the following change of basis matrix which denes a new state
vector xoō (t) as follows:

x(t) = Poō xoō (t) ⇔ xoō (t) = P−1


oō x(t) (3.191)

The rst no rows of P−1


oō are chosen to be no independent rows of Qo whereas
the remaining n − no rows are arbitrarily chosen such that P−1oō is invertible:
 
q1
 .. 

 . 

 q 
−1
(3.192)
 no 
Poō = 
 q n +1 

 o
..

.
 
 
qn
120 Chapter 3. Analysis of Linear Time Invariant systems

Then, according to the results in section 2.2, the state-space representation


involving the state vector xoō (t) reads:

ẋoō (t) = Aoō xoō (t) + Boō u(t)
(3.193)
y(t) = Coō xoō (t) + Du(t)

where:   
−1 Ao 0

 Aoō = Poō APoō :=
A
 21 Aō



(3.194)

−1 Bo
Boō = Poō B :=
 Bō



 
Coō = CPoō := Co 0

It is worth noticing that the feedforward matrix D is independent of the


choice of the state vector.
The state vector xoō (t) can be split into vector xo (t), which represents the
observable states, and vector xō (t) which represents the unobservable states:
 
xo (t)
xoō (t) := (3.195)
xō (t)

Furthermore, the reduced-order state equation of the observable state


vector xo (t) is observable and has the same transfer function than the full
state equation: 
ẋo (t) = Ao xo (t) + Bo u(t)
(3.196)
y(t) = Co xo (t) + Du(t)

3.11.3 Canonical decomposition


Kalman decomposition is a state space representation which makes clear the
observable
 and controllable
 components of the system. More precisely any linear
A B
system can be transformed by a similarity transformation as follows:
C D

ẋK (t) = AK xK (t) + BK u(t)
(3.197)
y(t) = CK xK (t) + Du(t)

The Kalman decomposition expands as follows:


 
Acō A12 A13 A14 Bcō
   0 Aco 0 A24 Bco 
AK BK
(3.198)
 
= 0 0 Ac̄ō A34 0 
CK D  
 0 0 0 Ac̄o 0 
0 Cco 0 Cc̄o D

This leads to the conclusion that7 :


 
Aco Bco
− Subsystem is both controllable and observable;
Cco D
3.11. Kalman decomposition 121

Figure 3.2: Example of uncontrollable mode through pole / zero cancellation in


series interconnection

Figure 3.3: Example of unobservable mode through pole / zero cancellation in


series interconnection
 
Acō A12 Bcō
− Subsystem  0 Aco Bco  is controllable;
0 Cco D
 
Aco A24 Bco
− Subsystem  0 Ac̄o 0  is observable.
Cco Cc̄o D
Practical cases of uncontrollability and unobservability may appear in
pole(s) / zero(s) cancellation in series interconnection as represented in Figure
3.2 and Figure 3.3.
In the special case where matrix A has distinct eigenvalues then matrices
Aij = 0 ∀ i 6= j and Kalman decomposition reduces as follows:
 
Acō 0 0 0 Bcō
   0 Aco 0 0 Bco 
AK BK
(3.199)
 
= 0
 0 Ac̄ō 0 0 
CK D  0

0 0 Ac̄o 0 
0 Cco 0 Cc̄o D

Figure 3.4 represents the Kalman decomposition: there is no path, direct or


through a block, from the input to either of the uncontrollable blocks. Similarly
the unobservable blocks have no path to the output.

AK BK
The new state representation is obtained thanks to the
CK D
change of basis matrix PK :
−1

 AK = PK APK
−1
B = PK B (3.200)
 K
CK = CPK

Let v 1 , v 2 , · · · , v n be the eigenvectors of matrix A and w1 , w2 , · · · , wn be


the eigenvectors of matrix AT . The change of basis matrix PK is an invertible
122 Chapter 3. Analysis of Linear Time Invariant systems

Figure 3.4: Kalman decomposition in the special case where matrix A has
distinct eigenvalues
3.11. Kalman decomposition 123

matrix dened as follows:

(3.201)
   
PK = v1 v2 · · · vn = Pcō Pco Pc̄ō Pc̄o

Where7 :

− Pcō is a matrix whose columns span the subspace of states which are both
controllable and unobservable: wTi B 6= 0 and Cv i = 0;

− Pco is chosen so that the columns of Pcō Pco are a basis for the
 

controllable subspace: wTi B 6= 0 and Cv i 6= 0;

− Pc̄ō is chosen so that the columns of Pcō Pc̄ō are a basis for the
 

unobservable subspace: wTi B = 0 and Cv i = 0;

− Pc̄o is chosen so that PK is invertible: wTi B = 0 and Cv i 6= 0.

It is worth noticing that some of those matrices may not exist. For example
if the system is both controllable and observable then PK = Pco ; thus other
matrices do not exist. In addition Kalman decomposition is more than getting
a diagonal form for the state matrix A. When state matrix A is diagonal
observability and controllability have still to be checked thanks to the rank
condition test. Finally all realizations obtained from a transfer function are
both controllable and observable.

Example 3.14. Let's consider the following realization:


 
  −1 10 −2
A B
= 0 1 0  (3.202)
C D
−2 3 −2

Matrix A has a stable mode, which is −1, and an unstable mode, which is
1. When computing the transfer function of the system we can observe a pole /
zero cancellation of the unstable mode:
F (s) = C (sI − A)−1 B + D
 1 10   
  s+1 s2 −1 −2
= −2 3 −2
0 1
s−1 0 (3.203)
4
= s+1 −2
−2s+2
= s+1

From PBH test it can be checked that mode −1 is both controllable and
observable whereas mode 1 is observable but not controllable. Thus the system
is not stabilizable.
Internal stability (which implies input-output stability, or BIBO stability) is
required in practice. This cannot be achieved unless the plant is both detectable
and stabilizable.


7
https://en.wikipedia.org/wiki/Kalman_decomposition
124 Chapter 3. Analysis of Linear Time Invariant systems

3.12 Minimal realization (again!)


We have seen that a realization of a transfer function F(s) is minimal if there
exists no realization of lesser order whose transfer function is F(s). The order
of a realization is the size of matrix A.
A realization is said to be minimal if and only if the realization is both
controllable and observable. Consequently a minimal realization of the transfer
function F(s) = C (sI − A)−1 B + D is Cco (sI − Aco )−1 Bco + D:
   
A B Aco Bco
F(s) = = (3.204)
C D Cco D

Indeed:
 −1  
sI − Acō −A12 −A13 −A14 Bcō
0 sI − Aco 0 −A24    Bco 
(sI − A)−1 B = 
  
 0 0 sI − Ac̄ō −A34   0 
0 0 0 sI − Ac̄o 0
−1
(sI − Acō ) ∗ ∗ ∗
  
Bcō
 0 (sI − Aco )−1 ∗ ∗   Bco 
=
(sI − Ac̄ō )−1
 
 0 0 ∗  0 
0 0 0 (sI − Ac̄o )−1 0
 

 (sI − Aco )−1 Bco 
= 
 0 
0
(3.205)
And:

F(s) = C (sI − A)−1 B + D


 

   (sI − Aco )−1 Bco 
= 0 Cco 0 Cc̄o  +D
0
(3.206)
 
0
= )−1 Bco + D
Cco (sI − Aco
Aco Bco
=
Cco D

The number of states of a minimal realization can be evaluated by the rank


of the product of the observability and the controllability matrix 8 .

8
Albertos P., Sala A., Multivariable Control Systems, Springer, p78
Chapter 4

Observer design

4.1 Introduction
The components of the state vector x may not be fully available as
measurements. Observers are used in order to estimate state variables of a
dynamical system, which will be denoted x̂ in the following, from the output
signal y(t) and the input signal u(t) as depicted on Figure 4.1.
Several methods may be envisioned to reconstruct the state vector x(t) of a
system from the observation of its output signal y(t) and the knowledge of the
input signal u(t):

− From the output equation y(t) = Cx(t) + Du(t) we can imagine to build
x(t) from the relationship x(t) = C−1 y(t) − Du(t) . Unfortunately this


relationship holds as soon as matrix C is square and invertible, which is


seldom the case;

− Assuming that the size of the state vector is n we may also imagine to take
the derivative of the output signal n − 1 times and use the state equation
ẋ(t) = Ax(t) + Bu(t) to get n equations where the state vector x(t) is
the unknown. Unfortunately this not possible in practice because each
derivative of an unsmoothed signal increases its noise ;

Figure 4.1: Observer principle


126 Chapter 4. Observer design

− We can also use a Luenberger observer which will be developed in the


next section. David Gilbert Luenberger, born in 1937 in Los Angeles, is
an American mathematical scientist1 . The theory of full order observer
originated in the work of Luenberger in 1964.
This chapter focuses on observers design. More specically Luenberger
observer, state observer for SISO systems in observable canonical form, state
observer for SISO systems in arbitrary state-space representation and state
observer for MIMO systems will be presented. We will also present
reduced-order observer design.

4.2 Luenberger observer


Consider the following state space representation where x(t) denotes the state
vector, y(t) the measured output and u(t) the control input:

ẋ(t) = Ax(t) + Bu(t)
(4.1)
y(t) = Cx(t) + Du(t)

We assume that state vector x(t) cannot be measured. The goal of the
observer is to estimate x(t) based on the observation y(t). Luenberger observer
provides an estimation x̂(t) of the state vector x(t) through the following
dierential equation where output signal y(t) and input signal u(t) are known
and where matrices F , J and L have to be determined:
˙
x̂(t) = Fx̂(t) + Ju(t) + Ly(t) (4.2)

The estimation error e(t) is dened as follows:

e(t) = x(t) − x̂(t) (4.3)

The time derivative of the estimation error reads:


˙
ė(t) = ẋ(t) − x̂(t)
(4.4)
= Ax(t) + Bu(t) − Fx̂(t) − Ju(t) − Ly(t)

Thanks to the output equation y(t) = Cx(t) + Du(t) and the relationship
x(t) = e(t) + x̂(t) we get:

ė(t) = Ax(t) + Bu(t) − Fx̂(t) − Ju(t) − L (Cx(t) + Du(t))


= (A − LC) x(t) + (B − J − LD) u(t) − Fx̂(t) (4.5)
= (A − LC) e(t) + (B − J − LD) u(t) + (A − LC − F) x̂(t)

As soon as the purpose of the observer is to move the estimation error e(t)
towards zero independently of control u(t) and true state vector x(t) we choose
matrices J and F as follows:

J = B − LD
(4.6)
F = A − LC
1
https://en.wikipedia.org/wiki/David_Luenberger
4.2. Luenberger observer 127

Thus the dynamics of the estimation error e(t) reduces to be:

ė(t) = (A − LC) e(t) (4.7)

In order that the estimation error e(t) moves towards zero, meaning that the
estimated state vector x̂ becomes equal to the actual state vector x(t), matrix
L shall be chosen such that all the eigenvalues of A − LC are situated in the
left half plane.
With the expression of matrices J and F the dynamics of the Luenberger
observer can be written as follows:
˙
x̂(t) = Fx̂(t) + Ju(t) + Ly(t)
(4.8)
= (A − LC) x̂(t) + (B − LD) u(t) + Ly(t)

That is:
˙ (4.9)

x̂(t) = Ax̂(t) + Bu(t) + L y(t) − ŷ(t)
Where:
ŷ(t) = Cx̂(t) + Du(t) (4.10)
Thus the dynamics of the Luenberger observer is the same than the dynamics
of the original system with the additional term L y(t) − ŷ(t) where L is a gain
to be set. This additional term is proportional to the error y(t) − ŷ(t). It
enables to drive the estimated state x̂(t) towards its actual value x(t) when the
measured output y(t) deviates from the estimated output ŷ(t).
In order to compute a state space representation and the transfer function
of the observer we rst identify its input and output.

− As discussed previously the input vector uo (t) of the observer is composed


of the output y(t) of the plant whose state is estimated and its input u(t):
 
y(t)
uo (t) = (4.11)
u(t)

− The output y o (t) of the observer is the estimated state vector x̂(t) of the
plant:
y o (t) = x̂(t) (4.12)

Consequently (4.9) and (4.10) can be organized to obtain a state space


representation of the observer:

˙


 x̂(t) = Ax̂(t) + Bu(t) + L y(t) − ŷ(t) 
= Ax̂(t) + Bu(t) + L y(t) − Cx̂(t) −




  Du(t)

   y(t)
= (A − LC) x̂(t) + L B − LD


 u(t)



(4.13)

= (A − LC) x̂(t) + L B − LD uo (t)
:= Aobs x̂(t) + Bobs uo (t)







 y o
(t) = x̂(t)




 = Ix̂(t) + 0uo (t)
:= Cobs x̂(t) + Dobs uo (t)

128 Chapter 4. Observer design

Figure 4.2: Block diagram of the state-space representation of an observer

Finally the transfer function of the observer, which is obviously a Multi-


Input Multi-Output (MIMO) system, reads:

Gobs (s) = Cobs (sI − Aobs )−1 B obs + Dobs


−1   (4.14)
= (sI − (A − LC)) L B − LD

The block diagram corresponding to state-space representation (4.9) is


shown in Figure 4.2.
In the following we will assume that the system is observable, or at least
detectable, such that it is possible to design a state observer.

4.3 State observer for SISO systems in observable


canonical form
 
A B
Let be an observable Single-Input Single-Output (SISO) linear time-
C D
invariant system of order n and let χA−LC (s) be an imposed nth order monic
polynomial (a monic polynomial is a polynomial in which the leading coecient,
that is the nonzero coecient of highest degree, is equal to 1). Polynomial
χA−LC (s) corresponds to the characteristic polynomial of matrix A − LC. It
is formed thanks to the predened eigenvalues λL1 , · · · , λLn assigned for the
dynamics of the observer:

χA−LC (s) = det (sI − (A − LC)) = (s − λL1 ) · · · (s − λLn ) (4.15)

When expanding the preceding product we get:

χA−LC (s) = sn + pn−1 sn−1 + · · · + p1 s + p0 (4.16)


 
A B
We begin with the case where the system realization is the
C D
4.3. State observer for SISO systems in observable canonical form 129

observable canonical form. Then matrices Ao and Co are the following:


  
 0 0 0 −a 0
..


.
  
 1 0 0 −a

1

 
.
  
.

 Ao =  0 1 .
  
 0 −a2 
 .. . . . . .. (4.17)
 
 . . . .


 




 0 0 1 −an−1



  
Co = 0 0 · · · 0 1

Matrices Bo and D will not be used.


Let Lo be the observer gain matrix when the observable canonical form of
the system is used. For a SISO system this is a n × 1 matrix. Let Li be the
(scalar) component in the ith row of matrix Lo :
 
L1
Lo =  ...  (4.18)
 

Ln
Then matrix Ao − Lo Co reads:
 
0 0 0 −a0
..
.
   
 1 0 0 −a1  L1
. ..   0 0 · · · 0 1 
 
Ao − Lo Co =  0 1

0 .. −a2 −
 
. 
 .. . . . . ..
 
 . . . Ln
.


0 0 1 −an−1
 
0 0 0 −a0 − L1
..
.
 
 1 0 0 −a1 − L2 
..
 
= .
 
0 1 0 −a2 − L3 
.. . . .. ..
 
. . . .
 
 
0 0 1 −an−1 − Ln
(4.19)
Since this matrix still remains in the observable canonical form its
characteristic polynomial is readily written as follows:
χA−LC (s) = det (A − LC)
= det (Ao − Lo Co ) (4.20)
= sn + (an−1 + Ln ) sn−1 + · · · + (a1 + L2 ) s + a0 + L1
Identifying Equations (4.16) and (4.20) leads to the expression of each
component of the observer matrix Lo :
    

 p0 = a0 + L1 L1 p0 − a0
 p1 = a1 + L2  L2   p1 − a1
 
.. ⇔ L = .. = .. (4.21)
   
o
. . .
   

    

pn−1 = an−1 + Ln Ln pn−1 − an−1

130 Chapter 4. Observer design

4.4 State observer for SISO systems in arbitrary


state-space representation
When an arbitrary state-space representation is used the system has to be
converted into the observable canonical form via a similarity transformation.
Let Po be the matrix of the similarity transformation which enables to get the
observable canonical form. We get:

x̂(t) = Po x̂o (t) ⇔ x̂o (t) = P−1


o x̂(t) (4.22)
We have seen in the chapter dedicated to Realization of transfer functions
that Po is a constant nonsingular change of basis matrix which is obtained
through the following relationship:

Po = Q−1
o Qoo (4.23)

Where:

− Qo is the observability matrix in the actual basis:


 
C
 CA 
Qo =  .. (4.24)
 
.

 
CAn−1

− and Qoo the observability matrix expressed in the observable canonical


basis (which is readily obtained through det (sI − A)).

Thus the state equation of the observer (4.9) reads:

x̂˙ o (t) = Ao x̂o (t) + Bo u(t) + Lo y(t) − ŷ(t)




⇔ P−1 ˙ −1 (4.25)

o x̂(t) = Ao Po x̂(t) + Bo u(t) + Lo y(t) − ŷ(t)
˙ = Po Ao P−1

⇔ x̂(t) o x̂(t) + Po Bo u(t) + Po Lo y(t) − ŷ(t)

That is:
˙ (4.26)

x̂(t) = Ax̂(t) + Bu(t) + L y(t) − ŷ(t)
Where:
L = Po Lo (4.27)
And:
A = Po Ao P−1

o
(4.28)
B = Po Bo

Example 4.1. Design an observer for the following plant:


    
−1 0 1
ẋ(t) = x(t) + u(t)


0 −2 2

(4.29)

  
y(t) = 3 5 x(t)

4.4. State observer for SISO systems in arbitrary state-space representation131

As far as this is a modal (or diagonal) state space representation, plant's


observability is readily checked by inspecting row of output matrix C: because
there is no null element in the output matrix C we conclude that the plant is
observable by applying Gilbert's criteria.
The poles of the observer shall be chosen faster than the dynamics of the
plant, whose modes are −1 and −2. We choose (for example) to locate the poles
of the observer at λL1 = −10 and λL2 = −20.
We will rst design the observer assuming that we have the observable
canonical form of the SISO system. The observable canonical form is readily
obtained through det(sI − A):
det(sI − A) 2 2
 = (s +1)(s + 2) = s + 3 s + 2 := s + a1 s + a0
0 −2 (4.30)
and Co = 0 1
 
⇒ Ao =
1 −3
On the other hand the characteristic polynomial of the observer is formed
thanks to the predened eigenvalues assigned for the dynamics of the observer:
χA−LC (s) = (s − λL1 ) (s − λL2 ) = (s + 10) (s + 20)
(4.31)
= s2 + 30 s + 200 := s2 + p1 s + p0
Applying relationship (4.21) we get:
       
L1 p 0 − a0 200 − 2 198
Lo = = = = (4.32)
L2 p 1 − a1 30 − 3 27
Now let's compute the similarity transformation matrix Po which enables to
get the observable canonical form.
Po = Q−1
o Qoo (4.33)
Where:
− Qo is the observability matrix in the actual basis:
 
  3 5  
C 3 5
(4.34)
 
Qo = =   −1 0 =
CA 3 5 −3 −10
0 −2

− and Qoo the observability matrix expressed in the observable canonical basis
(which is readily obtained through det (sI − A)):
 
  0 1  
Co 0 1
(4.35)
 
Qoo = =   0 −2  =
Co Ao 0 1 1 −3
1 −3

Thus:  −1  
3 5 0 1
Po = Q−1
o Qoo
=
 −3  −10  1 −3
−10 −5 0 1
= −1
15
(4.36)
 3 3  1  −3 
−1 −5 5 1 5 −5
= 15 = 15
3 −6 −3 6
132 Chapter 4. Observer design

We nally get:
    
1 5 −5 198 57
L = Po Lo = = (4.37)
15 −3 6 27 −28.8


4.5 Ackermann's formula


Ackermann's formula states that the observer gain matrix L of a SISO system
in arbitrary state-space representation can be obtained as the product between
the assigned characteristic polynomial χA−LC (s) of matrix A − LC evaluated
at matrix A and vector q o :

L = χA−LC (A)q o (4.38)

To get this result we rst recall that similarity transformation generates


equivalent state-space representations. Let Po be the matrix of the similarity
transformation which enables to get  the observable
 canonical form. Starting
A B
from a state-space representations in an arbitrary basis, the
C D
observable canonical form is obtained through the following relationships:

 Ao = P−1

o APo
−1
Bo = P o B (4.39)
Co = CPo

Consequently matrix Ao − Lo Co reads:

Ao − Lo Co = P−1
o APo − Lo CPo
(4.40)
= P−1
o (A − Po Lo C) Po

This equation indicates that the observer gain matrix L in arbitrary state-
space representation reads:
L = Po Lo (4.41)
We have seen in the chapter dedicated to Realization of transfer functions
that Po is a constant nonsingular change of basis matrix which is obtained
through the state matrix A and vector q o :

q o Aq o · · · An−1 q o (4.42)
 
Po =

Vector q o is the last column of the inverse of the observability matrix Qo :


 
C
 CA 
Q−1 where Qo =  (4.43)
 
o = ∗ · · · ∗ qo ..
 
.

 
CAn−1
4.5. Ackermann's formula 133

Then we recall CayleyHamilton theorem. Let χAo (s) be the characteristic


polynomial of the n × n matrix Ao . We write the characteristic polynomial
χAo (s) of matrix Ao as follows:

χAo (s) := det(sI − Ao ) = sn + an−1 sn−1 + · · · + a1 s + a0 (4.44)

The CayleyHamilton theorem states that substituting matrix Ao for s in


the characteristic polynomial χAo (s) of matrix Ao results in the zero matrix 2 :

χAo (Ao ) = 0 = Ano + an−1 Aon−1 + · · · + a1 Ao + a0 I (4.45)

Let χA−LC (s) be the characteristic polynomial of matrix Ao − Lo Co . We


have seen that when predened eigenvalues λL1 , · · · , λLn are assigned for the
dynamics of the observer the characteristic polynomial of matrix Ao − Lo Co
reads:
χA−LC (s) = det (sI − (Ao − Lo Co ))
= (s − λL1 ) · · · (s − λLn ) (4.46)
n
= s + pn−1 s n−1 + · · · + p1 s + p0
Substituting s for matrix Ao leads to the following relationship:

χA−LC (Ao ) = Ano + pn−1 An−1


o + · · · + p1 Ao + p0 I (4.47)

Note that χA−LC (Ao ) is not equal to 0 because χA−LC (s) is not the
characteristic polynomial of matrix Ao .
Thanks to Equation (4.21) and the relationship pi = ai + Li we get:

χA−LC (Ao ) = Ano + (an−1 + Ln−1 ) An−1


o + ···
+ (a1 + L1 ) Ao + (a0 + L0 ) I (4.48)

By subtracting Equations (4.45) to (4.48) we get:

χA−LC (Ao ) = Ln−1 An−1


o + · · · + L1 Ao + L0 I (4.49)

Let u be the vector dened by:


 
1
 0 
u= .. (4.50)
 
.

 
0

Due to the special form of matrix Ao we have:


 
  0  
0 0
 0 
.. 
1
. 
    
Ao u = 

 , A2o u = 
  1  , · · · , Aon−1 u = 
 
(4.51)
0 
0 0 
..
    
. ..
 
1
.
2
https://en.wikipedia.org/wiki/CayleyHamilton_theorem
134 Chapter 4. Observer design

Thus multiplying Equation (4.49) by u leads to the following relationship:


 
L0
 L1 
χA−LC (Ao )u =  .  = Lo (4.52)
 
 .. 
Ln−1

Thus we get the expression of the observer matrix Lo when we use the
observable canonical form.
We multiply Equation (4.52) by Po and use the fact that
k
Ao = P−1 = P−1o A Po to get the expression of the observer gain
k k
o APo
matrix L in arbitrary state space representation:

L = P o Lo
= Po χA−LC (Ao )u
= χA−LC (Po Ao )u
(4.53)
= χA−LC (Po Ao P−1
o Po )u
= χA−LC (Po Ao P−1
o )Po u
= χA−LC (A)Po u
 
1
 0 
Because u is the vector dened by u =  .  we get using (4.42):
 
 .. 
0

Po u = q o (4.54)

Consequently Equation (4.53) reduces to be the Ackermann's formula (4.38):

L = χA−LC (A)q o (4.55)

4.6 State observer for MIMO systems -


Roppenecker's formula
We have seen in Equation (4.7) that the dynamics of the estimation error e(t)
reads:
ė(t) = (A − LC) e(t) (4.56)
The purpose of this section is to design the observer gain matrix L such
that the eigenvalues of matrix A − LC are assigned to predened eigenvalues
λL1 , · · · , λLn where n is the size of matrix A.
Let λK1 , · · · , λKn be n distinct specied eigenvalues of the closed loop state
matrix A − LC. Furthermore we assume that eigenvalues of matrix A do not
shift (meaning that they are dierent) the eigenvalues of the closed loop state
matrix A − LC. Then it can be shown that the transpose of the observer gain
matrix L can be computed as follows where pi denotes parameter vectors:
−1
LT = − (4.57)
 
p1 · · · pn wL1 · · · wLn
4.6. State observer for MIMO systems - Roppenecker's formula 135

Where vector wLi is related to parameter vector pi through the following


relationship:  
 wLi
(4.58)
 T T
A − λLi I C =0
pi
This is the so-called Roppenecker's formula to get the observer gain matrix
L.
To get this result we rewrite the dynamics of the estimation error e(t) as
follows:

ėT (t) = (A − LC)T eT (t) ⇔ ėT (t) = AT − CT LT eT (t) (4.59)




Let wLi be an eigenvector of matrix (A − LC)T . As far as (A − LC)T and


(A − LC) have the same eigenvalues, which are the predened eigenvalues λLi ,
we can write:
AT − CT LT wLi = λLi wLi (4.60)


The preceding equation can be written as follows:

AT − λLi I wLi = CT LT wLi (4.61)




That is: −1


wLi = AT − λLi I CT LT wLi (4.62)
Then we introduce n parameter vectors pi dened as follows;

pi = −LT wLi (4.63)

Each parameter vector pi is a p × 1 vector where p is the number of rows of


matrix C, that is the number of outputs of the system.
Using parameter vector pi Equation (4.62) reads:
−1 T
wLi = − AT − λLi I C pi (4.64)

Writing Equation (4.63) for the n distinct predened eigenvalues


λL1 , · · · , λLn leads to the following relationship:

p1 · · · pn = −LT wL1 · · · wLn (4.65)


   

Finally the transpose of the observer gain matrix L can be computed as


follows: −1
LT = − p1 · · · pn (4.66)
 
wL1 · · · wLn
We have retrieved the so-called Roppenecker's formula to get the observer
gain matrix L.
It is worth noticing the following facts:

− Using equation (4.63) within Equation (4.61) it is clear that parameter


vectors pi shall satisfy the following relationship:

AT − λLi I wLi = −CT pi (4.67)



136 Chapter 4. Observer design

That is:  
wLi
AT CT (4.68)
 
− λLi I =0
pi

It
 is clear
 from the previous equation that each (n + p) × 1 vector
wLi
belong to the null-space of matrix AT − λLi I CT . So once
 
pi
any
 T (n + p) × 1T vector which belongs to the null-space of matrix
A − λLi I C has been found, its p bottom rows are used to form
vector parameter pi . In the MIMO case several possibilities are oered.

− By taking the transpose of equation (4.68) we get the following expression:


 
 A − λLi I
(4.69)
 T
wLi pTi =0
C
 
A − λLi I
We recognize in matrix the key matrix used in the PBH
C
observability test;

− If we wish to keep an eigenvalue λi of matrix A within the set of eigenvalues


of A − LC then Equation (4.61) is equal to zero because in that case wLi
is also an eigenvector of A:

λLi = λi ⇒ AT − λLi I wLi = −CT pi = AT − λi I wLi = 0 (4.70)


 

Consequently we have to replace pi by 0 and wLi by eigenvector wi of A


corresponding to λi in the Roppenecker's formula (4.57);

− If we chose a complex eigenvalue λLi then its complex conjugate must also
be chosen. Let's λLiR and λLiI be the real part and the imaginary part
of λLi , wLiR and wLiI be the real part and the imaginary part of wLi and
piR and piI be the real part and the imaginary part of pi respectively:

 λLi = λLiR + jλLiI
w = wLiR + jwLiI (4.71)
 Li
pi = piR + jpiI

Then equation (4.68) reads:


 
AT − (λLiR + jλLiI ) I (wLiR + jwLiI ) + CT piR + jpiI = 0 (4.72)


Taking the complex conjugate of the preceding equation reads:


 
AT − (λLiR − jλLiI ) I (wLiR − jwLiI ) + CT piR − jpiI = 0 (4.73)


Summing and subtracting Equations (4.72) and (4.73) reads:

AT − λLiR I  wLiR + λLiI wLiI + CT piR = 0


 
(4.74)
AT − λLiR I wLiI − λLiI wLiR + CT piI = 0
4.6. State observer for MIMO systems - Roppenecker's formula 137

That is in vector form:


 
wLiR
AT − λLiR I CT
 
λLiI I 0  wLiI 
 =0 (4.75)
−λLiI I AT − λLiR I 0 CT  p
iR

piI

In Equation (4.57) vectors pi , p∗i (where ∗ denotes complex conjugate),


wLi and w∗Li are replaced by vectors piR , piI , wLiR and wLiI , respectively.

− In the SISO case the observer gain matrix L no more depends on parameter
vectors pi . Indeed is that case the observer gain matrix L is obtained as
follows:

LT =
 
1 ··· 1
h −1 T −1 T i−1
AT − λL1 I C ··· AT − λLn I C (4.76)

To get this result we start by observing that in the SISO case parameter
vector are scalars; they will be denoted pi . Let vector li be dened as
follows:
−1 T
li = − AT − λLi I C (4.77)

Then Equation (4.57) reads:


−1
LT = − (4.78)
 
p1 · · · pn l1 p1 · · · ln pn

−1
Let's rearrange the term as follows:

l1 p1 · · · ln pn
  −1
p1 0
 −1   ..
l 1 p1 · · · l n pn =  l1 · · · ln  .


0 pn
 −1
p1 0
..  −1
= . l1 · · · ln
 

0 pn
 Q 
p
Qi6n=1 i 0
i=1 pi
..
  −1
= .  l1 · · · ln
 
 Q 
p
0 Qi6n=n i
i=1 pi
(4.79)
Multiplying this expression by − leads to the expression
 
p1 · · · pn
138 Chapter 4. Observer design

of LT :
−1
LT
 
=− p1 · · · pn
l
 Q 1 p 1 · · · l n p n 
p
Qi6n=1 i 0
i=1 pi
.
  −1
..
 
= − p1 · · · pn   l1 · · · ln

 Q 
p
0 Qi6n=n i
i=1 pi
  −1
= − 1 ··· 1 l1 · · · ln
(4.80)
−1 T
Using the expression of vector li = − AT − λLi I C provided by


Equation (4.77) we nally get:

LT =
 
1 ··· 1
h −1 T −1 i−1
AT − λL1 I C ··· AT − λLn I CT (4.81)

We conclude that in the SISO case the observer gain matrix L no more
depends on parameter vectors pi .

4.7 Reduced-order observer


Consider the following state space representation where D = 0 and where x(t)
denotes the state vector, y(t) the measured output and u(t) the control input:

ẋ(t) = Ax(t) + Bu(t)
(4.82)
y(t) = Cx(t)

We will show in this section how to derive an observer of reduced dimension


by exploiting the output equation y(t) = Cx(t).
Let p be the rank of matrix C. Then, from the output equation y(t) = Cx(t),
we can extract p linearly independent equations and then compute directly p
components of the state vector x(t). Assuming that n is the dimension of the
state vector, only the remaining n − r components of the state vector have to
be estimated and then the order of the observer can be reduced to n − r.
More precisely, since matrix C is of rank p, there exists a n × n
nonsingular matrix P such that the following relationship holds, where Ip
denotes the identity matrix of size p and 0p,n−p the p × (n − p) matrix of zeros:

(4.83)
 
CP = Ip 0p,n−p
 
C
Indeed, let C be a (n − p) × n matrix such that matrix is nonsingular.
C
Then a possible choice for P is the following:
 −1
C
P= (4.84)
C
4.7. Reduced-order observer 139

Hence, using (4.83), we can write:

y(t) = Cx(t) = CPP−1 x(t) = x∗ (t) (4.85)


 
Ip 0p,n−p

where:
x∗ (t) = P−1 x(t) ⇔ x(t) = Px∗ (t) (4.86)
Hence, mapping the system in the new state vector x∗ (t) via the similarity
transformation P, we obtain the following state space representation:
 ∗
ẋ (t) = P−1 APx∗ (t) + P−1 Bu(t)
(4.87)
y(t) = CPx∗ (t)

From the fact that CP = Ip 0p,n−p , it can be seen that the rst p
 

components of the new state vector x∗ (t) are equal to y(t). Thus we can write:
 
∗ y(t)
(4.88)
 
CP = Ip 0p,n−p ⇒ x (t) =
xr (t)

As far as the p rst components of the new state vector x∗ (t) are equal
to y(t), they are available through measurements and thus there is no need to
estimate those components. Consequently the reduced-order observer focuses
on the estimation of the remaining state vector xr (t).
The state equation (4.87) can be written as follows:
  ∗
A11 A∗12
     ∗ 
∗ ẏ(t) y(t) B1
 ẋ (t) := = + u(t)

∗ ∗ B∗2

ẋr (t) A A x (t)
 21  22
 y(t)
r
(4.89)
:= C∗ x∗ (t)

 y(t) = Ip 0p,n−p


xr (t)

Let's split matrix P as follows, where P1 is a n×p matrix and P2 a n×(n−p)


matrix:  −1
C
(4.90)
 
P= := P1 P2
C
Then we get:
  ∗ ∗
  
A 11 A 12 −1 CAP1 CAP2

 ∗ ∗ = P AP =
 A∗21  A22  CAP1 CAP2

 (4.91)
B CB
1 = P−1 B =


B∗2 CB

To design an observer for xr (t), we use the knowledge that an observer has
the same structure as the system plus the driving feedback term whose role is to
reduce the estimation error to zero 3 . Hence, an observer for xr (t) reads:
x̂˙ r (t) = A∗21 y(t) + A∗22 x̂r (t) + B∗2 u(t) + Lr y(t) − ŷ(t) (4.92)


3
Zoran Gajic, Introduction to Linear and Nonlinear Observers, Rutgers University,
https://www.ece.rutgers.edu/gajic/
140 Chapter 4. Observer design

Unfortunately, since y(t) = ŷ(t), the dierence y(t) − ŷ(t) does not carry any
information about xr (t). Nevertheless, by taking the time derivative of y(t), we
get the rst equation of (4.89) which carries information about xr (t):
ẏ(t) = A∗11 y(t) + A∗12 xr (t) + B∗1 u(t)
(4.93)
⇒ A∗12 xr (t) = ẏ(t) − A∗11 y(t) − B∗1 u(t)
Regarding y r (t) := A∗12 xr (t) as a virtual output of the reduced state
equation, the observer for xr (t) nally reads:
(  
x̂˙ r (t) = A∗21 y(t) + A∗22 x̂r (t) + B∗2 u(t) + Lr y r (t) − A∗12 x̂r (t)
(4.94)
y r (t) = ẏ(t) − A∗11 y(t) − B∗1 u(t)
Furthermore the dynamics of the error er (t) = xr (t) − x̂r (t) reads as follows:
er (t) = xr (t) − x̂r (t)
⇒ ėr (t) = ẋr (t) − x̂˙ r (t)
= A∗21 ∗ ∗
 y(t) + A22 xr (t) + B2 u(t)  
− A∗21 y(t) + A∗22 x̂r (t) + B∗2 u(t) + Lr y r (t) − A∗12 x̂r (t)
= (A∗22 − Lr A∗12 ) er (t)
(4.95)
Consequently, designing the observer gain Lr such that the characteristic
polynomial of matrix A∗22 − Lr A∗12 is Hurwitz leads to the asymptotic
convergence of the estimates x̂r (t) towards xr (t). Such a design is always
possible as soon as the pair (A∗22 , A∗12 ) is observable, which is a consequence of
the observability of the pair (A, C) (this can be shown using PBH test3 ).
Since it is not wise to use ẏ(t) because in practice the dierentiation process
introduces noise, we will estimate vector x̂ry (t) rather than xr (t). Vector x̂ry (t)
is dened as follows:
x̂ry (t) := x̂r (t) − Lr y(t) (4.96)
From (4.94), we get the following observer for x̂ry (t):

x̂˙ ry (t) = x̂˙ r (t) − Lr ẏ(t)  


= A∗21 y(t) + A∗22 x̂r (t) + B∗2 u(t) + Lr y r (t) − A∗12 x̂r (t) − Lr ẏ(t)
= A∗21 y(t) + A∗22 x̂ry (t) + Lr y(t) + B∗2 u(t)


+Lr −A∗11 y(t) − B∗1 u(t) − A∗12 x̂ry (t) + Lr y(t)




:= Ay y(t) + Ary x̂ry (t) + Bu u(t)


(4.97)
where:
 Ay = A∗21 + A∗22 Lr − Lr A∗11 − Lr A∗12 Lr

Ary = A∗22 − Lr A∗12 (4.98)


 ∗
Bu = B2 − Lr B1 ∗

Assembling the previous results, the estimation of state vector x(t) nally
reads as follows where the dynamics of x̂ry (t) is given by (4.97):
   
∗ y(t) y(t)
x̂(t) = Px̂ (t) = P =P (4.99)
x̂r (t) x̂ry (t) + Lr y(t)
Chapter 5

Controller design

5.1 Introduction
Controller enables to obtain stable systems which meet performances
specications. In the case where the full state vector x(t) is available then
controller design involves state feedback. In the more usual case where only
some components of the state vector are available through the output vector
y(t) then controller design involves output feedback in association with a state
observer.
This chapter focuses on controllers design. More specically state feedback
controller for SISO systems in controllable canonical form, state feedback
controller for SISO systems in arbitrary state-space representation, static state
feedback controller and static output feedback controller for MIMO systems
will be presented. We will also present controller with integral action.

5.2 Static state feedback controller


Consider the following state equation where x(t) denotes the state vector and
u(t) the control input:

ẋ(t) = Ax(t) + Bu(t) (5.1)


We will assume in the following that the full state vector x(t) is available
for control.
Let r(t) be a reference input signal. A static state feedback (or full state)
controller computes the control input u(t) as a function of a state-feedback gain
K and a feedforward gain matrix H as follows:

u(t) = Hr(t) − Kx(t) (5.2)


Substituting the control law (5.2) into the state equation (5.1) of the system
yields:
ẋ(t) = (A − BK) x(t) + BHr(t) (5.3)

− The purpose of the controller gain K is at least to assign the eigenvalues of


the closed-loop state matrix A − BK at predened locations. For MIMO
142 Chapter 5. Controller design

systems there are additional degrees of freedom which may be used for
others purposes like eigenstructure assignment;

− The purpose of the feedforward gain matrix H is to pick up the desired


nal value such that the closed-loop system has no steady state error to
any constant value of the reference input r(t).
In steady state conditions we have ẋ(t) = 0 and consequently (5.3) reads:

ẋ(t) = 0 ⇒ x(t) = − (A − BK)−1 BHr(t) (5.4)

On the other hand, using (5.2) the output equation y(t) = Cx(t) + Du(t)
reads:


y(t) = Cx(t) + Du(t)
⇒ y(t) = (C − DK) x(t) + DHr(t) (5.5)
u(t) = −Kx(t) + Hr(t)

Inserting (5.4) into (5.5) yields:


−1
y(t) = −
 (C − DK) (A − BK) BHr(t)
 + DHr(t)
−1 (5.6)
= D − (C − DK) (A − BK) B Hr(t)

Then matrix H is computed such that the closed-loop system has no steady
state error to any constant value of the reference input r(t). So imposing
y(t) = r(t) leads to the following expression of the feedforward gain matrix
H:
 −1
y(t) = r(t) ⇒ H = D − (C − DK) (A − BK)−1 B (5.7)

In the usual case where matrix D is null the preceding relationship


simplies as follows:
 −1
H = − C (A − BK)−1 B (5.8)

We will see in section 5.7 that adding an integral action within the controller
is an alternative method which avoid the computation of feedforward gain matrix
H.
In the following we will assume that the system is controllable, or at least
stabilizable, such that it is possible to design a state feedback controller. Indeed
Wonham1 has shown that controllability of an open-loop system is equivalent
to the possibility of assigning an arbitrary set of poles to the transfer matrix
of the closed-loop system, formed by means of suitable linear feedback of the
state.
1
Wonham W., On pole assignment in multi-input controllable linear systems, IEEE
Transactions on Automatic Control, vol. 12, no. 6, pp. 660-665, December 1967. doi:
10.1109/TAC.1967.1098739
5.3. Control of SISO systems 143

5.3 Control of SISO systems


5.3.1 State feedback controller in controllable canonical form
 
A B
Let be an controllable Single-Input Single-Output (SISO) linear
C D
time-invariant system of order n and let χA−BK (s) be an imposed nth order
monic polynomial (a monic polynomial is a polynomial in which the leading
coecient, that is the nonzero coecient of highest degree, is equal to 1).
Polynomial χA−BK (s) corresponds to the characteristic polynomial of matrix
A − BK. It is formed thanks to the predened eigenvalues λK1 , · · · , λKn
assigned for the dynamics of the controller:

χA−BK (s) = det (sI − (A − BK)) = (s − λK1 ) · · · (s − λKn ) (5.9)

When expanding the preceding product we get:

χA−BK (s) = sn + pn−1 sn−1 + · · · + p1 s + p0 (5.10)


 
A B
We begin with the case where the system realization is the
C D
controllable canonical form. Then matrices Ac and Bc are the following:
  
 0 1 0 0
..


.
  


  0 0 1 0 
.. ..
  

 A c = 
. .



 
 0 




  0 0 0 1 


 −a0 −a1 −a2 · · · −an−1
(5.11)
  
0




 0 

  

Bc =  ... 



  


  


  0 

1

Matrices Cc and D will not be used.


Let Kc be the controller gain matrix when the controllable canonical form
of the system is used. For a SISO system this is a 1 × n matrix. Let Ki be the
(scalar) component in the ith row of matrix Kc :

(5.12)
 
Kc = K1 · · · Kn

Using the duality principle we can infer that the expression of the state
feedback controller for SISO systems in controllable canonical form has the
following expression:

Kc = LTo = (5.13)
 
p0 − a0 · · · pn−1 − an−1
144 Chapter 5. Controller design

To check it just notice that when the controllable canonical form of the
system is used then matrix Ac − Bc Kc reads:
  
0 1 0 0

0
..
. 0
  
 0 0 1 0   
..

. .
   
Ac − Bc Kc =  .. .. −
. K1 · · · Kn
 
0   
0 
  
 0 0 0 1 
−a0 −a1 −a2 · · · −an−1 1
 
0 1 0 0
..
.
 
 0 0 1 0 
.. ..
 
= . .


 0 

 0 0 0 1 
−a0 − K1 −a1 − K2 −a2 − K3 · · · −an−1 − Kn
(5.14)
Since this matrix still remains in the controllable canonical form its
characteristic polynomial is readily written as follows:

χA−BK (s) = det (A − BK)


= det (Ac − Bc Kc ) (5.15)
= sn + (an−1 + Kn ) sn−1 + · · · + (a1 + K2 ) s + a0 + K1

Identifying Equations (5.10) and (5.15) leads to the expression of each


component of the controller matrix Kc :


 p0 = a0 + K1
 p1 = a1 + K2

Kc = [ K1 K2 ··· Kn ]
.. ⇔
= [ p − a p − a · · · p − a ]


 . 0 0 1 1 n−1 n−1
pn−1 = an−1 + Kn

(5.16)

5.3.2 State feedback controller in arbitrary state-space


representation
When an arbitrary state-space representation is used the system has to be
converted into the controllable canonical form via a similarity transformation.
Let Pc be the matrix of the similarity transformation which enables to get the
controllable canonical form. We get:

x(t) = Pc xc (t) ⇔ xc (t) = P−1


c x(t) (5.17)
We have seen in the chapter dedicated to Realization of transfer functions
that P−1
c is a constant nonsingular change of basis matrix which is obtained
through the following relationship:

P−1 −1
c = Qcc Qc (5.18)

Where:
5.3. Control of SISO systems 145

− Qc is the controllability matrix in the actual basis:

Qc = B AB · · · An−1 B (5.19)
 

− and Qcc the controllability matrix expressed in the controllable canonical


basis (which is readily obtained through det (sI − A)).

Thus the control law u(t) reads:

u(t) = −Kc xc (t) + Hr(t) = −Kc P−1


c x(t) + Hr(t) (5.20)

That is:
u(t) = −Kx(t) + Hr(t) (5.21)
Where:
K = Kc P−1
c (5.22)

Example 5.1. Design a state feedback controller for the following unstable
plant:
    
1 0 1
 ẋ(t) = x(t) + u(t)


0 2 2
(5.23)

  
y(t) = 3 5 x(t)

As far as this is a modal (or diagonal) state space representation, plant's


controllability is readily checked by inspecting column of control matrix B:
because there is no null element in the control matrix B we conclude that the
plant is controllable by applying Gilbert's criteria.
The poles of the controller shall be chosen to render the closed-loop stable
and to satisfy some specications. We choose (for example) to locate the poles
of the controller at λK1 = −1 and λK2 = −2.
We will rst design the controller assuming that we have the controllable
canonical form of the SISO system. The controllable canonical form is readily
obtained through det(sI − A):
det(sI − A) 2 2
 = (s −1)(s − 2) = s −3 s + 2 := s + a1 s + a0
0 1 0 (5.24)
⇒ Ac = and Bc =
−2 3 1

On the other hand the characteristic polynomial of the controller is formed


thanks to the predened eigenvalues assigned for the dynamics of the controller:
χA−BK (s) = (s − λK1 ) (s − λK2 ) = (s + 1) (s + 2)
(5.25)
= s2 + 3 s + 2 := s2 + p1 s + p0

Applying relationship (5.16) we get:


   
Kc =  K1 K2 =  p0 − a0 p1 − a1
(5.26)
= 2−2 3+3 = 0 6
146 Chapter 5. Controller design

Now let's compute the inverse of the similarity transformation matrix P−1
c
which enables to get the controllable canonical form.
P−1 −1
c = Qcc Qc (5.27)

Where:
− Qc is the controllability matrix in the actual basis:
 
1 1
(5.28)
 
Qc = B AB =
2 4

− and Qcc the controllability matrix expressed in the controllable canonical


basis (which is readily obtained through det (sI − A)):
 
0 1
(5.29)
 
Qcc = Bc Ac Bc =
1 3

Thus:   −1
0 1 1 1
P−1
c = Q Q−1 =
cc c
  1 3 2 4
0 1 4 −1
=21 (5.30)
 1 3  −2 1
−2 1
= 21
−2 2
We nally get:
 
1 −2 1 1
K = Kc P−1 (5.31)
   
c = 0 6 = −12 12 = −6 6
2 −2 2 2

The feedforward gain matrix H is computed thanks to (5.7) (where D = 0):


 −1
H = − C (A − BK)−1 B = −0.125 (5.32)

5.3.3 Ackermann's formula


Ackermann's formula states that the controller gain matrix K of a SISO system
in arbitrary state-space representation can be obtained as the product between
vector q Tc and the assigned characteristic polynomial χA−BK (s) of matrix A −
KC evaluated at matrix A:

K = q Tc χA−BK (A) (5.33)

To get this result we rst recall that similarity transformation generates


equivalent state-space representations. Let Pc be the matrix of the similarity
transformation which enables to get the controllable canonical form. Starting
5.3. Control of SISO systems 147

 
A B
from a state-space representations in an arbitrary basis, the
C D
controllable canonical form is obtained through the following relationships:

 Ac = P−1

c APc
−1
Bc = Pc B (5.34)
Cc = CPc

Consequently matrix Ac − Bc Kc reads:

Ac − Bc Kc = P−1 −1
c APc − Pc BKc
(5.35)
= P−1
c A − BKc P−1
c Pc

This equation indicates that the controller gain matrix K in arbitrary state-
space representation reads:
K = Kc P−1c (5.36)
We have seen in the chapter dedicated to Realization of transfer functions
that P−1
c is a constant nonsingular change of basis matrix which is obtained
through the state matrix A and vector q Tc :

q Tc
 
 q Tc A 
P−1 = .. (5.37)
 
c
.
 
 
q Tc An−1

Vector q Tc is the last row of the inverse of the controllability matrix Qc :


 

 .. 
Q−1 =  .  where Qc = B AB · · · An−1 B (5.38)
   
c
 ∗ 
q Tc

Then we recall CayleyHamilton theorem. Let χAc (s) be the characteristic


polynomial of the n × n matrix Ac . We write the characteristic polynomial
χAc (s) of matrix Ac as follows:

χAc (s) := det(sI − Ac ) = sn + an−1 sn−1 + · · · + a1 s + a0 (5.39)

The CayleyHamilton theorem states that substituting matrix Ac for s in


the characteristic polynomial χAc (s) of matrix Ac results in the zero matrix2 :

χAc (Ac ) = 0 = Anc + an−1 Acn−1 + · · · + a1 Ac + a0 I (5.40)

Let χA−BK (s) be the characteristic polynomial of matrix Ac − Bc Kc . We


have seen that when predened eigenvalues λK1 , · · · , λKn are assigned for the
2
https://en.wikipedia.org/wiki/CayleyHamilton_theorem
148 Chapter 5. Controller design

dynamics of the controller the characteristic polynomial of matrix Ac − Bc Kc


reads:
χA−BK (s) = det (sI − (Ac − Bc Kc ))
= (s − λK1 ) · · · (s − λKn ) (5.41)
n
= s + pn−1 s n−1 + · · · + p1 s + p0
Substituting s for matrix Ac leads to the following relationship:

χA−BK (Ac ) = Anc + pn−1 An−1


c + · · · + p1 Ac + p0 I (5.42)

Note that χA−BK (Ac ) is not equal to 0 because χA−BK (s) is not the
characteristic polynomial of matrix Ac .
Thanks to Equation (5.16) and the relationship pi = ai + Ki we get:

χA−BK (Ac ) = Anc + (an−1 + Kn−1 ) Acn−1 + · · ·


+ (a1 + K1 ) Ac + (a0 + K0 ) I (5.43)

By subtracting Equations (5.40) to (5.43) we get:

χA−BK (Ac ) = Kn−1 Acn−1 + · · · + K1 Ac + K0 I (5.44)

Due to the fact that coecients Ki are scalar we can equivalently write:

χA−BK (Ac ) = Acn−1 Kn−1 + · · · + Ac K1 + IK0 (5.45)

Let uT be the vector dened by:

uT = 1 0 · · · 0 (5.46)
 

Due to the special form of matrix Ac we have:


uT Ac =  0 1 0 · · ·
 

uT A2c = 0 0 1 0 · · ·

.. (5.47)
.
uT Acn−1 = 0 · · · 0 1
 

Thus multiplying Equation (5.45) by uT leads to the following relationship:

uT χA−BK (Ac ) = K0 K1 · · · Kn−1 = Kc (5.48)


 

Thus we get the expression of the controller matrix Kc when we use the
controllable canonical form.
We multiply Equation (5.48) by P−1 c and use the fact that
k
Ac = Pc APc = Pc A Pc get the expression of the controller gain matrix
k −1 −1 k

K in arbitrary state-space representation:


K = Kc P−1
c
= uT χA−BK (Ac )P−1
c
= uT χA−BK (Ac P−1
c )
(5.49)
= uT χA−BK (P−1 −1
c Pc Ac Pc )
= uT P−1 −1
c χA−BK (Pc Ac Pc )
T −1
= u Pc χA−BK (A)
5.4. Observer-based controller 149

Because u is the vector dened by uT = we get using (5.37):


 
1 0 ··· 0

uT P−1 T
c = qc (5.50)
Consequently Equation (5.49) reduces to be the Ackermann's formula (5.33):
K = q Tc χA−BK (A) (5.51)

5.3.4 Zeros of closed-loop transfer function


It is worth noticing that the zeros of the closed-loop transfer function are the
same than the zeros of the open-loop transfer function when state feedback is
used. In other words, state feedback K just changes the values poles of the
poles, the zeros remaining unchanged.
To get this result, we can use the controllable canonical form to compute
the closed-loop transfer function, Cc (sI − Ac + Bc Kc )−1 Bc H, and notice that
its numerator is independent of both state feedback gain Kc and state matrix
Ac . The coecients which appear in the numerator of the closed-loop transfer
function come from product Cc H when the controllable canonical form is used,
or CBH in general, whereas state feedback gain Kc , or K in general, only
appears in the denominator of the closed-loop transfer function:

    
∗ ∗ 1 0
1 ∗ ∗ s   .. 
  . 
 
(sI − Ac + Bc Kc )−1 Bc =  .. .. ..
 
 det (sI − Ac + Bc Kc )  . . .
   
  0 
∗ ∗ s n−1 1
 
1
Cc  s 
⇒ Cc (sI − Ac + Bc Kc )−1 Bc H = ..  H
 
det (sI − Ac + Bc Kc )  . 

sn−1
(5.52)
A practical use of this observation is that state feedback gain K can be used
to annihilate some zeros with negative real part (that are stable zeros).

5.4 Observer-based controller


5.4.1 Separation principle
We consider the following state-space representation of dimension n (that is the
size of state matrix A) where y(t) denotes the output vector and u(t) the input
vector:

ẋ(t) = Ax(t) + Bu(t)
(5.53)
y(t) = Cx(t) + Du(t)
When the full state x(t) cannot be measured then it is estimated thanks to
an observer. This leads to an observer-based controller whose dynamics reads
as follows:
150 Chapter 5. Controller design

Figure 5.1: Block diagram of the observer-based controller

˙
 
x̂(t) = Ax̂(t) + Bu(t) + L y(t) − (Cx̂(t) + Du(t))
(5.54)
u(t) = Hr(t) − Kx̂(t)
Gain matrices L, K and H are degrees of freedom which shall be set to
achieve some performance criteria.
The block diagram corresponding to the observer-based controller is shown
in Figure 5.1.
The estimation error e(t) is dened as follows:

e(t) = x(t) − x̂(t) (5.55)

The time derivative of the estimation error reads:


˙
ė(t) = ẋ(t) − x̂(t) 
= Ax(t) − Ax̂(t) − L y(t) − Cx̂(t) − Du(t)
= Ax(t) − Ax̂(t) − L (Cx(t) + Du(t) − Cx̂(t) − Du(t)) (5.56)
= Ae(t) − LCe(t)
= (A − LC) e(t)

Combining the dynamics of the state vector x(t) and of the estimation error
e(t), and using the fact that x̂(t) = x(t)−e(t), yields to the following state-space
representation for the closed-loop system:
     
ẋ(t) x(t) BH
= Acl + r(t) (5.57)
ė(t) e(t) 0
5.4. Observer-based controller 151

where:  
A − BK BK
Acl = (5.58)
0 A − LC
Gain matrices L and K shall be chosen such that the eigenvalues of matrices
A − BK and A − LC are situated in the left half complex plane so that the
closed-loop system is asymptotically stable.
Furthermore it is worth noticing that matrix is block triangular.
Consequently we can write:
 
sI − A + BK −BK
det (sI − Acl ) = det
0 sI − A + LC
= det (sI − A + BK) det (sI − A + LC) (5.59)

In other words the eigenvalues of the closed-loop system are obtained by


the union of the eigenvalues of matrix A − BK, that is the state matrix of the
closed-loop system without the observer, and the eigenvalues of matrix A − LC,
that is the state matrix of the closed-loop system without the controller. This
result is known as the separation principle. As a consequence the observer
and the controller can be designed separately: the eigenvalues obtained thanks
to the controller gain K assuming full state feedback are independent of the
eigenvalues obtained thanks to the observer gain L assuming no controller.
Usually observer gain L is chosen such that the eigenvalues of matrix A−LC
are around 5 to 10 times faster than the eigenvalues of matrix A − BK, so that
the state estimation moves towards the actual state as early as possible.
Furthermore the reference input r(t) has no inuence on the dynamics of
the estimation error e(t). Consequently the feedforward gain matrix H is still
given by Equation (5.7).

5.4.2 Example
Design an output feedback controller for the following unstable plant:
    
1 0 1
 ẋ(t) = x(t) + u(t)


0 2 2
(5.60)

  
y(t) = 3 5 x(t)

The poles of the controller shall be chosen to render the closed-loop stable
and to satisfy some specications. We choose (for example) to locate the poles
of the controller at λK1 = −1 and λK2 = −2.
First we check that is system is observable and controllable.
We have seen in example 5.1 how to design a state feedback controller. By
applying the separation principle the observer which estimates the state vector
x̂(t) which will feed the controller can be designed separately from the controller.
We have obtained:   
K = −6 6
(5.61)
H = −0.125
152 Chapter 5. Controller design

As mentioned the eigenvalues of the observer are chosen around 5 to 10


times faster than the eigenvalues achieved thanks to the controller. As far as
the closed-loop poles obtained thanks to the controller are located at λK1 = −1
and λK2 = −2 we choose (for example) to locate the poles of the observer at
λL1 = −10 and λL2 = −20.
As described in the chapter dedicated to Observer design, we rst design
the observer assuming that we have the observable canonical form of the SISO
system. The observable canonical form is readily obtained through det(sI − A):
det(sI − A) 2 2
 = (s −1)(s − 2) = s − 3 s + 2 := s + a1 s + a0
0 −2 (5.62)
and Co = 0 1
 
⇒ Ao =
1 3
On the other hand the characteristic polynomial of the observer is formed
thanks to the predened eigenvalues assigned for the dynamics of the observer:
χA−LC (s) = (s − λL1 ) (s − λL2 ) = (s + 10) (s + 20)
(5.63)
= s2 + 30 s + 200 := s2 + p1 s + p0
Applying relationship (4.21) we get:
       
L1 p 0 − a0 200 − 2 198
Lo = = = = (5.64)
L2 p 1 − a1 30 + 3 33
Now let's compute the similarity transformation matrix Po which enables
to get the observable canonical form.
Po = Q−1
o Qoo (5.65)
Where:
− Qo is the observability matrix in the actual basis:
 
  3 5   
C 3 5
(5.66)

Qo = =   1 0 =
CA 3 5 3 10
0 2

− and Qoo the observability matrix expressed in the observable canonical


basis (which is readily obtained through det (sI − A)):
 
  0 1  
Co 0 1
(5.67)
 
Qoo = =    0 −2  =
Co Ao 0 1 1 3
1 3

Thus:  −1  
3 5 0 1
Po = Q−1
o Qoo =
 3 10  1 3
10 −5 0 1
= 1
15
(5.68)
 −3 3  1 3
1 −5 −5
= 15
3 6
We nally get:
    
1 −5 −5 198 −77
L = Po Lo = = (5.69)
15 3 6 33 52.8
5.4. Observer-based controller 153

Figure 5.2: Unity feedback loop

5.4.3 Transfer function


Assuming D = 0, the transfer function of the observer-based controller can be
obtained by taking the Laplace transform (assuming no initial conditions) of its
state space representation:
˙
 
x̂(t) = Ax̂(t) + Bu(t) + L y(t) − Cx̂(t)
(5.70)
u(t) = −Kx̂(t)

We get:
U (s) = C(s)Y (s) (5.71)
Where:
C(s) = −K (sI − A + BK + LC)−1 L (5.72)

5.4.4 Algebraic controller design


We consider the unity feedback loop shown in Figure 5.2. The realization of the
plant transfer function F (s) is assumed to be the following:

ẋp (t) = Axp (t) + Bu(t)
(5.73)
y(t) = Cxp (t)

On the other hand, the realization of the controller transfer function C(s)
is assumed to be the following, where gain matrices K and L are the design
parameters of the controller :

ẋc (t) = (A − BK − LC) xc (t) + L(t)
(5.74)
u(t) = Kxc (t)

From Figure 5.2 we get the following relationships:



(t) = r(t) − y(t) = r(t) − Cxp (t)
(5.75)
u(t) = Kxc (t)

Thus the state space realization of the unity feedback loop reads:

 ẋp (t) = Axp (t) + BKxc (t)
(5.76)

ẋc (t) = (A − BK − LC) xc (t) + L r(t) − Cxp (t)
y(t) = Cxp (t)

154 Chapter 5. Controller design

That is:
       
ẋp (t) A BK x p (t) 0
= + r(t)


ẋc (t) −LC A−  BK − LC xc (t) L



 xp (t) (5.77)
 y(t) = C 0


xc (t)

Then the closed-loop state matrix Acl reads:


 
A BK
Acl = (5.78)
−LC A − BK − LC

The closed-loop eigenvalues are the roots of the characteristic polynomial


χAcl (s) dened as follows:
 
sI − A −BK
χAcl (s) = det (sI − Acl ) = det (5.79)
LC sI − A + BK + LC

Now we will use the fact that adding one column / row to another column
/ row does not change the value of the determinant. Thus
 adding the second
sI − A −BK
row to the rst row of leads to the following
LC sI − A + BK + LC
expression of χAcl (s):
 
sI − A + LC sI − A + LC
χAcl (s) = det (5.80)
LC sI − A + BK + LC

 Now subtracting the rst column  to the second column of


sI − A + LC sI − A + LC
leads to the following expression of
LC sI − A + BK + LC
χAcl (s):
 
sI − A + LC 0
χAcl (s) = det (5.81)
LC sI − A + BK
It is worth noticing that matrix is block triangular. Consequently we can
write:

χAcl (s) = det (sI − Acl ) = det (sI − A + LC) det (sI − A + BK) (5.82)

In other words the eigenvalues of the closed-loop system are obtained by


the union of the eigenvalues of matrix A − BK, that is the state matrix of the
closed-loop system without the observer, and the eigenvalues of matrix A − LC,
that is the state matrix of the closed-loop system without the controller. This
result is known as the separation principle. As a consequence the observer
and the controller can be designed separately: the eigenvalues obtained thanks
to the controller gain K assuming full state feedback are independent of the
eigenvalues obtained thanks to the observer gain L assuming no controller.
It is worth noticing that the same result is achieved when the controller C(s)
is put in the feedback loop as shown in Figure 5.3.
5.5. Control of MIMO systems 155

Figure 5.3: Feedback loop with C(s)

5.5 Control of MIMO systems


5.5.1 Frequency domain approach for state feedback
We consider the state-space representation (5.83) where the state vector x is of
dimension n (that is the size of state matrix A). In addition u(t) denotes the
input vector. We will assume the following state feedback:

ẋ(t) = Ax(t) + Bu(t)
(5.83)
u(t) = −Kx(t) + Hr(t)
It can be shown that thanks to the Schur's formula the closed-loop
characteristic polynomial det(sI − A + BK) reads as follows:

det (sI − A + BK) = det (sI − A) det(I + KΦ(s)B) (5.84)


where:
Φ(s) = (sI − A)−1 (5.85)
Indeed we recall the Schur's formula:
 
A11 A12
det = det(A22 ) det(A11 − A12 A−1
22 A21 )
A21 A22 (5.86)
= det(A11 ) det(A22 − A21 A−1
11 A12 )

Setting A11 = Φ−1 (s), A21 = −K, A12 = B and A22 = I we get:
det (sI − A + BK) = det(Φ −1
 −1(s) + BK)
Φ (s) B
= det
−K I
(5.87)
= det(A11 ) det(A22 − A21 A−1
11 A12 )
= det(Φ−1 (s)) det(I + KΦ(s)B)
= det (sI − A) det(I + KΦ(s)B)
It is worth noticing that the same result can be obtained by using the
following properties of determinant:
det(I + M1 M2 M3 ) = det(I + M3 M1 M2 ) = det(I + M2 M3 M1 ) and
det(M1 M2 ) = det(M2 M1 ) . Indeed:
  
det (sI − A + BK) = det (sI − A) I + (sI − A)−1 BK
= det ((sI − A) (I + Φ(s)BK)) (5.88)
= det (sI − A) det (I + Φ(s)BK)
= det (sI − A) det (I + KΦ(s)B)
156 Chapter 5. Controller design

Let D(s) = det (sI − A) be the determinant of Φ(s), that is the


characteristic polynomial of the plant, and Nol (s) = adj (sI − A) B be the
adjugate matrix of sI − A times matrix B:

adj (sI − A) B Nol (s)


Φ(s)B = (sI − A)−1 B = := (5.89)
det (sI − A) D(s)

Consequently (5.84) reads:

det (sI − A + BK) = det (D(s)I + KNol (s)) (5.90)

As soon as λKi is a desired closed-loop eigenvalue then the following


relationship holds:
det (D(s)I + KNol (s))|s=λK = 0 (5.91)
i

Consequently it is desired that matrix D(s)I + KNol (s)|s=λK is singular.


i
Following Shieh & al.3 , let ω i 6= 0 be a vector of size m × 1, where m is the
number of columns of B (that is the size of the input vector u(t) of the plant),
and belonging to the kernel of matrix D(s)I + KNol (s)|s=λK . Thus changing
i
s by λKi we can write:

(D(λKi )I + KNol (λKi )) ω i = 0 (5.92)

Actually, vector ω i 6= 0 can be used as a design parameter.


In order to get gain K the preceding relationship is rewritten as follows:

KNol (λKi )ω i = −D(λKi )ω i (5.93)

This relationship does not lead to the value of gain K as soon as Nol (λKi )ω i
is a vector which is not invertible. Nevertheless assuming that n denotes the
order of state matrix A we can apply this relationship for the n desired closed-
loop eigenvalues. We get:

(5.94)
   
K v K1 · · · v Kn =− p1 · · · pn

Where vectors v Ki and pi are given by:



v Ki = Nol (λKi ) ω i
(5.95)
pi = D(λKi ) ω i

We nally retrieve expression (5.136) of the static state feedback gain matrix
K:
−1
(5.96)
 
K=− p1 · · · pn v K1 · · · v Kn
3
L. S. Shieh, H. M. Dib and R. E. Yates, Sequential design of linear quadratic state
regulators via the optimal root-locus techniques, IEE Proceedings D - Control Theory and
Applications, vol. 135, no. 4, pp. 289-294, July 1988.
5.6. Pre-ltering applied to SISO plants 157

5.5.2 Invariance of (transmission) zeros under state feedback


We consider the following system:

ẋ(t) = Ax(t) + Bu(t)
(5.97)
y(t) = Cx(t) + Du(t)

We have seen in section 1.5 that the (transmission) zeros of the open-loop
transfer function F(s) = C (sI − A)−1 B + D are dened as the values of s such

sI − A −B
that the rank of the Rosenbrock's system matrix R(s) = is
C D
lower than its normal rank, meaning that the rank of R(s) drops.
Now, assume that we apply the following feedback on the plant:

u(t) = −Kx(t) + Hr(t) (5.98)

Thus the closed-loop state space realization reads:



ẋ(t) = (A − BK) x(t) + BHr(t)
(5.99)
y(t) = (C − DK) x(t) + DHr(t)

Thus the closed-loop transfer function G(s) reads:

G(s) = (C − DK) (sI − (A − BK))−1 BH + DH (5.100)

The (transmission) zeros of the closed-loop transfer function G(s) are dened
as the values of s such that the rank of the Rosenbrock's system matrix Rcl (s) is
lower than its normal rank, meaning that the rank of R(s) drops, where Rcl (s)
is dened as follows:
 
sI − (A − BK) −BH
Rcl (s) = (5.101)
(C − DK) DH

The Rosenbrock's system matrix Rcl (s) can be re-written as follows:


    
sI − A −B I 0 I 0
Rcl (s) = = R(s) (5.102)
C D −K H −K H

Thus, assuming that R(s) is a square matrix, we can write det (Rcl (s)) =
det (R(s)) det (H), from which it follows that the (transmission) zeros of a plant
are invariant under state feedback.

5.6 Pre-ltering applied to SISO plants


We will assume hereafter the following state feedback control of a SISO plant:

 ẋ(t) = Ax(t) + Bu(t)
u(t) = −Kx(t) + rpf (t) (5.103)
z(t) = Nx(t)

As shown in Figure 5.4, the prelter Cpf (s) is a controller which is situated
outside the feedback loop.
158 Chapter 5. Controller design

Figure 5.4: State feedback loop with prelter

What is the purpose of the prelter ? Once the state feedback gain K is
designed, the eigenvalues of closed-loop state matrix A − BK are set, but not
the zeros of the closed-loop transfer function G(s):

Z(s)
G(s) = = N (sI − (A − BK))−1 B (5.104)
Rpf (s)

These zeros may cause undesirable overshoots in the transient response of


the closed-loop system. The purpose of the prelter Cpf (s) is to reduce or
eliminate such overshoots in the closed-loop system. Additionally the prelter
may annihilate slow stable poles which sometimes cannot be shifted by the
controller.
We focus in Figure 5.4. Let Ncl (s) be the numerator of transfer function
G(s) = RZ(s)
pf (s)
and Dcl (s) its denominator:

Z(s) Ncl (s)


G(s) = = (5.105)
Rpf (s) Dcl (s)

We will assume that transfer function RZ(s)pf (s)


has all its zeros with negative
real-parts, or equivalently that all the roots of Ncl (s) are located in the left half
plane.
Prelter Cpf (s) is designed such that its poles cancel the zeros of the closed-
loop system (i.e. the roots of Ncl (s)). If there is no pole of the closed-loop
system to cancel, the numerator of the prelter is set to be a constant Kpf . In
such a case the transfer function of the full system reads:

Z(s) Kpf
= (5.106)
R(s) Dcl (s)
As a consequence the transfer function of the prelter reads:
Kpf
Cpf (s) = (5.107)
Ncl (s)

Note that this is only possible because the roots of Ncl (s) have negative
real-parts, meaning Cpf (s) is stable.
5.7. Control with integral action 159

Figure 5.5: State feedback loop with prelter inside the closed-loop

Z(s)
Usually constant Kpf is set such that the static gain of R(s) is unitary,
meaning that the position error is zero:

Y (s)
= 1 ⇒ Kpf = Dcl (0) (5.108)
R(s) s=0

Additionally the numerator of the prelter may also cancel some slow stable
poles (poles in the left plane) of the closed-loop system when they are not placed
by the controller K. In this case, the numerator of the prelter Cpf (s) is no
more a constant.
Equivalently, the pre-lter may be inserted inside the closed-loop, as shown
in Figure 5.5.
Figure 5.4 and 5.5 are equivalent as soon as the following relationship holds:

C2 (s)G(s)
Cpf (s)G(s) = (5.109)
1 + C2 (s)G(s)

Finally, controller C2 (s) can be computed from Cpf (s) as follows:

C2 (s) Cpf (s)


Cpf (s) = ⇔ C2 (s) = (5.110)
1 + C2 (s)G(s) 1 − G(s)Cpf (s)

5.7 Control with integral action


We consider the state-space representation (5.111) where the state vector x is
of dimension n (that is the size of state matrix A). In addition z(t) denotes the
output vector and u(t) the input vector. We will assume that the feedforward
gain matrix D is zero (D = 0):

ẋ(t) = Ax(t) + Bu(t)
(5.111)
z(t) = Cx(t)
In some circumstances it may be helpful to use integral action in the
controller design. This can be achieved by adding to the state vector of the
state-space realization (5.111) the integral of the tracking error eI (t) which is
160 Chapter 5. Controller design

dened as follows where T is a design matrix (usually T = I) and where r(t) is


the reference input signal:
Z t
eI (t) = T (z(τ ) − r(τ )) dτ (5.112)
0

As far as the feedforward gain matrix D is zero (D = 0) we get:

ėI (t) = T (z(t) − r(t)) = TCx(t) − Tr(t) (5.113)

This leads to the following augmented state-space realization:

         
ẋ(t) A 0 x(t) B 0
= + u(t) + r(t)


 ėI (t)   TC 0  eI (t) 0 −T

(5.114)
z(t) C 0 x(t)
=


eI (t) 0 I eI (t)

The regulation problem deals with the case where r(t) = 0. In that situation
the preceding augmented state-space realization has the same structure than the
state-space realization (5.111). Thus the same techniques may be applied for
the purpose of regulator design.
On the other hand the tracking problem deals with the case where r(t) 6= 0.
Let's denote xa (t) the augmented state-space vector:
 
x(t)
xa (t) = (5.115)
eI (t)

Thus the augmented state-space realization (5.114) reads:



ẋa (t) = Aa ζ(t) + Ba u(t) + Er(t)
(5.116)
z(t) = Ca ζ(t)

5.7.1 Roppenecker's formula


Roppenecker's formula and Sylvester equation
We consider the following state-space representation where y(t) denotes the
measured output signal and u(t) the control input:

ẋ(t) = Ax(t) + Bu(t)
(5.117)
y(t) = Cx(t) + Du(t)
We will assume in the following that only the output vector y(t) is available
for control.
Let r(t) be a reference input signal. A static output feedback controller
computes the control input u(t) as a function of a state-feedback gain K and a
feedforward gain matrix H as follows:

u(t) = −Ky(t) + Hr(t) (5.118)


5.7. Control with integral action 161

Using the output equation y(t) = Cx(t) + Du(t) the control input u(t) can
be expressed as a function of the state vector x(t) and the reference input r(t):

u(t) = −K (Cx(t) + Du(t)) + Hr(t)


(5.119)
⇒ u(t) = (I + KD)−1 (−KCx(t) + Hr(t))

Substituting the control law (5.119) into the state equation (5.117) of the
system reads:

ẋ(t) = Ax(t) + B (I + KD)−1 (−KCx(t) + Hr(t))


  (5.120)
= A − B (I + KD) KC x(t) + B (I + KD)−1 Hr(t)
−1

We denote by Acl the closed-loop state matrix:

Acl = A − B (I + KD)−1 KC (5.121)

It is worth noticing that in the special case where the feedforward gain
matrix D is zero (D = 0) and where the output matrix C is equal to identity
(C = I) then the static output feedback controller K reduces to be a static state
feedback controller.
Let λK1 , · · · , λKn be n distinct specied eigenvalues of the closed-loop state
matrix Acl . Furthermore we assume that eigenvalues of matrix A do not shift
(meaning that they are dierent) the eigenvalues λKi of the closed-loop state
matrix Acl . Let v Ki be an eigenvector of the closed-loop state matrix Acl
corresponding to eigenvalue λKi :
 
A − B (I + KD)−1 KC v Ki = λKi v Ki (5.122)

The preceding relationship can be rewritten as follows:

(A − λKi I) v Ki − B (I + KD)−1 KCv Ki = 0 (5.123)

Let's pi be the parameter vector which is actually the input direction


corresponding to eigenvector v Ki :

pi = − (I + KD)−1 KCv Ki (5.124)

Combining Equations (5.123) and (5.124) leads to the following relationship:


 
 vK
(5.125)

A − λKi I B i
=0
pi
 
v Ki
From the preceding relationship it is clear that vector belongs to
pi
the kernel of matrix A − λKi I B
 

Writing (5.125) for all the distinct predened eigenvalues


Λp = diag(λK1 , · · · , λKp ) of the closed-loop state matrix leads to the so-called
Sylvester matrix equation:

AV − VΛp + BP = 0 (5.126)
162 Chapter 5. Controller design

Where matrices P and V are dened as follows:


( h i
P = p1 . . . pp = − (I + KD)−1 KCV
  (5.127)
V = v K1 . . . v Kp

It is clear that as soon as v Ki = − (A − λKi I)−1 Bpi then kernel equation


(5.125) is solved. Consequently matrices P and V satisfying Sylvester matrix
equation (5.126) are obtained as follows where m × r parameter matrix P is a
real matrix of rank m:
 h i
 P = p ··· p where rank (P) = m
h 1 p i (5.128)
 V = W1 p · · · Wp p
1 p

Where: (  T
pi = pi,1 · · · pi,m
(5.129)
Wi = − (A − λKi I)−1 B

There are p vectors pi , i = 1, · · · , p to determine, each of size m, thus m × p


unknowns. Thus the number n of required eigenvalues λKi , i = 1, · · · , n shall
be such that m × p ≥ n.
From the denition of matrix P given in (5.127) we get:

P = − (I + KD)−1 KCV
⇔ P = − (I + KD)−1 KCV
(5.130)
⇔ (I + KD) P = −KCV
⇔ K (CV + DP) = −P

Usually matrix CV + DP is not square. Consequently the static output


feedback gain K is obtained by taking the pseudo-inverse of matrix CV + DP:
 −1
K = −P (CV + DP)T (CV + DP) (CV + DP)T (5.131)

In the special case where matrix CV + DP is square and invertible the


preceding relationship reads:

K = −P (CV + DP)−1 (5.132)

Or equivalently:
−1
(5.133)
    
K=− p1 . . . pn C v K1 . . . v Kn +D p1 . . . pn

The preceding relationship is the so-called Roppenecker's formula4 to get


the static output feedback gain matrix K.
4
G. Roppenecker, On Parametric State Feedback Design, International Journal of Control,
Volume 43, 1986 - Issue 3
5.7. Control with integral action 163

Comments on Roppenecker's formula


We recall that the n distinct eigenvalues λKi of the closed-loop state matrix and
the corresponding eigenvectors v Ki are related to the parameter vectors pi by
relationship (5.125) which is reported hereafter:
 
v Ki
(5.134)
 
A − λKi I B =0
pi

It is worth noticing the following facts:

− From the relationship:


 
v Ki
(5.135)
 
A − λKi I B =0
pi

 
v Ki
It is clear that each (n + m) × 1 vector belongs to the kernel of
pi
matrix A − λKi I B . So once any (n + m) × 1 vector which belongs
 

to the kernel of matrix A − λKi I B has been found, its m bottom


rows are used to form vector parameter pi . In the MIMO case several
possibilities are oered.

− We recognize in matrix the key matrix used in the PBH


 
A − λKi I B
controllability test;

− In the special case of state feedback where D = 0 and C = I then matrix


CV + DP = V where V is a square and invertible matrix. In that case
Equation (5.132) leads to the expression of the static state feedback gain
matrix K:

C=I −1
⇒ K = −PV−1 = − p1 . . . pn
  
v K1 . . . v Kn
D=0
(5.136)

− If we wish to keep an eigenvalue λi of matrix A within the set of eigenvalues


of the closed-loop state matrix Acl then (A − λKi I) v Ki is equal to zero
because in that case v Ki is also an eigenvector of A:

λKi = λi ⇒ (A − λKi I) v Ki = −Bpi = (A − λi I) v Ki = 0 (5.137)

Consequently we have to replace pi by 0 and v Ki by eigenvector v i of A


corresponding to λi in the Roppenecker's formula (5.132);

− The static output feedback gain K satisfy the following relationship:


 
K Cv Ki + Dpi = −pi (5.138)
164 Chapter 5. Controller design

Indeed by combining Equations (5.125) and (5.138) we retrieve Equation


(5.122):
(
AvKi + Bpi = λKi v Ki
K Cv Ki + Dpi = −pi ⇔ pi = − (I + KD)−1 KCv Ki (5.139)
 
−1
⇒ A − B (I + KD) KC v Ki = λKi v Ki

Conversely we can write the preceding equation as follows:


 
v Ki
(5.140)
 
A − λKi I B =0
− (I + KD)−1 KCv Ki

Thus by dening parameter vector pi as pi = − (I + KD)−1 KCv Ki we


 
retrieve K Cv Ki + Dpi = −pi which is exactly Equation (5.138).

− In the SISO case where D = 0 and C = I, that is where a state feedback


is assumed, the controller gain matrix K no more depends on parameter
vectors pi . Indeed is that case the controller gain matrix K is obtained as
follows:
 
K = 1 ··· 1
−1
(A − λK1 I)−1 B · · · (A − λKn I)−1 B (5.141)


To get this result we start by observing that in the SISO case where D = 0
and C = I parameter vector are scalars; they will be denoted pi . Let vector
K i be dened as follows:
K i = − (A − λKi I)−1 B (5.142)

Then Equation (5.133) reads:


−1
(5.143)
 
K = − p1 · · · pn K 1 p1 · · · K n pn
−1
Let's rearrange the term as follows:

K 1 p1 · · · K n pn
  −1
p1 0
 −1   ..
K 1 p1 · · · K n pn =  K1 · · · Kn .

 
0 pn
 −1
p1 0
..  −1
= . K1 · · · Kn
 

0 pn
 Q 
p
Qi6n=1 i 0
i=1 pi
..
  −1
= .  K1 · · · Kn
 
 Q 
p
0 Qi6n=n i
i=1 pi
(5.144)
5.8. Solving general algebraic Riccati and Lyapunov equations 165

Multiplying this expression by − p1 · · · pn leads to the expression


 

of K:
  −1
K = − p1 · · · pn  KQ1 p1 · · · K n pn 
pi
Qi6n=1 0
i=1 pi
 ..
  −1
=− p1 · · · pn  .  K1 · · · Kn
 
 Q 
p
0 Qi6n=n i
p
  −1 i=1 i
=− 1 ··· 1 K1 · · · Kn
(5.145)
−1
Using the expression of vector K i = − (A − λKi I) B provided by
Equation (5.142) we nally get:

 
K= 1 ··· 1
−1
(A − λK1 I)−1 B · · · (A − λKn I)−1 B (5.146)


We conclude that in the SISO case where D = 0 and C = I, that is where


a state feedback is assumed, the controller gain matrix K no more depends
on parameter vectors pi .

5.8 Solving general algebraic Riccati and Lyapunov


equations
The general algebraic Riccati equation reads as follows where all matrices are
square of dimension n × n:

AX + XB + C + XDX = 0 (5.147)
Matrices A, B, C and D are known whereas matrix X has to be determined.
The general algebraic Lyapunov equation is obtained as a special case of the
algebraic Riccati by setting D = 0.
The general algebraic Riccati equation can be solved5 by considering the
following 2n × 2n matrix H:
 
B D
H= (5.148)
−C −A

Let the eigenvalues of matrix H be denoted λ1 , i = 1, · · · , 2n, and the


corresponding eigenvectors be denoted v i . Furthermore let M be the 2n × 2n
matrix composed of all real eigenvectors of matrix H; for complex conjugate
eigenvectors, the corresponding columns of matrix M are changed into the real
and imaginary parts of such eigenvectors. Note that there are many ways to
form matrix M.
5
Optimal Control of Singularly Perturbed Linear Systems with Applications: High
Accuracy Techniques, Z. Gajic and M. Lim, Marcel Dekker, New York, 2001
166 Chapter 5. Controller design

Then we can write the following relationship:


 
Λ1 0
(5.149)
 
HM = MΛ = M1 M2
0 Λ2

Matrix M1 contains the n rst columns of M whereas matrix M2 contains


the n last columns of M.
Matrices Λ1 and Λ2 are diagonal matrices formed by the eigenvalues of H
as soon as there are distinct; for eigenvalues with multiplicity greater than 1,
the corresponding part in matrix Λ represents the Jordan form.
Thus we have: 
HM1 = M1 Λ1
(5.150)
HM2 = M2 Λ2

We will focus our attention on the rst equation and split matrix M1 as
follows:  
M11
M1 = (5.151)
M12

Using the expression of H in (5.148), the relationship HM1 = M1 Λ1 reads


as follows:

BM11 + DM12 = M11 Λ1
HM1 = M1 Λ1 ⇒ (5.152)
−CM11 − AM12 = M12 Λ1

Assuming that matrix M11 is not singular, we can check that a solution X
of the general algebraic Riccati equation (5.147) reads:

X = M12 M−1
11 (5.153)

Indeed:

 BM11 + DM12 = M11 Λ1
CM11 + AM12 = −M12 Λ1
X = M12 M−1

11
⇒ AX + XB + C + XDX = AM12 M−1 −1
11 + M12 M11 B + C
+M12 M−1 −1
11 DM12 M11
= (AM12 + CM11 ) M−1 11
+M12 M−1 11 (BM11 + DM12 ) M11
−1

= −M12 Λ1 M11 + M12 M11 M11 Λ1 M−1


−1 −1
11
=0
(5.154)
It is worth noticing that each selection of eigenvectors within matrix M1
leads to a new solution of the general algebraic Riccati equation (5.147).
Consequently the solution to the general algebraic Riccati equation (5.147) is
not unique. The same statement holds for dierent choice of matrix M2 and
the corresponding solution of (5.147) obtained from X = M21 M−1 22 .
5.9. Static output feedback 167

5.9 Static output feedback


5.9.1 Partial eigenvalues assignment
We consider in this section the following linear dynamical system where
u(t) ∈ Rm , x(t) ∈ Rn and y(t) ∈ Rp . Furthermore we assume that (A, B) is
controllable and that (A, C) is observable:

ẋ(t) = Ax(t) + Bu(t)
(5.155)
y(t) = Cx(t)

Let's consider a static output feedback where the control u(t) is proportional
to output y(t) through gain K as well as reference input r(t):

u(t) = −Ky(t) + Hr(t) (5.156)

Let Λ be the following diagonal matrix:


   
Λp 0 Λp = diag λK1 , · · · , λKp
Λ= where  (5.157)
0 Λn−p Λn−p = diag λKp+1 , · · · , λKn
It is assumed that Λp and Λn−p are self-conjugate sets and that Λ contains
distinct eigenvalues. The problem considered is to nd a real matrix K such
that the eigenvalues of A − BKC are those of the set Λ.
Brasch & Pearson10 have shown that the transfer function of the closed-loop
plant can be written as follows:

G(s) = C (sI − A + BKC)−1 BH


 −1
= I + C (sI − A)−1 BK C (sI − A)−1 BH (5.158)
 −1
= C (sI − A)−1 B I + KC (sI − A)−1 B H

Then, given any set Λp there exists a static output feedback gain K such
that the eigenvalues of A − BKC are precisely the elements of the set Λp .
Furthermore, in view of (5.158), the same methodology than in section 5.5.1
can be applied to compute K.
Let Nol (s) := adj (sI − A) B ∈ Rn×m , where adj (sI − A) stands for the
adjugate matrix of sI − A, and D(s) := det (sI − A) is the determinant of
sI − A, that is the characteristic polynomial of the plant :
adj (sI − A) B Nol (s)
(sI − A)−1 B = := (5.159)
det (sI − A) D(s)
Consequently, we get from (5.158) the expression of the characteristic
polynomial of the closed-loop transfer function G(s):

det (sIn − A + BKC) = det (D(s)Im + KCNol (s)) (5.160)

As soon as λKi is a desired closed-loop eigenvalue then the following


relationship holds:

det (D(s)Im + KCNol (s))|s=λK = 0 (5.161)


i
168 Chapter 5. Controller design

Consequently it is desired that matrix D(s)I + KCNol (s)|s=λK is singular.


i
Following Shieh & al.6 , let ω i 6= 0 be a vector of size m × 1, where m is the
number of columns of B (that is the size of the input vector u(t) of the plant),
and belonging to the kernel of matrix D(s)I + KCNol (s)|s=λK . Thus changing
i
s by λKi we can write:

(D(λKi )Im + KCNol (λKi )) ω i = 0 (5.162)

Actually, vector ω i 6= 0 ∈ Cm is used as a design parameter.


In order to get gain K the preceding relationship is rewritten as follows:

KCNol (λKi )ω i = −D(λKi )ω i (5.163)

This relationship does not lead to the value of gain K as soon as Nol (λKi )ω i
is a vector which is not invertible. Nevertheless assuming that n denotes the
order of state matrix A we can apply this relationship for the p closed-loop
eigenvalues given by Λp . We get:
h i
KC v K1 · · · v Kp = − p1 · · · pp (5.164)
 

Where vectors v Ki and pi are given by:



v Ki = Nol (λKi ) ω i
∀ i = 1, · · · , p (5.165)
pi = D(λKi ) ω i

We nally retrieve expression (5.136) of the static state feedback gain matrix
K to get the p closed-loop eigenvalues given by Λp :

K = −P (CV)−1 (5.166)

where:
( h i
P = D(λK1 ) ω 1 · · · D(λKp ) ω p := p1 · · · pp
 
    (5.167)
V = Nol (λK1 ) ω 1 · · · Nol (λKp ) ω p := v K1 · · · v Kp

As shown by Duan7 , by duality (5.166) can be changed as follows:


−1
K = −P BT V (5.168)

Then relationship (5.167) still holds when vectors v Ki and pi are dened as
follows where vector ν i 6= 0 ∈ Cp is used as a design parameter:

v Ki = Ndol (λKi ) ν i

∀ i = 1, · · · , m (5.169)
pi = Dd (λKi ) ν i
6
L. S. Shieh, H. M. Dib and R. E. Yates, Sequential design of linear quadratic state
regulators via the optimal root-locus techniques, IEE Proceedings D - Control Theory and
Applications, vol. 135, no. 4, pp. 289-294, July 1988.
7
G. R. Duan, Parametric eigenstructure assignment via output feedback based on singular
value decompositions, Proceedings of the 40th IEEE Conference on Decision and Control (Cat.
No.01CH37228), Orlando, FL, USA, 2001, pp. 2665-2670 vol.3.
5.9. Static output feedback 169

where Ndol (s) := adj sI − AT CT ∈ Rn×p , where adj sI − AT stands for


 

the adjugate matrix of sI − AT , and Dd (s) := det sI − AT is the determinant




of sI − AT , that is the characteristic polynomial of the dual plant :


T CT

−1 adj sI − A Ndol (s)
sI − AT CT = (5.170)

:=
det (sI − AT ) Dd (s)

Furthermore, and assuming that rank (B) = m and rank (C) = p, the
remaining n − p eigenvalues of the closed-loop matrix A − BKC can be
achieved by selecting parameter vectors ω i 6= 0 and ν j 6= 0 such that the
following constraints hold:

ω i 6= 0 ∈ Cm×1 , i = 1, · · · , p

ν j Nji ω i = 0 where
T
(5.171)
ν j 6= 0 ∈ Cp×1 , j = p + 1, · · · , n

where p × m matrix Nji is dened as follows:


 T
Nji = Ndol (λKj ) Nol (λKi ) (5.172)

Matrices Ndol (λKi ) and Nol (λKj ) are dened in (5.159) and (5.170).
The last component of each parameter vectors as follows is set as follows:

− If the eigenvalue λKi is real, the last component of parameter vectors ω i


and ν i is set to 1 ;

− If the eigenvalue λKi and λKj are complex conjugate, the last component
of parameter vectors ω i and ν i is set to 1 + j whereas the last component
of parameter vectors ω j and ν j is set to 1 − j ;

− More generally, Duan7 has shown that to fulll (5.171) parameter vectors
ω i and ν i are real as soon as λKi is real. But if λKi and λKj are complex
conjugate, that is λKi = λ̄Kj , then ω i = ω̄ j and ν i = ν̄ j .

Alexandridis & al.8 have shown that given a set Λ of n eigenvalues λKi for
the closed-loop system, we have to determine p parameter vectors ω i such that
there exits n − p parameter vectors ν i which solve the set of bilinear algebraic
equations (5.171).
From (5.171) there is p × (n − p) equality constraints which shall be fullled.
On the other hand, p parameter vectors ω i with m − 1 free parameters (the last
component is set) and n−p parameter vectors ν j with p−1 free parameters (the
last component is set) have to be found. A necessary condition for constraints
(5.171) to be solvable is that the number of equations must be equal or less than
the sum of the free parameters:

p × (n − p) ≤ p × (m − 1) + (n − p) × (p − 1) ⇔ m × p ≥ n (5.173)
8
A. T. Alexandridis and P. N. Paraskevopoulos, A new approach to eigenstructure
assignment by output feedback, IEEE Transactions on Automatic Control, vol. 41, no. 7,
pp. 1046-1050, July 1996
170 Chapter 5. Controller design

Thus a necessary condition for this set to be solvable is that m × p ≥ n.


However the condition m × p ≥ n does not assure that a solution exists (it is
not a sucient condition).
Furthermore, in the particular case where m + p ≥ n + 1, parameter vectors
ν j , j = p + 1, · · · , n can be arbitrarily set. In that case the set of equations
(5.171) reduce to a linear system of algebraic equations with ω i , i = 1, · · · , p as
unknown parameters.
As mentioned by Duan7 , an ecient manner to solve constraints (5.171) is
to use a Singular Value Decomposition (SVD) of matrices Nji which reads as
follows:
Nji = Uj Σji ViH



Λq 0


Σji =


 0 0



 
σ1 0 . . . 0 (5.174)

  0 σ2 . . . 0 
Λq =  . .. . .
  
 ..

. . ... 

 



0 0 0 σq

where:
Uj and Vi are unitary matrices


σi ∈ R+ ∀i = 1, 2, · · · , q


(5.175)
σ ≥ σ2 ≥ · · · ≥ σq > 0
 1


q = min(m, p) assuming that Nji has no eigenvalue equal to 0
In all cases, and assuming that ω i and possibly ν j have be chosen such that
det (CV) 6= 0, static output feedback K is computed thanks to (5.166).

5.9.2 Changing PID controller into static output feedback


We present hereafter some results provided by Zheng & al.9 which transforms
a PID controller to static output feedback.
We consider the following linear time-invariant system:

ẋ(t) = Ax(t) + Bu(t)
(5.176)
y(t) = Cx(t)
And the following PID controller where matrices Kp , Ki and Kd have to be
designed:  Z t 
d
u(t) = − Kp e(t) + Ki e(τ )dτ + Kd e(t) (5.177)
0 dt
where:
e(t) = y(t) − r(t) (5.178)
Let's denote xa (t) the augmented state-space vector dened as follows:
 
x(t)
xa (t) = R t (5.179)
0 e(τ )dτ
9
Zheng, F., Wang, Q.-G. & Lee, T. H. (2002). On the design of multivariable PID
controllers via LMI approach. Automatica 38, 517-526
5.9. Static output feedback 171

Thus:  
0
ẋa (t) = Aa xa (t) + Ba u(t) + r(t) (5.180)
−I
where:   
A 0
 Aa =


 C 0 (5.181)
B
 Ba =


0
Furthermore, assuming that ṙ(t) = 0, we have:
d
ṙ(t) = 0 ⇒ e(t) = Cẋ(t) = CAx(t) + CBu(t) (5.182)
dt
Using the denition of xa (t), the PID controller reads:
 Rt 
d
u(t) = − Kp e(t) + Ki 0 e(τ )dτ + Kd dt e(t)
d
= −Kp Cx(t)
  p Cr(t) − K
+K  i dt e(t)− Kd (CAx(t)
 + CBu(t))

= −Kp C 0 xa (t) − Ki 0 I xa (t) − Kd CA 0 xa (t)
 −K d CBu(t) + Kp Cr(t)
  C 0
= − Kp Ki Kd  0 I  xa (t) − Kd CBu(t) + Kp Cr(t)
CA 0
(5.183)
We will assume that I+Kd CB is invertible and dene Ca and Ka as follows:
  

 C 0
 C = 0 I 
a
(5.184)
 CA 0
Ka = (I + Kd CB)−1 Kp Ki Kd

  

Let K
e p, K
e i and K
e d be dened as follows:

 K
 e p = (I + Kd CB)−1 Kp
e i = (I + Kd CB)−1 Ki
K (5.185)

 Ke d = (I + Kd CB)−1 Kd

Assuming that K e p, K
e i and Ke d are known, gains Kp , Ki and Kd are obtained
as follows where it can be shown9 that matrix I − CBK e d is always invertible:
  −1

 d
 K = K
e d I − CBKe d

Kp = (I + Kd CB) Kp e (5.186)


 K = (I + K CB) K
i d
ei

Thus the problem of PID controller design is changed into the following
static output feedback problem:

 ẋa (t) = Aa xa (t) + Ba u(t)
y (t) = Ca xa (t) (5.187)
 a −1
u(t) = −Ka y a (t) + (I + Kd CB) Kp Cr(t)
172 Chapter 5. Controller design

It is worth noticing that the same results are obtained, but without the
assumption that ṙ(t) = 0, when a PI-D controller is used; for such a controller
the term multiplied by Kd is y(t) rather than e(t):
 Z t 
d
u(t) = − Kp e(t) + Ki e(τ )dτ + Kd y(t) (5.188)
0 dt

5.9.3 Adding integrators, controllability and observability


indexes
We consider the following controllable and observable state-space representation
where the state vector x is of dimension n (that is the size of state matrix A).
In addition y(t) denotes the output vector and u(t) the input vector. We will
assume that the feedforward gain matrix D is zero (D = 0):

ẋ(t) = Ax(t) + Bu(t)
(5.189)
y(t) = Cx(t)

Brasch & Pearson10 have computed the number ni of integrators that can
be added to increase the size of the output vector:

ni = min(pc − 1, po − 1) (5.190)

where pc is the controllability index of the plant and po the observability index
of the plant.
The controllability index pc of the plant is the smallest integers such that:

B AB · · · Apc −1 B (5.191)
 
rank =n

Similarly, the observability index po of the augmented plant is the smallest


integers such that:  
C
 CA 
rank  ..  = n (5.192)
 
 . 
CApo −1
The compensator in cascade with the plant will be taken to be ni integrations
of the component yi (t) = Ci x(t) of the output vector y(t) of the plant:

 ẋi1 (t) = yi (t) = Ci x(t)

.. (5.193)
 .
ẋi ni (t) = xi ni −1 (t)

Furthermore the control u(t) of the augmented plant, that is the plant and
the ni integrators, will be taken to be the actual input u(t) of the plant and the
10
F. Brasch and J. Pearson, Pole placement using dynamic compensators, IEEE
Transactions on Automatic Control, vol. 15, no. 1, pp. 34-43, February 1970.
5.10. Mode decoupling 173

ni integrations of the output yi (t) of the plant:


 
u(t)
 xi1 (t) 
u(t) =  .. (5.194)
 
.

 
xi ni (t)

Then we dene matrices Ani , Bni and Cni of the augmented plant as follows
where 0ni is the null matrix of size ni and Ini is the identity matrix of size ni :
  
A 0

 Ani =
 0 0ni 




B 0

Bni = (5.195)

  0 Ini 
C 0



 Cni =

0 Ini

Alternatively matrices Ani , Bni and Cni of the augmented plant can be
dened as follows where 0p×r is the null matrix of size p × r and Ini is the
identity matrix of size ni :
  

 A 0


 Ani = 
 Ci 01×ni 
..

 
 0(ni −1)×n Ini −1 . 0(ni −1)×1



B (5.196)
 Bni =
 0



 
C 0



 Cni =

0 Ini

The interest of the preceding state space representation of the augmented


plant is that its input vector uni (t) is the same than the input vector u(t) of the
actual plant :
uni (t) = u(t) (5.197)

5.10 Mode decoupling


The purpose of this section is to provide an overview of the method for mode
decoupling.

5.10.1 Input-output decoupling


We consider the following state-space representation of a controllable and
observable system where u(t) ∈ Rm denotes the control input, x(t) ∈ Rn the
state vector and y(t) ∈ Rp the output vector:

ẋ(t) = Ax(t) + Bu(t)
(5.198)
y(t) = Cx(t)
174 Chapter 5. Controller design

T
Let's assume that u(t) can be split into u1 (t) u2 (t) ; similarly we

T
assume that y(t) can be split into y 1 (t) y 2 (t) . Thus the state-space


representation reads:
  
  u1 (t)
 ẋ(t) = Ax(t) + B1 B2


u2 (t)
    (5.199)
y 1
(t) C1
= x(t)


y 2 (t) C2

The transfer function from u1 (t) to y 2 (t) is obtained by setting u2 (t) = 0


and assuming no initial condition. We get:

Fu1 y2 (s) = C2 (sI − A)−1 B1 (5.200)

Thus input u1 (t) and output y 2 (t) will be decoupled as soon as transfer
function Fu1 y2 (s) is null:

Fu1 y2 (s) = C2 (sI − A)−1 B1 = 0 (5.201)

From Neumann's theory, it is known that the inverse M−1 of a nonsingular


matrix M has the following series expansion as soon as the spectral radius of
the square matrix I − XM, that is the maximum moduli of its eigenvalues, is
lower than 111 :

X
−1
M = (I − XM)k X (5.202)
k=0

Setting X = I and M = I − A we get:



(I − A)−1 =
X
Ak (5.203)
k=0

This relationship can be related to the series expansion of (sI − A)−1 as


follows:
∞   ∞
A −1 1 X A k X Ak−1
 
−1 1
(sI − A) = I− = = (5.204)
s s s s sk
k=0 k=1

Thus transfer function Fu1 y2 (s) reads:



Ak−1
Fu1 y2 (s) = C2 (sI − A)−1 B1 =
X
C2 B1 (5.205)
sk
k=1

We conclude that transfer function Fu1 y2 (s) is null as soon as the following
relationship holds:

Fu1 y2 (s) = 0 ⇔ C2 Ak B1 = 0 ∀k ≥ 0 (5.206)


11
Joan-Josep Climent, Néstor Thome, Yimin Wei, A geometrical approach on generalized
inverses by Neumann-type series, Linear Algebra and its Applications 332334 (2001) 533540
5.10. Mode decoupling 175

Let Qc1 be the following controllability matrix:

Qc1 = B1 AB1 · · · An−1 B1 (5.207)


 

Let Qo2 be the following observability matrix:


 
C2
 C2 A 
Qo2 =  .. (5.208)
 
.

 
C2 An−1

Then relationship (5.206) with Cayley-Hamilton theorem indicates that a


necessary and sucient condition for u1 (t) to be decoupled of y 2 (t) is that the
controllable subspace of (A, B1 ) is contained in the unobservable subspace of
(A, C2 ). Denoting by ker (Qo2 ) the kernel of Qo2 and by range (Qc1 ) the span
of Qc1 , we shall have12 :

range (Qc1 ) ⊂ ker (Qo2 ) (5.209)

This condition is equivalent to the existence of an invertible change of basis


matrix Pn which denes a new state vector xn (t) as follows:

−1 ẋn (t) = An xn (t) + Bn u(t)
x(t) = Pn xn (t) ⇔ xn (t) = Pn x(t) ⇒ (5.210)
y(t) = Cn xn (t)

Where:
 " #
A
e 11 0
An = P−1

n APn :=


A
e 21 A

 e 22


  
 h i 0
Bn = B1 B2 where B1 = Pn B1 := e
e e e −1 (5.211)

 " # B21

C

 e1 h i
C = where C = C P :=


 n
 e 2 2 n C
e 21 0
Ce2

5.10.2 Eigenstructure assignment


We consider the following state-space representation of a controllable and
observable system where u(t) ∈ Rm denotes the control input, x(t) ∈ Rn the
state vector and y(t) ∈ Rp the output vector:

ẋ(t) = Ax(t) + Bu(t)
(5.212)
y(t) = Cx(t)
where A ∈ Rn×n , B ∈ Rn×m , C ∈ Rp×n .
When the control input u(t) is a state feedback we have:

u(t) = −Kx(t) + Hr(t) (5.213)


12
Luigi Glielmo and Martin Corless, On output feedback control of singularly perturbed
systems, Applied Mathematics and Computation Volume 217, Issue 3, 1 October 2010, Pages
1053-1070
176 Chapter 5. Controller design

Figure 5.6: Modal decomposition of a transfer function

Then the closed-loop system reads:



ẋ(t) = (A − BK) x(t) + BHr(t)
(5.214)
y(t) = Cx(t)

Similarly to the open-loop case the transfer function GK (s) of the closed-
loop system when the control u(t) is −Kx(t) + Hr(t) reads:

Y (s) = GK (s)R(s) (5.215)

Where:
GK (s) = C (sI − (A − BK))−1 BH (5.216)
As in the open-loop case the transfer function GK (s) of the closed-loop
system may be expressed as a function of the closed-loop eigenvalues λKi and
the left and right eigenvectors of matrix A−BK. Assuming that matrix A−BK
is diagonalizable we have:
n
X Cv Ki wTKi BH
GK (s) = (5.217)
s − λKi
i=1

Figure 5.6 presents the modal decomposition of the transfer function where
xm (t) is the state vector expressed in the modal basis and matrices Λcl , P and
P−1 are dened as follows:
  
 λK 1
..


Λcl =  .

  

 



 λKn
(5.218)

P = vK1 · · · v Kn

 T
wK1

 .. 



 −1
P = . 



wTKn

Vector v Ki is a right eigenvector corresponding to eigenvalue λKi : it is a real


vector if the eigenvalue λKi is real, a complex vector otherwise.
The components of the desired eigenvector v Ki can be used for decoupling.
Indeed we can see from the modal decomposition of the transfer function
provided in (5.217) that:
5.10. Mode decoupling 177

− Mode λKi will not appear in the j th component of the state vector x(t) if
the following relationship holds:

f Tj v Ki = 0 (5.219)

where vector f Tj is a row vector which contains 1 on the j th column and


0 elsewhere:
f Tj = [ 0 · · · 0 1 0 ··· 0 ]
|{z} (5.220)
j th column

T
For instance if v Ki = ∗ ∗ 0 ∗ where ∗ represents unspecied


components then f j = 0 0 1 0 since:


T
 

T
⇒ f Tj v Ki = (5.221)
  
v Ki = ∗ ∗ 0 ∗ 0 0 1 0 v Ki = 0

− Mode λKi will not appear in the j th component of the output vector y(t)
if the following relationship holds:

f Tj Cv Ki = 0 (5.222)

− Similarly mode λKi will not be excited by the j th component of the control
vector u(t) if the following relationship holds:

f Tj Kv Ki = 0 (5.223)

This relationship comes from the fact that the the control vector u(t) is
built from the state feedback −Kx(t).

− Finally mode λKi will not be excited by the j th component of the reference
input r(t) if the following relationship holds:

wTKi BHv Ki f j = 0 (5.224)

5.10.3 Design procedure


The following design procedure for mode decoupling and eigenstructure
assignment has been suggested by Chouaib and Pradin 13

− Assuming that state matrix A is of dimension n and that (A, B) is


controllable we dene n closed-loop eigenvalues λK1 , · · · , λKn and dene
which components of the output vector y(t) will be decoupled from
which eigenvalue. This leads to the expression of matrix CP where
coecients 0 indicates a decoupling, 1 a coupling and ∗ an unspecied
13
I. Chouaib and B. Pradin, On mode decoupling and minimum sensitivity
by eigenstructure assignment, Electrotechnical Conference, 1994. Proceedings., 7th
Mediterranean, Antalya, 1994, pp. 663-666 vol.2.
178 Chapter 5. Controller design

component between the corresponding output and eigenvalue. From the


product CP we get the expression of f Tj C which summarizes the
decoupling constraints on the j th component of the output vector y(t).
And the end of this step we dened n matrices S(λKi ) as follows:
" #
A − λKi I B
S(λKi ) = (5.225)
f Tj C 0

− Then compute matrix R(λKi ) whose columns constitute a basis of the


right null-space of S(λKi ):

S(λKi )R(λKi ) = 0 (5.226)

It is worth noticing that matrix R(λKi ) can be obtained through a


singular value decomposition of matrix S(λKi )14 . Indeed singular value
decomposition of matrix S(λKi ) leads to the following decomposition
where UUT = I and VVT = I:
 
σi1
..  T
(5.227)
S(λKi ) = U  . 0 V

σin

 
σi1
Denoting Σ =  ..  we get:
.
 

σin

S(λKi ) = U Σ  0 VT
 

⇔ S(λKi )V = U
 Σ 0 (5.228)
⇔ S(λKi )V = UΣ 0

Let v i,1 , v i,2 , · · · , v i,(n+m) be the vectors which form matrix V:

(5.229)
 
V= v i,1 · · · v i,n v i,(n+1) · · · v i,(n+m)

From (5.228) it is clear that the set of vectors v i,(n+1) , · · · , v i,(n+m) satisfy
the following relationship:

S(λKi ) v i,j = 0 ∀ j = n + 1, · · · , n + m (5.230)

Consequently matrix R(λKi ) can be dened as follows:

(5.231)
 
R(λKi ) = v i,(n+1) · · · v i,(n+m)
14
P. Kocsis, R. Fonod, Eigenstructure Decoupling in State Feedback Control Design, ATP
Journal plus, HMH s.r.o., 2012, ATP Journal plus, 2, pp.34-39. <hal-00847146>
5.10. Mode decoupling 179

− Matrix R(λKi ) is then compatibly partitioned between matrix N(λKi ) and


matrix M(λKi ). Matrix N(λKi ) is built from the n rst rows of R(λKi ):
 
N(λKi )
R(λKi ) = (5.232)
M(λKi )

Each vector π i which belongs to the kernel of S(λKi ) is characterized by


a non zero parameter vector z i such that:

π i = R(λKi ) z i ⇒ S(λKi )R(λKi ) z i = 0 (5.233)

As a consequence the right eigenvector v Ki , which constitutes the ith


column of matrix P, can be written as follows:

v Ki = N(λKi ) z i (5.234)

Parameter vector z i may be used to minimize the sensitivity of the assigned


eigenvalues as it will be seen in the next section.

− Finally decompose
 matrix B
 as follows where Y is a non-singular matrix
and where U = U0 U1 is an orthogonal matrix such that:
 
 Y
(5.235)

B = U0 U1
0

One possible way to derive this decomposition is to use the singular value
decomposition of B:  
Σ
B=U VT (5.236)
0

Where Σ is a diagonal matrix formed by the rank(B) = m singular values


of B (matrix B is assumed to have full column rank) and where U and V
are orthogonal matrices (i.e. UT U = I and VT V = I).
Then we can dene Y = ΣVT and suitably split U = U0 U1 such
 

that U0 has m columns:

Y = ΣVT

 (5.237)
U = U0 U1

Let Λcl be the diagonal matrix of the closed-loop eigenvalues:


 
λK1
.. (5.238)
Λcl =  .
 

λKn

As far as all eigenvectors v Ki which compose each column of matrix P


have been computed matrix K can be calculated by:

K = Y−1 UT0 A − PΛcl P−1 (5.239)



180 Chapter 5. Controller design

To get this result we write the closed-loop state matrix as follows:

A − BK = PΛcl P−1 (5.240)

Then pre-multiplying the preceding equation by UT , using the


decomposition of B and the fact that U is an orthogonal matrix (i.e.
UT U = I) we get:

UT PΛcl P−1 = UT (A − BK)


= UT A − UT
 BK
Y
T
=U A− K (5.241)
 T  0  
U0 Y
= A− K
UT1 0

The rst row of (5.241) reads:


UT0 PΛcl P−1 = UT0 A − YK 
(5.242)
⇔ K = Y−1 UT0 A − PΛcl P−1

Furthermore the second row of (5.241) leads to the following necessary


and sucient condition for pole assignment15 :

UT1 PΛcl P−1 = UT1 A


(5.243)
⇔ UT1 (AP − PΛcl ) = 0

− It is worth noticing that if a closed-loop eigenvalue λKi is complex, then


its conjugate value, λKi is also a closed-loop eigenvalue. In order to
manipulate real matrices during the computations eigenvectors v Ki and
v Ki in P are replaced by Re(v Ki ) and Im(v Ki ) respectively:

(5.244)
   
· · · v Ki v Ki · · · → · · · Re(v Ki ) Im(v Ki ) · · ·

Furthermore eigenvalues λKi and λKi in the diagonal matrix Λcl are
replaced by Re(λKi ) and Im(λKi ) as follows:

.. ..
   
. .
   

 λKi 
→
 Re(λKi ) Im(λKi )  (5.245)

 λ Ki
  − Im(λ K i ) Re(λ Ki ) 
.. ..
   
. .

Indeed from the relationships:



Acl v Ki = λKi v Ki
(5.246)
Acl v Ki = λKi v Ki
15
J. Kautsky, N. K. Nichols, P. Van Dooren, Robust pole assignment in linear state
feedback, International Journal of Control, Volume 41, 1985 - Issue 5
5.10. Mode decoupling 181

We get by adding and subtracting the preceding equations:


 
Acl v Ki + v Ki  = λKi v Ki + λKi v Ki
 cl v Ki − v Ki = λKi v Ki − λKi v Ki
A
Acl Re(v Ki ) = Re(λKi v Ki )
⇒ (5.247)
 cl Im(v Ki ) = Im(λKi v Ki )
A
Acl Re(v Ki ) = Re(λKi ) Re(v Ki ) − Im(λKi ) Im(v Ki )

Acl Im(v Ki ) = Re(λKi ) Im(v Ki ) + Im(λKi ) Re(v Ki )

That is:
 
Acl Re(v Ki ) Im(v Ki )
 
Re(λKi ) Im(λKi )
(5.248)
 
= Re(v Ki ) Im(v Ki )
− Im(λKi ) Re(λKi )

5.10.4 Example
Following an example provided by A. Fossard16 we consider the following system:

ẋ(t) = Ax(t) + Bu(t)
(5.249)
y(t) = Cx(t)

where:   

 1 0 0



 A= 1 0 1 
 0 1 1




0 1

 1 0  (5.250)

 B =
 0 1



 
 C = 0 1 −1




1 0 0
This system has m = 2 inputs, n = 3 states and p = 2 outputs and is both
controllable and observable. We wish to nd a state feedback matrix K such
that the closed-loop eigenvalues are λK1 = −1, λK2 = −2, λK3 = −3.
Moreover it is desired that the rst output y1 (t) of y(t) is decoupled from
the rst mode λK1 whereas the second output y2 (t) of y(t) is decoupled from
the last two modes λK2 , λK3 .
The decoupling specications leads to the following expression of the product
CP where ∗ represents unspecied components:
 
0 ∗ ∗
(5.251)
 
CP = C v K1 v K2 v K3 =
∗ 0 0

Or equivalently for the rst row of matrix C:

0 1 −1 v K1 = 0 ⇒ 1 0 Cv K1 = f T1 Cv K1 = 0 (5.252)
   

16
A. Fossard, Commande modale des systèmes dynamiques, notes de cours, Sup'Aéro, 1994
182 Chapter 5. Controller design

And for the second row of matrix C:


( 
1 0 0 v K2 = 0 ⇒ 0 1 Cv K2 = f T2 Cv K2 = 0
  
(5.253)
1 0 0 v K3 = 0 ⇒ 0 1 Cv K3 = f T2 Cv K3 = 0
   

At the end of this step we dene n = 3 matrices S(λKi ) as follows:


  

   2 0 0 0 1
A − λK1 I B  1 1 1 1 0 


S(λK1 ) = =


T




 f1 C 0  0 1 2 0 1 




 0 1 −1 0 0
 



   3 0 0 0 1
 A − λK2 I B  1 2 1 1 0 
S(λK2 ) = T = 
 0 1 3 0 1  (5.254)

 f2 C 0
1 0 0 0 0




  


   4 0 0 0 1
A − λK3 I B


  1 3 1 1 0 

 S(λK3 ) = T = 
 0 1 4 0 1 



 f 2
C 0
1 0 0 0 0

Then we compute matrix R(λKi ) whose columns constitute a basis of the


right kernel of S(λKi ):
 
N(λKi )
S(λKi )R(λKi ) = S(λKi ) =0 (5.255)
M(λKi )

Where matrix N(λKi ) is built from the n = 3 rst rows of R(λKi ).


We get:

−0.2970443
 


−0.1980295

    
N(λK1 )

  
R(λK1 ) = = −0.1980295

 
M(λK1 )

  




 0.6931033 




 0.5940885
 



 0

    0.5070926 
N(λK2 )

(5.256)
 
R(λK2 ) = = −0.1690309 
M(λK2 )  
−0.8451543

  


0




  


 0


    0.3405026 

 N(λK3 )  

 R(λK3 ) = = −0.0851257 
M(λK3 )

  
−0.9363822

  


0

As far as each matrix R(λKi ) reduces here to be a vector we set the non
zero parameter vector z i to 1; as a consequence vector v Ki = N(λKi )z i is set to
5.10. Mode decoupling 183

N(λKi ):
 
−0.2970443






 v K1 = N(λK1 ) =  −0.1980295 



  −0.1980295 
0



v K2 = N(λK2 ) =  0.5070926  (5.257)
−0.1690309



  
0





 v = N(λK3 ) =  0.3405026
 K3

 
−0.0851257
Furthermore no update of vector v Ki has to be considered because the
number of columns of N(λKi ) is equal to 1.
Finally a singular value decomposition of B is performed:
 
Σ
B =U VT
 0  
0.7071068 0 −0.7071068 1.4142136 0  
0 1
=  0 −1 0   0 1 
−1 0
0.7071068 0 0.7071068 0 0
 (5.258)
Then we dene Y = ΣVT and suitably split U = U0 U1 such that


U0 has m = 2 columns:
     
 Y = ΣV = T 1.4142136 0 0 1 0 1.4142136
 =
0  1 −1 0 −1 0



(5.259)

0.7071068 0
U = 0 −1

 0

  

0.7071068 0

Let Λcl be the diagonal matrix of the closed-loop eigenvalues:


   
λK1 −1
Λcl =  λK2 = −2  (5.260)
λK3 −3

As far as all eigenvectors v Ki which compose each column of matrix P have


been computed matrix K can be calculated by:
 
−1 T −1 −10.333333 6 13
(5.261)

K = Y U0 A − PΛcl P =
2 0 0

We can check that the product CP satisfy the decoupling specications.


Indeed:
 
  0 ∗ ∗
CP = C v K1 v K2 v K3 =
∗ 0 0
  (5.262)
0 −0.6761234 0.4256283
=
−0.2970443 0 0
184 Chapter 5. Controller design

Figure 5.7: Plant with dynamic compensator

5.11 Dynamical output feedback control


5.11.1 From dynamical output feedback to observer-based
control
Again we consider the state-space representation (5.263) where the state vector
x is of dimension n (that is the size of state matrix A). In addition y(t) denotes
the output vector and u(t) the input vector. We will assume that the feedforward
gain matrix D is zero (D = 0):

ẋ(t) = Ax(t) + Bu(t)
(5.263)
y(t) = Cx(t)

Following Radman17 , we assume that this system is controllable and


observable and is controlled as shown in Figure 5.7 by a dynamical output
feedback controller C(s) of dimension nc (that is the size of Ac ) whose state
space representation reads:

ẋc (t) = Ac xc (t) + Bcy y(t) + Bcr r(t)
(5.264)
u(t) = Cc xc (t) + Dcy y(t) + Dcr r(t)

Assuming that compensator C(s) has the same dimension than plant F(s),
that is nc = n, and from the following settings:


 Bcy = L
 Bcr = B


Cc = −K (5.265)
D =0

 cy



Dcr = I

We get:

ẋc (t) = Ac xc (t) + Ly(t) + Br(t)
(5.266)
u(t) = −Kxc (t) + r(t)
17
G. Radman, Design of a dynamic compensator for complete pole-zero placement, The
Twentieth Southeastern Symposium on System Theory, Charlotte, NC, USA, 1988, pp. 176-
177
5.11. Dynamical output feedback control 185

From the second relationship we get r(t) = u(t)+Kxc (t). Thus the previous
state space representation reads:

ẋc (t) = (Ac + BK) xc (t) + Bu(t) + Ly(t)
(5.267)
u(t) = −Kxc (t) + r(t)

Thus the dynamical output feedback controller C(s) can be seen as an


observer-based controller with gain K that uses xc (t) as an estimate of the
plant state x(t).

5.11.2 Dynamic compensator for pole placement


The following design which enables the placement of poles and zeros has been
proposed by Radman17 .
In this method the desired poles of the closed-loop are divided into two
groups of fast and slow modes. The slow poles are placed using state feedback
approach and the fast poles are placed using state estimation method.
We consider the dynamical output feedback controller (5.267) applied on
plant (5.263). Matrices Ac , L and K are degrees of freedom which shall be set
to achieve pole placement.
Using the same methodology than in section 5.4 we rst compute the
estimation error e(t), which is dened as follows:

e(t) = x(t) − xc (t) (5.268)

The time derivative of the estimation error reads:


ė(t) = ẋ(t) − ẋc (t)
= Ax(t) +   − (Ac + BK) xc (t) − 
Bu(t)  − Ly(t)
Bu(t) (5.269)
= Ax(t) − (Ac + BK) xc (t) − LCx(t)

Using the fact that xc (t) = x(t) − e(t) we get:

ė(t) = (A − LC) x(t) − (Ac + BK) (x(t) − e(t))


(5.270)
= (A − LC − (Ac + BK)) x(t) + (Ac + BK) e(t)

Combining the dynamics of the state vector x(t) and of the estimation error
e(t) yields to the following state-space representation for the closed-loop system:
      
ẋ(t) A − BK BK x(t) B
= + r(t)
ė(t) A − LC − (Ac + BK) Ac + BK e(t) 0
(5.271)
Then, setting Ac such that:

Ac = A − LC − BK (5.272)

we get:
      
ẋ(t) A − BK BK x(t) B
= + r(t) (5.273)
ė(t) 0 A − LC e(t) 0
186 Chapter 5. Controller design

Furthermore it is worth noticing that matrix is block triangular.


Consequently we can write:
 
A − BK BK
det = det (A − BK) det (A − LC) (5.274)
0 A − LC

In other words the eigenvalues of the closed-loop system are obtained by


the union of the eigenvalues of matrix A − BK, that is the state matrix of the
closed-loop system without the observer, and the eigenvalues of matrix A −
LC, that is the state matrix of the closed-loop system without the controller.
As a consequence the observer and the controller can be designed separately:
the eigenvalues obtained thanks to the controller gain K assuming full state
feedback are independent of the eigenvalues obtained thanks to the observer
gain L assuming no controller.
Usually observer gain L is chosen such that the eigenvalues of matrix A−LC
are around 5 to 10 times faster than the eigenvalues of matrix A − BK, so that
the state estimation moves towards the actual state as early as possible.
To get the transfer function of the controller we take the Laplace transform
(assuming no initial conditions) of its state space representation:

 ẋc (t) = Ac xc (t) + Ly(t) + Br(t)
u(t) = −Kxc (t) + r(t) (5.275)
Ac = A − LC − BK

To get:
 
R(s)
U (s) = C(s) (5.276)
Y (s)

Where:

C(s) = −K (sI − A + BK + LC)−1 (5.277)


   
B L + I 0

5.11.3 Dynamical output feedback


We now assume that plant F(s) is controlled by the dynamical output feedback
controller C(s) dened in (5.264) where nc 6= n (nc is the size of Ac ):

ẋc (t) = Ac xc (t) + Bcy y(t) + Bcr r(t)
(5.278)
u(t) = Cc xc (t) + Dcy y(t) + Dcr r(t)

It is worth noticing that we retrieve the static output feedback controller:

u(t) = Hr(t) − Kc y(t) (5.279)

When setting:

 Ac = Bcy = Bcr = Cc = 0
Dcy = −Kc (5.280)
Dcr = H

5.11. Dynamical output feedback control 187

When the dynamical output feedback controller is of order nc ≤ n the


design problem can be bring back to a static output feedback controller18 by
introducing a new control v(t) dened by:

v(t) = ẋc (t) (5.281)


and by considering the following augmented output vector y a (t), input vector
ua (t) and state vector xa (t):
  
 xa (t) =
 x(t)
 xc (t) 




u(t)

ua (t) = (5.282)

  v(t) 
y(t)


 y a (t) =


xc (t)
Then the augmented equivalent open-loop system reads:
        
ẋ(t) A 0 x(t) B 0 u(t)

 = +
 ẋc (t)   0 0   xc (t)  0 I v(t)

(5.283)
y(t) C 0 x(t)
=


xc (t) 0 I xc (t)

That is in a more compact form:



ẋa (t) = Aa xa (t) + Ba ua (t)
(5.284)
y a (t) = Ca xa (t)
Where:   
A 0

 Aa =



  0 0
B 0

Ba = (5.285)

  0 I 
C 0


 Ca =


0 I
It is worth noticing that the dynamical output feedback controller C(s)
dened in (5.264) becomes static in the augmented state-space:
      
u(t) Dcy Cc y(t) Dcr
= + r(t) (5.286)
v(t) Bcy Ac xc (t) Bcr
That is in a more compact form:
ua (t) = −Ka y a (t) + Ha r(t) (5.287)
Where:   
D cy Cc
 Ka = −


 Bcy Ac (5.288)
Dcr
 Ha =


Bcr
18
V.L. Syrmos, C. Abdallah, P. Dorato, Static Output Feedback: a Survey, Proceedings of
the 33rd IEEE Conference on Decision and Control, 1994
188 Chapter 5. Controller design

Assuming that u(t) is of dimension m, x(t) is of dimension n, xc (t) is of


dimension nc and y(t) is of dimension p we conclude that:

− Aa is a square matrix of dimension (n + nc );

− Ba is a matrix of size (n + nc ) × (m + nc );

− Ca is a matrix of size (p + nc ) × (n + nc );

− Ka is a matrix of size (m + nc ) × (p + nc );

If we wish to apply the Roppenecker's formula (5.133) to set the static output
feedback gain Ka so that np predened closed-loop eigenvalues are achieved, we
have to notice that matrix Ca Va is a (p + nc ) × np matrix. Consequently matrix
Ca Va is square and possibly invertible as soon as:

p + nc = n p (5.289)

− In the case of state feedback we have nc = 0 and p = n thus the number


of eigenvalues which can be predened is np = n.

− In the case of output feedback the number np of eigenvalues which can be


predened is obviously lower or equal to the size n + nc of the augmented
state matrix Aa :
np ≤ n + nc (5.290)

Assuming p + nc = np so that Ca Va is a square matrix we conclude that


there are n − p remaining eigenvalues whose location is not controlled through
output feedback.
Using the relationships ua (t) = −Ka y a (t) + Ha r(t) and y a (t) = Ca xa (t) the
dynamics of the closed-loop system reads:

ẋa (t) = Aa xa (t) + Ba ua (t) 


= Aa xa (t) + Ba −Ka y a (t) + Ha r(t) (5.291)
= (Aa − Ba Ka Ca ) xa (t) + Ba Ha r(t)

The product Ba Ka Ca expands as follows:


   
B 0 Dcy Cc C 0
Ba Ka Ca =
 0 I   Bcy Ac  0 I
B 0 Dcy C Cc
= (5.292)
 0 I Bcy C Ac
BDcy C BCc
=
Bcy C Ac

And consequently Aa − Ba Ka Ca reads:


 
A − BDcy C −BCc
Aa − Ba Ka Ca = (5.293)
−Bcy C −Ac
5.12. Sensitivity to additive uncertainties 189

The transfer function G(s) of the closed-loop system between the output
vector y(t) and the reference input vector r(t) reads:
y(t) = G(s)r(t) (5.294)
Where:
(sI − (Aa − Ba Ka Ca ))−1 
 
G(s) = C 0 Ba Ha 
BDcr
= C 0 (sI − (Aa − Ba Ka Ca ))−1
 
Bcr (5.295)
 −1  
  sI − (A − BDcy C) BCc BDcr
= C 0
Bcy C sI + Ac Bcr

5.12 Sensitivity to additive uncertainties


If λKi is an eigenvalue of A − BKC then it can be shown that19 :

∂λKi BT wKi v TKi CT


=− (5.296)
∂K wTKi v Ki
where wKi and v Ki are the row and column eigenvectors of A − BKC
corresponding to λKi .
Let Acl be the closed-loop state matrix and assume that Acl is a
diagonalizable matrix:
Acl = A − BK (5.297)
Let P be the matrix which is composed by the right eigenvectors v Ki of Acl
corresponding to eigenvalue λKi and P−1 be the matrix which is composed by
the left eigenvectors wKi of Acl corresponding to eigenvalue λKi :
  

 P = v K1 · · · v Kn



  T 
w K1 (5.298)
−1  .. 
P = .



  

wTKn

Let Acl + ∆Acl be the perturbed state matrix subject to additive


uncertainties ∆Acl . Then the BauerFike theorem20 states that the variation
∆λKi of the eigenvalues of the perturbed state matrix are bounded according
to the following relationship:
max |∆λKi | ≤ κ(P) k∆Acl k2 (5.299)
i

where:  
λK1
P−1 Acl P =  .. (5.300)
.
 

λKn
19
H. Sirisena, S. Choi, Pole placement in prescribed regions of the complex plane using
output feedback, IEEE Transactions on Automatic Control, 1975, Page(s):810 - 812
20
https://en.wikipedia.org/wiki/Bauer-Fike_theorem
190 Chapter 5. Controller design

Coecient κ(P) is called the condition number of matrix P and is dened


as follows: s
λmax (PT P)
κ(P) = (5.301)
λmin (PT P)
For a square invertible matrix P this reduces as follows:

κ(P) = kPk2 P−1 2 (5.302)


The induced matrix 2-norm kPk2 is dened as the largest singular value of
P, that is the root square of the largest eigenvalue of PT P (or PPT ); similarly
k∆Acl k2 is the largest singular value of ∆Acl .
According to the preceding equation, to guarantee a small variation of the
assigned poles against possible perturbations, one has to achieve a small
condition number κ(P) of the eigenvector matrix.
To get this result we rst rewrite the relationship which links the eigenvalue
λKi and the corresponding right eigenvector v K1 :

Acl v Ki = λKi v Ki , i = 1, · · · , n (5.303)

Then the rst order derivative of the preceding equation reads:

∆Acl v Ki + Acl ∆v Ki = ∆λKi v Ki + λKi ∆v Ki (5.304)

On the other hand the relationship which links the eigenvalue λKi and the
corresponding left eigenvector v K1 is the following:

wTKi Acl = λKi wTKi , i = 1, · · · , n (5.305)

Pre-multiplying (5.304) by wTKi and using (5.305) leads to the following


expression of dλKi :

wTKi ∆Acl v Ki + wTKi Acl ∆v Ki = ∆λKi wTKi v Ki + λKi wTKi ∆v Ki


 
⇔ wTKi ∆Acl v Ki + λKi w
TK
i

∆v K i
= ∆λ Ki w T v
K i Ki
+ λ K
i w
 T∆v
Ki

K i (5.306)
 
wT
K ∆Acl v K
⇔ ∆λKi = i
wT
i
K vK
i i

As far as the left and right eigenvectors are normalized such that wTKi v Ki = 1
we get:
∆λKi = wTKi ∆Acl v Ki (5.307)
Be taking the norm of the preceding relationship we nally obtain:

|∆λKi | ≤ v Ki 2 wTKi 2 k∆Acl k2 (5.308)


From the fact that v Ki 2 wTKi 2 ≤ kPk2 P−1 2 ∀ i we nally get:


max |∆λKi | ≤ κ(P) k∆Acl k2 where κ(P) = kPk2 P−1 2 (5.309)



i

We have seen that the variation of each closed-loop eigenvalue is bounded


by the following relationship:

|∆λKi | ≤ v Ki 2 wTKi 2 k∆Acl k2 (5.310)



5.12. Sensitivity to additive uncertainties 191

Thus in order to minimize the sensitivity of the assigned eigenvalues it could


be worth to minimize the following criteria:
X
Ji where Ji = v Ki 2 wTKi 2 (5.311)

J=
i

As far as wTKi v Ki = 1 criteria Ji reads:


1
Ji = v Ki 2 wTKi 2 = (5.312)

cos(v Ki , wTKi )

From the fact that wTKi v Kj = 0 ∀i 6= j we conclude that vector wTKi is


perpendicular to the subspace spanned by the vectors of matrix Vi where:

(5.313)
 
Vi = v K1 · · · v Ki−1 v Ki+1 · · · v Kn

Thus Ji can be interpreted as the inverse of the sinus of the angle between
v Ki and Vi . Minimizing the sensitivity of the eigenvalues of Acl = A − BK to
perturbations can be done by choosing a set of eigenvectors v Ki so that each is
maximally orthogonal to the space spanned by the remaining vectors. In others
words eigenvectors v Ki are shaped such that they are as orthogonal as possible to
the remaining eigenvectors, which consequently minimizes the condition number
of κ(P) where P = v K1 · · · v Kn .
 

Unfortunately this method, known as Kautsky et al. method21 , cannot


handle complex eigenvalues in its original form, due to the need to update two
complex conjugate eigenvectors at the same time.
To overcome this diculty we present hereafter the method proposed by
Byers et al.21 :
− Assuming that state matrix A is of dimension n and that (A, B) is
controllable we dene n closed-loop eigenvalues λK1 , · · · , λKn and dene
n matrices S(λKi ) as follows:

(5.314)
 
S(λKi ) = A − λKi I B

− Then compute matrix R(λKi ) whose columns constitute a basis of the


right kernel of S(λKi ):
S(λKi )R(λKi ) = 0 (5.315)

For complex conjugate eigenvalues λKi and λKi , the corresponding


matrices R(λKi ) and R(λKi ) are also complex conjugate. They are
replaced by their real and imaginary part, Re (R(λKi )) and
Im (R(λKi )), respectively.
Matrix R(λKi ) is a (n + m) × si matrix, where si = m unless λKi is an
uncontrollable mode of the pair (A, B) in which case si > m. In the
following we will assume that none of the λKi 's is an uncontrollable mode
of the pair (A, B) and consequently si = m.
21
A. Pandey, R. Schmid, T. Nguyen, Y. Yang, V. Sima and A. L. Tits, Performance Survey
of Robust Pole Placement Methods, 53rd IEEE Conference on Decision and Control, 2014.
Los Angeles
192 Chapter 5. Controller design

− We denote Z the following n m × n block diagonal free parameters matrix


build from n blocks z(λK1 ) of size m × 1.
 
z(λK1 ) 0
.. (5.316)
Z= .
 

0 z(λKn )

For complex conjugate eigenvalues λKi and λKi , the corresponding free
parameters matrices z(λKi ) and z(λKi ) shall be chosen to be equal:

z(λKi ) = z(λKi ) (5.317)

− Let R(Z) be the following (n + m) × n matrix dened as the product


between matrix R(λK1 ) · · · R(λKn ) of size (n + m) × m n and the
free parameters matrix Z of size n m × n:

(5.318)
 
R(Z) = R(λK1 ) · · · R(λKn ) ×Z

Matrix R(Z) is then compatibly partitioned between matrix N(Z) and


matrix M(Z). Matrix N(Z) is a n × n matrix which is built from the n
rst rows of R(Z):  
N(Z)
R(Z) = (5.319)
M(Z)

− Then Schmid et al.22 have shown that for almost every choice of the
parameter matrix Z the rank of matrix N(Z) is equal to n as well as the
rank of matrix Z. Furthermore the m × n gain matrix K such that the
eigenvalues of Acl = A − BK read (λK1 , · · · , λKn ) is given by:

K = −M(Z)N(Z)−1 (5.320)

Last but not least we have:

max |∆λKi | ≤ κ(N(Z)) k∆Acl k2 (5.321)


i

Coecient κ(N(Z)) is called the condition number of matrix N(Z) and is


dened as follows:

κ(N(Z)) = kN(Z)k2 N(Z)−1 2 (5.322)


kN(Z)k2 is the induced matrix 2-norm and is dened as the largest


singular value of N(Z); similarly k∆Acl k2 is the largest singular value of
∆Acl .
Consequently the free parameters matrix Z can be used to minimize the
sensitivity of the closed-loop state matrix Acl to additive uncertainties.

22
R. Schmid, P. Pandey, T. Nguyen, Robust Pole Placement With Moore's Algorithm,
IEEE Trans. Automatic Control, 2014, 59(2), 500-505
Appendices
Appendix A

Refresher on linear algebra

A.1 Section overview


The purpose of this chapter is to review the main results in elementary linear
algebra. We will review vectors and matrices notions. This chapter ends with
the presentation of the notions of eigenvalues and eigenvectors. The content of
this chapter is mainly based on the material provided within the paper of Daniel
S. Stutts1 and Gregory J. Hakim2 .

A.2 Vectors
A.2.1 Denitions
A column vector, or simply a vector, is a set of numbers which are written in a
column form:
 
x1
 x2 
x= .  (A.1)
 
 .. 
xn

A row vector is a set of numbers which are written in a horizontal form. We


denote a row vector by xT where T denotes the transpose operation:

xT = (A.2)
 
x1 x2 · · · xn

Vectors can represent the coordinate of a point within a space of dimension


n.

1
https://www.researchgate.net/publication/242366881_Linear_Algebra_Primer
2
https://atmos.washington.edu/ hakim/591/LA_primer.pdf
196 Appendix A. Refresher on linear algebra

A.2.2 Vectors operations


− The sum (or subtraction) of two vectors proceed element-wise:
  

 x1
x2

  

x = ..

    
. x 1 + y1

  

  
x 2 + y2

xn
  
 ⇒x+y = .. (A.3)
 
y1 .
 

  
y2

x n + yn

  
y = ..

  
.

  

  

yn

− The sum (or subtraction) is:

 Commutative:
x+y =y+x (A.4)

 Associative:
(x + y) + z = x + (y + z) (A.5)

− The sum (or subtraction) of two vectors which are not of the same size is
undened.

− For vector subtraction, you have to replace + by − in the preceding


expressions.

− Multiplication of a vector x by a scalar c is dened by the multiplication


of each number of the vector by c:
 
cx1
 cx2 
cx =  . (A.6)
 
 ..


cxn

− The inner product (or dot product ) xT y of two vectors x and y of the same
size is obtained by multiplying each number element-wise:
  

 x1
x2

  

x = ..

  
.

  

  
 n
xn
 X
  ⇒ xT y = x i yi (A.7)
 y1
 i
y2

  

y = ..

  
.

  

  

yn

A.3. Matrices 197

A.3 Matrices
A.3.1 Denitions
A n × m matrix is a rectangular array of numbers formed by n rows and m
columns:  
a11 · · · a1m
A =  ... .. 
.  (A.8)

an1 · · · anm
Number aij refers to the number which is situated on the ith row and the
column.
j th
Matrix and vectors can be used to represent a system of equations in a
compact form:

 a11 x1 + · · · a1m xm = b1

..
 .
a x + · · · a x  = bm  

n1 1 nm m
(A.9)
 
a11 · · · a1m x1 b1
 .. . . .
..   ..  =  .. 
⇔ .
    

an1 · · · anm xm bm
⇔ Ax = b

− A square matrix is a matrix with the same number of rows and columns;
− A diagonal matrix is a square matrix in which the numbers outside the
main diagonal are all zero;

− The identity matrix I is a diagonal matrix having only ones along the main
diagonal:  
1 0 ··· 0
.. (A.10)
I= .
 

0 ··· 0 1

− The transpose of a matrix A has rows and columns which are interchanged:
the rst row becomes the rst column, the second row becomes the second
column and so on. The transpose of a matrix A is denoted AT :
   
a11 · · · a1m a11 · · · an1
A =  ... ..  ⇒ AT =  ..
.   .
.. 
.  (A.11)

an1 · · · anm a1m · · · anm

− A symmetric matrix is a square matrix that is equal to its transpose;


− The trace of a square matrix is the sum of its diagonal numbers:
n
X
tr (A) = aii (A.12)
i=1
198 Appendix A. Refresher on linear algebra

A.3.2 Matrix Operations


− The sum (or subtraction) of two matrices of the same size proceed element-
wise:
  
 a11 · · · a1m
. .. 

 ..

 A=

.   
a11 + b11 · · · a1m + b1m



 an1 · · · anm  ⇒ A+B =  .. ..

. .

b · · · b
 
 11 1m
B =  ... ..  an1 + bn1 · · · anm + bnm


.

 

 

bn1 · · · bnm

(A.13)
− The sum (or subtraction) of two matrices which are not of the same size
is undened.
− The sum (or subtraction) of a matrix with a scalar is dened as the sum
(or subtraction) of each number of the matrix with the scalar:
   
a11 · · · a1m a11 + c · · · a1m + c
A =  ... ..  ⇒ A + c = 
. 
..
.
..
.  (A.14)
 

an1 · · · anm an1 + c · · · anm + c
− Multiplication of a matrix A by a scalar c is dened by the multiplication
of each number of the matrix by c:
   
a11 · · · a1m ca11 · · · ca1m
A =  ... ..  ⇒ cA =  ..
.   .
.. 
.  (A.15)

an1 · · · anm can1 · · · canm


− If A is an n × m matrix and B is an m × p matrix then the matrix
product AB is dened to be the n × p matrix for which the number on the
ith row and the j th column is obtained by taking the dot product of the
corresponding ith row of the left matrix with the j th column of the right
matrix:
    T 
 a11 · · · a1m a1
. ..  =  ... 
.

 A =  ..

   

 
T

 an1 · · · anm  an

 b11 · · · b1p
 .. ..  =  b · · · b 

(A.16)

B= . . 



 1 p

bm1T · · · bmp T 

a1 b1 · · · a1 bp
 .. .. 
⇒ AB =  . . 
aTn b1 · · · aTn bp

− The k th power of a square matrix is obtained be multiplying k-times the


matrix:
Ak = A
| ·{z
· · A} (A.17)
k-times
A.3. Matrices 199

A.3.3 Properties
For any matrices A, B and C the following hold:

− A+B=B+A

− (A + B) + C = A + (B + C)

− IA = AI = A

− (AB) C = A (BC)

− A (B + C) = AB + AC

− A0 = I

− (AB)T = BT AT

− For any scalar c: cA = Ac

− But be careful, in general AB 6= BA

A.3.4 Determinant and inverse


The determinant of a square matrix is a scalar. If the matrix is not square its
determinant is undened.
For of a 2 × 2 square matrix its determinant represents the area of the
parallelogram obtained by the vectors in the rows of the matrix:
 
a11 a12
A= ⇒ det (A) = a11 a22 − a21 a12 (A.18)
a21 a22

Let A be a square n × n matrix and Aij be the square (n − 1) × (n − 1)


submatrix obtained by removing the ith row and the j th column from A. Then
determinant of A may be obtained recursively by reduction to the 2 × 2 form
as follows:
n
X n
 X
aij (−1)i+j det (Aij ) = aij (−1)i+j det (Aij ) (A.19)

det (A) =
i=1 j=1

The inverse of a square matrix A is the matrix denoted A−1 such that:

AA−1 = A−1 A = I (A.20)

A matrix that has no inverse is called singular.


The inverse of a matrix can be expressed by the following formula where
adj (A) is called the adjoint (or adjugate ) matrix:
adj (A)
A−1 = (A.21)
det (A)

The number on the ith and j th column of the adjoint matrix adj (A) is the
cofactor of aij . The cofactor of aij is the determinant of the submatrix Aij
200 Appendix A. Refresher on linear algebra

obtained by removing the ith row and the j th column from A multiplied by
(−1)i+j .
For of a 2 × 2 square matrix we get:

  a11 a22 − a21 a12
 det (A) = 
a11 a12
A= ⇒ a22 −a12
a21 a22  adj (A) =
 −a
 21 a11 (A.22)
a22 −a12
⇒ A−1 = a11 a22 −a
1
21 a12 −a21 a11
It can be shown that:
− If det (A) 6= 0 then A is nonsingular ;

− If any row or column of A is zero then det (A) = 0 ;

− If two rows or columns of A are proportional then det (A) = 0 ;

− det (AB) = det (A) det (B) ;

− det AT = det (A) ;




− det A−1 = det(A)


1
provided that A−1 exists ;


− If A is a n × n matrix and c a scalar then det (cA) = cn det (A) ;

− (AB)−1 = B−1 A−1 ;


T −1
− A−1 = AT ;
Furthermore let A be of dimension n × n, B of dimension n × k , D of
dimension k × k and C of dimension k × n, then the Woodbury Formulae3
reads:
(A + BDC)−1 = A−1 − A−1 B(D−1 + CA−1 B)−1 CA−1

(A.23)
DC(A + BDC)−1 = (D−1 + CA−1 B)−1 CA−1

A.4 Eigenvalues and eigenvectors


A vector x is called a (right) eigenvector of matrix A if x is proportional to Ax,
or equivalently in the same direction than Ax:

sx = Ax (A.24)

In order for (A.24) to hold the following relationship shall be satised:

(sI − A) x = 0 (A.25)

Relationship (A.25) holds for x 6= 0 as soon as the resolvent matrix Φ(s) =


(sI − A)−1 is singular. For the resolvent matrix Φ(s) to be singular we shall
have:
det (sI − A) = 0 (A.26)
3
Linear Algebra Primer Gregory J. Hakim, University of Washington, 2 January 2009 v2.0
A.4. Eigenvalues and eigenvectors 201

Assuming that A is of dimension n × n then the determinant det (sI − A),


which is called the characteristic polynomial of A, is a polynomial of degree n.
Furthermore its n roots are called the eigenvalues of A and are usually denoted
λ1 , · · · , λn .
202 Appendix A. Refresher on linear algebra
Appendix B

Overview of Lagrangian
Mechanics

B.1 Euler-Lagrange equations


Euler-Lagrange equations is a useful technique to obtain the equations of motion
of mechanical systems. Euler-Lagrange equations rely on the expressions of
the kinetic and potential energy of the system with respect to its generalized
coordinates qi , one for each degree of freedom of the system.
Euler-Lagrange equations read:
 
d ∂L ∂L
− = Qi (B.1)
dt ∂ q̇i ∂qi

where:

− qi denotes a generalized coordinates of the system. Generalized coordinates


are composed by the set of minimum size of variables which allows to
determine unambiguously the conguration of the system. They are either
positions or angles. The number of generalized coordinates is equal to the
number of degrees of freedom of the system. We will denote q the vector
of generalized coordinates:

q = [q1 , · · · , qn ]T (B.2)

− The Lagrangian L denotes the dierence between the kinetic energy, which
is denoted T (q, q̇), and the potential energy, which is denoted V (q). The
kinetic energy T (q, q̇) depends on the generalized coordinates q and also
on their derivatives q̇ whereas the potential energy V (q) is a function of
only the generalized coordinates q :

L = T (q, q̇) − V (q) (B.3)

− For a rigid body with mass m and moment of inertia I the kinetic energy
T is obtained as the sum between the kinetic energy due to the linear
204 Appendix B. Overview of Lagrangian Mechanics

velocity v of the body and its angular velocity ω , both velocities being
expressed in an inertial frame:
1 1
T = mv T v + ω T I ω (B.4)
2 2

It is worth noticing that the kinetic and the potential energy have to be
evaluated in an inertial frame.

− Assuming that a non-inertial frame is considered, let v b be the linear


velocity expressed in the non-inertial frame and ω b the angular velocity
expressed in the non-inertial frame. In such a non-inertial frame the kinetic
energy T reads:

1  T 1  b T
T = m vb vb + ω I ωb (B.5)
2 2

Denoting by η the vector of angles which allows to position the non-inertial


frame (body frame) with respect to  the inertial frame (those are Euler
angles for example) and by Rib η the rotation matrix from the non-
inertial frame (body frame) to the inertial frame, we have:

v = Rib η v b (B.6)


Similarly, denoting by ω b the angular velocity in the non-inertial frame


and by ω the angular velocity in the inertial frame, we have:

ω b = W(η) ω (B.7)

The relationship between ω and ω b , that is matrix W(η), is obtained by


developing each row of the following matrix equation:


 ω := η̇

 ω b :=  p q r T


d i 
R (η) = Rib (η) Ω(ω b ) where (B.8)
dt b
 

 0 −r q
Ω(ω b ) =  r 0 −p 




−q p 0

Using the fact that a rotation matrix is an orthogonal matrix, meaning


−1 T
that Rib η = Rib η , the kinetic energy T expressed in the
inertial frame reads as follows:
T T
T = 12 m v b v + 12 ω b I ω b
 T T  i T  1 T
= 12 m Rib η

v Rb η v + 2 W(η) ω I W(η) ω
= 12 mv T v + 12 ω WT (η) I W(η) ω


(B.9)
B.1. Euler-Lagrange equations 205

Thus, the kinetic energy T expressed in the inertial frame is:

1 1
T = mv T v + ω T J η ω (B.10)

2 2

where the ctitious moment of inertia J η is dened by:




J η = WT (η) I W(η) (B.11)




Finally, let IP be the inertia matrix with respect to a point P of the rigid
body, v bP the linear velocity of P expressed in the non-inertial frame, ω bP
its angular velocity expressed in the non-inertial frame and rP G the vector
between the rigid body centre of mass G and P . Then, denoting by ×
the cross product between two vectors, the kinetic energy T of P reads as
follows1 :
1  T b 1  b T  T  
T = m v bP vP + ωP IP ω bP + m v bP ω bP × rP G (B.12)
2 2

− Qi represents the non-conservative generalized forces that are either forces


or torques that are external to the system or which cannot be obtained as
the derivative of a scalar potential function (that is a potential energy).
Generalized force Qi generates a movement, either a translation for a force
or a rotation for a torque, according to the direction of the generalized
coordinates qi .

Usually the kinetic energy T in an inertial frame reads as follows where


J(q) = J(q)T > 0 is a symmetric positive denite matrix called the inertia
matrix :
n
1 X 1
T (q, q̇) = Jij (q)q̇i q̇j = q̇ T J(q)q̇ (B.13)
2 2
i,j=1

Once developed, Euler-Lagrange equations (B.1) may be written as follows:

J(q)q̈ + C(q, q̇)q̇ + D(q)q̇ + G(q) = u (B.14)

− The term D(q)q̇ corresponds to the non-conservative generalized forces,


usually damping forces. We recall that conservative generalized forces
can be obtained as ∂V∂q(qi i ) where V (qi ) is a potential function. Such
conservative generalized forces are taken into account within the
Lagrangian L but not within the generalized forces Qi . It can be shown
that damping forces are always dissipative:

q̇ T D(q) + D(q)T q̇ > 0 ∀q̇ 6= 0 (B.15)




1
Complete dynamic model of the Twin Rotor MIMO System (TRMS) with experimental
validation, Azamat Tastemirov, Andrea Lecchini-Visintini, Rafael M. Morales-Viviescas,
Control Engineering Practice 66 (2017) 8998
206 Appendix B. Overview of Lagrangian Mechanics

− The term C(q, q̇)q̇ is the so called Coriolis (terms involving products
q̇i q̇j i 6= j ) and centrifugal (terms involving products q̇i2 ) forces matrix.
It is worth noticing that the k th row of matrix C(q, q̇), which will be
denoted cTk (q, q̇), can be obtained thanks to the following relationship:

q̇ T Sk (q)
 T
 ck (q, q̇) = 
1 ∂J k (q)
 ∂J (q) T ∂J(q) 
k (B.16)
 Sk (q) = 2 ∂q + ∂q − ∂qk

where J k (q) is the k th column of matrix J(q) and qk is the k th component


of vector q .

− The term G(q) corresponds to gravitational forces.

− The term u corresponds to the control vector of the system.

Assume now that the generalized coordinates q are not all independent but
subject to m constraints:

gj (q) = 0 j = 1, · · · , m (B.17)

Then the variations of δqi are not free but must obey to the following
relationships:
n
X ∂gj (q)
δgj (q) = δqi = 0 j = 1, · · · , m (B.18)
∂qi
i=1

In that situation the constraints (B.17) are associated with m Lagrange's


multipliers λj and the Euler-Lagrange equations read:
(
1, · 
gj (q · · , qn ) = 0 j = 1, · · · , m
(B.19)
d ∂L ∂L Pm ∂gj
dt ∂ q̇i − ∂qi = Qi + j=1 λj ∂qi i = 1, · · · , n

B.2 Robot arm


Let's consider Figure B.1 where a robot arm is depicted: u(t) is the torque
applied by a motor drive and y(t) is the angular position of the arm. In addition
we denote m the mass of the arm, l the distance between the axis of the motor
and the centre of mass of the arm, b the viscous friction coecient, I its inertia
and g the acceleration of gravity.
The generalized coordinates is chosen to be the angle q(t) = y(t). Indeed
the knowledge of the value of y(t) allows to determine unambiguously the
conguration of the system. It is worth noticing that the knowledge of the
coordinates of the centre of gravity of the arm also allows to determine
unambiguously the conguration of the system. Nevertheless the coordinates
of the centre of gravity form a vector of dimension 2 whereas the angle
q(t) = y(t) is a scalar of dimension 1. Consequently the coordinates of the
centre of gravity don't constitute a set a minimum size.
B.2. Robot arm 207

Figure B.1: Robot arm

The coordinates of the centre of gravity within the inertial frame read:
   
~ xG (t) l sin(θ(t))
OG(t) = = (B.20)
yG (t) −l cos(θ(t))
By taking the derivative we get the components of the velocity vector as well
as the square of its norm:
 
d ~ lθ̇ cos(θ)
v(t) = OG(t) = ⇒ v(t)T v(t) = l2 θ̇2 (B.21)
dt lθ̇ sin(θ)

The kinetic energy T (q, q̇) and the potential energy V (q) read:

T (q, q̇) = 21 mv(t)T v(t) + 12 I θ̇2 = 12 ml2 θ̇2 + 21 I θ̇2



(B.22)
V (q) = −mgl cos (θ)
And the Lagrangian L reads:
1 1
L = T (q, q̇) − V (q) = ml2 θ̇2 + I θ̇2 + mgl cos (θ) (B.23)
2 2
Consequently the partial derivatives have the following expression:
(
∂L
= (ml2 + I)θ̇
∂ θ̇
∂L (B.24)
∂θ = −mgl sin (θ)

The non-conservative generalized forces (forces and torques) are here the
torque u(t) applied by the motor as well as the friction torque −k θ̇ which is
proportional to the angular velocity θ̇:

Q = u(t) − k θ̇ (B.25)

Applying the Euler-Lagrange equations (B.1) leads to the following dynamic


model of the robot arm:
 
d ∂L ∂L
dt ∂ θ̇ − ∂y = Q (B.26)
⇔ (ml2 + I)θ̈ + mgl sin (θ) = u(t) − k θ̇
208 Appendix B. Overview of Lagrangian Mechanics

Figure B.2: Inertial and body frames of a quadcopter

That is:
(ml2 + I)θ̈ + k θ̇ + mgl sin (θ) = u(t) (B.27)
It is clear that the preceding equation can be written as J(q)q̈ + D(q)q̇ +
G(q) = Q (cf. (B.14)) where the term D(q)q̇ corresponds to the friction torque
k θ̇.

B.3 Quadrotor
The quadcopter structure is presented in Figure B.2. It shows angular velocities
ωi and forces fi created by the four rotors, numbered from i = 1 to i = 4. Torque
direction is opposite to velocities ωi .

B.3.1 Inertial frame and body frame


The following vectors will be used:
T
is the vector whose components dene the position of

− ξ = x y z
the centre of gravity of the quadcopter in the inertial frame;
T
is the vector of so-called Euler angles whose components

− η= φ θ ψ
dene the orientation (attitude) of the quadcopter in the inertial frame:

 The roll angle φ determines the angular position of the quadcopter


around the x-axis of the body frame;
 The pitch angle θ determines the angular position of the quadcopter
around the y -axis of the body frame;
 The yaw angle ψ determines the angular position of the quadcopter
around the z -axis of the body frame.
T
is the vector whose components dene the angular

− ν = p q r
velocities of the quadcopter in the body frame.
B.3. Quadrotor 209

B.3.2 Kinematic relationships


Let xi be a vector expressed in the inertial frame, xb a vector expressed in the
body frame and Rbi (η) the rotation matrix from the inertial frame to the body
frame:
xb = Rbi (η)xi (B.28)
The rotation matrix Rbi (η) is obtained by the multiplication of the rotation
matrix around ψ , θ and then φ. Denoting cx = cos(x), sx = sin(x) and Ry the
rotation matrix dedicated to angle y we have:

Rbi (η) = 
Rφ Rθ Rψ   
1 0 0 cθ 0 −sθ cψ sψ 0
=  0 cφ sφ   0 1 0   −sψ cψ 0 
 0 −sφ cφ sθ 0 cθ 0 0 1 (B.29)
cθ cψ cθ sψ −sθ
=  (sφ sθ cψ − cφ sψ ) (sφ sθ sψ + cφ cψ ) sφ cθ 
(cφ sθ cψ + sφ sψ ) (cφ sθ sψ − sφ cψ ) cφ cθ

It is worth noticing that Rbi (η) is an orthogonal matrix. Consequently the


rotation matrix Rib (η) from the body frame to the inertial frame is obtained as
follows:
−1 T
Rib (η) := Rbi (η) = Rbi (η) 
cθ cψ (sφ sθ cψ − cφ sψ ) (cφ sθ cψ + sφ sψ )
(B.30)
=  cθ sψ (sφ sθ sψ + cφ cψ ) (cφ sθ sψ − sφ cψ ) 
−sθ sφ cθ cφ cθ

The relationship between the angular velocities (p, q, r) of the quadcopter


in the body frame and the time derivative of the Euler angles (φ, θ, ψ) is the
following:        
p φ̇ 0 0
ν =  q  =  0  + Rφ  θ̇  + Rφ Rθ  0  (B.31)
r 0 0 ψ̇
We nally get:
    
p 1 0 − sin(θ) φ̇
 q  =  0 cos(φ) sin(φ) cos θ   θ̇  (B.32)
r 0 − sin(φ) cos(φ) cos θ ψ̇
That is:
ν = W(η) η̇ (B.33)
where:  
1 0 − sin(θ)
W(η) =  0 cos(φ) sin(φ) cos(θ)  (B.34)
0 − sin(φ) cos(φ) cos(θ)
It is worth noticing that the preceding relationship can be obtained from
the following equality which simply states that the time derivative of matrix
210 Appendix B. Overview of Lagrangian Mechanics

Rib (η) can be seen as matrix Ω(ν) of the angular velocities in the body frame
expressed in the inertial frame:
 
0 −r q
d i
R (η) = Rib (η) Ω(ν) where Ω(ν) = −Ω(ν)T =  r 0 −p ] (B.35)
dt b
−q p 0

Conversely we have:
η̇ = W(η)−1 ν (B.36)
where:  
1 sin(φ) tan(θ) cos(φ) tan(θ)
W(η)−1 = 0 cos(φ) − sin(φ)  (B.37)


sin(φ) cos(φ)
0 cos(θ) cos(θ)

B.3.3 Forces and torques


We will use the following notation:

− Ir is the inertia moment of each rotor;

− d is the distance between the rotor and the centre of mass of the
quadcopter, that is the arm length basically;

− ωi the angular velocity of the ith rotor;

− fi is the thrust force created by each rotor in the direction of the body
zb -axis;

− Cl is the lift coecient;

− Cd is the drag coecient.

The non-conservative generalized forces (forces and torques) are the


following:

− Aerodynamic thrust force ft in the direction of the body zb -axis. This


force is the sum of each force coming from each rotor:
4
X 4
X
ft = fi = Cl ωi2 (B.38)
i=1 i=1

Let vector f ia be the thrust force created by all rotors in the inertial frame:
   
0 0
f ia = Rib (η)  0  = Rib (η)  0  (B.39)
P4 2
ft i=1 Cl ωi

Where Rib (η) denotes the rotation matrix from the body frame to the
inertial frame.
B.3. Quadrotor 211

− Aerodynamic torque τ b expressed in the body frame. Vector τ b is the sum


of the following terms:

 Torque τ ba coming from the aerodynamics actions coming from


propellers in the direction of the corresponding body frame angles:

d Cl ω42 − ω22 
    
τφ
τ ba =  τθ  =  d Cl ω32 − ω12  (B.40)
2 2 2 2

τψ Cd −ω1 + ω2 − ω3 + ω4

 Torque τ bg coming from the gyroscopic eect due to propeller rotation:

      
0 p 0
d 
τ bg = − Ir dt 0  +  q  × Ir  0 
P4 P4
i=1 sgn(ωi ) ωi  r i=1 sgn(ωi ) ωi

Ir q (ω1 − ω2 + ω3 − ω4 )
=  −Ir p (ω1 − ω2 + ω3 − ω4 ) 
Ir (ω̇1 − ω̇2 + ω̇3 − ω̇4 )
(B.41)
where sgn(ωi ) = +1 for counterclockwise propeller rotation and
sgn(ωi ) = −1 for clockwise propeller rotation.

We nally get:

τ b = τ ba + τ bg

d Cl ω42 − ω22  + Ir q (ω1 − ω2 + ω3 − ω4 )


  

= d Cl ω32 − ω12 − Ir p (ω1 − ω2 + ω3 − ω4 ) 


Cd 2 2 2 2
−ω1 + ω2 − ω3 + ω4 + Ir (ω̇1 − ω̇2 + ω̇3 − ω̇4 )
(B.42)
It is worth noticing that terms which depends on Ir come from the
gyroscopic eect due to propeller rotation and are usually omitted.

B.3.4 Generalized coordinates


The vector of generalized coordinates q which will determine the conguration
of the quadcopter is a vector with six components which is dened as follows:
  

 x
 



 ξ= y 
ξ z 

q= where  (B.43)
η 
 φ
 η= θ 




ψ
212 Appendix B. Overview of Lagrangian Mechanics

B.3.5 Inertia matrix


The quadcopter is assumed to have symmetric structure with four arms aligned
with the body x and y axes. Thus the inertia matrix I is diagonal and Ix = Iy :
 
Ix 0 0
I =  0 Iy 0  (B.44)
0 0 Iz

B.3.6 Kinetic energy


Because the inertia matrix is expressed in the body frame, vector ν is naturally
chosen to express the rotational kinetic energy. Nevertheless the rotational
kinetic energy shall be expressed as a function of the chosen generalized
coordinates. Consequently we shall use the transformation matrix W(η) to get
η̇ from ν and express the rotational kinetic energy as a function of the chosen
generalized coordinates. Consequently the kinetic energy T q, q̇ reads:


T
T q, q̇ = 12 mξ̇ ξ̇ + 21 ν T I ν

T
= 12 mξ̇ ξ̇ + 21 η̇ T W(η)T I W(η)η̇ (B.45)
T
= 12 mξ̇ ξ̇ + 21 η̇ T J(η) η̇
where we use symmetric matrix J(η) dened as follows:
J(η) = W(η)T I W(η) = J(η)T (B.46)
From (B.34) and (B.44) matrix J(η) reads:
   
1 0 0 Ix 0 0 1 0 −sθ
J(η) =  0 cφ −sφ   0 Iy 0   0 cφ sφ cθ 
−sθ sφ cθ cφ cθ 0 0 Iz 0 −sφ cφ cθ
(B.47)
−Ix sθ
 
Ix 0
= 0 Iy c2φ + Iz s2φ (Iy − Iz ) cφ sφ cθ 
2 2 2 2 2
−Ix sθ (Iy − Iz ) cφ sφ cθ Ix sθ + Iy sφ cθ + Iz cφ cθ
Thus:
1 T 1  2 1  2
η̇ J(η) η̇ = Ix φ̇ − ψ̇ sin θ + Iy θ̇ cos φ + ψ̇ sin φ cos θ
2 2 2
1  2
+ Iz θ̇ sin φ − ψ̇ cos φ cos θ (B.48)
2
Kinetic energy T q, q̇ as a function of the chosen generalized coordinates


nally reads:
 1  1  2
T q, q̇ = m ẋ2 + ẏ 2 + ż 2 + Ix φ̇ − ψ̇ sin θ
2 2
1  2 1  2
+ Iy θ̇ cos φ + ψ̇ sin φ cos θ + Iz θ̇ sin φ − ψ̇ cos φ cos θ (B.49)
2 2
It can be shown that the determinant of symmetric matrix J(η) reads as
follows and that this is a positive denite matrix ∀ θ 6= (2k+1) π/2, k = 1, 2, · · · :
det J(η) = Ix Iy Iz (cos(θ))2 (B.50)

B.3. Quadrotor 213

B.3.7 Potential energy


Potential energy V (q) a function of the chosen generalized coordinates reads:
(B.51)
 
V (q) = m g z = m g 0 0 1 ξ

B.3.8 Lagrangian
Consequently Lagrangian L reads:

L = T q, q̇ − V (q)
T
= 12 mξ̇ ξ̇ + 21 η̇ T J(η) η̇ − mg 0 0 1 ξ
 
 2
= 12 m ẋ2 + ẏ 2 + ż 2 + 21 Ix φ̇ − ψ̇ sin θ

(B.52)
 2  2
+ 12 Iy θ̇ cos φ + ψ̇ sin φ cos θ + 12 Iz θ̇ sin φ − ψ̇ cos φ cos θ
−m g z

B.3.9 Euler-Lagrange equations


We have seen that the Lagrangian L reads:
1 T 1
L = mξ̇ ξ̇ + η̇ T J(η) η̇ − mg 0 0 1 ξ (B.53)
 
2 2
Since the Lagrangian L contains no cross terms combining ξ̇ with η̇ the
Euler-Lagrange equations can be partitioned as follows:
− Euler-Lagrange equations with respect to ξ lead to the translational
equations of motion of the quadcopter. Applying the Euler-Lagrange
equations (B.1) and denoting by f ia the thrust force created by all rotors
in the inertial frame we get:
 
f ia = d ∂L
− ∂L
dt ∂ ξ̇ ∂ξ
T (B.54)
f ia

⇔ = mξ̈ + mg 0 0 1
From (B.39) we get the dierential equations for the positional
accelerations:    
0 0
1 i
ξ̈ = Rb (η)  0  −g 0 
 (B.55)
m P4
i=1 fi 1
− Euler-Lagrange equations with respect to η lead to the rotational equations
of motion of the quadcopter. Applying Euler-Lagrange equations (B.1)
and denoting by τ i the torque created by all rotors in the inertial frame
we get:  
d ∂L ∂L
τ i = dt ∂ η̇ − ∂η
d ∂ 1 T
 
= dt J(η) η̇ − ∂η 2 η̇ J(η) η̇
d J(η) ∂ (η̇ T J(η)) (B.56)
= J(η) η̈ + dt η̇ − 12 ∂η η̇
 
T
d J(η) 1 ∂ (η̇ J(η))
= J(η) η̈ + dt − 2 ∂η η̇
214 Appendix B. Overview of Lagrangian Mechanics

The preceding equation can be rewritten as follows where C(η, η̇) η̇ is the
Coriolis and centrifugal forces matrix:

J(η)η̈ + C(η, η̇) η̇ = τ i (B.57)

The expression of J(η) has been provided in (B.47) whereas the expression
of coecients Cij of matrix C(η, η̇) are the following:

 
C11 C12 C13
C(η, η̇) =  C21 C22 C23  (B.58)
C31 C32 C33

where:


 C11 = 0  
C12 = (Iy − Iz )θ̇cφ sφ + 21 ψ̇cθ (Iy − Iz )(s2φ − c2φ ) − Ix





  
C13 = (Iz − Iy )ψ̇cφ sφ c2θ + 12 θ̇cθ (Iy − Iz )(s2φ − c2φ ) − Ix





  
C21 = (Iz − Iy )θ̇cφ sφ + 21 ψ̇cθ (Iz − Iy )(s2φ − c2φ ) + Ix






C22 = (Iz − Iy )φ̇cφ sφ 





C23 = Iy s2φ + Iz c2φ − Ix ψ̇sθ cθ



1

2 − c2 ) + I
 (B.59)

 + 2 φ̇c θ (Iz − I y )(sφ φ x


 C = (I − I ) ψ̇c 2s c

 31 y z  θ φ φ 

1 2 − s2 ) − I


 + θ̇c
2 θ (I y Iz )(c x
φ φ



 

 C = (I − I ) θ̇c s s + I − I s2 − I c2 ψ̇s c
 32 z y φ φ θ x y φ z
 φ
θ θ


 
1 2 2
+ 2 φ̇cθ (Iy − Iz )(cφ − sφ ) − Ix





  
2 2 2
33 = (Iy − Iz )φ̇cφ sφ cθ + Ix θ̇cθ sθ − ψ̇cθ sθ Iy sφ + Iz cφ

 C

It is worth noticing that the k th row of matrix C(η, η̇) η̇ , which will be
denoted ck (η, η̇), can be obtained thanks to the following relationship:

 ck (η, η̇) = η̇T Sk (η)η̇


(B.60)
 ∂J T 
1 ∂J k (η) k (η) ∂J(η)
 Sk (η) = 2 ∂η + ∂η − ∂ηk

where J k (η) is the k th column of matrix J(η) and ηk is the k th component


of vector η .
From (B.57) we get the dierential equations for the angular accelerations:

η̈ = J(η)−1 τ i − C(η, η̇) η̇ (B.61)



B.3. Quadrotor 215

B.3.10 Newton-Euler equations


Let v b = Rbi (η)ξ̇ be the translational velocity vector expressed in the body frame
   
0 0
and f b =  0  − Rbi (η) m g  0  the external forces applied on the
P4
i=1 fi 1
quadcopter expressed in the body frame. Applying Newton-Euler equations,
the translational and angular dynamics in the body frame of the rigid body
quadcopter reads as follows:
  b    b   b 
mI 0 v̇ m Ω(ν) 0 v f
+ = (B.62)
0 I ν̇ 0 Ω(ν) I ν τb

Where:  
0 −r q
Ω(ν) = −Ω(ν)T =  r 0 −p  (B.63)
−q p 0
The preceding Newton-Euler equations are equivalent to equations (B.55)
and (B.61) obtained through the Euler-Lagrange formalism:
 b
v = Rbi (η)ξ̇
    
  0 0
1
m v̇ b + m Ω(ν) v b = f b Rib (η) 
 
 
ξ̈ = m 0 −g 0 
−1 ⇔ P4
 η̇ = W(η) ν
 
 i=1 fi 1
η̈ = J(η)−1 τ i − C(η, η̇) η̇

ν̇ = I−1 τ b − Ω(ν) I ν
  
(B.64)
Where:
τ i = W(η)T τ b (B.65)
The equivalence of the translational equations of motion is easily veried
thanks to the kinematics relationships.
As far as the Newton-Euler equations related to the rotational equations of
motion we get:

ν = W(η) η̇
I(ν̇ + Ω(ν) I ν = τ b
ν̇ = Ẇ(η) η̇ + W(η)η̈
⇒ (B.66)
I Ẇ(η) η̇ + W(η) η̈ + Ω(ν) IW(η) η̇ = τ b
 
⇒ IW(η) η̈ + I Ẇ(η) + Ω(ν) IW(η) η̇ = τ b

Multiplying both side by W(η)T leads to the equation of the rotational


equation of motion obtained through the Euler-Lagrange formalism:
 
W(η)T IW(η) η̈ + W(η)T I Ẇ(η) + W(η)T Ω(ν) IW(η) η̇ = W(η)T τ b
⇔ J(η)η̈ + C(η, η̇) η̇ = τ i
(B.67)
More generally the Newton-Euler equations for a point which is located to
(∆x , ∆y , ∆z ) with respect to the center of mass of the rigid body with velocity
(ub , vb , wb ) in the body xed axis (of course these components are the
216 Appendix B. Overview of Lagrangian Mechanics

components of v b , that is the velocity of the center of mass when the center of
mass is considered, that is when ∆x = ∆y = ∆z = 0) reads as follows2 :

v̇ b vb fb
       
mI −∆ m Ω(ν) −Ω(ν)∆
+ = (B.68)
∆ I ν̇ Ω(ν)∆ Ω(ν)I − V∆ ν τb

Where:  
0 −r q






 Ω(ν) =  r 0 −p 



  −q p 0 
0 −m ∆ m ∆y


 z
∆ =  m ∆z 0 −m ∆x  (B.69)
 −m ∆y m ∆x  0




0 −wb vb




−ub 



 V =  w b 0

−vb ub 0

B.3.11 Translational equations of motion with wind


The velocity of the quadcopter with respect to the inertial frame (the Earth)
is the sum of the velocity of the quadcopter with respect to the wind, which is
denoted Rib (η)v b , and the wind velocity, which is denoted w. Denoting by ξ the
position of the drone, we have:

ξ̇ := v i = Rib (η)v b + w (B.70)

where:  
u
vb =  v  (B.71)
w
Rotation matrix Rib (η) is given by (B.30).
Taking the time derivative of the velocity in the inertial frame, v i , we get:

v̇ i = Ṙib v b + Rib (η)v̇ b + ẇ (B.72)

From Newton's translational equations of motion we have:


X
mv̇ i = fi (B.73)

Multiplying by Rbi (η) leads to the following relationship:


X X
mRbi (η)v̇ i = Rbi (η) fi = fb (B.74)

We get:
f b = m(Rbi (η)Ṙib v b + v̇ b + Rbi (η)ẇ)
P
P
fb (B.75)
⇔ v̇ b = m − Rbi (η)Ṙib v b − Rbi (η)ẇ
2
Barton J. Bacon and Irene M. Gregory, General Equations of Motion for a Damaged
Asymmetric Aircraft, NASA Langley Research Center, Hampton, VA, 23681
B.3. Quadrotor 217

where Rbi (η)Ṙib := Ω(ν) has been seen previously. We nally get the
following equation of motion taking into account the wind component w reads:

fb
P
b
v̇ = − Ω(ν)v b − Rbi (η)ẇ (B.76)
m
Furthermore the wind is assumed to be not a constant but dependent on time
t as well as on the quadcopter location ξ := [x, y, z]T . So we have: w := w(t, ξ).
Taking into account the rule of chain derivative we have:

∂w(t, ξ) ∂w(t, ξ) ∂ξ
ẇ(t, ξ) = + (B.77)
∂t ∂ξ ∂t

Taking into account that the time derivative of the location of the quadcopter
is its velocity expressed in the inertial we have:

∂ξ
= v i = Rib (η)v b + w (B.78)
∂t

Thus (B.76) nally reads:

fb
P
∂w(t, ξ) ∂w(t, ξ)
 
b
v̇ = − (Ω(ν) + Ω(w)) v b − Rbi (η) + w (B.79)
m ∂t ∂ξ

where:
∂w(t, ξ) i
Ω(w) = Rbi (η) Rb (η) (B.80)
∂ξ

Of course, as soon as w = 0, we have Ω(w) = 0 and we retrieve equation of


motion (B.62).

B.3.12 Small angle approximation of angular dynamics


The second equation of (B.62) represents the angular dynamics in the body
frame of the rigid body quadcopter:

Iν̇ + Ω(ν) Iν = τ b
(B.81)
⇔ ν̇ = I−1 τ b − Ω(ν) Iν


We have seen that angular velocities in the inertial frame are expressed in
the body frame through the transformation matrix W(η)−1 :

η̇ = W(η)−1 ν (B.82)

The derivative of (B.82) with respect to time of the preceding equation leads
to the expression of η̈ :

dW(η)−1
η̈ = ν + W(η)−1 ν̇ (B.83)
dt
218 Appendix B. Overview of Lagrangian Mechanics

According to (B.37) we have:


 
1 sin (φ) tan (θ) cos (φ) tan (θ)
W(η)−1 = 0
 cos (φ) − sin (φ) 
sin (φ) cos (φ)
0 cos (θ) cos (θ)
(B.84)
 φ̇cφ sθ θ̇sφ θ̇cφ φ̇sφ sθ

0 cθ + c2θ c2θ
− cθ
dW(η)−1  
⇒ dt = 0
 −φ̇sφ −φ̇cφ  
φ̇c θ̇s s θ̇cφ sθ φ̇sφ
0 cθφ + cφ2 θ c 2 − cθ
θ θ

Small angle approximation of angular dynamics is obtained by setting Euler


angles vector η to zero within transformation matrix W(η)−1 , that is by setting
transformation matrix W(η)−1 to identity matrix. As a consequence the time
derivative of the Euler angles η̇ is approximated by the angular velocities ν of
the quadcopter in the body frame:

η = 0 ⇒ W(η)−1 ≈ I ⇒ η̈ ≈ ν̇ ⇒ η̇ ≈ ν (B.85)

In addition thanks to this approximation τ i = W(η)T τ b ≈ τ b and (B.81)


reads as follows, which is the small angle approximation of angular dynamics
(B.61):  
η̈ ≈ I−1 τ b − Ω(η̇) Iη̇ (B.86)

B.3.13 Synthesis model


The synthesis model is a simplied model when compared to the validation
model (B.64). Synthesis model enables to design control laws in a linear time
invariant frame.
As far as the angular dynamics is concerned, since term Ω(η̇) Iη̇ is usually
small when compared to τ b , equation (B.86) can be reduced as follows, which
is basically the dynamics of a double integrator:

Ω(η̇) Iη̇  τ b ⇒ η̈ ≈ I−1 τ b (B.87)


Appendix C

Singular perturbations and


hierarchical control

C.1 Block triangular and block diagonal forms


C.1.1 Block triangular form
Let's consider the following dynamical system arbitrarily partitioned as follows:
       
 ẋ1 A11 A12 x1 B1


 ẋ = A x(t) + B u := + u
2 A21 A22 x2 B2
  (C.1)
   x1
 y = Cx(t) := C1 C2


x2

The preceding state space representation can be transformed into the


following block triangular form1 :
       
ẋ1 As A12 x1 B1
= + u


ẋf 0 Af  xf Bf

  x1 (C.2)
 y = Cs C2


xf

Where: 
As = A11 − A12 L
(C.3)
Af = A22 + LA12

and: 
Bf = LB1 + B2
(C.4)
Cs = C1 − C2 L

Matrix L is a solution of the following non-symmetric algebraic Riccati


equation:
LA11 − A22 L − LA12 L + A21 = 0 (C.5)
1
Multi-Time Scale Systems, A.J.Fossard, IFAC Proceedings, Volume 17, Issue 2, July
1984, Pages 1139-1144
220 Appendix C. Singular perturbations and hierarchical control

The corresponding similarity transformation is the following:


         
x1 I 0 x1 x1 I 0 x1
= ⇔ = (C.6)
x2 −L I xf xf L I x2

It is worth noticing that the following relationship holds as soon as square


matrices P11 and P22 are invertible:
−1 
P−1
 
P11 0 11 0
=
P21 P22 −P−1 −1
22 P21 P11 P−1
22

C.1.2 Block diagonal form


The block diagonal form is obtained by introducing an additional similarity
transformation:
         
x1 I M xs xs I −M x1
= ⇔ = (C.7)
xf 0 I xf xf 0 I xf

We nally get the similarity transformation to the block diagonal form:


        
x1 I 0 I M xs I M xs
= = (C.8)
x2 −L I 0 I xf −L I − LM xf

Conversely:
        
xs I −M I 0 x1 I − ML −M x1
= = (C.9)
xf 0 I L I x2 L I x2

The preceding similarity transformation leads to the following block diagonal


form:        
ẋs As 0 xs Bs
= + u


ẋf 0 Af  xf Bf

  xs (C.10)
 y = Cs Cf


xf
Where:


 As = (I − ML) A11 − MA21 + (MA22 + (ML − I) A12 ) L
Af = (A21 + LA11 ) M + (A22 + LA12 ) (I − LM)

(C.11)
B = B1 − MBf = B1 − M (LB1 + B2 )
 s


Cf = Cs M + C2 = (C1 − C2 L) M + C2

Matrices Bf and Cs are still given by (C.4). Matrix L is still a solution of


the non-symmetric algebraic Riccati equation (C.5). Thus matrices As and Af
simplify as follows:

As = (I − ML) A11 − MA21 + (MA22 + (ML − I) A12 ) L


= A11 − A12 L − M (LA11 + A21 − A22 L − LA12 L)
= A11 − A12 L
(C.12)
Af = (A21 + LA11 ) M + (A22 + LA12 ) (I − LM)
= A22 + LA12 + (A21 + LA11 − A22 L − LA12 L) M
= A22 + LA12
C.1. Block triangular and block diagonal forms 221

Finally matrix M is a solution of the following Sylvester equation:


0 = ((I − ML) A11 − MA21 ) M + (MA22 + (ML − I) A12 ) (LM − I)
= ((I − ML) A11 − MA21 + (MA22 + (ML − I) A12 ) L) M
−M (A22 + LA12 ) + A12
= (A11 − A12 L) M − M (A22 + LA12 ) + A12
(C.13)
To summarize, we nally achieve the following block diagonal form:
     
ẋs A11 − A12 L 0 xs

 =



 ẋf 0  A22 + LA12 xf 
B1 − M (LB1 + B2 )

+ u (C.14)

 LB1 + B 2 

   xs
 y = C1 − C2 L (C1 − C2 L) M + C2


xf

where matrices L and M solve the following equations:



LA11 − A22 L − LA12 L + A21 = 0
(C.15)
(A11 − A12 L) M − M (A22 + LA12 ) + A12 = 0

C.1.3 Similarity transformation


In order to get matrices L and M, let χA (s) be the characteristic polynomial of
matrix A:
  
A11 A12
χA (s) := det(sI − A) = det sI − (C.16)
A21 A22
Let the n roots of χA (s) be split into two sets: the rst set contains ns roots,
λ1 , · · · , λns , which are dedicated to the roots of the characteristic polynomial
of As , whereas the second set contains n − ns roots, which are dedicated to the
roots of the characteristic polynomial of Af . Then we can write:

χA (s) = χAf (s)χAs (s) (C.17)

Assuming that polynomials χAs (s) and χAf (s) are coprime (no common
root), (n − ns ) × ns matrix L and ns × (n − ns ) matrix M can be obtained as
follows1 :
L = −TS−1

(C.18)
M = U (V + LU)−1
Matrices S, T, U and V belongs to the nullspace (or Kernel) of χAs (A)
and χAf (A) respectively (notice that in the characteristic polynomial the scalar
variable s has been replaced by the n × n state matrix A), each nullspace being
partitioned appropriately:
  
S
= ker (χAs (A))


 T 

(C.19)
U
= ker χAf (A)
 

V

222 Appendix C. Singular perturbations and hierarchical control

Furthermore the similarity transformation to the block diagonal form reads


as follows1 :    
x1 xs
:= P (C.20)
x2 xf
Where:
       
I M S U
P := = S−1 (V + LU)−1 (C.21)
−L I − LM T V

C.2 Singularly perturbed system


Dynamical system (C.1) is assumed to be stable. Let χA (s) be the characteristic
polynomial of state matrix A and λ (χA (s)) the roots of χA (s). Then dynamical
system (C.1) is said to be singularly perturbed if χA (s) can be split as follows:

χAf (s)χAs (s)


χA (s) = 
(C.22)
where max Re λ χAf (s)  min (Re (λ (χAs (s)))) < 0

Small number  is related to the value of ns which delimits the border


between the slow and the fast modes.
Let  ≥ 0 be a small number which may be dened as follows:
min (Re (λ (χAs (s))))
=  ≈ 0 (C.23)
max Re λ χAf (s)

Alternatively,  may be dened as the minimum of |λ|λnn+1 s|


| , assuming that
s
the real part of the eigenvalues λi of the open loop state matrix A are sorted in
a descending manner.
Then state space representation (C.1) can be written as follows where  ≥ 0
is a small number:
          
 ẋ1 I 0 A11 A12 x1 B1
 = + u
0 −1 I

 ẋ
2 A21 A22 x2 B2
  (C.24)
   x1
 y = Cx(t) := C1 C2


x2

The similarity transformation (C.9) is then changed as follows where small


number  ≥ 0 is introduced2 :
    
xs I − ML −M x1
= (C.25)
xf L I x2

Conversely:     
x1 I M xs
= (C.26)
x2 −L I − LM xf
2
Jaw-Kuen Shiau & Der-Ming Ma, An autopilot design for the longitudinal dynamics
of a low-speed experimental UAV using two-time-scale cascade decomposition, Transactions-
Canadian Society for Mechanical Engineering, 2009 33(3):501-521, DOI: 10.1139/tcsme-2009-
0034
C.3. Two-frequency-scale transfer function 223

Using result (C.14) where A2i , i = 1, 2 is replaced by A2i


 , i = 1, 2, B2 is
replaced by B2
 and matrix M by M we get:
  " #
A11 − A12 L
 
 ẋs 0 xs

 = A22

 ẋf 0 + LA12 xf
" 

   #

B1 − M LB1 + B2

+ u (C.27)
LB1 + B
2



 

   xs
y = C1 − C2 L (C1 − C2 L) M + C2



xf

Or equivalently, by multiplying the dynamics of xf by :


     
ẋs A 11 − A12 L 0 x s

 =



 ẋf 0  A22 + LA12 xf 
B1 − MB2 − MLB1

+ u (C.28)

 B2 + LB1 

   xs
 y = C1 − C2 L  (C1 − C2 L) M + C2


xf

Similarly, using result (C.15) where A2i , i = 1, 2 is replaced by A2i , i = 1, 2


and matrix M by M we conclude that matrices L and M shall solve the
following equations:
(
LA11 − A22 L − LA12 L + A21
  =0  (C.29)
(A11 − A12 L) M − M A22 + LA12 + A12 = 0

Or equivalently, by multiplying the rst equation by :


 
LA11 − A22 + LA12 L + A21 = 0
(C.30)
A12 − M A22 + LA12 +  (A11 − A12 L) M = 0

C.3 Two-frequency-scale transfer function


From the block diagonal form (C.14) we compute the transfer function of the
system as follows:
  −1  
  As 0 Bs
F(s) = Cs Cf sI −
0 Af Bf (C.31)
−1 −1
= Cs (sI − As ) Bs + Cf (sI − Af ) Bf

In the preceding relationships we assume that the system is stable; in others


words all the eigenvalues of matrices As and Af have negative real part.
Furthermore, we will assume that matrix As contains the slow modes of the
system (that are the eigenvalues which are the closest to zero) whereas matrix
Af contains the fast modes of the system (that are the eigenvalues which are
the most distant to zero). From a practical point of view, and assuming that
224 Appendix C. Singular perturbations and hierarchical control

the real part of the eigenvalues λi of A are sorted in a descending manner, the
value of ns which delimits the border between the slow and the fast modes can
be obtained by nding the minimum of |λ|λnn+1 s|
|.
s
The slow subsystem is obtained by setting ẋf = 0 in (C.14). Physically, it
means that the fast components of the state vector have achieved the equilibrium
point well before the slow components of the state vector. We get from (C.14):

 ẋs = As xs + Bs u
ẋ := 0 = Af xf + Bf u (C.32)
 f
y = Cs xs + Cf xf

Assuming that A−1 −1


f exists, we get xf = −Af Bf u. Thus the preceding
relationships reduce as follows:

ẋs = As xs + Bs u
xf = −A−1
f Bf u⇒ (C.33)
y = Cs xs − Cf A−1f Bf u

The transfer function of the slow dynamics Fs (s) is then obtained by


taking the Laplace transform of the preceding relationships, assuming no
initial condition. We get:

Fs (s) = Cs (sI − As )−1 Bs − Cf A−1


f Bf (C.34)

The fast subsystem is obtained by setting xs = 0 in (C.14). Physically,


it means that the slow components of the state vector stay at the equilibrium
point while the fast components of the state vector are changing. We get from
(C.14):

ẋf = Af xf + Bf u
(C.35)
ẋs := 0 ⇒ y = Cs xs + Cf xf := Cf xf

The transfer function of the fast dynamics Ff (s) is then obtained by


taking the Laplace transform of the preceding relationships, assuming no
initial condition. We get:

Ff (s) = Cf (sI − Af )−1 Bf (C.36)

The so-called fast outputs are the outputs for which the Bode magnitude
plot of Ff (s) and F(s) match for high frequencies. In the time domain, the
impulse response of Ff (s) and F(s) match on the fast scale time.
Furthermore it can be noticed that the Bode magnitude and phase plots of
Fs (s) and F(s) match pretty well for low frequencies, both for fast and for slow
outputs.
Finally the following property holds:

lim (sI − As )−1 = 0 ⇒ Fs (∞) = Ff (0) = −Cf A−1


f Bf (C.37)
s→∞
C.4. Hierarchical state feedback of singularly perturbed system 225

Example C.1. We consider the following state space representation, which


models the linearized longitudinal dynamics at a trimmed ight condition of a
jet liner. In the following, Vp stands for the true airspeed, α the angle of
attack, θ the pitch angle, q the pitch rate and δe the elevator deection:
   
Vp Vp
d  α  = A α 
(C.38)
 
 + B δe
dt  θ   θ 
q q
Where:
−1.4900 × 10−2 5.8649 −9.8059 −6.8000 × 10−2
  

−3.0000 × 10−4 −1.5863 0.0000 9.7250 × 10−1 


 

 A =  




 0.0000 0.0000 0.0000 1.0000 
0.0000 −4.9799 0.0000 −2.2514

 (C.39)

 −0.7137
−0.2886 

 
B=

 



  0. 
−23.6403

The eigenvalues of A are λf , λ̄f = −1.919 ± 2.176j , which are the fast
eigenvalues, and λs , λ̄s = −0.007 ± 0.041j , which are the slow eigenvalues.
Figure C.1 shows the Bode magnitude plot and the impulse response of the
fast outputs, that are α and q : it can be seen that the Bode magnitude plot of
Ff (s) and F(s) match for high frequencies. In the time domain, the impulse
response of Ff (s) and F(s) match on the fast scale time (here 5 seconds) .
On the other hand, Figure C.2 shows the Bode magnitude plot and the
impulse response of the slow outputs, that are Vp and θ: contrary to the fast
outputs, the high frequencies Bode magnitude plot of Ff (s) and F(s) do not
match for high frequencies. The mismatch is also clear between the impulse
response of Ff (s) and F(s) on the fast scale time (here 5 seconds) .
Furthermore it can be noticed that the Bode magnitude and phase plots of
Fs (s) and F(s) match pretty well for low frequencies, both for fast and for slow
outputs.


C.4 Hierarchical state feedback of singularly


perturbed system
We consider hereafter the block diagonal form (C.14) where xs contains the slow
components of the state vector and xf the fast components of the state vector:
      
ẋs As 0 xs Bs
= + u (C.40)
ẋf 0 Af xf Bf
The control of the system is done by writing control u as follows where r is
the reference input :
u = −Kf xf − Ks xs + r (C.41)
226 Appendix C. Singular perturbations and hierarchical control

Figure C.1: Bode magnitude plot and impulse response of fast outputs

Figure C.2: Bode magnitude plot and impulse response of slow outputs
C.4. Hierarchical state feedback of singularly perturbed system 227

This leads to the following closed loop dynamics:


      
ẋs As − Bs Ks −Bs Kf xs Bs
= + r (C.42)
ẋf −Bf Ks Af − Bf Kf xf Bf
We have seen in (C.27) that:


 As = A11 − A12 L
 Af = A22 + LA12 = A22 +LA12


  

B B1 −M(2 LB1 +B2 ) (C.43)
 Bs = B1 − M LB1 +  =
2




Bf = LB1 + B2 = LB1 +B

Thus the state matrix Acl of the closed loop system reads as follows:
  " #
As − Bs Ks −Bs Kf A
e 11 Ae 12
Acl = := A (C.44)
−Bf Ks Af − Bf Kf e 21 A
e 22
 

Then, assuming that 0 <   1 and that feedbacks Kf and Ks maintain the
distinction between the slow and the fast modes (in other words the real part
of the closed loop eigenvalues shall be chosen with the same order of magnitude
than the open loop eigenvalues), the eigenvalues of Acl can be approximated as
follows3 :
" #!
Ae 11 A
e 12 
A
  
λ (Acl ) = λ ≈ λ ∪ λ A
e 22 e0
A A 
(C.45)
e 21 e 22
   
≈ λ (Af − Bf Kf ) ∪ λ A0
e

Where, assuming that matrix A


e 22 is invertible:

A e 11 − A
e0 = A e −1 A
e 12 A e 21
22
−1
= As − Bs K s − Bs Kf (Af − Bf Kf )  Bf K s (C.46)
= As − Bs I + Kf (Af − Bf Kf )−1 Bf Ks

The preceding relationship indicates that the closed loop eigenvalues are
obtained by the union of two sets:
− the set of the fast closed loop eigenvalues λ (Af − Bf Kf ). This
corresponds to put the feedback u = −Kf xf on the following fast
subsystem:
ẋf = Af xf + Bf u (C.47)

− the set of the slow closed loop eigenvalues λ A


 
e 0 . This corresponds to
put the feedback u = −Ks xs on the modied slow subsystem where input
matrix Bs is changed by input matrix B e s dened hereafter:

ẋs = As xs + B
es u
e s = Bs I + Kf (Af − Bf Kf )−1 Bf
 (C.48)
where B
3
Hassan K. Khalil, On the robustness of output feedback control methods to modeling
errors, IEEE Transactions on Automatic Control, Vol. AC-26, April 1981, pp 524-526
228 Appendix C. Singular perturbations and hierarchical control

Coming back to the physical states x1 and x2 of the initial system (C.1), we
nally get:
u = −K1 x1 − K2 x2 + r := −K x + r (C.49)
Where:

P−1
   
K := K1 K2 = Ks Kf


 I − ML −M
 (C.50)
= Ks Kf
L I

The core of this result is the Schur complement, which is stated hereafter:
 
X11 X12
= det (X22 ) det X11 − X12 X−1 (C.51)

det 22 X21
X21 X22

The Schur complement applied to the closed loop state matrix Acl reads:
" #!
sI − Ae 11 −A e 12
det
− A21 sI − A22
e e

!  !−1 
A
e 22 A
e 22 A
e 21
 (C.52)
= det sI − det sI − A
e 11 − A
e 12 sI −
  

When  → 0, we can write sI− A22 |{z}


≈ − A22 . Then result (C.45) is obtained
e e

→0
as follows:
" #!
sI − A A
e 11
e 12
det A
sI − A
e 21 e 22
 
(C.53)

e 22 −1
   
≈ det sI − A22 det sI − A e 12 − A
e 11 − A A
e e 21
 
   
A −1
= det sI −  det sI − A e 11 + A
e 12 A
e A
e 22 e 21
22

Example C.2. We extend example C.1 in order the achieve the following closed
loop eigenvalues: 
λclf , λ̄clf = −1 ± j
(C.54)
λcls , λ̄cls = −0.01 ± 0.01j
It is worth noticing that the choice of the closed loop eigenvalues maintain
the distinction between the slow and the fast modes (in other words the real
part of the closed loop eigenvalues have been be chosen with the same order of
magnitude than the open loop eigenvalues).
The block diagonal form of (C.39) is obtained with change of basis matrix
P set as follows:
 
1. 0. 0.0002809 −0.3419851
0. 1. 0.0000081 0.000029 
(C.55)

P=
 9.8571029 −122755.35 0.0001549 −0.1884762 

0.0076712 −97.760076 −0.0007962 0.9997888


C.5. Hierarchical output feedback of singularly perturbed system 229

We get:  
−96.657765

119379.91

 Af =



  −0.0752234 92.819752

 −35266.671
B =

 f

−51.728931
  (C.56)
−96.700593 1204088.4
As =


−0.0077649 96.686006



 
−8.4994064



 Bs =

−0.0006476
Then state feedback gains Kf and Ks are set as follows:
− state feedback gain Kf is set such that the eigenvalues of Af − Bf Kf are
equal to {λclf , λ̄clf }. This leads to the following value of Kf :
−5.913 562 21 × 10−5 7.584 822 89 × 10−2 (C.57)
 
Kf =

− state feedback gain Ks is set such that the eigenvalues of As − B


e s Ks are
equal to {λcls , λ̄cls } where Bs is dened as follows:
e
 
e s = Bs I + Kf (Af − Bf Kf )−1 Bf
B (C.58)

This leads to the following value of Ks :


2.771 184 12 × 10−3 3.462 507 03 × 101 (C.59)
 
Ks =

State feedback gain K on the actual system is nally obtained as follows:


K =  Ks Kf P−1
 

= −1.0198 × 10−5 1.5589 × 10−1 −3.4115 × 10−4 7.5792 × 10−2




(C.60)
We check that the eigenvalues of A − BK of the whole system are close to
the expected eigenvalues {λclf , λ̄clf , λcls , λ̄cls }. Indeed:
λ (A − BK) = {−0.99748 ± 0.99930j, −0.01045 ± 0.00955j} (C.61)

C.5 Hierarchical output feedback of singularly


perturbed system
The hierarchical output feedback of a singularly perturbed system is shown in
Figure C.3 and Figure C.4:

− The fast subsystem is rst controlled through fast controller Cf (s) as


shown in Figure C.3. Transfer function Ff (s) is given by (C.36):

Ff (s) = Cf (sI − Af )−1 Bf (C.62)


230 Appendix C. Singular perturbations and hierarchical control

Figure C.3: Output feedback of the fast subsystem

Figure C.4: Output feedback of the slow subsystem


C.5. Hierarchical output feedback of singularly perturbed system 231

− The slow subsystem is then controlled through slow controller Cs (s) as


shown in Figure C.4. The fast controller Cf (s) is replaced by its low
frequency approximation Cf (0) whereas transfer function Fs (s) is given
by (C.34). We split it into two parts:

 Fs (s) = Fssp (s) + Ff (0)
Fssp (s) = Cs (sI − As )−1 Bs (C.63)
Ff (0) = −Cf A−1 B

f f
232 Appendix C. Singular perturbations and hierarchical control
Appendix D

Introduction to fractional
systems

D.1 Pre-ltering
A prelter Cpf (s) is a controller which is situated outside the feedback loop as
shown in Figure D.1.
What is the purpose of the prelter ? Once the controller C(s) is designed
the poles of the feedback loop transfer function RYpf(s)
(s) are set. Nevertheless the
numerator of this transfer function is not mastered and the zeros of RYpf(s)
(s) may
cause undesirable overshoots in the transient response of the closed loop system.
The purpose of the prelter Cpf (s) is to reduce or eliminate such overshoots in
the closed loop system.
Let Ncl (s) be the numerator of transfer function RYpf(s) (s) and Dcl (s) its
denominator:
Y (s) Ncl (s)
= (D.1)
Rpf (s) Dcl (s)
The prelter Cpf (s) is then designed such that its poles cancel the zeros of
the closed loop system, that are the roots of Ncl (s). Furthermore the numerator
of the prelter is usually set to be a constant Kpf such that the transfer function
of the full system reads:
Y (s) Kpf
= (D.2)
R(s) Dcl (s)

Figure D.1: Feedback loop design with prelter


234 Appendix D. Introduction to fractional systems

As a consequence the transfer function of the prelter reads:

Kpf
Cpf (s) = (D.3)
Ncl (s)

Y (s)
Usually constant Kpf is set such that the static gain of R(s) is unitary,
meaning that the position error is zero:

Y (s)
= 1 ⇒ Kpf = Dcl (0) (D.4)
R(s) s=0

D.2 Design steps


The general scheme for the controlled system is provided in Figure D.1 where
Cpf (s) is the transfer function of the prelter.
The design philosophy is to set the transfer function C(s) of the controller
and the transfer function Cpf (s) of the prelter in order to force the transfer
function of the full system to have the following expression where Kpf is a
constant gain and Dcl (s) a polynomial formed with the desired closed loop
poles:
Y (s) Kpf
= (D.5)
R(s) Dcl (s)
The design steps of the control loop are the following:

− Design the controller C(s) such that transfer function of feedback loop
without preltering (Cpf (s) = 1) has the desired denominator Dcl (s).
In other words controller C(s) is used to set the poles of the controlled
system.

− Design the prelter Cpf (s) such that transfer function of the full system
does not have any zero:

Y (s) Kpf
= (D.6)
R(s) Dcl (s)

In other words prelter Cpf (s) is used to shape the numerator of the
transfer function of the controlled system.

Example D.1. Consider a plant with the following transfer function:


1
F (s) = (D.7)
s (s − 2)

Obviously the plant is not stable, indeed there is one pole at +2. In order to
stabilize the plant we decide to use the following PD controller (we do not use
an integral action because the plant F (s) has already an integral term):
C(s) = Kp + Kd s (D.8)
D.3. Pre-ltering design for non-minimum phase feedback loop 235

Furthermore we set the targeted transfer function of the controlled system as


follows (see Figure D.1):
Y (s) 2
= 2 (D.9)
R(s) s + 5s + 2
The rst step of the design is to set the values Kp and Kd of the PD controller
such that the denominator of the targeted transfer function is achieved. Transfer
function RYpf(s)(s) (no prelter here) reads:
Y (s) C(s)F (s)
Rpf (s) = 1+C(s)F (s)
Kp +Kd s
= Kp +Kd s+s (s−2) (D.10)
Kp +Kd s
= s2 +s (Kd −2)+Kp

The actual denominator will be equal to the targeted denominator as soon as


Kp and Kd are set as follows:

Kd = 7
2 2
s + s (Kd − 2) + Kp = s + 5 s + 2 ⇒ (D.11)
Kp = 2

Thus transfer function Y (s)


Rpf (s) (no prelter here) reads:

Y (s) Kp + Kd s 2 + 7s
= 2 = 2 (D.12)
Rpf (s) s + s (Kd − 2) + Kp s + 5s + 2

Taking now into account prelter Cpf (s) transfer function Y (s)
R(s) reads:

Y (s) Rpf (s) Y (s) 2 + 7s


= = Cpf (s) 2 (D.13)
R(s) R(s) Rpf (s) s + 5s + 2

Thus transfer function of the controlled system will read Y (s)


R(s) = 2
s2 +5 s+2
as
soon as prelter Cpf (s) is set as follows:
Y (s) 2 2
= 2 ⇒ Cpf (s) = (D.14)
R(s) s + 5s + 2 2 + 7s


D.3 Pre-ltering design for non-minimum phase


feedback loop
Sometimes the numerator of the feedback loop transfer function RYpf(s)(s) has zeros
with positive real part. Such transfer functions with zeros in the right half plane
in the complex plane, that is with positive real part, are called non-minimum
phase transfer functions. As far as the denominator of the prelter is set to
the numerator of the feedback loop transfer function this leads to an unstable
prelter, which is not acceptable.
236 Appendix D. Introduction to fractional systems

Y (s)
Suppose that feedback loop transfer function P (s) = Rpf (s) has a positive
dP (s)
real zero of order one at s = z > 0, that is P (z) = 0 and ds s=z 6= 0. Such
a transfer function can be decomposed as follows where Pmp (s) is a minimum
1

phase transfer function:


 s
P (s) = 1 − Pmp (s) (D.15)
z
Using remarkable identity 1 − x2 = (1 − x) (1 + x), the term 1 − zs in the
preceding equation can be expanded using fractional powers of s as follows:
  
s s 1/2 s 1/2
 
1− z = 1− z 1 + z
     
s 1/4 s 1/4 s 1/2

= 1− 1 + 1 +
 z  z  z
   (D.16)
s 1/8 s 1/8 s 1/4 s 1/2
  
= 1− z 1 + z 1 + z 1 + z
= ···

That is:

s
  s 1/M  log2Y
(M/2)   s 2k /M 
1− = 1− 1+ (D.17)
z z z
k=0

where log2 (M/2) is the base 2 logarithm of M/2 and M is any number
multiple of 2.
The positive real zeroz can then be partially compensated through the
Qlog2 (M/2) k
s 2 /M
term DM (s) = k=0 1+ z which will appear in the denominator
of the transfer function of the prelter. Indeed it can be shown that PM (s) =
1

Pmp (s) has a weaker non-minimum phase zero at s = z than



1/M
1 − zs


P (s) = 1 − z Pmp (s).


s


The next step consists in approximating the state space fractional system
with the following transfer function Pf (s) which will appear in the prelter:

1
Pf (s) = Q  k  (D.18)
log2 (M/2) s 2 /M
k=0 1+ z

D.4 CRONE approximation of fractional derivative


CRONE (Commande Robuste d'Ordre Non-Entier : this is the French
abbreviation for Non Integer Order Robust Control which was introduced by
A. Oustaloup2 ) is a method which enables to approximate the innite
dimension fractional lter sαi , αi ∈ (0, 1), by a nite dimension rational
1
Practical and ecient method for fractional-order unstable pole-zero cancellation in linear
feedback systems, Farshad Merrikh-Bayat, https://arxiv.org/abs/1207.6962
2
A. Oustaloup - La commande CRONE, Hermes, 1991
D.4. CRONE approximation of fractional derivative 237

transfer function Gαi (s) which is provided as follows3 :


 
 αi Qi=+N 1 + s
1 i=−N ωz,i
sαi ≈ Gαi (s) =   (D.19)
ωB Q i=+N s
i=−N 1 + ωp,i

In order to obtain a good accuracy in a frequency range (ωmin , ωmax ), poles


and zeros are distributed in a broader frequency range (ωA , ωB ) dened as a
function of (ωmin , ωmax ) and an adjustment coecient σ which is often chosen
to σ = 10:

 ωB = σ ωmax
 ωA = ωmin




  σ(1−αi )/(2N +1)
ωB

 η = ωA



(D.20)
 αi /(2N +1)
ωB
 δ = ωA

 √
ωz,−N = η ωA




ωp,i = δ ωz,i i = −N, · · · , N




ωz,i+1 = η ωp,i i = −N, · · · , N − 1

We recall that as far as the approximated transfer function Gαi (s) of sαi has
distinct real poles λi , its partial fraction expansion reads:

N (s)
sαi ≈ Gαi (s) = D(s) +d
= N (s)
(s−λ1 )(s−λ2 )···(s−λn ) + d
(D.21)
r1 r2 rn
= s−λ1 + s−λ2 + · · · + s−λn +d

Number ri is called the residue of transfer function Gαi (s) in λi . When the
multiplicity of the pole (or eigenvalue) λi is 1 we have seen that residue ri can
be obtained thanks to the following formula:

ri = (s − λi )Gαi (s)|s=λi (D.22)

Now we dene constants bi and ci such that the product bi ci is equal to ri :

ri = bi ci (D.23)

This leads to the following state-space representation, which is called the


diagonal (Jordan) or modal form, corresponding to the approximation of sαi :

ż(t) = Aαi z(t) + Bαi u(t)
s αi
≈ Gαi (s) : (D.24)
y(t) = Dαi u(t) ≈ Cαi z(t) + Dαi u(t)

3
Comparison between two approximation methods of state space fractional systems
Mansouri Rachid, Bettayeb Maamar, Djennoune Said, Signal Processing 91 (2011) 461469
238 Appendix D. Introduction to fractional systems

where:   
λ1 0 0
..



.
  

  0 λ2 
 Aαi =  .

.

 .. ..

 
0

 


0 ···



 0 λn




  

 b1
 b2  (D.25)
B =  .. 
  
 αi
. 



 

bn







  
C = c c · · · c

α 1 2 n


 i





Dαi = d
Similarly the Laplace transform of the fractional integration operator I αi
iss−αi .The approximation of the fractional integration operation s−αi can be
obtained by exploiting the following equality4 :

1 1−αi
s−αi = s (D.26)
s
Because 0 ≤ 1−αi ≤ 1 as soon as αi ∈ (0, 1), fractional integration operation
s1−αi can be approximated by a transfer function similar to (D.19). Then the
nite dimension rational model is multiplied by 1s which leads to a strictly proper
approximation 1s s1−αi of the fractional order integration operation s−αi :

1 1−αi 1
s−αi = s ≈ G1−αi (s) (D.27)
s s

Because 1s s1−αi is a strictly proper transfer function, matrix D−αi is null.


The state space representation corresponding to the approximation of s−αi
reads:

−αi 1 ż(t) = A−αi z(t) + B−αi u(t)
s ≈ G1−αi (s) : (D.28)
s y(t) = I αi u(t) ≈ C−αi z(t)

D.5 State space fractional systems


Usually the state space model of an integer linear time invariant system is the
following:

ẋ(t) = Ax(t) + Bu(t)
(D.29)
y(t) = Cx(t) + Du(t)
Where:
4
A method for modelling and simulation of fractional systems, Thierry Poinot, Jean-
Claude Trigeassou, Signal Processing 83 (2003) 2319-2333
D.5. State space fractional systems 239

Figure D.2: Block diagram of a state-space representation

− x(t) is the state vector, which is of dimension n. The number n of the


state vector components is called the order of the system;
− u(t) is the input of the system;
− y(t) is the output of the system.
State vector x(t) can be dened as a set of variables such that their
knowledge at the initial time t0 = 0, together with knowledge of system inputs
u(t) at t ≥ 0 are sucient to predict the future system state and output y(t)
for all time t > 0.
Both equations in (D.29) have a name:
− Equation ẋ(t) = Ax(t) + Bu(t) is named as the state equation;
− Equation y(t) = Cx(t) + Du(t) is named as the output equation.
The state equation and the output equation both constitute the state-space
representation of the system.
The block diagram corresponding to the state-space representation (D.29)
is shown in Figure D.2.
The corresponding transfer function of the model is given by:
G(s) = C (sI − A)−1 B + D (D.30)
State space representation (D.29) can be extended to fractional case as
follows5 :  α
D x(t) = Ax(t) + Bu(t)
(D.31)
y(t) = Cx(t) + Du(t)
where: T
Dα x(t) = Dα1 x1 (t) · · · Dαn xn (t) (D.32)


Denoting by [αk ] the integer part of αk the Laplace transform of the


fractional Caputo derivative Dαk xk (t) is5 :
[αk ]−1
di xk (t)

X
L [Dαk xk (t)] = sαk L [xk (t)] − sαk −i−1 (D.33)
dti t=0
i=0
5
W. Krajewski and U. Viaro, On the rational approximation of fractional order systems,
2011 16th International Conference on Methods & Models in Automation & Robotics,
Miedzyzdroje, 2011, pp. 132-136. doi: 10.1109/MMAR.2011.6031331
240 Appendix D. Introduction to fractional systems

If all fractional orders are multiples of the same real number α ∈ (0, 1)
(commensurate fractionalorder systems), operator Dα x(t) simplies as follows:
T
Dα x(t) = Dα x1 (t) · · · Dα xn (t) (D.34)


Example D.2. The following example presents a fractional state space


representation and its corresponding transfer function3 :
  1.56     
 D x1 (t) 0 1 0 0
  1.13

D x2 (t)  =  0 0 1  x(t) +  0  u(t)
(D.35)

 D0.77x3 (t)  −4 −20 −10 1
y(t) = 4 1 0 x(t)

The corresponding transfer function is the following:


s1.56 + 4
G(s) = (D.36)
s3.46 + 10 s2.69 + 20 s1.56 + 4
Denoting by y(t) the output of the system, it is worth noticing that the
components of the state vector are the following where y(i) (t) indicates the ith
time derivative of y(t):  
y(t)
x(t) = y
 (1.56) (t)  (D.37)
y (2.69) (t)
Furthermore D1.56 corresponds to the lower fractional derivative which
appears in the denominator of transfer function G(s) whereas the others terms,
D1.13 and D0.77 namely, are obtained by subtracting the consecutive fractional
derivatives which appears in the denominator of transfer function G(s).
Last but not least the fractional exponents which appear in the numerator of
G(s) are the same than those which appear in its denominator.


D.6 Approximation of fractional systems based on


dierentiation operator
The approximation of fractional systems based on dierentiation operator is
obtained by coupling (D.31) and (D.24):
  α

 D x(t) = Ax(t) + Bu(t)
y(t) = Cx(t) + Du(t)

 (D.38)

 ż(t) = Aα z(t) + Bα x(t)
Dα x(t) ≈ Cα z(t) + Dα x(t)

Block-diagonal matrices Aα ∈ R(2N +1)·n×(2N +1)·n , Bα ∈ R(2N +1)·n×n , Cα ∈


Rn×(2N +1)·n and Dα ∈ Rn×n are obtained from (D.24) as follows:
  

 Aα = diag  Aα1 · · · Aαn 
Bα = diag  Bα1 · · · Bαn 

(D.39)
C = diag  Cα1 · · · Cαn 
 α


Dα = diag Dα1 · · · Dαn
D.7. Approximation of fractional systems based on integration operator 241

Equating the expression of Dα x(t) in both equations of (D.38) yields to the


expression of the state space vector x(t) of the fractional model:
A x(t) + B u(t) ≈ Cα z(t) + Dα x(t)
−1
(D.40)

⇔ x(t) ≈ A − Dα Cα z(t) − B u(t)
−1 −1
≈ A − Dα Cα z(t) + Dα − A B u(t)
Finally the approximation of fractional system (D.38) based on
dierentiation operator reads:

ż(t) = AD z(t) + BD u(t)
y(t) ≈ CD z(t) + DD u(t)
 −1
A D = A α + Bα A − Dα Cα
(D.41)


 −1
BD = Bα Dα − A B

where −1
CD = C A − Dα C
−1 α



DD = C Dα − A B+D

D.7 Approximation of fractional systems based on


integration operator
The inspection
R tof Figure D.2 shows that we may also choose the integral operator
input x(t) = 0 w(τ )dτ as the state vector vector and write the corresponding
state space model using the integral function instead of the derivative one. This
yields to3 :  Rt
 w(t) = AR 0 w(τ )dτ + Bu(t)

t
y(t) = C 0 w(τ )dτ + Du(t) (D.42)
 x(t) = t w(τ )dτ
 R
0
The corresponding transfer function of the model then given by

I −1
 
I
G(s) = C I−A B+D (D.43)
s s
Denoting by I αi the fractional integration operator, state space
representation (D.42) can be extended to fractional case as follows3 :

 w(t) = AI α w(t) + Bu(t)


y(t) = CI α w(t) + Du(t) (D.44)


x(t) = I α w(t)

where: T
I α w(t) = I α1 w1 (t) · · · I αn wn (t) (D.45)


The approximation of fractional systems based on integration operator is


obtained by coupling (D.44) and (D.28):

w(t) = AI α w(t) + Bu(t)


 

α

 y(t) = CI w(t) + Du(t)

(D.46)

 ż(t) = A−α z(t) + B−α w(t)
x(t) = I α w(t) ≈ C−α z(t)

242 Appendix D. Introduction to fractional systems

Block-diagonal matrices A−α ∈ R(2N +2)·n×(2N +2)·n , B−α ∈ R(2N +2)·n×n and
C−α ∈ Rn×(2N +2)·n are obtained from (D.28) as follows:
  
 A−α = diag  A−α1 · · · A−αn 
B−α = diag  B−α1 · · · B−αn  (D.47)
C−α = diag C−α1 · · · C−αn

Using the expression of w(t) provided in the rst equation of (D.46) within
the expression of ż(t) in the third equation of (D.46) and using the
approximation I α w(t) ≈ C−α z(t) provided in the fourth equation yields:

w(t) = AI α w(t) + Bu(t)


⇒ ż(t) = A−α z(t) + B−α w(t)
= A−α z(t) + B−α (AI α w(t) + Bu(t))
(D.48)
= A−α z(t) + B−α AI α w(t) + B−α Bu(t)
≈ A−α z(t) + B−α AC−α z(t) + B−α Bu(t)
= A−α + B−α AC−α z(t) + B−α Bu(t)
Finally the approximation of fractional system (D.46) based on integration
operator reads: 
ż(t) = AI z(t) + BI u(t)
y(t) ≈CI z(t) + DI u(t)
AI = A−α + B−α AC−α

 (D.49)
BI = B−α B

where
 CI = C C−α

DI = D

Example D.3. Coming back to Figure D.1, let's consider the following non-
minimum phase transfer function:
Y (s) 10s − 1
P (s) = = 2 (D.50)
Rpf (s) s + 1.4s + 1
It is clear that in order to obtain no static error, that is Y (s)
R(s) = 1
s2 +1.4s+1
,
we shall choose the prelter Cpf (s) as follows:
Y (s) 1
=
s2 +1.4s+1
= P (s)Cpf (s)
R(s)
(D.51)
⇒ Cpf (s) = 10s−1 = 1−−1s
1
0.1

Obviously Cpf (s) is not a stable system and this prelter cannot be
implemented.
Alternatively we can write P (s) as follows where Pmp (s) is a minimum phase
transfer function:
 s  s  −1
P (s) = 1 − Pmp (s) = 1 − 2
(D.52)
z 0.1 s + 1.4s + 1
Then, choosing for example M = 4 we write:
s
 
s 1/M Qlog2 (M/2)
  k
s 2 /M

1− 0.1 = 1− 0.1 k=0 1 + 0.1
       (D.53)
s 0.25 s 0.25 s 0.5
= 1− 0.1 1 + 0.1 1 + 0.1
D.7. Approximation of fractional systems based on integration operator 243

From this decomposition prelter Cpf (s) now reads:


−1
Cpf (s) = 
s 0.25

s 0.5

1+( 0.1 ) 1+( 0.1 )
= −(0.1)0.25 (0.1)0.5 (D.54)
(s0.25 +(0.1)0.25 )(s0.5 +(0.1)0.5 )
−(0.1)0.75
= s 0.75 +(0.1)0.25 s +(0.1)0.5 s0.25 +(0.1)0.75
0.5

The fractional state space representation corresponding to this transfer


function reads:
  0.25     
 D x1 (t) 0 1 0 0
  0.25

D x2 (t) =  0 0 1  x(t) + 0  u(t)

0.25
D x3 (t) −(0.1)0.75 −(0.1)0.5 −(0.1)0.25 1


y(t) = −(0.1)0.75 0 0 x(t)

(D.55)
Figure D.3 shows Bode plots of the two approximating methods for fractional
prelter Cpf (s) with the following setting:

 N =4
ωmin = 10−2 (D.56)
ωmax = 102

Figure D.4 shows the step response of the plant with the rational prelter
Cpf (s): it can be seen that the non-minimum phase eect has been reduced but
the time response has been highly increased compared with the result obtained
with a static prelter Cpf (s) = −1 which leads to YR(s)
(s) 10s−1
= − s2 +1.4s+1 = −P (s)

244 Appendix D. Introduction to fractional systems

Figure D.3: Bode plots of approximated fractional prelter Cpf (s)

Figure D.4: Step response with approximated fractional prelter Cpf (s)

You might also like