Vous êtes sur la page 1sur 75

Cours/TP Synthèse des Contrôleurs d’états pour la Mécatronique

Cours & TP

Synthèses des Contrôleurs d’états


pour la Mécatronique
Aspects théoriques et pratiques

par
Le Professeur

H. CHAFOUK

© Février 2024

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

SOMMAIRE

Chapitre 1. : Représentation d'état des systèmes échantillonnés et discret


1.1. Introduction
1.2. Représentation des systèmes discrets
1.2.1. Principe
1.2.2. Exemple : système à entrée en escalier
1.2.3. Passage à la fonctions de transfert
1.2.4. Solution générale
Chapitre 2. : Gouvernabilité et Observabilité des systèmes discrets
1. Représentation canonique
1.1. Représentation diagonales et pseudo-diagonales
1.2. Représentation compagne de commandabilité
1.3. Représentation compagne d'observabilité
2. Gouvernabilité
2.1. Définition
2.2. Critères modaux
2.3. Critère direct
2.4. Perte de commandabilité par discrétisation
3. Observabilité
3.1. Définition
3.2. Critères modaux
3.3. Critère direct
3.4. Perte d'observabilité par discrétisation
Chapitre 3. : Synthèse des systèmes discrets en représentation d'état
1. Compensation par retour d'état
1.1. But et principe
1.2. Système sous forme canonique gouvernable
1.3. Représentation donnée par fonction de transfert
2. Observateur
3. Retour d'état avec observateur
3.1. Principe
3.2. Exemple d'application
3.3. Observateur d'ordre réduit
4. Régulateur à temps d'établissement fini

Exemple d’application : Commande d’une structure active en Temps Réel


Annexe : Références bibligraphiques

Travaux pratiques : Contrôle d'un Papillon Motorisé par Calculateur


- 1ère partie : Commande par retour d'état
- 2ème partie : Commande via l'observateur de Luenberger
ANNEXES
Annexe A – Identification des paramètres du moteur par analyse fréquentielle
Annexe B – Assignation de pôles et Commande par retour d'état
Annexe C - Commande par retour d’état via l’observateur de Luemberger

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Chapitre 1

Représentation d'état des


systèmes échantillonnés et discrets

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

SOMMAIRE

1.1. Introduction

1.2. Représentation des systèmes discrets


1.2.1. Principe
1.2.2. Exemple : système à entrée en escalier
1.2.3. Passage à la fonctions de transfert
1.2.4. Solution générale

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Chapitre 1
Représentation d'état des systèmes
échantillonnés et discrets

1.1. Introduction
Nous ferons la distinction entre les systèmes :

- échantillonnés : ils sont constitué d'éléments continus dont les signaux à l'entrée ou la
sortie après échantillonnage ne sont connus qu'à des instants discrets séparés par la période
d'échantillonnage.

- discrets : dont les signaux en tout point du système ne sont définis qu'aux instants
d'échantillonnage.

Le calculateur est l'exemple même du système discret puisque les signaux ne sont
définis qu'aux "tops" d'horloge. Un moteur électrique à courant continu piloté par calculateur
est un système échantillonné. En effet les signaux du moteur et de son électronique de
commande sont analogique mais cet ensemble n'échange des informations avec le calculateur
qu'à des instants discrets.

Comparaison + Correction
y(t)
Consigne Calculateur
CNA Procédé

CAN Capteur

Figure 3

Le procédé discrétisé sera représenté par :

T T
u(t) y(t) y(k)
B0 Procédé

CNA CAN

CNA : transforme le signal échantillonné en signal continu à l'aide d'un bloqueur d'ordrer 0.

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

h(t) Réponse impulsionnelle :

1 h(t) = Y(t) - Y(t-T)

1 − e − pT
t B0 (p) =
p

condition de Shannon : Fe  2. Fmax


avec
Fe : Fréquence d'échantillonnage,
Fmax : Fréquence maximale du spectre à transmettre.

En pratique, on prend :
6. Fmax  Fe  25. Fmax

1.2. Représentation d'état d'un systèmes discrétisé par échantillonneur bloqueur

1.2.1. Principe

T u(k)
u(t) y(k)
B0 G(p)

L'équation d'état en continu du système G(p) est donnée par :

 = A.X + B.u
X équation d'état

y = C.X + D.u équation de mesure

avec
X : vecteur de variables d'état,
y : sortie du système,
u : commande,
A : matrice d'état,
B : vecteur de commande,
C : vecteur de mesure ou d'observation,
D : matrice de transmission.

Solution générale :
t

X(t) = e A(t − t 0 )
. X(t 0 ) + e A(t − )
. B . u( ) . d
t0

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

En prenant comme :
- instant initial : t0 = kT
- et final : t = (k+1)T

nous aurons :
(k+1)T

X (k + 1)T = e AT
. X(kT) + e A (k+1)T− 
. B . u( ) . d
kT

Nous devons trouver une équation d'état du type :

X(k + 1) = A r .X(k) + B r .u(k)

D'où :

A r = e AT
d'autre part, pour kT < t < (k+1)T, on a :

 (k+1)T A  (k +1)T−  
B r .u(k) =   e . B . d  . u(k)
 kT 

en posant :

 = (k+1)T -  d = - d

Donc :

Br = e A
. B . d = A -1 . (A r - I) . B
0

N.B. : La deuxième expression de Br n'est valable que si la matrice A est régulière c'est-à-dire
inversible.
1.2.2. Exemple : système à entrée en escalier

Soit une charge (figure 2) de moment d'inertie J sur laquelle agit un couple  supposé
pour l'instant quelconque.

J
f

Figure 2

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

L'ensemble est supposé sans frottement. L'équation fondamentale de la dynamique


donne :

 + f. 
J.   = 

posons :

X1 = 


X2 = 

d'où :

 = 
X 1

 = 
X  + 
 = − f 
2
J J

1 f
représentation matricielle (en continu avec = ):
 J

X     0 1   0


   =    =  0 −     +  1  
1
1
 
X2        J 

Calculons alors les matrices Ar et Br :

Tout d'abord, on calculera la matrice de transition :


1  

p −
p 1
p -1   1   p+ 
p +   
1 1
(pI - A) -1
=  1 = = 
 0 p +   1
p(p + )  0 p  0
1

  1 
p+
  
 −
t

 Y(t)  (1 − e  )Y(t)

e At =
 
t

 0 e  Y(t) 

pour t = T, on aura :

 −
T

 1  (1 − e  )

A r = e AT =
 
T

0 e  

Calcul de Br :
0
 

)  

