Vous êtes sur la page 1sur 6

UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN « MOHAMED BOUDIAF »

Faculté de génie électrique Département d’automatique


1ème Année Master Automatique et Informatique Industrielle Les systèmes non linéaire

Commande par retour d'état d’un système dynamique

I. Le système : « Pondue simple »

𝑥̇ 1 (𝑡) = 𝑥2 (𝑡)
{ 1 𝑘𝑓 𝑔
𝑆𝑁𝐿 ∶ 𝑥̇ 2 (𝑡) = 𝑢(𝑡) − 𝑥2 (𝑡) − 𝑠𝑖𝑛(𝑥1 (𝑡))
𝑚 𝑟2 𝑚 𝑟2 𝑟
{ 𝑦(𝑡) = 𝑥1 (𝑡) Fig. 1 – Un pondue simple

Ou :
𝑦(𝑡) = 𝜃(𝑡) ; 𝑢(𝑡) = 𝐶𝑚 (𝑡) ; 𝑥(𝑡) = [𝑥1 (𝑡) 𝑥2 (𝑡)]𝑇 = [𝜃(𝑡) 𝜃̇(𝑡)]𝑇 ;

L’équation linéarisée autour du point de fonctionnement : 𝑦 ∗ = 𝜃 ∗ = 0

𝑥̇ (𝑡) = 𝐴 𝑥(𝑡) + 𝐵 𝑢(𝑡)


{ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (01)
𝑦(𝑡) = 𝐶 𝑥(𝑡)
Avec :
0 1 0
𝐴=( ); 𝐵 = ( ); 𝐶 = (1 0); 𝐷 = (0) . . . (02)
−9.81 −0.4 4

La Fig. 2 représente le schéma-bloc détaillé du système.

Fig.2 – Schéma fonctionnel et schéma-bloc détaillé.

1
II. Commande par retour d’état :
a) Equation de placement de pôles

 On considère le pondue simple

𝑥̇ (𝑡) = 𝐴 𝑥(𝑡) + 𝐵 𝑢(𝑡)


{
𝑦(𝑡) = 𝐶 𝑥(𝑡)

 Loi de commande
Pour 𝑢(𝑡) = 𝑦𝑐 (𝑡) − 𝐾𝑐 𝑥(𝑡)

 Le système bouclé

𝑥̇ (𝑡) = 𝐴 𝑥(𝑡) + 𝐵 𝑢(𝑡) 𝑥̇ (𝑡) = 𝐴 𝑥(𝑡) + 𝐵(𝑦𝑐 (𝑡) − 𝐾𝑐 𝑥(𝑡))


{ ⟹{
𝑦(𝑡) = 𝐶 𝑥(𝑡) 𝑦(𝑡) = 𝐶 𝑥(𝑡)

𝑥̇ (𝑡) = (𝐴 − 𝐵𝐾𝑐 ) 𝑥(𝑡) + 𝐵𝑦𝑐 (𝑡) 𝒙̇ (𝒕) = 𝑨𝒃𝒇 𝒙(𝒕) + 𝑩𝒃𝒇 𝒚𝒄 (𝒕)
{ ⟹ 𝑺𝒚𝒔𝒃𝒇 = {
𝑦(𝑡) = 𝐶 𝑥(𝑡) 𝒚(𝒕) = 𝑪𝒃𝒇 𝒙(𝒕)
Avec :
𝑨𝒃𝒇 = (𝑨 − 𝑩𝑲𝒄 ); 𝑩𝒃𝒇 = 𝑩; 𝑪𝒃𝒇 = 𝑪

Il est légitime de vouloir choisir la matrice de régulation 𝐾𝑐 de façon à imposer les pôles du système bouclé.
Ce problème est équivalent à imposer le polynôme caractéristique du système. Soit 𝑃𝑐𝑜𝑚 (𝑠) le polynôme désiré,
que l’on supposera bien sûr de degré 𝑛. Il nous faut résoudre l’équation polynomiale

det(𝑠𝐼 − 𝐴𝑏𝑓 ) = det(𝑠𝐼 − (𝑨 − 𝑩𝑲𝒄 )) = 𝑃𝑐𝑜𝑚 (𝑠)

b) Résolution de l’équation de placement de pôles

Considérons par exemple le système


0 1 0
𝑥̇ (𝑡) = ( ) 𝑥(𝑡) + ( ) 𝑢(𝑡)
{ −9.81 −0.4 4
𝑦(𝑡) = (1 0) 𝑥(𝑡)
que l’on cherche à stabiliser ce système par un retour d’état de la forme 𝑢(𝑡) = 𝑦𝑐 (𝑡) − 𝐾𝑐 𝑥(𝑡)
Avec : 𝐾𝑐 = [𝑘1 𝑘2 ]

Cherchons 𝐾𝑐 de façon à ce que ce polynôme caractéristique 𝑃𝑐𝑜𝑚 (𝑠) du système en boucle fermée
ait pour racines −2.1991 + 2.2435 𝑖, −2.1991 − 2.2435 𝑖, c’est-à-dire,
𝑃𝑐𝑜𝑚 (𝑠) = (𝑠 + 2.1991 − 2.2435 𝑖)(𝑠 + 2.1991 + 2.2435 𝑖)
𝑃𝑐𝑜𝑚 (𝑠) = 𝑠 2 + 4.3982 𝑠 + 9.8692

L’équation de placement de pôles s’écrit


det(𝑠𝐼 − 𝐴𝑏𝑓 ) = det(𝑠𝐼 − (𝑨 − 𝑩𝑲𝒄 )) = 𝑃𝑐𝑜𝑚 (𝑠)

2
𝑠 0 0 1 0 𝑠 −1
det (( ) − (( ) − ( ) ( 𝑘1 𝑘2 ))) = det ( ) = 𝑃𝑐𝑜𝑚 (𝑠)
0 𝑠 −9.81 −0.4 4 9.81 + 4𝑘1 𝑠 + 0.4 + 4𝑘2

𝑠 −1
det ( ) = 𝑃𝑐𝑜𝑚 (𝑠) ⟹ 𝑠 2 + (0.4 + 4𝑘2 ) 𝑠 + 9.81 + 4𝑘1 = 𝑠 2 + 4.3982 𝑠 + 9.8692
9.81 + 4𝑘1 𝑠 + 0.4 + 4𝑘2

Par identification :
0.4 + 4𝑘2 = 4.3982 𝑘1 = 0.0148
{ ⟹ {
9.81 + 4𝑘1 = 9.8692 𝑘2 = 0.9995

Nous aurions obtenir directement ce résultat en utilisant l’instruction place (pole placement) de MatLab en
tapant
clc
clear all
close all

%% I.1. Création du système

A=[0 1;-9.81 -0.4];


B =[0;4];
C =[1 0];
D=0;
N_bo,D_bo] = ss2tf(A,B,C,D);
G_bo=tf(N_bo,D_bo);
ss(A,B,C,D);

%% I.2. Pôles et valeurs propres


P_bo=eig(A);
P_bo1=pole(G_bo);

%% II. Commande par retour d’état:


% La matrice de commandabilité Co

Co=ctrb(A,B);

% Le rang de la matrice Co

r=rank(Co); n=size(A);
if r == n
disp('Le système est comondable')
else
disp('Le système est non comondable')
end

%% La matrice de retour K par placement de pôle

% Proposer des valeurs propres pour la matrice d’état de sys_bf

Wn=2*pi/2;
Z=0.7;
[N2,D2]=ord2(Wn,Z);
sys2=tf(N2,D2);
%step(sys2);grid
K2=dcgain(sys2);
sys2=sys2/K2;
%step(sys2);grid
P2=pole(sys2);

3
% La matrice de retour Kc

Kc=place(A,B,P2)
Abf=(A-B*Kc);
[Nbf,Dbf]=ss2tf(Abf,B,C,D);
sys_bf=tf(Nbf,Dbf);

c) Simulation :

4
III. Commande par retour d’état avec action intégrale

On s’intéresse dans cette section à la commande d’un pondue simple pour différentes raisons :
 Le stabiliser,
 Obtenir de meilleures performances de suivi de consigne : erreur statique nulle, dynamique sans
oscillation, etc.
 Rejeter les effets des perturbations éventuelles.
On a vu que la matrice de retour 𝐾𝑐 permet d’améliorer la dynamique du système bouclé. Pour annuler l’erreur
statique, nous avons utilisé une action intégrale. Le schéma-bloc du système bouclé utilisé est représenté par la
Fig.3, dans lequel 𝐾𝑖 désigne la matrice de gain de l’intégrateur.

FIG.3 – Schéma-bloc du système bouclé

D’après la Fig.3, on a :
𝑥̇ (𝑡) = 𝐴 𝑥(𝑡) + 𝐵 𝑢(𝑡)
{ 𝑧̇ (𝑡) = 𝑦𝑐 (𝑡) − 𝐶 𝑥(𝑡) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (03)
𝑦(𝑡) = 𝐶 𝑥(𝑡)
En prenant comme nouveau vecteur d’état [𝑥(𝑡) 𝑧(𝑡)]𝑇 , on obtient le nouveau modèle d’état, appelé système
augmenté, suivant :
𝑥̇ (𝑡) 𝐴 [0] 𝑥(𝑡) 𝐵 [0]
( )=( )( ) + ( ) 𝑢(𝑡) + ( ) 𝑦𝑐 (𝑡)
𝑧̇ (𝑡) −𝐶 [0] 𝑧(𝑡) [0] 𝐼
{
𝑥(𝑡) . . . . . . . . . . . . . . . . . . . . . . (04)
𝑦(𝑡) = (𝐶 [0]) ( )
𝑧(𝑡)
Par ailleurs, toujours d’après la Fig.3, on a : 𝑢(𝑡) = −(𝐾𝑐 𝑥(𝑡) + 𝐾𝑖 𝑧(𝑡)) . . . . . . . . . . . . . . (05)

C’est-a-dire :
𝑥(𝑡)
𝑢(𝑡) = −(𝐾𝑐 𝐾𝑖 ) ( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (06)
𝑧(𝑡)

Ainsi, on a un modèle d’état défini par l’équa.4 et bouclé par un gain de retour 𝐾 = (𝐾𝑐 𝐾𝑖 ). Les matrices
du système augmenté sont :
𝐴 [0] 𝐵
𝐴𝑎𝑢𝑔 = ( ); 𝐵𝑎𝑢𝑔 = ([0]) ; 𝐶𝑎𝑢𝑔 = (𝐶 [0]) . . . . . . . . . . . . . . . . . . . . . . (07)
−𝐶 [0]

Le système bouclé aura pour représentation :

𝑥̇ (𝑡) 𝐴 [0] 𝑥(𝑡) 𝐵 𝑥(𝑡) [0]


( )=( )( ) − ( ) (𝐾𝑐 𝐾𝑖 ) ( ) + ( ) 𝑦𝑐 (𝑡)
𝑧̇ (𝑡) −𝐶 [0] 𝑧(𝑡) [0] 𝑧(𝑡) 𝐼 . . . (08)
{
𝑥(𝑡)
𝑦(𝑡) = (𝐶 [0]) ( )
𝑧(𝑡)

5
Ou encore :
𝑥̇ (𝑡) 𝐴 − 𝐵 𝐾𝑐 −𝐵 𝐾𝑖 𝑥(𝑡) [0]
( )=( )( ) + ( ) 𝑦𝑐 (𝑡)
𝑧̇ (𝑡) −𝐶 [0] 𝑧(𝑡) 𝐼
{ . . . . . . . . . . . . . . . . . . . . . . . . . . . (09)
𝑥(𝑡)
𝑦(𝑡) = ( −𝐶 [0] ) ( )
𝑧(𝑡)

Le but est donc de chercher le gain de retour 𝐾 = (𝐾𝑐 𝐾𝑖 ) pour obtenir de valeurs propres convenables pour la
nouvelle matrice d’état notée 𝐴𝑏𝑓 , telle que :

𝐴 − 𝐵 𝐾𝑐 −𝐵 𝐾𝑖 . . . . . . . . . . . . . . . . . . . . . . . . . . . (10)
𝐴𝑏𝑓 = ( )
−𝐶 [0]
En ce qui concerne l’erreur statique, on peut la calculer lorsque (𝑥̇ (𝑡) 𝑧̇ (𝑡))𝑇 = [0]. Appliquant cette
condition au système d’équa.4, on obtient :
(𝐴 − 𝐵𝐾𝑐 ) 𝑥(𝑡) = 𝐵 𝐾𝑖 𝑧(𝑡)
{ 𝐶 𝑥(𝑡) = 𝑦𝑐 (𝑡) . . . . . . . . . . . . . . . . . . . . . . . . . . . (11)
𝑦(𝑡) = 𝐶 𝑥(𝑡)
Les deux dernières équations du système d’équa.11 affirme que 𝑦(𝑡) = 𝑦𝑐 (𝑡), c’est-à-dire l’erreur statique est
automatiquement nulle.

%% Commande par retour d’état avec action intégrale :


% Les matrices du système augmenté :

Aaug=[A zeros(2,1);-C zeros(1,1)];


Baug=[B;zeros(1,1)];
Caug=[C zeros(1,1)];

% Proposer des valeurs propres pour la matrice d’état de sys_bf

sys3 = zpk([],[P2 ;-8],[1])


K3=dcgain(sys3);
sys3=sys3/K3;
%step(sys2,sys3,'--');grid

% Les matrices de retour Kc Ki


K=place(Aaug,Baug,[P2;-4]);
Kc=K(:,1:2)
Ki=K(:,3)
Abf=[A-B*Kc -B*Ki;-C 0];
Bbf=[0;0;1];
Cbf=[-C 0];
Dbf=0;
[Nbf,Dbf]=ss2tf(Abf,Bbf,Cbf,Dbf);
sys_bf=tf(Nbf,Dbf) ;
Pbf=pole(sys_bf)

Vous aimerez peut-être aussi