Vous êtes sur la page 1sur 44

Eléments sur les représentations d’état

Version provisoire - V5

Gérard Blanchet, Denis Matignon

1 Décembre 2009
2 SI240etats.aux
Table des matières

Notations 5

1 Transformée de Laplace 7
1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Système linéaire invariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Le pendule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.1 Pré-compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Post-compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Représentations d’état à temps continu 11


2.1 Formes standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Forme contrôleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Forme observateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Solution de l’équation d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Passage de la représentation d’état à la fonction de transfert . . . . . . . . . . . . 14
2.3.1 Cas scalaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Cas général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Eléments structurels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.1 Commandabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 Observabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.3 Décomposition de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Passage du temps continu au temps discret 21


3.1 Approximations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Passage en présence de bloqueur d’ordre 0 . . . . . . . . . . . . . . . . . . . . . . 22

4 Représentations d’état à temps discret 23


4.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Résolution de l’équation d’état, cas SLI . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Problèmes fondamentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Structure des filtres 29


5.1 Structure de filtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.2 Réalisation du filtrage dans MATLAB . . . . . . . . . . . . . . . . . . . . 31
5.2 Imperfections des implantations numériques . . . . . . . . . . . . . . . . . . . . . 32

3
4 SI240etats.aux

6 Cas multivariable 33
6.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.1.1 Représentation et dimension de l’espace d’état . . . . . . . . . . . . . . . 33
6.1.2 Forme diagonale de Gilbert . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.2 Eléments de structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.2.1 Minimalité d’une réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . 35