T 1  (1 − e 
B r = 0     d
 −  1
0 e   
J 

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 −


 J (1 − e
 )
   d
T
= 

0
 e  
 J 

  −
T

  T +  (e − 1) 

  
J
Br =  
  −
T 
 (1 − e  ) 
J 

Si f → 0 et  →  (cas du solide sans frottement) , alors :

  T T2     T 2 
  +  − + −   J  − + 
2 
T (1 1) T T
J   2 2   
Br   =  
  T   T 
 (1 − 1 + )   
J    J
Donc :
 T2 
 2J 
 
Br =
 
T
 J 
De même pour Ar, après approximation, on trouve :

 1 T
Ar   
0 1 
2.2. Passage à la fonction de transfert :

X(k + 1) = A r .X(k) + B r .u(k) (1)

y(k) = C r .X(k) + D r .u(k) (2)

On applique la transformée en z à l'expression (1) :

z.X(z) = A r .X(z) + Br .U(z)

(zI - A r ).X(z) = Br .U(z)

X(z) = (zI - A r ) -1 .Br .U(z)

Remplaçons l'expression de X(z) dans l'équation (2), on aura :

Y(z) =  C r .(zI - A r ) -1 .Br + D r  .U(z)

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

La fonction de transfert est donnée par :

H(z) = C r .(zI - A r ) -1 .Br + D r


2.3. Solution générale

L'équation d'état donne :


X(1) = A r .X(0) + Br .u(0)
X(2) = A r .X(1) + Br .u(1)
= A 2r .X(0) + A r .Br .u(0) + Br .u(1)
...................................................................
...................................................................
X(k -1) = A k-1 r .X(0) + A r .B r .u(0) +.....+ A r .B r .u(k -1) + B r .u(k - 2)
k-2

L'équation d'état donne la solution générale :

X(k) = A kr .X(0) + A k-1


r .B r .u(0) +.....+ A r .B r .u(k - 2) + B r .u(k -1)

Formulation générale :

k
X(k) = A . X(0) + k
r A k-i
r . Br . u(i -1)
i=1

Réponse libre Réponse forcée

Or en reprenant l'équation d'état y compris les conditions initiales :

z.X(z) - z.x(0) = A r .X(z) + Br .U(z)

(zI - A r ).X(z) = z.x(0) + Br .U(z)

X(z) = (zI - A r ) -1 z.x(0) + (zI - A r ) -1 Br .U(z)

en temporel, on aura :

X(k) = Z-1  X(z) = Z-1  (zI - A r ) -1 z .x(0) + Z-1  (zI - A r ) -1 Br .U(z)

par identification, on trouve :

A kr = Z-1  (zI - A r ) -1 z

10

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Chapitre 2

Gouvernabilité et observabilité
des systèmes discrets

11

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

SOMMAIRE

1. Représentation canonique
1.1. Représentation diagonales et pseudo-diagonales
1.2. Représentation compagne de commandabilité
1.3. Représentation compagne d'observabilité

2. Gouvernabilité
2.1. Définition
2.2. Critères modaux
2.3. Critère direct
2.4. Perte de commndabilité par discrétisation

3. Observabilité
3.1. Définition
3.2. Critères modaux
3.3. Critère direct
3.4. Perte d'observabilité par discrétisation

12

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Chapitre 2
Gouvernabilité et observabilité
des systèmes discrets

1. Représentations canoniques
Elles s'étendent à l'identique des systèmes continus aux discrets. Rappelons-les sur des
exemples.

1.1. Représentation diagonale et pseudo-diagonale

Exemple :

S(z) z 2 + 2z + 1 −3z - 5
H(z) = = 2 = 1+ 2
U(z) z + 5z + 6 z + 5z + 6

D'où

1 4
H(z) = 1 + −
z+2 z+3

on pose :

X1 (z) 1
=  X1 (k + 1) = −2.X1 (k) + u(k)
U(z) z + 2

X 2 (z) 1
=  X 2 (k + 1) = −3.X 2 (k) + u(k)
U(z) z+3

et
S(z) = U(z) + X 1 (z) − 4.X 2 (z)  S(k) = u(k) + X 1 (k) - 4.X 2 (k)

Les équations d'état s'écrivent :

 X1 (k + 1)   −2 0   X1 (k)  1
 X (k + 1)  =  0 −3  X (k)  + 1 u(k)
 2    2   

 X1 (k) 
S(k) = 1 −4   + u(k)
 X 2 (k) 

13

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Les représentations en simulation donnent :

+
z-1 1
+

-2
U(z) + S(z)
+
+
z-1 -4
+ +

-3

1
2
Représentation simplifiée :
-2

1 z-1 1
U(z) 2 2 S(z)

1 1
1 4
2 2
2 z-1 2

-3

1
2
1.2 Représentation compagne de commandabilité
Exemple :
Y(z) z3 + z2 + z Y(z) W(z)
H(z) = = 3 =
U(z) z + 7z + 16z + 12 W(z) U(z)
2

avec
W(z) 1
= 3
U(z) z + 7z + 16z + 12
2

et
Y(z)
= z3 + z2 + z
W(z)
Nous obtenons en temporel :

w(k + 3) + 7w(k + 2) + 16w(k + 1) + 12w(k) = u(k)

14

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

d'où
w(k + 3) = u(k) - 7w(k + 2) − 16w(k + 1) -12w(k)
y(k) = w(k + 3) + w(k + 2) + w(k +1)
et
= u(k) − 6w(k + 2) − 15w(k + 1) − 12w(k)

Ainsi nous avons le diagramme de simulation ci-dessous :

y(k)
-6 -15 -12
u(k) w(k+3) w(k+2) w(k+1) w(k)
+
z-1 z-1 z-1 x1(k)
x3(k) x2(k)
+
7 16 12

-1

Les équations d'état sont :

x1 (k + 1) = x 2 (k) = w(k + 1)

x 2 (k + 1) = x 3 (k) = w(k + 2)

x 3 (k + 1) = w(k + 3) = u(k) - 7x 3 (k) -16x 2 (k) -12x1 (k)

et y(k) = -6x 3 (k) -15x 2 (k) -12x1 (k) + u(k)

Soit encore :

 x 1 (k + 1)   0 1 0   x 1 (k)   0
      
 x 2 (k + 2)  =  0 0 1   x 2 (k)  +  0 u(k)
 x 3 (k + 1)   −12 −16 −7   x 3 (k)   1

y(k) =  -12 -15 -6  x(k) + u(k)


Si l'on a une représentation quelconque, rappelons l'obtention de la forme compagne de
commandabilité, soit :

x(k +1) = A r .x(k) + Br .u(k) équation d'état dans une base quelconque

et
~ ~ ~
x(k +1) = A r . ~
x(k) + Br .u(k) dans la base compagne de commandabilité

avec
~ ~
x(k) = M. ~
x(k) où M est la matrice de passage

15

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

les nouvelles matrices sont obtenues à l'aide de la forme de Jordan, comme suit :

~ ~ ~
A r = M -1 .A r .M
~ ~
Br = M -1 .Br
~ ~
C r = C r .M

cas général :

 0 1 0....... 0   0
 ..   
~  .. .. ........
 ~ ..
Ar = et Br =
 .. .. ........ ..   0
 -a -a 1 -a 2 .... -a n-1   1
0

où a0, a1, a2, ...., an-1 sont les coefficients du polynôme caractéristique normalisé :

 .I - A r = n + a n-1 . n-1 + .... + a 1 .  + a 0

on a :

~
M= ( A n-1
r r +...+a 2 A r + a 1I ) B r ,........, ( A r + a n −1A r + a n − 2 I ) B r , ( Ar + a n −1I ) B r , B r
+ a n-1A n-2 2

~
La condition d'obtention du changement de base est que M soit inversible ce qui est
équivalent à :

rang  A n-1
r B r ,.........,A r B r , B r  = n

1.3 Représentation compagne d'observabilité


Exemple :

Y(z) 2z 2 + z + 3 2z -1 + z -2 + 3z −3
H(z) = = =
U(z) z 3 + 4z 2 + 5z + 2 1 + 4z -1 + 5z -2 + 2z -3

Ce qui donne :

Y(z) ( 1 + 4z −1 + 5z −2 + 2z −3 ) = ( 2z −1 + z −2 + 3z −3 ) U(z)

Y(z) = z-1  ( 2U - 4Y) + z−1  ( U − 5Y) + z−1 ( 3U − 2Y)  


x3(k)

x2(k)

x1(k)
16

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

On pose alors :

x 3 (k + 1) = 3U − 2Y

x 2 (k + 1) = U − 5Y + x 3 (k)

x 1 (k + 1) = 2U − 4Y + x 2 (k)
et
y(k) = x 1 (k)

D'où

x 3 (k + 1) = −2x1 (k) + 3u(k)

x 2 (k + 1) = -5x 1 (k) + x 3 (k) + u(k)

x 1 (k + 1) = −4x 1 (k) + x 2 (k) + 2u(k)

Soit sous forme matricielle :

 x 1 (k + 1)   -4 1 0  x 1 (k)   2 
      
 x 2 (k + 2)  =  -5 0 1  x 2 (k)  +  1  u(k)
 x 3 (k + 1)   −2 0 0  x 3 (k)   3

y(k) = 1 0 0  x(k)

Soit le schéma de simulation analogique :


u(k)

3 1 2

x3(k+1) x3(k) x2(k+1) x2(k) x1(k+1) x1(k) = y(k)


z
-1
z
-1
z
-1

-2 -5 -4

Rappelons là aussi l'obtention d'une base compagne d'observabilité à partir d'une base
quelconque. Soit :

x* (k +1) = A *r .x* (k) + B*r .u(k)


et
y* (k) = C*r .x* (k) + D*r .u(k)

17

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Les équations d'état et de mesure dans la représentation d'état compagne observable sont
données par : x(k) = M * .x* (k) où M* est la matrice de passage

les nouvelles matrices sont obtenues à l'aide de la forme de Jordan, comme suit :

A *r = M *-1 .A r .M *
B*r = M *-1 .Br
C*r = C r .M *

 -a n-1 1 0....... 0
 -a .. 1....... ..
avec A r =   C*r = 1 0 ........ 0
* n-2
et
 .. .. ........ 1
 -a 0 0....... 0
0

où a0, a1, a2, ...., an-1 sont les coefficients du même polynôme caractéristique normalisé.
on a :

 C ,( A C r + a n−1 t C r ) , ( t A 2r t C r + a n−1 t A r t C r + a n-2 t C r ) ,...., ( t A n-1 C r +.....+a 1 t C r ) 


t −1
M* = t
r
t
r
t
r C r + a n −1 A r
t t n-2 t

La condition d'obtention du changement de base est que M* soit inversible ce qui est
équivalent à :

rang  t C r , t A r t C r ,........., t A n-1


r
t
Cr  = n

2. Gouvernabilité
2.1. Définition

Soit le système décrit par les équations :

x(k +1) = A r .x(k) + Br .u(k)

y(k) = C r .x(k) + D r .u(k)

Il est gouvernable si  x(0) et x(k) on peut trouver u(1) .... u(k) faisant passer le système de
l'état initial à l'état final en k périodes.

2.2. Critères modaux

Ils sont semblables à ceux utilisés dans le cas continu. Soit M la matrice modale, le
système est commandable si : M-1.Br ne contient aucune ligne de zéros, c'est le cas des valeurs
propres distinctes.

18

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Si les valeurs propres sont multiples le critère comporte les conditions suivantes :

1. Les valeurs propres correspondant à des blocs de Jordan différents sont distinctes.

2. Les lignes de M-1.Br correspondant à la dernière ligne de chaque bloc de Jordan et à


chaque valeur propre distincte contiennent au moins un élément non nul.

Alors le système est commandable.

2.3. Critère direct

Soit la solution générale de l'équation d'état discrète :


k
k
x(k) = A .x(0) +
r A k-i
r .Br .u(i -1)
i=1

soit encore :
k
x(k) - A kr .x(0) = A k-i
r r .Br .u(0) + A r .Br .u(1)+...+Br .u(k -1)
.Br .u(i -1) = A k-1 k-2

i=1

ou :
 u(0) 
 u(1) 
x(k) - A r .x(0) =  A r .Br , A r .Br , .... , Br  
k k-1 k-2 
 ...... 
 u(k -1) 
En posant :

 N k =  A k-1
r .B r , A r .B r , .... , B r 
k-2

C'est la matrice de commandabilité déjà introduite dans la forme compagne correspondante.


Elle comporte (k x m) colonnes.

 u(0) 
 u(1) 
 U k =  
 ...... 
 u(k -1) 
avec
dim [U]k = km x 1
et
dim [N]k = n x km

Le système est commandable si l'on peut résoudre le système donnant les u(0)...u(k-1)
en fonction de x(0) et x(k), ceci impose que [N]k soit inversible donc rang [N]k = n.
Le nombre de colonne doit donc être supérieur ou égale à n qui est le nombre de ligne.
km  n

19

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Cette inégalité nous donne le plus petit entier représentant le nombre de coups pour faire
passer le système d'un état à l'autre, soit k0 :
n
k0 = le plus petit entier supérieur ou égal à
m

Si le système est monovariable :

m = 1 et k0 = n

2.4. Perte de commandabilité par discrétisation

Pour certaines valeurs de la période d'échantillonnage, le système peut perdre sa


commandabilité. Prenons un exemple :

soit un système continu du 2ème ordre décrit par l'équation d'état :

 − r 0   1
 = 
X(t)  X(t) +   u(t)
 −0 − r   0

avec

 − r 0   1
A=   et B=  
−0 − r   0
nous avons : Ar = eAT

p + r −0 
-1

= L  pI - A
At -1 -1 -1
=L 
p + r 
e
 0

1 p + r 0 
eAt = L-1 2 
(p + r) + 0  −0
2
p + r 

  e .cos(0 t) e − rt .sin(0 t) 
− rt
 p+r 0
 (p + r) 2 +  2  
(p + r) 2 + 02   
e At = L-1  −0
0
p+r =
   
 (p + r) + 0 (p + r) + 0   - e − rt .sin(0 t) e .cos(0 t) 
2 2 2 2 − rt

Donc
 e − rT .cos(0T) e − rT .sin(0T) 
 
A r = e AT =  
 
 - e − rT .sin(0T) e .cos(0T) 
− rT

 b r1 
La matrice Br peut s'écrire : Br =  
 b r2 

La matrice de commandabilité s'écrit :

20

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 N 2 =  A r .Br , Br 
D'où :
 b r1 .e − rT .cos(0T) + b r2 .e − rT .sin(0T) b r1 
 N 2 =  
 
 - b r1 .e .sin(0T) + b r2 .e .cos(0T)
− rT − rT
b r2 

20
puisque 0T = k , on aura alors  = . [N]2 devient :
k

 (-1) k b r1 .e − rT b r1 
 N 2 =  
 − rT

 (-1) b r2 .e b r2 
k

Les deux vecteurs colonnes sont proportionnels, la matrice de commandabilité est de


rang  1, en effet, dét(N) = 0. Ceci sera vrai aussi pour les pulsations sous-multiples.

En pratique, il faudra étudier les pulsations proche de 2.0 ou de ses sous-multiples


autrement le système sera difficilement gouvernable. Le phénomène peut s'étendre aux
systèmes d'ordre supérieur possédant plusieurs fréquences propres.

3. Observabilité
3.1. Définition

Un système est observable si l'on peut déterminer l'état initial x(0) en mesurant sa sortie
pendant un nombre fini de périodes d'échantillonnage k.

3.2. Critère modal

Dans le cas des valeurs propres distinctes, le système est observable si la matrice Cr.M
ne contient aucune colonne de zéros.

Si les valeurs propres sont multiples les conditions nécessaires et suffisantes d'observabilité
sont :

1. Les valeurs propres correspondant à des blocs de Jordan différents sont distinctes.

2. Les colonnes de la matrice Cr.M correspondant à la première colonne de chaque bloc


de Jordan et à chaque valeur propre distincte contiennent au moins un élément non nul.

3.3. Critère direct

Soit le système décrit par son équation d'état :

x(k +1) = A r .x(k) + Br .u(k)

nous avons :

21

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

k
x(k) = A .x(0) + k
r A k-i
r .Br .u(i -1)
i=1
et
k
y(k) = C r .A kr .x(0) +  C .A r
k-i
r .Br .u(i -1)
i=1

Si nous considérons le système libre c'est-à-dire u(j) = 0, on aura :

 y(0) = C r .x(0)  y(0)   C r 


 y(1) = C .A .x(0)  y(1)   C .A 

r r
   =  r r  x(0)
 ........................  ....   ....... 
 y(k − 1) = C r .A kr −1 .x(0)  y(k − 1)   C .A k −1 
r r

avec

 M k =  r . Cr 
t t
C r , t A r .t C r , ....., t A k-1 t
matrice d'observabilité

Le système est observable si l'on peut calculer x(0) en fonction de y(0), ...., y(k-1). Ceci
est équivalent à :

rang [M]k = n

En effet, cette matrice possède pk colonnes et n lignes, nous aurons : pk  n


La plus petite valeur de k telle que [M]k soit de rang n fournit le nombre d'observations pour
reconstituer l'état initial. Si le système est monovariable p = 1 d'où k = n.

3.4. Perte d'observabilité par discrétisation

On peut reprendre l'exemple précédent :

 C r1 C r1 .e − rT .cos(0 T) - C r2 .e − rT .sin( 0 T) 
C r =  C r1 C r2  et  M 2 =  
 
 C r2 C r1 .e − rT .sin( 0 T) + C r2 .e − rT .cos( 0 T) 

20
pour 0T = k , on aura alors  = . [M]2 devient :
k

 C r1 C r1 .e − rT 
 M 2 =  
 
 C r2 C r2 .e − rT 

donc dét(M) = 0, la matrice est singulière, le système n'est plus observable.

22

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Chapitre 3

Synthèse des systèmes discrets


en représentation d'état

23

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

SOMMAIRE

1. Compensation par retour d'état


1.1. But et principe
1.2. Système sous forme canonique gouvernable
1.3. Représentation donnée par fonction de transfert

2. Observateur

3. Retour d'état avec observateur


3.1. Principe
3.2. Exemple d'application
3.3. Observateur d'ordre réduit

4. Régulateur à temps d'établissement fini

24

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Chapitre 3

Synthèse des systèmes discrets


en représentation d'état

1. Compensation par retour d'état


1.1. But et principe

Soit le régime décrit par les équations d'état sous forme fonctionnelle :

Dr

u X(k+1) X(k) y
Br 
-1 Cr

Ar

avec

X(k + 1) = A r .X(k) + B r .u(k)


et
y(k) = C r .X(k) + D r .u(k)


dim(X) = n  1
dim(u) = m  1
dim(y) = p  1
dim(Ar) = n  n
dim(Br) = n  m
dim(Cr) = p  n
dim(Dr) = p  m

La dynamique du système est décrite par l'équation caractéristique :

zI − A r = z n + a n−1 .z n−1 + .... + a 1 .z + a 0 = 0

ses racines sont les valeurs propres de la matrice Ar.


25

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

On peut modifier ces valeurs propres en plaçant les pôles de la transmittance


différemment. On introduit pour cela un retour d'état comme suit :

Dr

e X(k+1) X(k) y
+
Br 
-1 Cr
u
-
Ar

La loi de commande par retour d'état s'écrit sous la forme :

u(k) = e(k) − R.X(k)

R étant le vecteur de retour d'état.

En remplaçant u(k) par son expression dans l'équation d'état, on trouve :

X(k + 1) = A r .X(k) + B r .  e(k) - R.X(k)

D'où :

X(k + 1) =  A r - B r .R .X(k) + B r .e(k) (1)

La sortie est donnée par :

y(k) = C r .X(k) + D r .u(k) = C r .X(k) + D r .  e(k) - R.X(k)

D'où :

y(k) =  C r - D r .R .X(k) + D r .e(k) (2)

La forme est semblable à celle des équations d'état non modifiée. La nouvelle matrice
d'état est ( Ar - Br.R ), les valeurs propres seront données par :

 .I − A r + B r .R = 0

Exemple d'application :

1 0.1  0.005
X(k + 1) =  .X(k) + 
. 
.u(k)
0 1   01

26

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Prenons : e=0  u(k) = − R.X(k)

u(k) est un scalaire, le vecteur d'état X est de dimension 2 ; donc :

 X1 (k) 
u(k) = -  r1 r2  .  
 X 2 (k) 

L'équation d'état est :

X(k + 1) =  A r - Br .R .X(k)

soit :
1 0.1  0.005   X1 (k) 
X(k + 1) =   -  . . r1 r2    
 0 1   01    X2 (k) 

1- 0.005.r1 0.1- 0.005.r2   X1 (k) 


=
 -0.1.r1 1- 0.1.r2   X2 (k) 

La nouvelle équation caractéristique est :

 - 1 + 0.005.r1 - 0.1 + 0.005.r2


 .I − A r + B r .R =
0.1.r1  - 1 + 0.1.r2

 .I − A r + B r .R = 2 + (-2 + 0.005.r1 + 0.1.r2 ).  + 1 + 0.005.r1 - 0.1.r2

 .I − A r + B r .R = (  - 1 )(  - 2 ) = 2 - ( 1 + 2 ).  + 1 . 2 = 0

Si nous prenons par exemple : 1 = 0.6 et 2 = 0.8 , nous aurons :

L'équation caractéristique :

2 - 1.4  + 0.48 = 0

Par identification, on trouve :

 0.005 r1 + 0.1 r2 − 2 = − 1.4



 0.005 r1 − 0.1 r2 + 1 = 0.48

On obtient, après résolution de ce système :

r1 = 8 et r2 = 5.6

L'inconvénient de la méthode est évident pour les ordres supérieurs, il est interessant
d'utiliser une forme particulière des équations d'état.

27

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

1.2. Système sous forme canonique gouvernable


Nous avons :

 0 1 ........ 0 
 0 0 ........ 0 
Ar =  
~
 .. .. ........ .. 
− a −a 1 ........ − a n−1 
0

Le système compensé, dans la forme canonique gouvernable sera représentée par la


matrice d'état :
 0 1 ........ 0 
 0 0 ........ 0 
A rc = A r - B r .R = 
~ ~ ~ ~ 
 .. .. ........ .. 
− b − b1 ........ − b n−1 
0

~ ~
Pour que A r et A rc soient compagnes gouvernables, il faut que les n-1 premières lignes
~ ~ ~
de B r .R soient nulles. Ceci implique les n-1 premières lignes de B r le soient en effet, le
~ ~
produit B r .R s'écrit :

0 0 .... ..... 0   0 0 .... ..... 0


0 0 ..... ...... 0    0 0 ..... ...... 0 
~ ~     
B r .R =  .. .. ..... ....... ..    =  .. .. ..... ....... ..
0 0 ..... ...... ..    0 0 ..... ...... ..
    
x x ...... ...... x    x x ..... . ...... x 
~ ~
Br R
~
dim( B r ) = n  m
~
dim( R ) = m  n

En prenant un système monovariable : m = 1, on trouve :

 0
 0
 
R =  ~r0 ... .... ~rn−1 
~ ~
B r = .. avec ~r
1
 0
 
 1
on a :
 0 1 ........ 0   0 1 ........ 0 
 0 0 ........ 0   0 0 ........ 0 
~ ~ ~ ~
A rc - A r = - B r .R =   −  
 .. .. ........ ..   .. .. ........ .. 
 − b − b1 ........ − b n−1   − a 0 −a 1 ........ −a n−1 
0

28

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 0 0 ........ 0 
 0 0 ........ 0 
~ ~ ~ ~
A rc - A r = - B r .R =  
 .. .. ........ .. 
 a − b0 a 1 − b1 ........ a n−1 − b n−1 
0

 0
 0  0 0 ........ 0 
   0 0 ........ 0 
- B r .R = − ..  r0 r1 ... .... rn−1  = 
~ ~ ~ ~ ~ 
 0  .. .. ........ .. 
  − ~r − ~r ........ − ~rn−1 
 1
0 1

Par identification, on trouve alors :

~r = b − a ; ~r = b − a ; ...........; ~rn−1 = b n−1 − a n−1 (2)


0 0 0 1 1 1

Il faut ensuite calculer les coefficients ri dans la base quelconque.


Si le système est commandable, on peut obtenir la forme de commandabilité à partir d'une
forme quelconque.

Reprenons l'exemple précédent :

1 0.1  0.005
X(k + 1) =  .X(k) + 
. 
.u(k)
0 1   01

1 0.1 0.005
Ar =   Br = 
. 
et
0 1   01

mettons-le sous forme commandable :


~ ~ ~ ~ ~
A r = M -1 .A r .M et Br = M -1 .Br

il faut trouver l'équation caractéristique :

z.I - A r = (z - 1) 2 = z 2 - 2z + 1 = z 2 + a 1 .z + a 0

les coefficients sont : a0 = +1 et a1 = -2

~  0 1
M =  (A r + a1 .I).Br , Br 
~
d'où : Ar =   et
-1 2 

~ 1 0.1 -2 0  0.005 0.005 0.005 0.005


M =   + .  ,  = 
0 1   0 -2   0.1   0.1   -0.1 0.1 
~ ~ 0.1 -0.005 100 -5
M = 0.001  M -1 = 1000  =  
0.1 0.005  100 5 

29

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Nous avons :
~ ~ ~ ~
X = M.X  X = M -1 .X
~ ~ ~
or u = - r. X = - r. M.X = - ~r. X

avec
~
~r = r.M ~
 r = ~r.M -1
La nouvelle équation caractéristique est :

z 2 − 1.4z + 0.48 = 0 = z 2 + b 1 .z + b 0

donc : b0 = 0.48 et b1 = -1.4


~r = b - a = 0.48 - 1 = - 0.52
~r =  -0.52 0.6
0 0 0

~r = b - a = -1.4 + 2 = 0.6
1 1 1

vérification :
100 −5
r = ~r.M -1 =  −0.52 0.6   = 8 5.6
~
100 5 

Si l'on peut trouver l'expression du vecteur d'état dans la base de départ, nous avons :

r =  r0 r1  = ~r.M -1 =  8 5.6
~

Le résultat est identique à celui obtenu directement.

1.3. Représentation donnée par fonction de transfert


Soit la fonction de transfert :

S(z) N(z)
H(z) = =
U(z) D(z)
avec
D(z) = z n + a n−1 z n-1 + .... + a 1 z + a 0

nous avons alors :

 0 1 0 ........ 0   0
 .. .. .. ........ ..   0
   
X(k + 1) =  .. .. .. ........ ..  X(k) + .. u(k)
 0 0 .. ........ 1   0
   
−a 0 −a 1 .. ........ −a n−1   1

30

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 N (0) (0) N (n−1) (0) 


y(k) =  N(0) X(k) + du(k)
(n − 1)! 
...........
 1!

Nous sommes ramenés au problème précédent. On se donne la dynamique du système


corrigé en fixant les nouveaux coefficients b0, b1, ...., bn-1 du dénominateur de H(z) qui sont
également ceux de l'éqution caractéristique. Il reste à calculer r0, r1, ..., rn-1.

Exemple d'application :

Soit la fonction de transfert d'un système non corrigé :

z +1
H(z) =
(z + 2)(z + 3) 2

La nouvelle dynamique du système corrigé par retour d'état est fixée par les pôles :

z 1,2 = 0.4  j 0.2

Le système initial étant du 3ème ordre, il faut rajouter un pôle que nous prendrons à
l'origine afin qu'il influe le moins possible sur les autres pôles.

Le nouveau dénominateur de H(z) est :

z(z − 0.4 − j0.2)(z − 0.4 + j0.2) = z(z 2 − 0.8z + 0.2)


= z 3 − 0.8z 2 + 0.2z
= z 3 + b 2 .z 2 + b 1 .z + b 0

L'ancien dénominateur était :

(z + 2)(z + 3) 2 = (z + 2)(z 2 + 6z + 9)
= z 3 + 8z 2 + 21z + 18 = z 3 + a 2 .z 2 + a 1 .z + a 0

Nous avons donc :

a0 = 18 a1 = 21 a2 = 8

b0 = 0b1 = 0.2 b2 = -0.8

alors :
r0 = b0 - a0 = -18

r1 = b1 - a1 = -20.8

r2 = b2 - a2 = -8.8

d'où :
r =  -18 -20.8 -8.8

31

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

2. Observateur
Si certains états sont mesurables, il faut les reconstituer ou les reconstruire ; on utilise
pour cela un observateur utilisant les variables de sorties.
Il est difficile de calculer directement l'état en fonction de la sortie en utilisant l'équation
de mesure y(k) = C r .X(k) en effet, Cr est rarement inversible.
En dérivant (n-1) fois la sortie, on peut représenter les états du système si celui-ci est
observable. Mais cette méthode génère du bruit à chaque dérivation.
On peut utiliser un observateur en boucle ouverte ou fermée. L'observateur en boucle
ouverte peut se représenter comme suit :
u(k)
X(k+1) X(k) y(k)
Br + Cr
z-1

+
Ar

 + 1)
X(k 
X(k)
+
Br z-1
+

Ar


X(k) est l'état reconstitué. En général, Ar, Br, Cr, Dr et les conditions initiales sont mal
connues, la reconstitution est donc importante et la correction de l'écart entre X(k) et X(k) est
impossible.
On utilise alors un observateur en boucle fermée dit de LUENBERGER, soit L'équation
d'état de l'observateur :
 + 1) = S.X(k)
X(k  + G.y(k) + K.u(k) (3)

L'erreur entre l'état réel et l'état estimé s'écrit :


~ 
X(k + 1) = X(k) - X(k) (4)

En retranchant (3) de l'équation d'état, on trouve :

 + 1) = A .X(k) + B .u(k) - S.X(k)


X(k + 1) - X(k  − G.y(k) − K.u(k)
r r

Soit en utilisant l'expression (4) :


~ 
X(k + 1) = A r .X(k) - S.X(k) − G.y(k) + (B r − K).u(k)
~
Pour que X(k + 1) soit nulle en régime permanent, il faut que :

Br − K = 0  K = Br
Il en résulte :
~ 
X(k + 1) = A r .X(k) - S.X(k) − G.y(k)
or y(k) = C r .X(k) en prenant Dr = 0

32

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

donc :
~ 
X(k + 1) = (A r - G.C r ).X(k) - S.X(k)

pour la même raison que précédemment :

A r − G.C r = S

d'où :
~ ~
X(k +1) = (A r - G.C r ). X(k)

L'erreur s'annulera si les pôles de (Ar - G.Cr) sont de module inférieur à 1

La dynamique de l'observateur sera déterminée par G, ceci revient à faire un placement


de pôles. L'équation d'état de l'observateur s'écrit :

 + 1) = (A - G.C ). X(k)