7 Indications 37
7.1 Transformée de Laplace (p. 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.2 Représentations d’état à temps continu (p. 11) . . . . . . . . . . . . . . . . . . . 37
7.3 Passage du temps continu au temps discret (page 21) . . . . . . . . . . . . . . . . 38
7.4 Représentations d’état à temps discret (page 23) . . . . . . . . . . . . . . . . . . 40
7.5 Structure des filtres (page 29) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.6 Cas multivariable (page 33) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Bibliographie 42

Index 44
Notations

B Domaine de convergence de l’intégrale de Laplace


X(s) Transformée
R ∞ de Laplace de x(t) causale
X(s) = 0 x(t)e−st dt avec Re(s) > α
Y (t) Fonction de Heaviside

SL système linéaire
SLI système linéaire invariant
TL transformée de Laplace
TF transformée de Fourier

5
6 SI240etats.aux
Chapitre 1

Transformée de Laplace

1.1 Définition
La transformée de Laplace est l’outil privilégié pour l’étude des comportements transitoires des
systèmes. Son principal intérêt réside dans son aptitude à donner les solutions causales (nulles
pour t < 0) d’une large classe d’équations différentielles. C’est la raison pour laquelle on ne
considèrera, dans la majorité des cas, que des espaces de fonctions causales.
Z +∞
X : s ∈ B 7→ X(s) ∈ C : L (x(t)) = X(s) = x(t)e−st dt (1.1)
0

B ⊂ C est le domaine de convergence de l’intégrale de Laplace :


  Z +∞ 
−st

B = s/Re(s) > αx ∀α > αx , x(t)e dt < ∞ (1.2)
0

en posant s = α + 2iπf .
Si on suppose x(t) causale, avec α > αx , on a (TF dénote la transformée de Fourier) :

X(s) = TF x(t)e−αt (1.3)
1
Exemple : la fraction rationnelle X(s) = s−s0 , avec Re(s) > Re(s0 ) est transformée de
Laplace de es0 t Y (t).

1.2 Propriétés
− Linéarité ;

− Quelques transformées :
y(t) = (h ⋆ x)(t) Y (s) = H(s) × X(s)
dx(t)
dt sX(s) − x(0+ )
d2 x(t)
dt2
s2 X(s) − sx(0+ ) − ẋ(0+ )
x(t − τ ) X(s)e−sτ (retard)
dX(s)
−tx(t)
R tds X(s) Rt R∞
0 x(t)dt s (si lim t→0 0 x(t)dt = 0 et 0 x(t)dt < ∞)

− Sous certaines conditions de régularité à l’origine : limt→0 x(t) = lims→∞ sX(s).

− Si les deux limites suivantes existent alors limt→∞ x(t) = lims→0 sX(s).

7
8 Chapitre 1 - Transformée de Laplace

− L’original de X(s) avec B = {Re(s) > α} est une fonction causale (théorème de Paley-
Wiener).

1.3 Système linéaire invariant


Un système linéaire invariant réalise une convolution entre l’entrée et une fonction du temps, la
réponse impulsionnelle, g(t), qui caractérise le système.
Noter qu’il ne faut pas confondre réponse impulsionnelle et réponse à une impulsion. On
retiendra que la réponse impulsionnelle est la réponse à une impulsion à conditions initiales
nulles.
La transformée de Laplace G(s) de la réponse impulsionnelle est la fonction de transfert du
système. Gf (f ) = G(2πjf ) est le gain complexe du système.

Définition 1.1 Un système de réponse impulsionnelle g(t) est dit stable “entrée bornée-sortie
bornée” si :

∀A > 0, ∃B, |x(t)| < A ⇒ |y(t)| = |(x ⋆ g)(t)| < B (1.4)

Théorème 1.1 Un système G(s) est stable entrée bornée-sortie bornée (EBSB) (BIBO,
Bounded Input-Bounded Output) si et seulement si sa réponse impulsionnelle g(t) est sommable
(1.5) :
Z +∞
|g(t)|dt < ∞ (1.5)
0

Corollaire 1.1 Un système G(s) est stable “entrée bornée-sortie bornée” si et seulement si
l’axe imaginaire est dans le domaine de convergence de G(s).
On en déduit la propriété bien connue selon laquelle les singularités de la fonction de transfert
doivent se trouver dans la partie gauche du plan complexe. La plupart des systèmes considérés
en pratique ont des fonctions de transfert rationnelles et les singularités sont des pôles.

1.4 Le pendule
Le problème du pendule est un grand classique en terme de commande.

θ l

mg

Figure 1.1: Pendule

Il s’agit d’un système non linéaire simple régi par l’équation 1.6 :

θ̈(t) + ω 2 sin(θ(t)) = Γ(t) (1.6)


SI240 / 2007-2008 / GB 9
Il y a deux positions d’équilibre, en θ = 0 et θ = π. La première est stable, la seconde
instable. C’est cette dernière que l’on va chercher à contrôler. Par linéarisation autour de θ = π,
on obtient 1.7 :

ÿ(t) − ω 2 y(t) = Γ(t) (1.7)

Le contrôle que l’on va chercher à mettre en œuvre est dit en boucle ouverte.

1.4.1 Pré-compensation
Cherchons une entrée u(t) causale telle que Γ(t) = u̇(t) − ωu(t).

ÿ(t) − ω 2 y(t) = u̇(t) − ωu (1.8)

D’un point de vue fonctionnel, on parlera de pré-compensation (schéma 1.2).

u(t) d −ω Γ (t) y(t)


Système
dt

Figure 1.2: Pré-compensation

Par application de la transformée de Laplace, avec des conditions initiales nulles, on obtient :

1
s2 Y (s) − ω 2 Y (s) = sU (s) − ωU (s) ⇒ Y (s) = U (s) (1.9)
s+ω
ce qui laisse à penser que le système est asymptotiquement stable.
La présence de conditions initiales non nulles y(0) et ẏ(0) conduit à des conclusions sensi-
blement différentes. La résolution directe de 1.7 conduit à y(t) = Aeωt + Be−ωt , puis à :

ẏ(0)
y(t) = y(0) cosh(ωt) + sinh(ωt) (1.10)
ω
L’application de la transformée de Laplace à 1.8 donne :

s2 Y (s) − sy(0) − ẏ(0) − ω 2 Y (s) = sU (s) − u(0) − ωU (s) (1.11)

D’un point de vue relation entrée-sortie simple, caractérisée par la fonction de transfert G(s) =
1/(s + ω), le système apparaı̂t comme stable. Par contre la présence des conditions initiales
donne :
s−ω sy(0) + ẏ(0) − u(0)
Y (s) = 2 2
U (s) + (1.12)
s −ω s2 − ω 2
La présence de ces conditions initiales non nulles explique l’instabilité.

1.4.2 Post-compensation
On s’intéresse au signal de sortie z(t) = dy(t)
dt − ωy(t), le signal d’entrée étant Γ(t) (figure 1.3).
Si l’on applique la transformée de Laplace avec des conditions initiales nulles, on obtient la
même fonction de transfert G(s) = 1/(s + ω). L’équation différentielle s’écrit :

z̈ − ω 2 z = Γ̇ − ωΓ (1.13)
10 Chapitre 1 - Transformée de Laplace

Γ (t) y(t) d −ω z(t)


Système
dt

Figure 1.3: Post-compensation

L’application de la transformée de Laplace donne :

s2 Z(s) − sz(0) − ż(0) − ω 2 Z(s) = sΓs (s) − Γ(0) − ωΓs (s) (1.14)

d’où :
1 sz(0) + ż(0) − Γ(0)
Z(s) = Γs (s) + (1.15)
s+ω s2 − ω 2
z(t) se comporte vis-à-vis de Γ(t) de la même façon que y(t) vis-à-vis de u(t). L’évolution
“libre” traduit elle aussi un comportement “instable”.
Chapitre 2

Représentations d’état à temps


continu

Reprenons le cas du pendule avec post-compensation. On pose :


dx1 (t)
x1 (t) = y(t), x2 (t) =
dt
dx2 (t)
⇒ = ω 2 y(t) + Γ(t) = ω 2 x1 (t) + Γ(t)
dt
Le signal de sortie avec post-compensation est :
dy(t)
z(t) = − ωy(t) = x2 (t) − ωx1 (t) (2.1)
dt
En notant :
 
x1 (t)
X(t) = (2.2)
x2 (t)
où X(t) est appelé vecteur d’état, on a une équation différentielle vectorielle du premier ordre
2.3 et une équation de sortie 2.4, le tout formant une représentation d’état :
   
d 0 1 0
X(t) = AX(t) + BΓ(t) = 2 X(t) + Γ(t) (2.3)
dt ω 0 1
 
Y (t) = CX(t) + DΓ(t) = −ω 1 X(t) (2.4)
A est la matrice de représentation d’état ou matrice d’état. Son spectre, ensemble des valeurs
propres, est {−ω, ω}.

2.1 Formes standard


Considérons la représentation d’état :
dX(t)
= AX(t) + BU (t) et Y (t) = CX(t) + DU (t) (2.5)
dt
où l’on suppose que les matrices A, B, C, D ne dépendent pas du temps. On dit que le système
est invariant.
Il y a une infinité de représentations d’état. Il suffit de faire un changement de base de la
forme X = PZ. On obtient alors :
dZ(t)
= P−1 APZ(t) + P−1 BU (t) et Y (t) = CPZ(t) + DU (t) (2.6)
dt

11
12 Chapitre 2 - Représentations d’état à temps continu

D
U(t) + dX(t)/dt (n) + Y(t)
B C
+ +
A X(t)
Système

Figure 2.1: Représentation d’état d’un système linéaire invariant

2.1.1 Forme contrôleur


On considère un système linéaire invariant décrit par l’équation différentielle linéaire à coef-
ficients constants 2.7 :
dn d dm d
y(t) + · · · + a1 y(t) + a0 y(t) = b m u(t) + · · · + b1 u(t) + b0 u(t) (2.7)
dtn dt dtm dt
avec m < n (système dit strictement propre). Dans ce cas, on a D = 0. Le système ne possède
qu’une entrée et qu’une sortie. On parle de système SISO (Single Input-Single Output).
On peut exhiber une représentation d’état de la forme (forme contrôleur) :
    
   −an−1 . . . −a1 −a0   1




 x 1 (t) 
 1 0 . . . 0 0 
 x 1 (t) 0
 
d  .   .   

 dt  ..  =  0 1 ... 0 0 
  ..  + 0 u(t)

 

  . ..  .

xn (t)  .. .  xn (t)  .. 
(2.8)

 0 0 ...  1  0 0



 x1 (t)

y(t) = 0 . . . 0 bm . . . b0  ... 

    




xn (t)
où la matrice d’état A apparaı̂t sous forme compagnon (fonction compan de MATLAB).
Indications : On applique la TL à 2.7 (à conditions initiales nulles) :
(sn + · · · + a1 s + a0 ) Y (s) = (bm sm + · · · + b1 s + b0 ) U (s) (2.9)

On divise le tout par sn et on pose :


V (s) 1 Y (s)
= n−1 n
et = bm /sn−m + · · · + b0 /sn (2.10)
U (s) 1 + · · · + a1 /s + a0 /s V (s)
On pose Xn (s) = V (s)/sn , . . . X1 (s) = V (s)/s auxquels sont associés xn (t), . . . x1 (t).
On en déduit :
(
v(t) = dx
dt = u(t) − an−1 x1 (t) − · · · − a0 xn (t)
1
(2.11)
y(t) = bm xn−m (t) + · · · + b0 xn (t)
 T
On pose X(t) = x1 . . . xn et on déduit la représentation :
 
−an−1 . . . −a1 −a0  
 1 1
 0 ... 0 
0
dX(t)  0 1 ...   
dt = 
 .
 X(t) +  ..  u(t)
 . (2.12)
 .. 
0
 0 0 1  0
y(t) = 0 . . . 0 bm . . . b0 X(t)
SI240 / 2007-2008 / GB 13

Dans le cas où les degrés du numérateur et du dénominateur sont les mêmes, la seconde
relation de 2.11 s’écrit :

y(t) = bn v(t) + bn−1 x1 (t) + · · · + b0 xn (t)


= bn u(t) + (bn−1 − bn an−1 )x1 (t) + · · · + (b0 − bn a0 )xn (t)

et la relation de sortie devient :


 
y(t) = (bn−1 − bn an−1 ) . . . (b0 − bn a0 ) X(t) + bn u(t) (2.13)

La fonction tf2ss de MATLAB réalisant le passage de la fonction de transfert à la


représentation d’état donne cette forme de représentation.

2.1.2 Forme observateur


Il existe une autre forme dite “forme observateur” :
  


0 . . . . . . 0 −a0
 b0

 . 
 .. 

 1 0 . . . 0 −a1  

  

 d 0 1 . . . 0 −a2   

 dt X(t) =   X(t) + bm  u(t)

 . ..   
  .. .  0
 
.. (2.14)

 0 . . . 0 1 −a n−1 .

  


 x1 (t)

 y(t) = 0 . . . . . . 1 
 . 


  .. 

xn (t)
Indications : on reprend 2.9 que l’on écrit sous la forme :
an−1 am+1
Y (s) = − Y (s) − · · · − n−m−1 Y (s)
s s
bm U (s) − am Y (s) b0 U (s) − a0 Y (s)
+ n−m
+ ··· + n
 s   s
Xn−1 Xn−1 Xn−2
= Xn − + − + ···
s s s2
 
X2 X1 X1
··· + n−2
− n−1 + n−1 (2.15)
s s s
 T
En posant X(t) = x1 (t) . . . xn (t) , cela conduit à la forme 2.14.

2.2 Solution de l’équation d’état


Si on suppose que l’entrée est continue par morceaux, la résolution de l’équation différentielle
du premier ordre donne (solution unique passant par CX(t0 ) à l’instant t0 ) :
Z t
y(t) = CeA(t−t0 ) X(t0 ) + C eA(t−v) Bu(v)dv (2.16)
| {z } 0
(1) | {z }
(2)

qui fait apparaı̂tre :


14 Chapitre 2 - Représentations d’état à temps continu

− un terme (1) associé à la solution générale de l’équation sans second membre et ne


dépendant que des conditions initiales ;
− un terme (2) convolutif correspondant à une solution particulière dépendant de l’entrée du
système.

2.3 Passage de la représentation d’état à la fonction de transfert


2.3.1 Cas scalaire
On suppose que le système ne possède qu’une entrée et qu’une sortie. L’application de la
transformée de Laplace à la représentation d’état donne pour fonction de transfert G(s) :
G(s) = C(sI − A)−1 B + D (2.17)
Etant données deux matrices U(m × n) et V(n × m), on a la relation det(In + UV) =
det(Im + VU). La quantité C(sI − A)−1 B étant scalaire, on peut écrire :

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

= det I + BC(sI − A)−1

= det (sI − A)−1 det ((sI − A) + BC)
d’où l’expression de la fonction de transfert :
det (sI − A + BC)
⇒ G(s) = +D−1 (2.18)
det (sI − A)
On vérifie facilement que G(s) est invariante dans tout changement de base.

Exemple 2.1 cas du pendule avec post-compensation mis sous forme observateur :
        
d x1 (t) 0 ω 2 x1 (t) −ω   x1 (t)
= + Γ(t) et y(t) = 0 1
dt 2x (t) 1 0 x 2 (t) 1 x2 (t)
      
  s −ω 2 −1 −ω 1   s ω 2 −ω 1
G(s) = 0 1 = 2 2
0 1 =
−1 s 1 s −ω 1 s 1 s+ω
Exemple 2.2 cas du pendule avec post-compensation mis sous forme contrôleur :
        
d x1 (t) 0 ω 2 x1 (t) 1   x1 (t)
= + Γ(t) et y(t) = 1 −ω
dt x2 (t) 1 0 x2 (t) 0 x2 (t)
      
  s −ω 2 −1 1 1   s ω2 1 1
G(s) = 1 −ω = 2 1 −ω =
−1 s 0 s − ω2 1 s 0 s+ω

Exercice 2.1 (Calcul de la matricePn−1 exponentielle (page 37)) On désire calculer eAt
sous forme d’une somme finie k
k=0 ϕk (t)A (conséquence directe du théorème de Cayley-
Hamilton). On note σ(s) le polynôme caractéristique associé au système avec :

σ(s) = sn − a0 + a1 s + · · · + an−1 sn−1
et
 on construit une suite de polynômes σk (s) de la façon suivante :

 σ0 (s) = σ(s) 
 σ1 (s) = sn−1 − a1 + a2 s + · · · + an−1 sn−2

.
 ..



σn (s) = 1
SI240 / 2007-2008 / GB 15

+ dx1(t)/dt x1(t) Γ (t) + dx1(t)/dt x1(t) + Z(t)


−ω
+ + +
ω2 ω2
−ω

Γ (t) + dx2(t)/dt x2(t) Z(t) dx2(t)/dt x2(t)

Figure 2.2: Formes observateur (à gauche) et contrôleur (à droite) pour le pendule linéarisé

1. Montrer que :
" n #
X
Σ(s) = σk (s)Ak−1 (sI − A) = σ(s)I
k=1

2. En déduire l’expression de (sI − A)−1 et une façon de calculer les ϕk (t).


3. On considère le système de fonction de transfert :
1
G(s) =
(s + 1)2 (s + 2)
En choisissant une représentation d’état sous forme commandable, donner l’expression des
ϕk (t) correspondante.

2.3.2 Cas général


Dans le cas multivariable (plusieurs entrées et/ou plusieurs sorties, on traite chaque couple
entrée/sortie l’un après l’autre.
Le terme (sI−A) est une matrice polynomiale dont l’inverse existe dans l’espace des matrices
à coefficients dans le corps des fractions rationnelles. Si on suppose que D est nulle, la fonction
de transfert est donnée par :
G(s) = C(sI − A)−1 B (2.19)
On peut écrire :
+∞
X CAk−1 B
G(s) = (2.20)
sk
k=1

Les CAk−1 B sont appelés paramètres de Markov. Ceux-ci sont directement liés aux valeurs
initiales de la réponse impulsionnelle et de ses dérivées. Ils sont invariants dans tout changement
de base.

2.4 Eléments structurels


Deux questions importantes se posent dès lors que l’on s’intéresse au comportement des
systèmes :
1. Est-on capable d’amener l’état en n’importe quel point de l’espace d’état en agissant sur
l’entrée u(t) pendant une durée finie ?
2. Est-on capable de connaı̂tre l’état initial par simple observation des entrés U (t) et des
sorties y(t) pendant une durée finie ?
16 Chapitre 2 - Représentations d’état à temps continu

2.4.1 Commandabilité
La question posée est la suivante : est-il possible de calculer une commande u(t) qui amène
l’état d’un état quelconque X1 à 0 en temps fini ? Si on peut obtenir une telle commande, alors
(relation 2.16) elle satisfait :
Z τ
X1 = − e−Av Bu(v)dv (2.21)
0

On dit que X1 est commandable. Si tous les états sont commandables, le système est dit
commandable (on dit aussi complètement commandable).
 
Théorème 2.1 Le système est commandable ssi la matrice Cm = B AB . . . An−1 B est
de rang plein.

Indications : considérons la matrice Cm .

− Condition nécessaire : supposons le système commandable. Si Cm n’était pas de


rang plein, il existerait un vecteur V non nul tel que V T × Cm = 0. On en déduit
V T × eAα = 0 d’où V T × X1 = 0. X1 est dans un sous-espace orthogonal à V .
Il ne peut donc être pris n’importe où dans l’espace d’état. Le système n’est pas
commandable.
− Supposons Cm de rang plein. Alors la matrice W (0, t) :
Z t
Tu
W (0, t) = e−Au BBT e−A du (2.22)
0

est inversible et on peut construire une entrée satisfaisant le problème.


En effet, si W (0, t) n’était pas inversible, il existerait un vecteur V non nul tel
que V T W (0, t)V soit nul, donc V T eAu B = 0 ce qui est équivalent à dire, par
Cayley-Hamilton, que Cm n’est pas de rang plein.
Partant de 2.16 :
Z τ
X1 = − e−Av BU (v)dv (2.23)
0

T
et en reportant la commande U (v) = −BT e−A v W −1 (0, τ )X1 , on vérifie :
Z τ
T
e−Av B × BT e−A v dv W −1 (0, τ )X1 = X1 (2.24)
|0 {z }

Propriété 2.1 Si le système n’est pas complètement commandable, on peut mettre l’équation
d’état sous la forme :
   
dX A11 A12 B1
= X(t) + (2.25)
dt 0 A22 0
 
y(t) = C1 C2 X(t)

dans lequel le sous-système défini par A11 (r × r), B1 (r × 1) et C1 (1 × r) est complètement


commandable.
SI240 / 2007-2008 / GB 17
Exemple 2.3 On considère un système avec :
   
−1 0 1
A= et B = (2.26)
0 −1/2 −1

Z t Z t u   
−Au T −AT u e 0 1 −1 eu 0
W (0, t) = e BB e du = du
0 0 0 eu/2 −1 1 0 eu/2
 1 2t 
2 (e − 1) − 32 (e3t/2 − 1)
=
− 23 (e3t/2 − 1) et − 1

La trajectoire de l’état est alors donnée par :


 Z t 
At −Av T −AT v −1
X(t) = e X1 − e BB e dv × W (0, τ )X1
0

= eAt X1 − W (0, t)W −1 (0, τ )X1

Le programme qui suit illustre l’application de la commande faisant intervenir W (0, τ ) (figure
2.3).
%===== EXPLE1.M
clear all
A=[-1 0;0 -1/2]; B=[1;-1]; X1=[2;-3];
alpha=X1(1); beta=X1(2);
tau=1; nbpts=100; deltT=tau/nbpts;
v=[0:deltT:tau]; Lv=length(v);
Wtau=[(exp(2*tau)-1)/2 , -(exp(3*tau/2)-1)*2/3;...
-(exp(3*tau/2)-1)*2/3 , (exp(tau)-1)];
Wm1=inv(Wtau);
for k=1:Lv
Wt=[(exp(2*v(k))-1)/2 , -(exp(3*v(k)/2)-1)*2/3;...
-(exp(3*v(k)/2)-1)*2/3 , (exp(v(k))-1)];
Xn(:,k)=expm(A*v(k))*(X1-Wt*Wm1*X1);
end
plot(Xn(1,:),Xn(2,:),’-b’,Xn(1,Lv),Xn(2,Lv),’o’), grid
hold on; plot(Xn(1,1),Xn(2,1),’x’); hold off

−1

−2

−3
−3 −2,5 −2 −1,5 −1 −0,5 0 0,5 1 1,5 2

Figure 2.3: Retour de l’état à 0


18 Chapitre 2 - Représentations d’état à temps continu

2.4.2 Observabilité
La question posée est la suivante : est-il possible de reconstruire X(0) à partir de la connaissance
des entrées et des sorties entre les instants 0 et t ?
Si c’est le cas, l’état X(0) est dit observable. Lorsque tous les états initiaux sont observables
on dit que le système est observable (ou complètement observable). La matrice d’observabilité
est donnée par :
 
C
 CA 
 
Ob =  .  (2.27)
 .. 
CAn−1
L’observabilité du système est liée au rang de la matrice Ob . Si elle est de rang n le système
est observable.

Propriété 2.2 En prenant pour base de l’espace d’état les vecteurs du noyau B1 de Ob et un
sous-espace supplémentaire B1 - B = B1 ⊕ B2 - on peut écrire A et C sous la forme (que l’on
peut obtenir par l’algorithme de Luenberger) :
 
Ã11 0  
à = et C̃ = C̃1 0 (2.28)
Ã21 Ã22

On dit que (Ã11 , C̃1 ) est observable.

Le fait que le système ne soit pas observable ne signifie pas que l’on ne
Remarque peut pas construire l’état mais que la solution n’est pas unique.

Remarques
On fait une distinction entre commandabilité (amener d’un état donné à l’état 0) et accessibilité
(amener de l’état 0 à un état donné) d’un côté et observabilité (reconstruction de l’état à partir
de données du futur) et constructabilité (reconstruction de l’état courant à partir des entrées et
sorties du passé et du présent) d’un autre. Accessibilité et observabilité sont duales de même
que commandabilité et constructabilité. Dans le cas SLI les notions de système commandable
et de système accessible sont équivalents (ce n’est pas vrai en temps discret).

2.4.3 Décomposition de Kalman


Tout système peut être mis (c.à.d. qu’il existe une base de l’espace d’état) sous la forme illustrée
par le schéma 2.4.

      
Xcno A11 A12 0 A14 Xcno B1
d  X co  A21 A22 A23 A24   Xco  B2 
=  +   U (t)
  (2.29)
dt Xncno   0 0 A33 A34  Xncno   0 
Xnco 0 0 0 A44 Xnco 0
 
Xcno
   Xco 
Y (t) = 0 C2 0 C4  Xncno  + DU (t)
 (2.30)
Xnco
SI240 / 2007-2008 / GB 19
D
A13
A11 A33
+
+ +
B1
+ Xcno Xncno

A12 A14 A34


U(t)

Y(t)
A22 A44 C4
+ +
B2 + + + Xnco
Xco
C2
A24

Figure 2.4: Décomposition de Kalman

Indications : Si le système n’est pas complètement commandable, on a indiqué que l’on


peut le mettre sous la forme :
   
dX A11 A12 B1
= X(t) + (2.31)
dt 0 A22 0
 
y(t) = C1 C2 X(t)

dans lequel le sous-système défini par A11 (r × r), B1 (r × 1) et C1 (1 × r) est com-


plètement commandable.
◦ En effet, si le système est mis sous la forme 2.31, alors on peut écrire :
dX2
= A22 X2 (t)
dt
et on ne peut atteindre l’état 0 en temps fini que si X2 (0) = 0. Le système n’est donc
pas complètement commandable.
◦ Inversement, supposons que le système n’est pas complètement commandable et que
le rang de Cm est égal à r. Il existe un changement de base X = PZ tel que :
   
Ir M12   Ir M12
Cm = P = P1 P2
0 0 0 0
où Ir est la matrice unité (r × r). P1 est donc constitué des r premières colonnes de Cm .
On peut compléter en prenant n − r vecteurs orthogonaux à ces derniers pour obtenir
P2 .
 
˜
 n−1
 Ir M12
Cm = B̃ ÃB̃ · · · Ã B̃ =
0 0

◦ De la même façon un système non observable peut se mettre sous la forme :


   
dX A11 0 B1
= X(t) + (2.32)
dt A21 A22 B2
 
y(t) = C1 0 X(t)

◦ En combinant les deux cas, on arrive au résultat énoncé.


20 Chapitre 2 - Représentations d’état à temps continu

On peut remarquer que, s’il n’y a pas commandabilité et/ou observabilité, il y a des sim-
plifications dans la fonction de transfert. Prenons en exemple le cas où le système n’est pas
commandable et exprimons sa fonction de transfert (expression 2.18) en supposant qu’il est
strictement propre :
det(sI − A + BC) det(sI − A11 + B1 C1 )det(sI − A22 )
G(s) = −1= −1
det(sI − A) det(sI − A11 )det(sI − A22 )
det(sI − A11 + B1 C1 )
= −1
det(sI − A11 )
Les pôles et zéros associés à la partie non commandable sont simplifiés.
Chapitre 3

Passage du temps continu au temps


discret

Le problème du passage du temps continu au temps discret se pose dans plusieurs domaines.
Ainsi la résolution numérique d’une équation différentielle nécessite-t-elle un tel passage. Il en
est de même lorsqu’on désire synthétiser un filtre à “temps discret” à partir d’un filtre à “temps
continu”. Autre domaine où ce passage est essentiel, celui de l’automatique où l’on peut vouloir
calculer un compensateur à “temps discret” à partir d’un compensateur à “temps continu” ou
lorsqu’on désire effectuer une simulation d’un système. En dehors de ce dernier cas qui présente
une particularité, tous les autres problèmes sont identiques [2].

3.1 Approximations
La façon la plus simple de calculer les solutions d’une équation différentielle est d’approximer
les dérivées par :

dx x(tn ) − x(tn−1 )
(3.1)
dt T
opération désignée par transformation d’Euler. Cette transformation préserve le gain à l’origine,
la stabilité et transforme le demi-plan gauche en disque (1/2, 1/2) (figure 3.1).
La transformation d’Euler n’est généralement pas retenue. On lui préfère la transformée
bilinéaire :

dx 2 x(tn ) − x(tn−1 )
(3.2)
dt T x(tn ) + x(tn−1 )

Cette transformation préserve le gain à l’origine, le gain à l’infini, la stabilité et transforme


le demi-plan gauche en disque (0, 1) (figure 3.1).
La fonction bilinear de MATLAB de la toolbox control permet de transformer une fonc-
tion de transfert en temps continu à une fonction de transfert en temps discret. On notera qu’en
automatique les praticiens parlent d’une transformation de Tustin.
On peut légèrement modifier la transformée bilinéaire - on parle de prewarping - en intro-
duisant une fréquence fp dite fréquence pivot.

dx πfpT 2 x(tn ) − x(tn−1 )


(3.3)
dt tan(πfp T ) T x(tn ) + x(tn−1 )

21
22 Chapitre 3 - Passage du temps continu au temps discret

Im
Euler

Re

Bilinéaire

Figure 3.1: Passage temps continu-temps discret, transformation du 1/2 plan gauche

3.2 Passage en présence de bloqueur d’ordre 0


Lorsque le système est alimenté par un convertisseur numérique analogique de type “bloqueur
d’ordre 0”, il est possible de trouver un équivalent exact. Les valeurs calculées par récurrence
xn sont exactement les valeurs des échantillons x(nT ) et ceci indépendamment de la valeur de
la fréquence d’échantillonnage !
On part de la solution 2.16 de l’équation d’état en remarquant que l’entrée reste constante
entre deux instants d’échantillonnage.
Z (n+1)T
AT
X((n + 1)T ) = e X(nT ) + eA((n+1)T −v) BU ((n + 1)T )dv
nT

Avec le changement de variable u = (n + 1)T − v :

X((n + 1)T ) = ΦX(nT ) + ΨU ((n + 1)T )

on obtient :
Z T
Φ = eAT et Ψ = eAu du × B (3.4)
0

La fonction de transfert est alors donnée par :

G(z) = C(zI − Φ)−1 Ψ + D (3.5)

Exercice 3.1 (Calcul des matrices d’état (page 38) Vérifier que la matrice :
 
A B
Ae = T ×T (3.6)
0 0

dont on prend l’exponentielle de matrice, permet de calculer la matrice Φ et le vecteur Ψ.


Chapitre 4

Représentations d’état à temps


discret

4.1 Notations
On se limite au cas SISO. Xk est un vecteur ∈ Rn . Uk et Yk sont des scalaires. L’évolution du
système est alors décrite par les relations 4.1. Uk constitue l’entrée du système et Yk sa sortie.

Xk+1 = fk (Xk , Uk ) et Yk = hk (Xk , Uk ) (4.1)

Dans le cas d’un modèle linéaire :

Xk+1 = Ak Xk + Bk Uk et Yk = Ck xk + Dk Uk (4.2)

Dans le cas d’un modèle linéaire invariant :

Xk+1 = AXk + BUk et Yk = CXk + DUk (4.3)

D
Uk + Xk+1 (n) + Yk
B z-1 C
+ +
A
Système Xk

Figure 4.1: Représentation d’état d’un système linéaire invariant

4.2 Résolution de l’équation d’état, cas SLI


Dans le cas SLI, le résultat est facile à obtenir. On a en effet une équation récurrente linéaire à
coefficients constants. Connaissant X0 et U0 , on construit la solution :


 X1 = AX0 + BU0

 X2 = AX1 + BU1 Xk
.. ⇒ Xk = Ak X0 + Ak−m BU (m − 1) (4.4)


 . m=1

Xk = AXk−1 + BUk−1

23
24 Chapitre 4 - Représentations d’état à temps discret

ou encore :
k−1
X
k
Xk = A X0 + Ak−m−1 BU (m) (4.5)
m=0

La solution est donnée par la somme de la solution de l’équation sans second membre et d’un
produit de convolution.

4.3 Problèmes fondamentaux


Deux questions importantes se posent dès lors que l’on s’intéresse au comportement des
systèmes :

1. Est-on capable d’amener l’état en n’importe quel point de l’espace d’état en agissant sur
l’entrée Uk pendant une durée finie ?

2. Est-on capable de connaı̂tre l’état à tout instant k par simple observation des entrés Uk
et des sorties Yk pendant une durée finie ?

Considérons le cas de l’observabilité. On se pose la question : est-il possible de reconstruire


X0 à partir de la connaissance des entrées et des sorties entre les instants 0 et K (l’état X0 est
dit observable) ? On peut écrire :
      
YK CAK D CB . . . CAK−1 B UK
 ..   ..   .. ..   .. 
 .   .  . .  . 
  =   X0 +   
 Y1   CA  0 0 D CB   U1 
Y0 C 0 0 ... D U0
= Ob (K)X0 + TU0:K (4.6)

L’observabilité est liée au rang de la matrice Ob (K), et plus précisément de la matrice


Ob (n − 1) que l’on notera simplement Ob (théorème de Cayley-Hamilton). Si elle est de rang
n le système est observable. Ob est appelée matrice d’observabilité et T matrice de réponse
impulsionnelle. Les termes CAα B sont appelés paramètres de Markov.
En prenant pour base de l’espace d’état les vecteurs du noyau B1 de Ob et un sous-espace
supplémentaire B1 - B = B1 ⊕ B2 - on peut écrire A et C sous la forme dite forme observable
(que l’on peut obtenir par l’algorithme de Luenberger) :
 
Ã11 0  
à = et C̃1 0 (4.7)
Ã21 Ã22

Le fait que le système ne soit pas observable ne signifie pas que l’on ne peut pas construire
l’état mais que la solution n’est pas unique.
Le test de l’observabilité et de la commandabilité sont réalisables à partir de critères directs ;
ainsi, comme nous l’avons vu, l’observabilité est testable en examinant le rang de Ob . Il y a un
grand nombre d’autres critères. Les tests désignés par PBH (Popov-Belevitch-Hautus) en font
partie :

1. C ne doit être orthogonal à aucun des vecteurs propres de A ;

2. ∀λ la matrice [C|(λI − AT )] doit être de rang n, etc.


SI240 / 2007-2008 / GB 25
Exercice 4.1 (Test PBH d’observabilité (page 40)) Montrer la propriété 1.
Comme on l’a vu dans le cas du temps continu (remarques, page 18), on peut définir acces-
sibilité et constructibilité. L’accessibilité entraı̂ne la commandabilité et l’observabilité entraı̂ne
la constructibilité. Dans le cas du temps discret il n’y équivalence que si A est non singulière.
On peut aussi utiliser des critères indirects ; on peut par exemple tester le caractère
d’irréductibilité de la fonction de transfert. On sait en effet que toute simplification dans la
fonction de transfert (l’ordre du système est inférieur à la dimension de l’espace d’état) est liée
à une perte d’observabilité ou de commandabilité. Un tel test est réalisable sur la matrice de
Sylvester associée au système. Il suffit de regarder si son déterminant est nul ou non.

Exemple 4.1 considérons les fonctions de transfert :


B(z) a0 z 3 + a1 z 2 + a2 z + a3 a0 z 3 + a1 z 2 + a2 z + a3
G1 (z) = = et G2 (z) = (4.8)
A(z) b0 z + b1 b0 z 2 + b1 z + b2
la matrice de Sylvester peut s’écrire (première forme) :
 
  a0 a1 a2 a3 0
a0 a1 a2 a3  0 a0 a1 a2 a3 
 b0 b1 0 0   
S1 =   et S 2 =  b0 b1 b2 0 0  (4.9)
0 b0 b1 0  
 0 b0 b1 b2 0 

0 0 b0 b1
0 0 b0 b1 b2
ou (seconde forme) :
 
  a0 a1 a2 a3 0
a0 a1 a2 a3  0 a0 a1 a2 a3 
 0 0 b0 b1   
S1 = 
 0 b0 b1
 et S2 =  0 0 b0 b1 b2  (4.10)
0  
 0 b0 b1 b2 0 

b0 b1 0 0
b0 b1 b2 0 0
La méthode peut être programmée de la façon qui suit. En exemple, taper :
A=[1 -3 -1 3]; B=[1 -3 2]; M=sylvester(B,A,2), det(M)

avec la fonction sylvester.m :


function M=sylvester(B,A,tp)
%!=======================================!
%! Creating a matrix of Sylvester !
%! SYNOPSIS: M=SYLVESTER(p,q) !
%! B = polynomial B(x)=b(0)x^m+...+b(m) !
%! A = polynomial A(x)=a(0)x^m+...+a(m) !
%! tp = kind of matrix !
%! n and m must be >1 !
%!=======================================!
if size(B,1)~=1, B=B.’, end
m=length(B)-1;
if size(A,1)~=1, A=A.’, end
n=length(A)-1;
A1=toeplitz([A(1);zeros(m-1,1)],[A zeros(1,m-1)]);
B1=toeplitz([B(1);zeros(n-1,1)],[B zeros(1,n-1)]);
if nargin<3 | tp==1
M=[A1;B1];
else
M=[A1;flipud(B1)];
end
26 Chapitre 4 - Représentations d’état à temps discret

Exercice 4.2 (Critère de Sylvester (page 40) montrer la propriété précédente.

Décomposition de Kalman
Comme dans le cas du temps continu, le comportement des systèmes peut être compris
en examinant la description dûe à Kalman, description qui met en évidence une struc-
ture basée sur une décomposition de l’espace d’état en quatre sous-espaces supplémentaires :
“commandable-observable”, “non commandable-observable”, “commandable-non observable” et
“non commandable-non observable” (figure 4.2).

D
A13
A11 A33
+
+ +
B1 z-1 z-1
+ Xcno Xncno

A12 A14 A34


Uk
Yk
A22 A44 C4
+ +
B2 + + z-1 +
z-1
Xnco
Xco
C2
A24

Figure 4.2: Décomposition de Kalman

Réponse fréquentielle
D’un point de vue “fréquentiel”, dans le cas SLI (4.3) :

Xk+1 = AXk + BUk et Yk = CXk + DUk

on peut écrire :

zXz (z) − zX(0) = AXz (z) + BUz (z) et Yz (z) = CXz (z) + DUz (z) (4.11)

ce qui donne :

Yz (z) = C(zI − A)−1 B + D Uz (z) + C(zI − A)−1 zX0 (4.12)

C(zI − A)−1 B + D est la fonction de transfert, C(zI − A)−1 zX0 la partie autonome de la
réponse.

Exercice 4.3 (Simulation en présence d’un bloqueur d’ordre 0 (page 39))


On désire effectuer la simulation du comportement d’un système “temps continu” alimenté à
travers un bloqueur d’ordre 0 (figure 4.3 et page 22) et modélisé par une représentation d’état.
Le signal d’entrée est donc construit à partir d’une suite d’échantillons U (kT ) en maintenant
constante la valeur U (kT ) entre kT et (k + 1)T .

1. Rappeler la relation qui lie le vecteur d’état à l’instant (k +1)T au vecteur d’état à l’instant
kT .
SI240 / 2007-2008 / GB 27

U(kT) U(t) Système à Y(t)


CNA temps
continu

Figure 4.3: Equivalent temps discret en présence d’un bloqueur d’ordre 0

2. Comment calculer la réponse entre deux instants d’échantillonnage en fonction de la ma-


trice Φ et du vecteur Ψ ?

3. La modélisation d’un système à temps continu linéaire invariant sous forme de


représentation d’état a conduit aux expressions suivantes :
   
−11/4 −11/8 −5/4 1
A =  27/4 11/8 21/4  , B =  −1  (4.13)
15/8 19/16 5/8 −1/2
 
C = 3/8 1/2 −1/4 , D = 0

On désire effectuer une simulation “numérique” d’une réponse de ce système, alimenté


à travers un bloqueur d’ordre 0, à un échelon unité. Effectuer cette simulation, en
utilisant les résultats de l’exercice précédent, pour plusieurs valeurs de la fréquence
d’échantillonnage pour une durée de 10 s.

4. Examiner l’évolution de la norme ||.||∞ du vecteur d’état pendant la simulation. Que


peut-on dire de la stabilité ?

5. Donner la forme de la fonction de transfert (en z) associée à ce système. Comment juge-t-


on de la stabilité ? Dans quelle situation se trouve-t-on (inobservabilité/ingouvernabilité) ?

6. Effectuer la simulation pour une durée de l’ordre de 3 minutes. Que constate-t-on ? A


quoi ce phénomène est-il dû ?

7. Donner, à l’aide Matlab, la fonction de transfert en z associée à l’ensemble “système +


bloqueur”. On utilisera l’expression 2.18 de façon adéquate. Comment faire la même
simulation par filtrage. On pourra prendre des conditions initiales nulles et non nulles.
Examiner le comportement de la sortie.
28 Chapitre 4 - Représentations d’état à temps discret
Chapitre 5

Structure des filtres

Plusieurs problèmes sont liés à la structure des filtres : la charge de calcul, le passage de l’état
d’un calcul à l’autrel orsqu’on enchaı̂ne des traitements et le bruit de calcul dû aux arrondis
et/ou troncatures. Ce dernier problème peut s’avérer important lorsqu’on travaille en virgule
fixe.

5.1 Structure de filtre


5.1.1 Exemple
On considère la fonction de transfert G(z) :

b0 + b1 z −1 + · · · + bp z −p
G(z) =
1 + a1 z −1 + · · · + ap z −p

et sa réalisation symbolisée [3] par le schéma de la figure 5.1.

u(n) + t(n) + y(n)


b0
− x0 +
z −1
+ x1 +
a1 b1
+ +
z −1
+ x2 +
a2 b2
+ +
z −1

+ a x p−1 +
p−1 b p−1
+ +
z −1
ap bp

Figure 5.1: Structure canonique directe

29
30 Chapitre 5 - Structure des filtres

Cette “réalisation” sous la forme contrôleur déjà rencontrée effectue d’abord le calcul de :
t(n) = u(n) − a1 t(n − 1) − · · · − ap t(n − p)
puis celui de :
y(n) = b0 t(n) + b1 t(n − 1) + · · · + bp t(n − p)
Pour cet algorithme, on appellera état du filtre à l’instant n le vecteur X(n) (p × 1) :
∆  T
X(n) = t(n) t(n − 1) . . . t(n − p + 1)
Ce qui donne la forme déjà vue :
  

 −a1 . . . . . . −ap

  1 0 0 

  
X(n) =  .  X(n − 1)
 0 . . 0  (5.1)


 0 1 0



 
y(n) = (b1 − b0 a1 ) . . . (bp − b0 ap ) X(n − 1) + b0 u(n)
En introduisant les vecteurs :
a = [a1 a2 . . . ap ] et Γ = [b1 b2 . . . bp ]
on obtient l’écriture suivante :
(
u(n) = t(n) + aX(n − 1)
(5.2)
y(n) = b0 t(n) + ΓX(n − 1)

La recherche de l’état initial qui a conduit à une séquence d’entrée-sortie donnée est un autre
problème. Partant des équations récurrentes 5.2 donnant t(n) et s(n), on peut encore écrire :
 
b0 b1 · · · bp 0 ··· ··· 0  
 t(p − 1)
 
y(p − 1)  1 a1 · · · a p 0 · · · · · · 0

u(p − 1)  0 b0 · · · bp−1 bp 0 · · · 0  
 .. 
    . 
 ..  0 1 · · ·  
 . =   t(−1)   = OT
  .  .
 y(0)   . .  ..


 
u(0) 0 ··· ··· 0 b0 b1 · · · bp  t(−p)
0 ··· ··· 0 1 a1 · · · ap
Cette expression montre qu’on peut reconstituer l’état initial T = [t(−1) . . . t(−p)]T dès lors
que la matrice O est inversible. La théorie des systèmes montre que la possibilité de reconstruire
l’état est liée à la notion d’observabilité. Il existe un grand nombre de critères d’observabilité
bâtis sur les représentations d’états associés à un système [4].

Exemple 5.1 on considère un système du second ordre (numérateur b0 + b1 z −1 + b2 z −2 et


dénominateur 1 + a1 z −1 + a2 z −2 d’entrée x(n) et de sortie y(n). On peut écrire :
    
y(1) b0 b1 b2 0 t(1)
x(1)  1 a1 a2 0   t(0) 
y(0) =  0 b0 b1 b2  t(−1)
    

x(0) 0 1 a1 a2 t(−2)
 T
A partir de l’état initial X T (−1) = t(−1) t(−2) calculé, la séquence d’entrée {x(0), x(1)}
donne {y(0), y(1)}.
SI240 / 2007-2008 / GB 31
5.1.2 Réalisation du filtrage dans MATLAB
MATLAB effectue son algorithme de filtrage sous la forme schématisée selon la figure 5.2. MAT-
LAB offre une fonction (filtic) fabriquant les conditions initiales censées délivrer une séquence
de démarrage donnée.

u(n) + + y(n)
b0
+ x 1 (n−1)
z −1

+ x 1 (n)
b1 a1
+ −
+

z −1

+ x p−1 (n)
+ −
b p−1 a p−1
+

z −1
x p (n)
bp ap
+ −

Figure 5.2: Forme transposée de type II

On peut écrire :

Y (z) = [bp U (z) − ap Y (z)] z −p + [bp−1 U (z) − ap−1 Y (z)] z −p+1 + · · ·


+ [b1 U (z) − a1 Y (z)] z −1 + b0 U (z)

On définit :

Xp (z) = bp U (z) − ap Y (z)


Xp−1 (z) = z −1 Xp (z) + bp−1 U (z) − ap−1 Y (z)
..
.
X1 (z) = z −1 X2 (z) + b1 U (z) − a1 Y (z)

En utilisant Y (z) = b0 U (z) + z −1 X1 on obtient :

Xp (z) = −ap z −1 X1 (z) + (bp − ap b0 )U (z)


Xp−1 (z) = −ap−1 z −1 X1 (z) + z −1 Xp (z) + (bp−1 − ap−1 b0 )U (z)
..
.
X1 (z) = −a1 z −1 X1 (z) + z −1 X2 (z) + (b1 − a1 b0 )U (z)
32 Chapitre 5 - Structure des filtres

 T
En posant X(n) = xp (n) . . . x1 (n) , on obtient la représentation d’état :
  
 0 . . . . . . 0 −ap



 1 0 . . . . . . 0 −ap−1  
bp − ap b0


  

 0 1 . . . . . . 0 −ap−2  bp−1 − ap−1 b0 
  

X(n) =  . . .  
 X(n − 1) +  ..  u(n)
 .. .. .. 
0   .  (5.3)
 . . .


 . .
 .. . . . . . . ..

 b1 − a1 b0



 0 . . . . . .  0 1 −a1




y(n) = 0 . . . 0 1 X(n) + b0 u(n)

qui correspond à une forme “observateur”.

5.2 Imperfections des implantations numériques


Dans MATLAB tous les calculs se font en flottants double précision, aussi ne se pose-t-on que
rarement les problèmes d’erreurs de calcul. Par contre, la mise en œuvre pratique des opérations
de filtrage se fait souvent sur des processeurs à unité arithmétique entière (dsp, Digital Signal
Processor). La représentation des données se fait en “virgule fixe”. Deux facteurs influent sur
les résultats des opérations de filtrage :

1. le nombre de bits attribué à la représentation des coefficients ;

2. le nombre de bits utilisé pour la représentation des données. Les éléments à prendre en
compte sont :

− le bruit de quantification sur le signal ;


− les erreurs d’arrondi dans les calculs ;
− le comportement dynamique du filtre (oscillations).

Les structures de calcul dans ce cas privilégient la structure “cascade” dans laquelle on met
en série des cellules du premier et second ordre. L’affectation des gains de chaque cellule ainsi
que l’appairage des pôles et zéros sont alors des facteurs déterminants [1].
Chapitre 6

Cas multivariable

La transposition des résultats obtenus dans le cas monovariable au cas multivariable ne peut
pas être réalisée sans précaution.

6.1 Exemple
6.1.1 Représentation et dimension de l’espace d’état
Considérons la matrice de transfert :
 1 1 

G(s) =  (s − 1)2 (s − 1)(s + 3) 
−2 s−2 
(s − 1)(s + 3)2 (s + 3)2

correspondant à m = 2 entrées et p = 2 sorties. On utilise la représentation 2.12 pour obtenir :


   
2 −1 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0  0 0
   
0 0 −2 3 0 0 0 0 0  0 1
   
0 0 1 0 0 0 0 0 0 0 0
  
A = 0 0
 0 0 −5 −3 9 0 
1
0  et B =  0
 (6.1)
0 0 0 0 1 0 0 0 0 0 0
  
0 0 0 0 0 1 0 0 0  0 0
   
0 0 0 0 0 0 0 −6 −9 0 1
0 0 0 0 0 0 0 1 0 0 0
 
0 1 0 1 0 0 0 0 0
C=
0 0 0 0 0 0 −2 1 −2

Cette réalisation n’a aucune raison d’être minimale (au sens de la dimension de l’espace
d’état).
Considérons maintenant D(s) = (s − 1)2 (s + 3)2 de degré r = 4. On a :
 
1 (s + 3)2 (s − 1)(s + 3)
G(s) =
(s − 1)2 (s + 3)2 −2(s − 1) (s − 2)(s − 1)2
        
1 3 0 0 2 1 1 6 2 9 −3
= s +s +s +
(s − 1)2 (s + 3)2 0 1 0 −4 −2 5 2 −2

33
34 Chapitre 6 - Cas multivariable

Sachant que D(s) = s4 + 4s3 − 2s2 − 12s + 1, on peut vérifier qu’une représentation, analogue
à la forme compagnon précédente, peut être :
   
−4 × I2 2 × I2 12 × I2 −I2 I2
 I2 0 0 0  0
A=
 0
 et B =   (6.2)
I2 0 0  0
0 0 I2 0 0
       
0 0 1 1 6 2 9 −3
C=
0 1 0 −4 −2 5 2 −2

On peut constater que la dimension de A n’est pas le même que précédemment. Le nombre
de ligne est égal à r × m.
La forme 6.2, de type “contrôleur”, suggère qu’il y a une forme de type “observateur” :
 
0 0
 0 1 
   
−4 × I2 I2 0 0  1 1 
 
 2 × I2 0 I2 0  et B = 0 −4
 
A=
 12 × I2 0 0 (6.3)
I2   6 2 
 
−I2 0 0 0  −2 5 
 
 9 −3
2 −2
 
C = I2 0 0 0

Le nombre de lignes de A est maintenant r × p.


Au vu des résultats obtenus dans le cas monovariable, on peut supposer que la dimension de
l’espace d’état est liée à l’observabilité et à la commandabilité du système.

6.1.2 Forme diagonale de Gilbert


On note λi , i = 1,. . . , r, les racines du polynôme dénominateur. On peut alors écrire :
X Ri
G(s) = (6.4)
s − λi
i

On note ρi le rang de la matrice Ri .

Exemple 6.1 (Décomposition dans le cas diagonalisable)


   

1 2
 1 0 −1 2
 (s + 1)(s + 2) s + 2 = 1 1 0 0
G(s) =  1 1  +
s+1 s+2
s+1 s+1

La propriété de base dit que la dimension de l’espace d’état est égal à 3, somme des rangs
des matrices “résidus”. Cette dimension est inférieure à la dimension que l’on obtiendrait avec
les constructions précédentes et supérieure au degré de D(s).
SI240 / 2007-2008 / GB 35
6.2 Eléments de structure
Propriété 6.1 La réalisation {A, B, C} est observable si et seulement si le rang de la matrice
Ob (np × n) est de rang plein n.
 
Le plus petit entier q tel que C′ . . . A′(q−1) C′ est de rang n est appelé indice
d’observabilité.

Propriété 6.2 La réalisation {A, B, C} est commandable si et seulement si le rang de la ma-


trice Cm (n × nm) est de rang plein n.
 
Le plus petit entier q tel que B . . . A(q−1) B est de rang n est appelé indice de com-
mandabilité.
Comme dans le cas monovariable, il existe un changement de base qui permet de mettre le
système sous une forme 6.6 ou 6.6 dites formes non-commandable ou non-observable.
   
dX A11 A12 B1
= X(t) + (6.5)
dt 0 A22 0
 
y(t) = C1 C2 X(t)

   
dX A11 0 B1
= X(t) + (6.6)
dt A21 A22 B2
 
y(t) = C1 0 X(t)

6.2.1 Minimalité d’une réalisation


Définition 6.1 Une réalisation sera dite minimale si la taille de la matrice A est minimale
avec G(s) = C(sI − A)−1 B.

Théorème 6.1 Une réalisation est minimale si et seulement si elle est commandable et observ-
able.

Indications : ◦ Si la réalisation est minimale, elle est alors commandable et observ-


able. En effet, supposons le système A, B, C non commandable. Alors il existerait une
représentation Ã, B̃, C̃ comportant moins d’états et de même matrice de transfert. La
représentation A, B, C ne serait donc pas minimale.
◦ Si le système est commandable et observable, la réalisation est minimale. Supposons
que la réalisation n’est pas minimale. Dans ce cas il existe une autre réalisation Ã, B̃, C̃
avec ñ < n. Les paramètres de Markov (2.20) sont tels que CAk B = C̃Ãk B̃ pour tout
k. On en déduit que

Cm Ob = C˜m Õb (6.7)


 
où on a posé C˜m = B̃ . . . Ãn−1 B̃ .
Comme on a des réalisations commandables et observables, les rangs des matrices Ob Cm
et Õb C˜m sont tels que ρ(Ob Cm ) = n et ρ(Õb C˜m ) = ñ. Comme Cm Ob = C˜m Õb , on a
n = ñ ce qui est contraire à l’hypothèse.
36 Chapitre 6 - Cas multivariable
Chapitre 7

Indications

7.1 Transformée de Laplace (p. 7)


7.2 Représentations d’état à temps continu (p. 11)
7.2.1 (Calcul de la matrice exponentielle (page 14))

1. Première relation :
n
X n
X
k−1
Σ(s) = s σk (s)A − σk (s)Ak
k=1 k=1
n
X n−1
X
= sσ1 (s)I + sσk (s)Ak−1 − σk (s)Ak − An
k=2 k=1
n−1
X
= sσ1 (s)I + (sσk+1 (s) − σk (s)) Ak − An
k=1
n−1
X
= sσ1 (s)I + ak Ak − An
k=1

Pn−1
Or, An − k=1 ak Ak = a0 I car A annule son polynôme caractéristique :

⇒ Σ(s) = sσ1 (s)I − a0 I = σ(s)I

2. On déduit que :
Pn k−1
−1 k=1 σk (s)A
(sI − A) =
σ(s)

On en déduit que les ϕk (t) sont les originaux des σk (s)/σ(s).

3. σ(s) = s3 + 4s2 + 5s + 2. La forme commandable de la matrice d’état est :


 
−4 −5 −2
A= 1 0 0
0 1 0

37
38 Chapitre 7 - Indications


 σ0 (s) = σ(s)
σ1 (s) = s2 + 4s + 5

La suite des σk (s) est donnée par :
σ (s) = s + 4
 2


σ3 (s) = 1
d’où :

s2 + 4s + 5 s+4 1
(sI − A)−1 = 3 2
I+ 3 2
A+ 3 2
A2
s
 + 4s + 5s + 2  s + 4s + 5s + 2 s + 4s + 5s + 2
2 1
= + I
(s + 1)2 s + 2
 
3 −2 2
+ + + A
(s + 1)2 s + 1 s + 2
 
1 −1 1
+ 2
+ + A2
(s + 1) s+1 s+2

et :
  
eAt = 2te−t + e−2t I + 3te−t − 2e−t + 2e−2t A + te−t − e−t + e−2t A2

%===== tstmatexp.m
% verification de l’expression de exp(At)
A=[-4 -5 -2;1 0 0;0 1 0];
t=2;
Aexp1=expm(A*t)

a0=2*t*exp(-t)+exp(-2*t);
a1=3*t*exp(-t)-2*exp(-t)+2*exp(-2*t);
a2=t*exp(-t)-exp(-t)+exp(-2*t);

Aexp2=a0*eye(3,3)+a1*A+a2*A*A

7.3 Passage du temps continu au temps discret (page 21)


7.3.1 (Calcul des matrices d’état (page 22) Nous devons calculer :
Z T
Ψ = eAu du × B
Z0 T  
1 n n
= I + Au + · · · + A u + · · · du × B
0 n!
T2 T n+1
= BT + AB + · · · + An B + ···
2 (n + 1)!
L’exponentielle de matrice de Ae est :
A2
exp(Ae ) = I + Ae T + e T 2 + · · ·
  2!   
I 0 A B 1 An An−1 B n
= + T + · · · + T + ···
0T 1 0T 0 n! 0T 0
 
Φ Ψ
=
0T 0
ce qui permet de calculer simultanément le deux matrices Φ et Ψ à l’aide de la fonction expm de
MATLAB . R
SI240 / 2007-2008 / GB 39
7.3.2 (Simulation en présence d’un bloqueur d’ordre 0 (page 26))

1. On a :
Z T
Φ = eAT et Ψ = eAu du × B
0

2. A partir de létat X(kT ), on a une relation de récurrence semblable à celle qui permet de
construire X(kT + T ).
Z kT +τ
X(kT + τ ) = e Aτ
X(kT ) + ekT +τ −v BU (kT )dv
kT

qui conduit à des expressions similaires.

3. Simulation :

%===== REPETAT.M
clear
%===== Definition du systeme temps continu
atc=[-11/4 -11/8 -5/4;27/4 11/8 21/4;15/8 19/16 5/8];
btc=[1;-1;-1/2]; ctc=[3/8 1/2 -1/4];
%===== Parametres
T=.2; % Période d’echantillonnage
x0=[0;0;0]; % Etat initial
tpm=100; % Duree de simulation
Npts=tpm/T; tps=[0:T:(Npts-1)*T]; e=ones(1,Npts);
%===== Equivalent temps discret
Ae=[atc btc;zeros(1,4)]*T;
Aem=expm(Ae);
PHI=Aem(1:3,1:3); abs(eig(PHI))
PSI=Aem(1:3,4);
ctd=ctc;
%===== Simulation
x=x0; s=[ctd*x0]; m=[max(max(abs(x0)))]; zz=[x0’];
for k=1:Npts-1
x=PHI*x+PSI*e(k); s(k+1)=ctd*x;
zz=[zz;x’];
m(k+1)=max(max(abs(x)));
end
figure(1); subplot(211); plot(tps,m); grid
title(’Norme du vecteur d état’)
subplot(212); plot(tps,s,’x’); grid
%===== Simulation par filtrage
nz=poly(PHI-PSI*ctd)-poly(PHI);
dz=poly(PHI);
s2=filter(nz,dz,e,x0);
hold on; plot(tps(1:Npts)’,s2,’o’); hold off
title(’Sortie du filtre’)
%figure(2); plot(zz);grid
%===== Verification avec la control toolbox
%[a,b,c,d]=c2dm(atc,btc,ctc,0,T,’zoh’);
%[nz2,dz2]=ss2tf(atc,btc,ctc’,0);

4. L’évolution du vecteur d’état indique qu’il y a certainement instabilité. Si on augmente


le temps de traitement, par exemple en prenant tpm=1000, on voit apparaı̂tre l’instabilité
sur la sortie.
40 Chapitre 7 - Indications

5. Le système de départ
1
G(s) =
p2 +p+1
est instable. L”equivalent temps discret l’est aussi. Il y a simplification d’une paire
“instable”.
6. Le système diverge de toute façon à cause du bruit de calcul.

7.4 Représentations d’état à temps discret (page 23)


7.4.1 (Test PBH d’observabilité (page 25)) Soit v vecteur propre de A. On a Av = λv.
◦ Supposons que Cv=0. On peut alors écrire :
CAv = λCv = 0
CA2 v = CAλv = 0
..
.
CAn−1 v = 0
La matrice Ob est donc singulière, ⇒ non-observabilité.
◦ Supposons la paire (A, C) non observable. On sait qu’il existe une base dans laquelle on
peut représenter le système sous la forme :
 
A11 0  
A= et C = C1 0 (7.1)
A21 A22
Un vecteur orthogonal à C peut être choisi de la forme :
 
0
v=
w
avec w vecteur propre de A22 . Dans ce cas, on vérifie bien que :
 
0
Av = = λv
A22 w
On a donc bien trouvé un tel vecteur.

7.4.2 (Critère de Sylvester (page 26)) On peut aboutir à ce résultat suivant plusieurs
méthodes, par exemple :
− En partant de la seconde forme, on multiplie à droite par la matrice :
 n+m−1 
z 0 ... 0
z n+m−2 1 . . . 0
 
R= ..  (7.2)
 . 
1 0 ... 1
et on évalue le déterminant du produit de deux façons.

det(S)det(R) = αz n+m−1 = det(SR) = A(z)Q(z) + B(z)P (z) (7.3)

où degré(P ) ≤ n − 1 et degré(Q) ≤ m − 1. On en déduit que l’existence d’un facteur


commun ne peut avoir lieu que si det(S) = 0.
SI240 / 2007-2008 / GB 41
 
− En partant de la première forme, on multiplie à gauche par un vecteur ligne X Y avec
X(1 × (m − 1)) et Y (1 × (n − 1)). La résolution de l’équation :
 
  X⋆A
X Y S=0⇒ =0 (7.4)
Y ⋆B

où ⋆ est le produit de convolution (X ⋆ A est un vecteur colonne contenant les coefficients
du produit des polynômes A(z) et X(z)). 7.4 donne l’équation polynômiale X(z)A(z) +
Y (z)B(z) = 0. A(z) et B(z) premiers entre eux est alors équivalent à det(S) 6= 0.

7.5 Structure des filtres (page 29)


7.6 Cas multivariable (page 33)
42 Chapitre 7 - Indications
Bibliographie

[1] M. Bellanger. Traitement Numérique du Signal. Dunod, 1998.

[2] G. Blanchet. Commande et temps discret : illustration sous Matlab. Hermès, 2003.

[3] G. Blanchet and M. Charbit. Digital Signal and Image Processing. ISTE, 2006.

[4] T. Kailath. Linear Systems. Prentice Hall, Englewood Cliffs, 1980.

43
Index

état observable, 24 de réponse impulsionnelle, 24

accessibilité, 18, 25 observable, 24

BIBO, 8 pôle, 8
paramètres
commandable de Markov, 15, 24
état, 16 prewarping, 21
système, 16 Programme
compagnon, 12 exple1.m, 17
constructibilité, 25
contrôle réponse impulsionnelle, 8
en boucle ouverte, 8 représentation d’état, 11

Equation Single Input-Single Output, 12


d’état, 30 SISO, 12
Etat (d’un filtre), 30 solution
causale, 7
Filtre linéaire générale, 14
état, 30 particulière, 14
fonction stabilité
sylvester.m, 25 entrée bornée-sortie bornée, 8
fonction de transfert, 8, 9 stabilité
forme BIBO, 8
compagnon, 12 EBSB, 8
contrôleur, 12 système
non commandable, 19, 35 invariant, 11
non observable, 19, 35 strictement propre, 12
observateur, 13
forme observable, 24 transformée
fréquence de Laplace, 7
pivot, 21 transformation
bilinéaire, 21
gain complexe, 8 d’Euler, 21
de Tustin, 21
indice
d’observabilité, 35 vecteur d’état, 11
de commandabilité, 35
invariant, 11

matrice
d’observabilité, 18, 24
de Sylvester, 25

44

Vous aimerez peut-être aussi