X(k  + Br . u(k) + G. y(k)
r r

ou
 + 1) = A . X(k)
X(k r
 + Br . u(k) + G.  y(k) - C r . X(k)
 
Les pôles de l'observateur seront déterminés par l'équation caractéristique :
z.I − A r + G.C r = 0
Le schéma de simulation est :
u(k)
X(k+1) X(k) y(k)
Br + Cr
z-1
+
Ar
+
G
+
 + 1) -
X(k 
X(k)
+
Br z-1 Cr
+

Ar

Les pôles seront pris :


- à module inférieur à 1 pour raison de stabilité,
- avec un module petit par rapport à ceux des pôles de Ar : l'erreur doit avoir un
régime transitoire plus bref que celui du système.

33

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

3. Retour d'état avec observateur


3.1. Principe

Nous avons le schéma de simulation suivant :

e(k) u(k) X(k+1) X(k) y(k)


+ Br + Cr
z -1

- +
Ar
+
G
+
 + 1) -
X(k 
X(k)
+
Br z-1 Cr
+

Ar

La loi de commande s'écrit :


u(k) = − R.X(k) + e(k)


en prenant e(k) = 0, nous avons : u(k) = − R.X(k)
~ ~
or X(k +1) = (A r - G.C r ).X(k) (7)

et

X(k +1) = A r .X(k) - Br .R.X(k)

X(k +1) = A r .X(k) - Br .R.  X(k) - X(k)


~

~
X(k +1) = (A r - Br .R).X(k) + Br .R.X(k) (8)

(7) et (8) s'écrivent sous forme matricielle :


~
 X(k ~ 
+ 1)   A r - G.C r 0   X(k)
  =   
A r - B r .R   X(k) 
.
 X(k + 1)   B r .R

avec

34

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 A r - G.C r 0 
A = 
 B r .R A r - B r .R 

L'équation caractéristique est :

 .I - A r + G.C r 0
 .I − A = = 0
- B r .R  .I - A r + B r .R

Nous avons :

 . I − A =  .I - A r + G.C r   .I - A r + B r .R = 0

Polynôme Polynôme caractéristique


caractéristique de du système à retour d'état
l'observateur

L'expression précédente montre que l'on peut fixer séparément les pôles de l'observateur
et ceux du retour d'état, c'est le principe de séparation.


Si l'on remplace u(k) = - R.X(k) dans l'équation de l'observateur, nous aurons :

 + 1) = A .X(k)
X(k r
 
- B r .R.X(k) + G.  y(k) - C r .X(k)
 

soit :


X(k + 1) = (A r - Br . R - G.C r ) . X(k)
 + G. y(k) (9)

avec


u(k) = - R. X(k) (10)

Prenons la transformée en z des expressions (9) et (10) en considérant les conditions


initiales nulles :


zX(z) = ( A r - B r .R - G.C r ) .X(z)
 + G.Y(z)


U(z) = - R.X(z)  
X(z) = - R -1 .U(z) (si R est inversible)

Soit :

35

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

( z.I - A r + Br .R + G.C r ) X(z)


 = G.Y(z)

 − ( z.I - A r + Br .R + G.C r ) .R -1 .U(z) = G.Y(z)

Donc :

= − R. ( z.I - A r + Br . R + G.C r ) .G
U(z) -1 (11)
D(z) =
Y(z)

L'ensemble observateur + correcteur d'état se représente comme un simple correcteur


numérique. Les pôles du correcteur sont donnés par :

z.I - A r + Br .R + G.C r = 0

36

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

3.2. Exemple d'application


On considère un système représenté par :

 X1 (k +1)   1 0.1  X1 (k)   0.005


 X (k +1)  =  0 1   X (k)  +  01  u(k)
 2    2   . 
 X1 (k) 
et y(k) = 1 0  
 X2 (k) 
L'équation de l'observateur étant :
 + 1) = A .X(k)
X(k r
 + Br .u(k) + G.  y(k) - C r .X(k)
 

elle s'écrit :
X (k +1)  1 0.1  X
 (k)   0.005  g1 
 g . X1 (k) − X1 (k)

1
 =  
1
 + 
   01  u(k) +
 2
X (k +1)   0 1   2 
X (k)  .   2 

L'équation caractéristique de l'observateur est :


  - 1 - 0.1   g1 
 .I - A r + G.C r =   +  .1 0 = 0
 0  - 1  g 2 

 - 1 + g1 - 0.1
 .I - A r + G.C r = = (  - 1 + g1 )(  - 1) + 0.1g 2 = 0
g2  -1

  2
-  .(1- g1 +1) + 1 - g1 + 0.1g 2 = 0
  2
-  .(2 - g1 ) + 1 - g1 + 0.1g 2 = 0

Prenons des pôles rapides que ceux du retour d'état :

z1,2 = 0.2  j0.1  (z - 0.2 + 0.1j)(z - 0.2 - 0.1j) = 0


 (z - 0.2) 2 2
+ 0.01 = z - 0.4z + 0.05 = 0

Nous avons, par identification :


 2 − g1 = 0.4

 1 − g1 + 0.1g 2 = 0.05
on obtient alors :

g1 = 1.6 et g 2 = 6.5
Correcteur numérique :
D(z) = − R. ( z.I − A r + Br .R + G.C r ) .G
−1

−1
 z 0 1 0.1  0.005 1.6  16. 
D(z) = − 8 5.6 .  −   +  . 8 5.6 +  .1 0  . 
0 z 0 1   0.1   6.5   6.5
après calcul, on obtient :
−49.2 z + 44
D(z) = 2
z + 0.2 z + 0.244

37

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

3.3. Observateur d'ordre réduit


Dans un système d'ordre n, il se peut que p variables soient directement mesurables et (n
- p) non observables. Le vecteur d'état peut alors se partitionner :

 X1 (k) 
X(k) =   (12)
 X 2 (k) 

Nous allons déterminer un observateur d'ordre réduit. X1(k) regroupe les p variables
directement observables et X2(k) les autres. Les équations d'état donne alors :

 X1 (k + 1)   A 11 A 12   X1 (k)   B1 
 X (k + 1)  = A +
A 22   X 2 (k)   B2 
.u(k) (13)
 2   21

L'équation de sortie peut se mette sous la forme :

 X1 (k) 

y(k) = I 
0  
 X 2 (k) 
(14)

où I est la matrice identité de dimension (p x p)

On peut écrire à partir de l'expression (13) :

X 2 (k + 1) = A 21 .X 1 (k) + A 22 .X 2 (k) + B 2 .u(k) (15)

Les deux derniers termes du 2ème membre peuvent être considérés comme le vecteur
d'entrée d'un système dont le vecteur d'état est X2(k).

Nous avons aussi :

X 1 (k + 1) - A 11 .X 1 (k) - B1 .u(k) = A 12 .X 2 (k) (16)

Cette équation a la forme d'une équation de sortie du type : y(k) = C.X(k)

On peut établir le tableau de correspondance entre les observateurs d'ordre plein et réduit :

Observateur d'ordre plein Observateur d'ordre réduit

X(k) X2(k)
A A22
B.u(k) A21X1(k)+B2u(k)
y(k) X1(k+1)-A11X1(k)-B1u(k)
C A12

38

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Par analogie, l'équation d'état de l'observateur s'écrit :

 + 1) = A .X(k)
X(k r
 + B r .u(k) + G.  y(k) - C r .X(k)
 

s'écrit sous forme réduite :

 (k + 1) = A .X (k) + A .X
X  (k) + B .u(k) + G.  X (k + 1) - A .X (k) - B .u(k) - A .X (k)
2 21 1 22 2 2 1 11 1 1 12 2
(17)

L'erreur s'exprime par :


~  (k)
X 2 (k) = X 2 (k) - X 2

Retranchons (17) de (15) et utilisons, à l'intérieur des crochets, l'équation (16) :

 (k + 1) = A .  X (k) - X
X 2 (k + 1) - X  (k) - G.A .  X (k) - X
 (k)
2 22 2 2 12 2 2

ce qui donne :
~ ~ ~
X 2 (k + 1) = A 22 . X 2 (k) - G.A 12 . X 2 (k)

~ ~
X 2 (k + 1) = (A 22 - G .A 12 ).X 2 (k)
(18)

La dynamique de l'observateur réduit est donnée par G que l'on obtient par placement de
pôles en se fixant l'équation caractéristique :

z.I - A 22 + G .A 12 = 0

Le retour d'état est donné par la loi de commande :

 X1 (k) 
u(k) = - R.  
 X 2 (k) 

39

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

4. Régulateur à temps d'établissement fini


On considère le système d'équation d'état :

X(k + 1) = A r . X(k) + B r . u(k) (19)

u(k) est monodimensionnel

La solution générale de (19) s'écrit :


k
X(k) = A .X(0) +
k
r A k-i
r .Br .u(i -1)
i=1

1ère méthode :

Le problème du régulateur à temps d'établissement fini est de faire passer le système


d'un état initial X(0) à 0 (régulation en un nombre fini de périodes). Si le système
monovariable est commandable, le nombre minimum de périodes est n : k = n, alors :
n
X(n) = A nr .X(0) + A n-i
r .Br .u(i -1)
i=1

ce qui peut s'écrire :


 u(0) 
 u(1) 
 
X(n) = A nr .X(0) +  A n-1
r .B r A n-2
r .B r ............. A r .B r B r   ... 
 ... 
 
 u(n − 1) 

Le problème revient à déterminer la séquence u(0), ...., u(n-1). L'état final étant 0.

 u(0) 
 u(1) 
 
 ...  = −  A r .B r B r  . A nr .X(0)
n-1 −1
A n-2
r .B r ............. A r .B r
 ... 
 
 u(n − 1) 

D'où :

u(0) = - R.X(0)
u(1) = - R.X(1) = - R. ( A r - Br .R ) .X(0)
u(2) = - R.X(2) = - R. ( A r - Br .R) .X(0)
2

......................................................................
u(n -1) = - R.X(n -1) = - R. ( A r - Br .R ) .X(0)
n-1

On aura alors :

40

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 R 
 R. ( A - B .R ) 
 r r

 =  A n-1 B r  . A nr
−1
 ... r .B r A n-2
r .B r ............. A r .B r
 ... 
 n −1 
 R. ( A r - B r .R ) 

2ème méthode :

Si la condition suivante est vérifiée :

 u(0) 
 u(1) 
 
- A nr .X(0) =  A n-1
r .B r A n-2
r .B r ............. A r .B r B r   ... 
 ... 
 
 u(n − 1) 
le régulateur sera dit à temps minimal.

L'équation traduisant le retour d'état s'écrit :

u(k) = - R.X(k)

L'équation générale donne :

X(1) = A r .X(0) + Br .u(0) = A r .X(0) - Br .R.X(0) = ( A r - Br .R ) .X(0)


X(2) = A r .X(1) + Br .u(1) = ( A r - Br .R ) .X(0)
2

.........................................................................

 R 
 R. ( A - B .R ) 
 r r

X(n) = A nr .X(0) -  A n-1
r .B r A n-2
r .B r ........ A r .B r Br   ... .X(0)
 ... 
 n −1 
 R. ( A r - B r .R ) 
avec X(n) = 0, d'où :

 R 
 R. ( A - B .R ) 
 r r

A nr =  A n-1
r .B r A n-2
r .B r ........ A r .B r Br   ... 
 ... 
 n −1 
 R. ( A r - B r .R ) 

en inversant la relation, on obtient :

41

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 R 
 R. ( A - B .R ) 
 r r

 =  A n-1 B r  . A nr (20)
−1
 ... r .B r A n-2
r .B r ............. A r .B r
 ... 
 n −1 
 R. ( A r - B r .R ) 

On peut déterminer R par identification.

Exemple d'application : Reprenons l'exemple précédent

 X1 (k +1)   1 0.1  X1 (k)   0.005


 X (k +1)  =  0 1   X (k)  +  0.1 .u(k)
 2    2   

Nous avons :

   0.015 0.005  1 0.2 


-1
R
 R.( A - B .R)  =  A r .Br Br 
−1 2
.A = 
0.1   0 1 
.
 r r 
r
 0.1

 R   100 -5   1 0.2   100 15


 R.( A - B .R)  =  -100 15. 0 1  =  -100 -5 
 r r      

 R = 100 15

Remarque :

La valeur élevée des coefficients du vecteur de retour d'état pose souvent des problèmes
à la réalisation. D'autre part, on peut montrer que dans le cas du régulateur à temps
d'établissement minimal, les pôles du système corrigé sont tous placés à l'origine.

Vérification :

 1 0.1  0.005  0.5 0.025


A r - Br .R =   −  .100 15 =  
 0 1   01 .   -10 -0.5 

d'où :

 − 0.5 −0.025
 .I - A r + Br .R = =  2
− 0.25 + 0.25 =  2
10  + 0.5

42

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Exemple d’application

DESIGN OF A REAL TIME CONTROL


ALGORITHM FOR A BENDED
MECANICAL SYSTEM

43

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

DESIGN OF A REAL TIME CONTROL ALGORITHM FOR A BENDED


MECANICAL SYSTEM

Prof. Houcine CHAFOUK


e-mail : houcine.chafouk@esigelec.fr

Abstract : Active structures, used to make satellites, robots or other industrial processes, are
subjected to external disturbances inducing an oscillation of the structure. With the technical
progress of the last few years, piezoelectric sensors and actuators are now used to control such
structures.

Keywords : Model building, Identification, Kalman Filtering, Digital Signal Processing


(DSP).

1. Introduction
The aim of our research is to develop a control algorithm embedded on a DSP board in
order to stabilize an embedded plate covered with two piezoelectric layers and subjected to an
external disturbance. This plate, presented below, is a model of an active structure :

Figure 1 : Active structure

First, a parametrical identification of the structure has been realized. We have


choosen an ARMAX model meaning that the process is Auto-Regressive and Moving
Average with eXternal input. This model offers us the possibility to represent the effects of
the control and disturbances on the output. So, we have defined the state space representation
of the system in order to apply some control algorithms.
Then, using the software Matlab/Simulink, we have realized a simulation scheme of a
control by optimal state feedback with the discrete time Kalman observer. The quadratic
cost criterion associated to the optimal regulator is J =  x T Qx + u T Ru . The closed loop
system obtained by the use of the optimal control minimizes the cost criterion and weighting
matrices are calculated from a spectrum analysis.
Finally, we have proceeded to the implementation on the DSP TMS320C50 of the
control algorithm in order to make real-time applications. This last point has required three
steps. First, it was necessary to create two block drivers (for the input and the output). The
first one reads data from the analog input and the second one controls the system. After that
we have inserted them in the Simulink scheme. Then, using the Real Time Workshop
44

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

toolbox from Simulink, we have generated the C code from the scheme created previously.
Finally, after having written initialization programs for the TMS320C50 and for its analog
interface, we have created an executable file for the DSP with the optimizing C compiler from
Texas Instruments.

2. Parametrical identification
The conception and calculation of a controller is shown on the diagram below :

Performances
Calculation of the
regulator Process model

+
REGULATOR PROCESS

Figure 2 : Calculation of a regulator

With the measurement of the input and the output of the "piezo-electric plate + power
amplifier" system, the identification allows us to determine the process model used to
elaborate the control.
When the plate is excited in its first mode, the sensor has a frequency of 6.4Hz.
consequently we choose a sample time of 0.01 seconds in order to agree with Shannon’s
theorem and to be enough precise.
In our case, we choose a sinusoidal signal which begins at the moment t0 with a
frequency f0 and finishes at the moment tf with a frequency ff . This kind of signal allows us to
cover a frequency range containing the exciting frequency. We can then save the input and
output files which will be used to identify the system.
For the identification, we choose an ARMAX model that means the process is Auto-
Regressive and Moving Average with eXageneous instead of external input (u(t)). This model
is commonly used to represent the effects of the control and disturbances on the output.

e(t)

C(q −1 )
A(q −1 )
+
U(t) q − d B(q −1 ) Y(t)
A(q −1 )
+

Figure 3 : Modèle ARMAX

45

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

The disturbed output (Y(t)) of the process can be written in this way :

z − d .B(z −1 ) C(z −1 )
y(t) = .u(t) + .e(t) (1)
A(z −1 ) A(z −1 )
with
A(z −1 ) = 1 + a 1 .z −1 + a 2 .z −2 +....+a n .z − n (2)

B(z −1 ) = b 1 .z −1 + b 2 .z −2 +....+ b m .z − m (3)

C(z −1 ) = 1 + c 1 .z −1 + c 2 .z −2 +....+c p .z − p (4)

The first term of (1) represents the effect of the control, the second one the effect of
the disturbances.

Identification result by likelihood function :

The result of this identification gives the transfer function of the process, the transfer
function of the noise and a graph allowing us to compare the real and the predicted output.

−0.004664 z 2 + 0.009241 z
TRANSFER− FUNCTION = (5)
z 2 − 1.845 z + 0.9934

z 2 − 1.41 z + 0.8089
NOISE− MODEL = 2 (6)
z − 1.845 z + 0.9934

3. Control of the structure through the Kalman observer

The Kalman observer is in fact a Kalman filter which is able to predict the state x ( k )
in presence of disturbances. When the matrix (called L) of the observer has been calculated,
we can establish the control laws. To control the piezo-electric plate, we calculate the
stationary Kalman observer and establish control laws of this one.
The stationary Kalman filter is determined with the following state equations :

x(k+1) = Ar . x(k) + Br . u(k)+w(k) (7)


y(k) = Cr . x(k) + Dr . u(k)+v(k) (8)
in which :
w represents the process noise,
v represents the measurement noise.

46

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

W(k V(k)
) Y(k)
Active Stucture
(Ar, Br, Cr, Dr)

U(k)
+

L
State estimate -

X(k)
 + 1)
X(k 
-1 Y(k)
Br z Cr

Ar
Observer

w(k) v(k)

SYSTEM + +
(Ar, Br, Cr, Dr)

y(k)
u(k)

Dr

x ( k + 1) x ( k ) y ( k )
W(k)+ +

Br + 1/z Cr +
-
+
+
+
Ar L

Predicted state x ( k )

Figure 4 : Scheme of the Kalman filter

This observer can the mathematically modelised by :

 + 1) = A r x(k)
x(k  + Br u(k) + L(y(k) − y(k))
 (9)
with
 = C r .x(k)
y(k)  + D r .u(k) (10)

Owning to the gain L the stationary Kalman filter updates the equations (9) and (10) in
order to produce an optimal control with Riccati equations of x.

47

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Once the filter is determined, we control the system thanks to a feedback with the discrete
time Kalman filter. It is now possible to determine an optimal feedback which minimizes the
cost criterion J =   x T Qx + u T Ru  . This gain called K is such as : u(k) = − K.x(k)
 + h.e(k) .

Figure 5 : Optimal feedback through the Kalman filter

4. Determination of noise covariance matrices (Q, R, S) by spectral analysis

We define the cost function J =  x TQx + u T Ru . The weighting matrices Q and R


represent respectively the noise covariance matrix for the process and the noise covariance
matrix for the measurement. In order to minimize this criterion, the matrices Q and R are
determined with a spectral analysis of the output signal. using the method of spectral
factorization.

Definition of the spectral factorization problem :

Considering a stochastic, Gaussian, zero mean stationary process {Yk} whose


spectrum is yy(z), the spectral factorization problem is both the identification of a state space
model from the data yy(z) and the determination of the noise covariance matrices. In the case
of a scalar output, the triplet (Q,R,S) is determined through the transformed coefficients
matrix of the spectrum. We get :
i =+ n
yy (z) =  z i
−i
with  i =  − i (11)
i =− n

q 0 q1  q n 
Q S   q1    
S T = 
R   
(12)
   q1 
 q  q 1 q 0 
n

48

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

i
qi = i   0, n (13)
n + 1− i

15
Power Spectral Density

10

0
0 0.2 0.4 0.6 0.8 1

Figure 6 : Power of the Output spectral density

For signals with finite mean power, yy(z) is the sampled representation of the power
spectral density of the signal {Yk}. In the case of a second order system, the wanted matrices
have the following dimensions :

• Q [2x2] : covariance matrix of the noise w


• R [1x1] : covariance matrix of the noise v
• S [2x1] : correlation matrix of v and w

In order to initialize these matrices for a n dimensional system, we have to restrict the
expression of the spectrum (yy(z)) to its (n+1) most significant coefficients (three for our
system).
In our case, the spectrum is approached by its main peak 0 (0 being the density of
maximal power). Numerically :

4.8879 1.3442  0.2735


Q0 =  ; R0 = 4.8879 & S0 =  
1.3442 4.8879  1.3442 

We can now see these parameters’ influence on the control. In figure 8, we show the results of
a comparison between two controls with different parameters. On the one hand, the matrices
Q, R and S are the identity matrices. On the other hand, Q, R and S are respectively the
matrices Q0, R0 and S0. This comparison is made as follows : first we induce disturbances to
obtain plate oscillations. Then, after two seconds of vibrations, we send the plate stabilizating
command. We observe the importance of the weighting matrices in the stabilization.

49

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Control graph (actuator) Output graph (sensor)

1.5 1.5
1 1

0.5 0.5
Q=I
R= 1 0 0
S =1 -0.5 -0.5

-1 -1

-1.5 -1.5
0 2 4 6 0 2 4 6

1.5 1.5
1 1
Q = Q0
R = R0 0.5 0.5
S = S0
0 0
-0.5 -0.5
-1 -1
-1.5 -1.5
0 2 4 6 0 2 4 6

Figure 7 : Q, R and S influence on the control

5. Implementation of the algorithm on a DSP

5.1. Using a DSP board as a controller


A few years ago, most regulation systems used analog circuits. However the progress
in signal processing chips made the theory of digital control come true. DSP chips being best
devices in signal processing, we use them as a controller in our research.

DSP Starter Kit Plate with two layers


in PVDF

Sensor
TMS320C50 Magnet

TDM Port Serial TLC32040 In


connector
Port Analog Interface
control JTAG
32K*8
PROM Out
Actuator

XDS510 Port
14-Pin Header Power Amplificator
Low
Frequency Generator

Figure 8 : Regulation of the system with a DSP

50

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

The solenoid generates a magnetic field in order to induce plate oscillations (disturbances).
The DSP board gets the signal to digitalize it with the analog/digital converter. The signal is
then processed by the TMS320C50 processor. The resulting control is sent to the process
through the digital/analog converter and through the power amplifier. This signal enables the
actuator to stabilize the plate.

5.2. Implementation on the DSP


Using the SIMULINK software, we can easily derive a simulation scheme with some
basic blocks (gain, derivation, integration, sum...). By linking some of these blocks, we can
obtain a control simulation. This way of doing is very user-friendly. One can even create ones
own blocks. These are necessary to create driver blocks for the DSP board.
In order to develop a real time regulation with Simulink, one has to create input and
output driver blocks. The first of these blocks reads from the ADC, the second one writes to
the DAC. A device driver block is :
⚫ An S-function : a system function that interacts with SIMULINK during the simulation
and which is linked with the generated code.
⚫ A C-MEX file : a C subroutine that is dynamically linked to MATLAB.
⚫ A masked SIMULINK block : masked blocks allow us to define our own dialog box,
icon, and initialization commands for the block.
Once these block drivers are created, we insert them in the control scheme. Then, the
C code of this scheme is generated with the Real Time Workshop toolbox. The resulting C
code is compiled, assembled and linked with TMS320C50 and analog interface initialisation
files. We have then generated a runable file that can be downloaded on the DSP to control the
system in a real-time application.

5.3. Real-time results


We have applied the control by state feedback through the Kalman filter in two
different cases :
- Firstly, we have executed the control while the external disturbances were already
established, to verify that it can stabilize the plate quickly under a strong disturbance.
- Then, we have tested it by loading a short disturbance in the control presence to see
the performance of this method in regulation.

Figure 9 : Real time application

51

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

6. CONCLUSION
This paper has presented the precise design of a regulator for the control of active
structure plates. The implemented method associates the Kalman filter like observer and an
optimal state feedback. Performances and robustness of such a system are superior to those of
classic controllers (PID control). The implementation of this algorithm in a Digital Signal
Processor, TMS320C50, has offerd us the possibility to minimize calculation times and to
increase the convergence speed of the control.

7. REFERENCES

[1] P.BORNE, G. DAUPHIN-TANGUY, J.P. RICHARD


" Commande et optimisation des processus " Edition Technip, 1990.
[2] H. CHAFOUK, M. WIEST, W. CHARON
" Control of an active structure throug the Kalman Filter", Intern. Symposium MMAR
'97, vol 2, pp. 671-676, Miedzydoje, Poland, 26-29 August 1997.
[3] E. DIEULESAINT, R. ROYER
"Automatique appliquée", Tome 2: systèmes linéaires de commande à signaux
échantillonnés, Edition Masson, 1990.
[4] G. FAVIER
" Filtrage, modélisation et identification de systèmes linéaires stochastiques à temps
discret ", Edition du C.N.R.S, Toulouse, 1982.
[5] M. KUNT
" Traitement numérique des signaux " Edition Dunod, 1981
[6] I.D. LANDAU
" Identification et Commande des systèmes " Edition Hermès, 1988.
[7] F.M. CALLIER, J. WINKIN
" LQ-optimal Control of Infinite-dimensional Systems by Spectral Factorization ",
Automatica, vol. 28, N° 4, pp. 757-770, 1992.
[8] J. RICHALET
" Model Algorithmic control of industrial process", Proc. IFAC Digital computer App. to
Process Control, pp. 312-320, La Hague, 1977.

52

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

TRAVAUX PRATIQUES

en

Automatique Avancée pour la


Mécatronique

par le Professeur

H. CHAFOUK

© Février 2024

53

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

SOMMAIRE

T.P. Automatique Avancée pour la


Mécatronique

T.P. Commande d'un Papillon Motorisé par Calculateur :

- 1ère partie : Commande par retour d'état

- 2ème partie : Commande via l'observateur de Luenberger

ANNEXES

Annexe A – Identification des paramètres du moteur par analyse fréquentielle

Annexe B – Assignation de pôles et Commande par retour d'état

Annexe C - Commande par retour d’état via l’observateur de Luemberger

54

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

T.P. Commande d'un papillon motorisé pour


moteur essence

I. Introduction
1.1. Objectifs

L'objectif de ce T.P est de commander un papillon motorisé en temps réel. Les étapes
d'automatisation sont décrites dans l'organigramme de la figure 1.

Identification du Moteur

Discrétisation du système

Représentation en équations
d'état discrètes

Si on peut lire les variables d'état Si on ne peut pas lire les variables d'état

Commande par retour d'état Reconstruction d'un observateur

Commande par retour d'état via l'observateur

figure 1. organigramme de l'automatisation du moteur

55

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

On désire contrôler la position angulaire du papillon d’un moteur à essence afin


d’améliorer la combustion et de réduire les émissions de polluants. Ce dispositif est présenté
par la figure ci-dessous :

Boîtier de connexion

Bus PCI

Interface de puissance

Calculateur numérique

Papillon
motorisé

Figure. Banc d’essai d’un papillon motorisé


L’objectif de ce banc est de valider les algorithmes de contrôle embarqué en temps réel. Le
papillon motorisé est un organe important dans le moteur à essence permettant le contrôle du
débit d’air à envoyer dans la chambre à combustion.

Le schéma bloc de l’asservissement de position décrit ci-dessus est le suivant :


Consigne e u Sortie 
+ Interface Moteur +
Régulateur
de papillon
- puisssance

capteur

• Le système en boucle ouverte sans le régulateur est donné par la fonction de transfert G(p),
sous forme :

56

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

(p) K mr
G(p) = = avec K mr =10 et Tmr = 100 ms.
u(p) p(1+pTmr)

• La fonction de transfert du capteur potentiométrique mesurant l’angle est donnée par :

H(p) = 1

1. Représentation d’état du système donné par sa fonction de transfert G(p), en posant :

X1 = 
X = 
2
y=
et u = commande

On représente le système sous forme d'équations d'état :

 = A.X + B.u
X
y = C.X + D.u

Déterminer A, B, C et D. Faites l’application numérique.

2. Calculer la matrice de transition (t) = eAt

3. Le système est discrétisé à l’aide d’un échantillonneur-bloqueur d’ordre 0 fonctionnant


avec une période T.

T
y
u e
B
0 G(p)

3.1. Calculer les matrices Ar et Br en fonction de T. (on prendra Cr = C et Dr = D).

3.2. Montrer pour T = 20 ms, que l’équation d’état du système échantillonné peut se
modéliser par :

1 0.02  0.02
X(k + 1) =   X(k) +   u(k)
0 0.82 1.81
et
y(k) = 1 0 X(k)

3.3. Justifier le choix de la période d’échantillonnage.

4. Le système est-il commandable et observable ? Calculer pour cela les matrices de


commandabilité et d’observabilité.

57

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

 X1 
5. On se propose de corriger le système par un retour d’état u( k ) = −  R 1 R2    ,
X2 
l’entrée de consigne étant nulle.

L’équation caractéristique, donnée pour les pôles z12, après correction s’écrira sous la
forme : (z - z1)(z - z2) = 0 = z2 + Z1 z + Z2 .

En explicitant l’équation caractéristique du système et après identification, calculer les


coefficients du système corrigé :

R 1 =f1(Z1, Z2 ) ; R 2 =f 2(Z1, Z2 )

 20
6. A un modèle du deuxième ordre analogique H(p) = 2 de pôles :
p + 2   0 p + 2
0

p12 = -   0  j  0 1 -  2

correspond un deuxième ordre numérique de pôles :

z12 = exp( -   0 T) exp ( j  0 T 1 -  2 )


ou :

Z1 = -2 exp( -   0 T) cos  0 T 1 -  2 
et Z2 = exp( - 2   0 T )
1
dont la constante de temps est donnée par :  = .
 0

On se fixe, dans un premier temps comme cahier des charges,  = 0.1 s et  = 0.4.

Déterminer Z1 et Z2. En déduire, à l’aide des relations de la question 5), les coefficients
R1 et R2 puis le schéma de simulation globale.

7. On veut maintenant obtenir un système à temps minimal, quels sont alors les pôles du
système corrigé. Calculer les coefficients R1 et R2.

58

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

1.2. Simulation à l'aide de MATLAB/SIMULINK

L'identification du moteur en boucle ouverte nous fourni une fonction de transfert qui
sera traduite en une équation d'état de la forme :

  
   =  A    +  B u
 

S(t) = y(t) =  C   


où  est la position de l'arbre du moteur,  la vitesse et u est la sortie de l'ampli. de puissance


et S l'image électrique de  (voir figure 2). Ces variables d'état seront par la suite discrétisées
avec une période d'échantillonnage T sous le respect de la condition de Shanon.

a) Dans un premier temps, on commande le moteur par retour d'état en supposant que les
 ) sont connues.
variables (  et 

b) Ensuite, en supposant que les variables d'état ne sont pas accessibles à la mesure, on les
déterminera à l'aide de l'observateur de Luenberger à ordre plein.

c) Le moteur identifié est de la forme :


(p) Kv
F(p) = = avec Km = 10
u(p) p(1 + p)
 = 100 ms
S(p) = (p)

II. Formulation du problème et écriture sous MATLAB/SIMULINK

2.1. Ecrire les équations d'états du système en continu


2.2. En prenant une période d'échantillonnage T = 30 ms, écrire les équations d'état en discret
en déterminant les matrices Ar et Br (Cr = C). Pour obtenir ces matrices, utilisez la fonction
"c2dm" sous MATLAB.

2.3. Pour la simulation du moteur, on aura donc la forme suivante (figure 3) sous SIMULINK.

u + y
Br 1/z Cr
+

Ar

figure 3. Représentation du modèle du moteur

59

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

III. Commande par retour d'état en discret

3.1. Déterminer le vecteur de retour d'état qui permet de commander le procédé en boucle
fermée de façon à imposer des pôles qui ont un coefficient d'amortissement ( = 0.25) et une
pulsation propre (0 = 30 rd/s). L'expression de la commande fourni par le calculateur est :
Uk = - RTXk + hek
où h est le gain du système
R est le vecteur de retour d'état
ek est l'entrée de consigne

3.2. Ajouter le bloc du retour d'état afin de commander en boucle fermée le système en tenant
compte de la consigne.

3.3. Représenter graphiquement les signaux d'entrée, de commande et de sortie.

Dr

e X(k+1) X(k) y
+
Br 
-1 Cr
u
-
Ar

60

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

IV. Commande via l'observateur de Luenberger

4.1. On suppose que la position et la vitesse ne sont pas accessibles à la mesure. Réaliser un
 en discret et établir un retour d'état correspondant aux pôles trouvés
observateur de  et 
précédemment dans la question III (sous SIMULINK).

La dynamique de l'observateur sera déterminée par G, ceci revient à faire un placement


de pôles. L'équation d'état de l'observateur s'écrit :
 + 1) = (A - G.C ). X(k)
X(k  + Br . u(k) + G. y(k)
r r
ou

X(k 
+ 1) = A r . X(k) + Br . u(k) + G.  y(k) - C r . X(k)
 
Les pôles de l'observateur seront déterminés par l'équation caractéristique :

z.I − A r + G.C r = 0

Le schéma fonctionnel de l’observateur est donné par :

u(k)
X(k+1) X(k) y(k)
Br + Cr
z-1
+
Ar
+
G
+
 + 1) -
X(k 
X(k)
+
Br z-1 Cr
+

Ar

Les pôles seront pris :


- à module inférieur à 1 pour raison de stabilité,
- avec un module petit par rapport à ceux des pôles de Ar : l'erreur doit avoir un
régime transitoire plus bref que celui du système.

Placement de pôles : Utiliser l'observateur de Luenberger à ordre plein de façon à ce que les
pôles respectent les conditions précédentes tels que :

z1,2 = 0.64  j 0.12

61

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

4.2. Commande via l’observateur

Nous souhaitons contrôler le système à l’aide de l’observateur de Luenberge. Pour cela


nous écrivons la loi de commande à l’aide del’expression suivante :


u(k) = − R.X(k) + e(k)

dont le schéma de simulation est représenté ci-après :

e(k) u(k) X(k+1) X(k) y(k)


+ Br + Cr
z -1

- +
Ar
+
G
+
 + 1) -
X(k 
X(k)
+
Br z-1 Cr
+

Ar

62

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

ANNEXES

des T.P. Automatique Avancée pour


la Mécatronique

63

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

Annexe A : Commandes et fonctionnalités de base sous Matlab

Introduction
Matlab est un logiciel interactif de programmation scientifique, pour le calcul numérique et la
visualisation graphique, basé sur la représentation matricielle des données. Il utilise un langage
interprété : chaque expression écrite en ligne de commande ou dans un fichier script (de format *.m)
est interprétée et évaluée.
Le point-virgule de terminaison de ligne indique si le résultat de l'évaluation est affiché ou non à
l'écran selon qu'il est absent ou présent. Cela facilite la mise au point en offrant la possibilité d'obtenir
très simplement des résultats intermédiaires de calcul.
Remarque générale sur l’ensemble des fonctions de Matlab : l’aide sur une fonction peut être obtenue :
- en ligne de commande en tapant : >> help nom_de_fonction
- dans une fenêtre d’aide en tapant : >> doc nom_de_fonction

1 Les matrices
1.1 Définition sous Matlab
 1 2 3
Pour définir la matrice A =   : >> A = [1 2 3; 4 5 6]
4 5 6
ou encore : >> A = [1, 2, 3; 4, 5, 6]

Pour définir le vecteur ligne A = (1 2 3) : >> A = [1 2 3]

Pour définir le vecteur ligne time = [0 0.2 0.4 0.6 0.8 1] dont les éléments sont séparés d’un même pas
(ici 0,2) : >> t = 0 : 0.2 : 1
1
Pour définir le vecteur colonne A =  2  : >> A = [1 ; 2 ; 3]
 
 3 
Pour obtenir l’élément de la i ligne et de la jème colonne de la matrice A : >> a = A(i, j)
ème

Pour obtenir tous les éléments de la jème colonne de la matrice A : >> a = A( : , j)


Pour obtenir tous les éléments de la ième ligne de la matrice A : >> a = A( i, : )
Pour obtenir la taille d’une matrice A : >> size(A)
Pour obtenir la longueur d’un vecteur V : >> length(V)

1.2 Opérations élémentaires sur les matrices


Transposé : >> A’ Trace : >> trace(A)
Addition : >> A + B Déterminant : >> det(A)
Addition terme à terme : >> A .+ B
Soustraction : >> A – B
Soustraction terme à terme : >> A .– B
Multiplication : >> A * B
Multiplication terme à terme : A .* B
Inversion : >> inv(A) ou encore : >> A^-1
Conjuguée : >> conj(A)
Exponentielle : >> expm(A)
Puissance : >> A^3
Racine carrée : >> sqrtm(A)
Concaténation horizontale : >> [A, B]
Concaténation verticale : >> [A ; B]
Valeurs propres : >> eig(A)
Rang : >> rank(A)

64

H. CHAFOUK
Cours Synthèse des Contrôleurs d’état

1.3 Quelques fonctions utiles


matrice identité de dimension n : >> eye(n)
matrice de zéros de dimension m x n : >> zeros(m,n)
matrice de 1 de dimension m x n : >> ones(m,n)
Autres fonctions disponibles : diag, compan, rand, …

2 Les scalaires
2.1 Définition sous Matlab
Sous Matlab, tout scalaire est considéré comme une matrice de dimension 1 :
>> A = 2.125
est équivalent à
>> A = [2.125]

Pour définir la variable complexe B = 5,125 + i 6.75 : >> B = 5.125 + 6.75i

Remarque 1 : tous les calculs effectués dans Matlab le sont en double précision. Cependant,. le format
d'affichage des résultats peut être contrôlé par la commande « format ».
Remarque 2 : certaines lettres ou chaînes de caractères ont des valeurs prédéfinies :
- i et j correspondent au nombre imaginaire.
- pi correspond à π
- Inf ou inf correspond à ∞
- e est utilisé pour les puissances de 10
Remarque 3 : Matlab fait la distinction entre majuscule et minuscule.

2.2 Quelques fonctions utiles


exponentielle en : >> exp(n)
puissance a b : >> a^b
racine carrée a : >> sqrt(a)
valeur absolue a : >> abs(a)
Autres fonctions utiles : sin, asin, cos, acos, tan, atan, log, sign, round, ...

3 Les polynômes et les fonctions de transfert


3.1 Définitions sous Matlab
Sous Matlab, tout polynôme est considéré comme un vecteur ligne dont les éléments sont les
coefficients des puissances décroissantes.
Pour définir le polynôme 2x5 + 3x4 − x2 + 4,5x − 1,3 : >> poly_1 = [2 3 0 –1 4.5 –1.3]
p2 − 0,1
Pour définir la fonction de transfert H(p) = :
p3 − 0,2p2 + p
>> num_1 = [1 0 –0.1]
>> den_1 = [1 -0.2 0 1 0]
>> H_1 = tf(num_1, den_1)

Remarque : par défaut, Matlab utilise la variable de Laplace « s ».

3.2 Quelques fonctions utiles


Somme de 2 polynômes de degré identique : >> poly_1 + poly_2
Produit de polynômes : >> conv(poly_1, poly_2)
Racines d’un polynôme : >> roots(poly_1)
Valeur d’un polynôme en un point x donné : >> poly(poly_1, x)
Décomposition d’une fonction de transfert en éléments simples : >> residue(num_1, den_1)
Fonctions de transfert en cascade : >> H_1 * H_2
Fonctions de transfert en parallèle : >> H_1 + H_2
Fonction de transfert en boucle fermée : >> feedback(H_1, H_2)

H. CHAFOUK année 2020/21


Cours Synthèse des Contrôleurs d’état

Diagrammes de Bode : >> bode(H_1)


Diagramme de Nyquist : >> nyquist(H_1)
Diagramme de Black : >> black(H_1)

4 L’affichage graphique sous Matlab


L’affichage de graphes 2D s’effectue via la commande « plot » dont la syntaxe est la suivante :
plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...).
où « Xi » et « Yi » désignent des vecteurs colonnes de données et « Si » une chaîne de caractères
indiquant la couleur et le motif de la courbe Yi = f(Xi).
Pour la couleur : rouge : r, cyan :c, magenta :m, jaune :y, vert : g, bleu : b, noir : k, blanc : w
Pour le motif : « + », « * », « . », « x », …

Exemple :
>> t = [0.5; 1.0; 1.5; 2.0]
>> x = [ 1; 2; 4; 8]
>> y = [0.1; 0.2; 0.4; 0.6]

Pour afficher x en fonction de t : >> plot(t, x)

Pour afficher x en bleu et y en rouge en fonction de t dans le même repère :


>> plot(t, x, ‘b’, t, y, ‘r’)

Pour afficher dans une même fenêtre mais dans deux repères différents x = f(t) et y = g(t) :
>> figure;
>> subplot(2, 1, 1); plot(t, x);
>> subplot(2, 1, 2); plot(t, y);

Pour personnaliser l'affichage graphique, voir également les commandes : label, title, legend, grid

5 La gestion de l’environnement et des variables sous Matlab


Pour obtenir la liste des fichiers dans le répertoire de travail courant : >> dir
Pour changer le répertoire de travail courant : >> cd chemin_du_répertoire
Pour visualiser la liste des variables en mémoire : >> who
Pour visualiser la liste des variables en mémoire ainsi que leur type et taille : >> whos
Pour éliminer une variable : >> clear nom_de_la_variable
Pour éliminer toutes les variables : >> clear all

H. CHAFOUK 66
Cours Synthèse des Contrôleurs d’état

Annexe B : Grandeurs caractéristiques d’un système du 2nd ordre

Considérons la réponse indicielle d’un système du second ordre de pulsation propre  0 et de


coefficient d’amortissement  . Les grandeurs caractéristiques de ce système sont alors :
1
- le temps de montée : tm = ( − Ar cos  )
0 1 −  2

- le temps de pic : t pic =
0 1 −  2
 100 
ln  
- le temps de réponse à N% : tr ( N%) = 
N 
 o
2
- la pseudo-période : Tp =
0 1 −  2
- la pseudo-pulsation :  p =  0 1 −  2


1− 2
- le dépassement D% : D% = 100 D = 100e

Tp
D

G
s()-N%

Tm Tpic Tr(N%)

H. CHAFOUK 67
Cours Synthèse des Contrôleurs d’état

- ANNEXE C -
Détermination rapide des constantes d'un système
en boucle ouverte à partir d'une analyse harmonique
en boucle fermée (système avec résonance)

1. Le système, en boucle ouverte, devra obligatoirement être mis sous la forme "H(p)",
tel que :

K
H(p)=
p(1 + p)

Le schéma fonctionnel est donné par :

e(p) + K s(p)
p(1 +  p)
-

On désire déterminer rapidement : K et  :

Dans ce cas, toujours en boucle ouverte, nous connaissons l'allure des courbes de Bode :

|H|
db
(-1)

(-2)
log ()
 = 
0

log ()

−

−

2. On calculera, avec les paramètres ci-dessus, la boucle fermée :


H(p) 1
G(p)= =
1 + H(p)  P 2 + 1 p + 1
K K

H. CHAFOUK 68
Cours Synthèse des Contrôleurs d’état

Ce résultats est identifiable à la formule d'un deuxième ordre :

1
1 2 
p +2 p +1
0
2
0

Soit :

1 
= (1)
0 K
2

et

2 1
= (2)
0 K

Les courbes de Bode, ainsi calculées en boucle fermée, auront donc la forme suivante :

|G|
db

max
log ()

r
(-2)

log ()

−
0

−

Avec

Vs 1
G(j)= =
Ve  22
2 
2
(1 − 2 ) + 4  2
1/2

0 0

3. Donc si "Ve(t)" est sinusoïdale, et que l'on étudie ce type de système en boucle fermée, il
suffira de se placer à un déphasage de "-90°" et de lire la pulsation "0" correspondante pour
utiliser les équations (1) et (2).

On ne pourra cependant, résoudre le système d'équations que si l'on connaît une


troisième. Pour cela, il existe deux solutions :

H. CHAFOUK 69
Cours Synthèse des Contrôleurs d’état

Vs
- Soit relever à la pulsation "0", le gain " ", d'où :
Ve

Vs 1
G(j)  = = = (3)
0
Ve  = 0
2

- Soit relever la pulsation de résonance "r", sachant que :


1/2
 r = 0 1 − 2  2 (4)

4. Les équations, (1), (2) et (3) ainsi résolues, déterminerons donc les coefficients : "K","" et
"".

H. CHAFOUK 70
Cours Synthèse des Contrôleurs d’état

- ANNEXE D -
Assignation de pôles
Commande par retour d'état

1. L'équation d'état sera écrite sous sa forme de commandabilité. Soit :

X X 
   = A   + BU
X  X 
et

X 
S = C 

X 

Qu'on écrit d'une manière matricielle :

X = AX + BU
et
S = CX

2. On cherche une loi de commande par retour d'état de la forme :

U = - LTX + he

avec
e : entrée de consigne
h : gain statique
L : vecteur de retour d'état

où L = [L1 L2]T qui possède, par exemple, un pôle double en "-40".

N.B : "h" sera calculé de tel sorte que :

S( ) = consigne quand consigne = constante

3. l'équation d'état, en boucle fermée, deviendra donc :

X = (A - BLT) X + B h e

4. Dans un premier temps, on prendra : "consigne = 0". Alors, le polynôme caractéristique du


système deviendra :

PCBF = det (A - BLT - PI)

Que l'on identifiera à : (p + 40)2

H. CHAFOUK 71
Cours Synthèse des Contrôleurs d’état

Ce qui permet de déterminer les valeurs cherchées de L1et L2.

5. Ensuite, si la "consigne" n'est pas nulle, on devra déterminer le coefficient "h".

5.1. La nouvelle matrice "Ad", calculée, ci-dessus, en boucle fermée, possède la même
forme que la matrice "A" :

0 1
A d = A − BLT = 
a 0 a 1 
avec
0
B=  et C = c0 0
b 0 

Soit :

X = AdX + Bhe
et (1)
S = CX

5.2. Pour le calcul de "h" on écrira ("b0" assurant un gain statique unitaire) :

S( ) = b0 e = constante (1 équation)

X = 0 = Ad X + B h e (2 équations)

S( ) = CX (1 équation)

En résolvant ce système d'équations, on déterminera la valeur de "h". Ce qui permetra


de simuler la nouvelle équation (1).

6. Pour la réalisation sur le moteur, il faudra tenir compte du fait que : S = X et que l'on ne
peut lire que : gX.

H. CHAFOUK 72
Cours Synthèse des Contrôleurs d’état

- ANNEXE E -
Théorie de l'observateur

1. Généralité sur un observateur

Selon la théorie de l'assignation de pôles, la commande réalisée avec un retour d'état sur
un système commandable peut le rendre stable. Mais, en pratique, il est souvent impossible,
ou difficile, de mesurer toutes les grandeurs des états du système.

Pour envisager ce problème, il faut alors faire appel à des observateurs qui permettent
de reconstruire les grandeurs des états, à partir de la commande et de la sortie, ces deux
grandeurs étant toujours mesurables.

Nous allons d'abord estimer une combinaison linéaire des états. Puis nous reviendrons à
l'estimation de ces états. Etant donné un système dont l'équation d'état s'écrit sous la forme :

 = AX + BU
X
et (1)
Y = CX

Soit : Z = DZ + TY + EU (2)

On veut que "Z" soit une estimation de la combinaison linéaire des états notée "L.X"
c'est-à-dire que :

(Z − L.X) → 0 quand t → 

Une condition suffisante est qu'il existe des matrices "D, T, E" vérifiant :
a) LA = DL + TC
E = LB

b) Les parties réelles de toutes les racines de l'équation "dét(pI - D) = 0" soient négatives.
En effet, à partir des équations (1) et (2), nous pouvons calculer l'écart entre "Z et L.X"
noté "W".

W = Z − L.X

 = ( Z − L. X
W )
et
 = (DZ + TY + EU) − L(AX + BU)
W

avec "Y=CX", on a :

 = DW + (DL + TC − LA )X + (E − LB)U
W
Donc, lorsque les conditions (a) et (b) sont vérifiées, alors :
W → 0 si t → 
2. Observateur à ordre plein

H. CHAFOUK 73
Cours Synthèse des Contrôleurs d’état

 1 0
Lorsque l'on choisit L =  , nous pouvons facilement vérifier les conditions (a) et
 0 1
(b). Donc, il existe un observateur : "L.X = [X1 , X2]" appelé observateur à ordre plein
représenté par le schéma fonctionnel ci-après :

U Y
Procédé

+ X X Y
B C
+
-

-
Y-Y +
L

3. Observateur de Luenberger

Lorsque la sortie du système "Y" est confondue avec une variable d'état "X1". C'est-à-
dire que "C" est de la forme : "C=[1 0]" un choix de L = [1 1] peut aussi vérifier les
conditions (a) et (b).

A partir de cela, on peut considérer "(Z - L.X)" comme une estimation de "X2". On
appelle cet observateur, en ordre réduit, observateur de Luenberger. Sa représentation sous
forme de schéma fonctionnel est représentée comme suit :

V U Y=X1
Procédé

T
K2 K1
X1

X2
-L

W +

-
D

H. CHAFOUK 74
Cours Synthèse des Contrôleurs d’état

Références Bibliographiques

[1] H. Demircioglu et P. Gathrop


"Multivariable continuous time generalized predictive control".
Automatica, Vol. 28, pp. 697-713. 1992.
[2] G. Favier
"Filtrage, modélisation et identification de systèmes linéaires stochastiques à temps discret".
Edition du C.N.R.S, Toulouse. 1982.
[3] M. Kinnaert
"Adaptive generalized predictive controller for MIMO systems".
Int. J. of Control, Vol. 50, pp. 161-172. 1989.
[4] D. Kleiman
"Stabilizing a discrete constant linear system, with application to iterative methods for solving the
Riccati equation".
IEEE Trans. on Automatic Control, vol. AC-19, pp. 252-254. 1974.
[5] Kramer, K., et H. Unbehauen
"Predictive adaptive control - comparaison of main algorithms".
Proc 1st Eur. Cont. Conf., pp. 327-332, Grenoble. 1988.
[6] W. Kwon et A. Pearson
"On feedback stabilization of time varying discrete time systems".
IEEE Trans. on Aut. Cont., vol. AC-23, pp.479-481. 1978.
[7] W.Kwon, H. Choi, S. Noh et D. Byun
"Recursive solution of generalized predictive control and its equivalence to receding horizon tracking
control". Automatica, Vol. 28, pp. 1235-1238. 1992.
[8] V. Peterka
"Predictive and LQG optimal control. Equivalences, Difference and Improvement".
Workshop on Control of Uncertain Systems, Bremen, FRG. 1989.
[9] J. Richalet
"Model Algorithmic control of industrial process".
Proc. IFAC Digital computer App. to Process Control, pp. 312-320, La Hague. 1977.
[10] O.C. ZIENKIEWICZ
"La méthode des éléments finis"
University of Wales, Swansea, Ediscience 1973
[11] HAUG CHOI KOMKOV
"Design sensitivity analysis of structural systems", Academic press 1986.
[12] J.F. IMBERT
"Analyse des structures par éléments finis"
Sup'aéro Cepadues éditions 1979.
[13] M. KUNT
"Traitement numérique des signaux"
Edition Dunod 1981.
[14] J. MAX
"Traitement du signal et applications aux mesures physiques"
Edition Masson 1985.
[15] Ioan Doré LANDAU
"Identification et Commande des systèmes"
Edition Hermès 1988.
[16] E. DIEULESAINT et R. ROYER
"Automatique appliquée", Tome 2: systèmes linéaires de commande à signaux échantillonnés
Edition Masson 1990.

H. CHAFOUK 75

Vous aimerez peut-être aussi