Vous êtes sur la page 1sur 22

Faculté de Technologie

Master 2 Automatique et Informatique


Industrielle

COMPTE RENDU TP N°1 COMMANDE AVANCÉE


Représentation d’état (Analyse et Synthèse)

Préparé par :

A S S E F Yanis
L A S L A Rayane

Année Universitaire : 2022/2023

Groupe : AII.1

Chargé du module : Mr. LEHOUCHE


Introduction

La Representation d’etat
La représentation d’un système par la fonction de transfert peut ne pas être
appropriée pour d´écrire les comportements considérés du système. Pour cette
raison, d’autres modèles sont utilisés et apparaissent comme une alternative à la
fonction de transfert parmi lesquels on cite la représentation d’état ou équation
d’´état ou encore modèle d’´état. Il s’agit, au fait, d’un modèle qui prend en compte
la dynamique interne du système et ne se limite pas à la description d’un
comportement de type entrée/sortie.

• A est appelée matrice d’état ou d’évolution. On la nomme aussi parfois


matrice dynamique
• B est appelée vecteur d’entrée ou de vecteur commande (d’où une
ambigüité avec le vecteur u).
• C est le vecteur de sortie, d’observation ou de mesure (d’où une ambigüité
avec le vecteur y).
• D c’est un scalaire dit de transmission directe, qui est nul s’il n’existe
aucun lien statique direct entre le signal d’entrée et celui de sortie.

1
Partie Exercices
Exercice №1:
Soit un système mono variable d’ordre 3 décrit par la représentation
d’état :
𝑥̇ 1 (𝑡) = 𝑥2 (𝑡)
𝑥̇ 2 (𝑡) = 𝑥3 (𝑡)
𝑥̇ 3 (𝑡) = −4𝑥2 (𝑡) − 5𝑥3 (𝑡) + 𝑢(𝑡)
𝑦(𝑘) = 4𝑥1 (𝑡) + 4𝑥2 (𝑡) + 𝑥3 (𝑡) 𝑎𝑣𝑒𝑐 𝑥 (0) = 0

Fonction de Transfert associé / pôles … :

On peut tirer les Matrices A, B, C et D directement via les équations ci-


dessous :
0 1 0 0
𝐴 = [0 0 1] 𝐵 = [ 0] 𝐶 = [4 4 1] 𝐷=0
0 −4 −5 1
Elle est sous la forme contrôlable donc sa fonction de transfert est
directement :
𝑏𝑛 𝑝𝑛 + 𝑏𝑛−1 𝑝𝑛−1 + ⋯ + 𝑏1 𝑝 + 𝑏0 𝑝2 + 4𝑝 + 4
𝐺 (𝑠) = =
𝑎𝑛 𝑝𝑛 + 𝑎𝑛−1 𝑝𝑛−1 + ⋯ + 𝑎1 𝑝 + 𝑎0 𝑝3 + 5𝑝2 + 4𝑝
Les pôles sont :
𝑝3 + 5𝑝2 + 4𝑝 = 𝑝(𝑝 + 4)(𝑝 + 1) = > Les pôles sont : -1, -4, 0
𝑝2 + 4𝑝 + 4 = (𝑝 + 2)2 = > Les zéros sont : -2, -2 (double)
Gain : 1

2
Partie Exercices
Il nous reste plus qu’à implémenter le tout sur MATLAB :

PROGRAMME SOUS MATLAB RESULTATS


clear all G = p =
close all
clc
%%exo1
A=[0 1 0 ; 0 0 1 ; 0 -4 -5]; s^2 + 4 s + 4 0
C=[4 4 1]; ----------------- -4
B=[0 0 1]';
D=0; s^3 + 5 s^2 + 4 s -1
%la fonction de transfert associer
sys=ss(A,B,C,D);
G=tf(sys)
%les poles,zeros et le gain z =
[z,p,k]=zpkdata(G,'v')
% la representation d'etat obtenue
[A1,B1,C1,D1]=tf2ss([1 4 4],[1 5 4 0]) -2.0000 + 0.0000i
%la reponse impulsionelle associ? a la
representation d'?tat -2.0000 - 0.0000i
figure(1)
impulse(G,'g')
grid
%la r?ponse indicelle k =
figure(2) 1
step(G,'m')
grid

A1 = C1 =

On remarque que les résultats trouver sont


-5 -4 0 1 4 4
exactement ceux calculer précédemment.
1 0 0
Et que la fonction tf2ss nous a donner la
0 1 0
forme observable or que nous avons utilisé la
forme contrôlable pour l’affectation de nos
valeurs.
B1 = D1 =

1 0

3
4
Partie Exercices

RÉPONSE INDICIELLE RÉPONSE IMPULSIONELLE


Partie Exercices

Exercice №2:
Soit un système mono variable d’entrée 𝑢(𝑡), d’état 𝑥(𝑡) et de sortie 𝑦(𝑡) :

Avec :

Nous avons :
0 1 0
𝑥̇ (𝑡) = [ ] 𝑥(𝑡) + [ ] 𝑢(𝑡)
−2 −3 1
𝑦(𝑡) = [1 0]𝑥(𝑡) 𝑥(0) = 0
On va alors directement tirer nos Matrices d’état :
0 1 0
𝐴=[ ] 𝐵=[ ] 𝐶 = [1 0] 𝐷=0
−2 −3 1

PROGRAMME SOUS MATLAB


clear all
close all
clc
% Te=0.2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Calcul des matrices 𝐴, 𝐵, 𝐶, 𝐷 : % Te=0.5 %% On alterne à chaque fois %%
% Te=1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Te=2
A=[0 1;-2 -3];
B=[0 ; 1];
C=[1 0];
D=[0];
A_bar=expm(A*Te)
B_bar=inv(A)*(exp(A*Te)-eye(2,2))*B
C_bar=C
D_bar=D

5
Partie Exercices
RESULTATS
Te = 0.2 Te = 0.5 Te = 1 Te = 2
Te = Te = Te = Te =

0.2000 0.5000 1 2

A_bar = A_bar = A_bar = A_bar =

0.9671 0.1484 0.8452 0.2387 0.6004 0.2325 0.2524 0.1170

-0.2968 0.5219 -0.4773 0.1292 -0.4651 -0.0972 -0.2340 -0.0987

B_bar = B_bar = B_bar = B_bar =

-1.6065 -2.0846 -3.6023 -10.5848

1.2214 1.6487 2.7183 7.3891

C_bar = C_bar =
PROGRAMME SOUS MATLAB
C_bar = C_bar =

1 0 1 0 Te=0.5
1 ; 0 1 0
sys2=ss(A,B,C,D);
Calcul de transfert en Z du procédé : sysd2=c2d(sys2,Te);
G2=tf(sysd2)
% Si il s’agit du A B… %
D_bar = D_bar = D_bar = D_bar =

0 0 0 0

6
Partie Exercices
RESULTATS
G2 = Zeros et poles
Nous allons utiliser les valeurs
des 2 fonctions de transfert
0.07741 z + 0.04695 0.077409 (z + 0.06065) afin de voir la différence
----------------------- -----------------------

z^2 - 0.9744 z + 0.2231 (z – 0.6065) (z – 0.3679)

Vecteur d’état du procédé discret :

PROGRAMME SOUS MATLAB


t=0:Te:5
x0=[2;0]
k=1;
u=exp(-k*t);
sys=ss(A,B,C,D)
[y,t,x]=lsim(sys,u,t,x0);
figure(1)
hold on
plot(t,x)

On va reprendre les mêmes questions pour


un procéder double intégrateur :

7
Partie Exercices
PROGRAMME SOUS MATLAB
clear all
close all
clc
A=[0 1;0 0];
B=[0 ; 1];
C=[1 0];
D=[0];
Te_=[0.2 0.5 1 2];
for i=1:4
Te=Te_(i)
[A_bar,B_bar]=c2d(A,B,Te_(i))
end

Te = 0.2 Te = 0.5 Te = 1 Te = 2
Te = Te = Te = Te =

0.2000 0.5000 1 2

A_bar = A_bar = A_bar = A_bar =

1.0000 0.2000 1.0000 0.5000 1 1 1 2

0 1.0000 0 1.0000 0 1 0 1

B_bar = B_bar = B_bar = B_bar =

0.0200 0.1250 0.5000 2

0.2000 0.5000 1.0000 2

C_bar =

8 1 0
Partie Exercices

PROGRAMME SOUS MATLAB RESULTATS


Te=0.5 ; G2 =
sys2=ss(A,B,C,D);
sysd2=c2d(sys2,Te);
G2=tf(sysd2)
% Si il s’agit du A B… % 0.125 z + 0.125

---------------

z^2 - 2 z + 1

PROGRAMME SOUS MATLAB RESULTATS


[z,p,k]=zpkdata(G2,'v') p =
G=zpk(z,p,k)

k =

0.1250

G =

0.125 (s+1)

-----------

(s-1)^2

9
Partie Probleme
Probleme:

(1 + 2𝑝)
𝐺 (𝑝) =
𝑝3 + 7𝑝2 − 8𝑝

1)- Étude du système en Boucle ouverte

PROGRAMME SOUS MATLAB RESULTATS


clear all G = poles =
clc
% d?claration du systeme
Num=[2 1]
2 s + 1 0
Denum=[1 7 -8 0]
G=tf(Num,Denum) ----------------- -8
% p?les du syst?me
poles=pole(G) s^3 + 7 s^2 - 8 s 1
% systeme en boucle ferm?e G_BF
G_BF=feedback(G,1)
poles_BF=pole(G_BF)
% Matrices A, B, C, D en boucle ouverte G_BF = poles_BF =
[A,B,C,D]=tf2ss(Num,Denum)

2 s + 1 -7.7870
--------------------- 0.5561
s^3 + 7 s^2 - 6 s + 1 0.2309

A = B = C = D =

-7 8 0 1 0 2 1 0
1 0 0 0

0 1 0 0

10
Partie Probleme
➢ Les pôles en boucle ouverte sont : [0 -8 1]
Le système G(p) n’est pas stable en boucle ouverte car il existe des pôles a partie
réel positif
(2𝑝+1)
Matrice en boucle fermée est : 𝐺𝐵𝐹(𝑝) =
𝑝3 +7𝑝2 −6𝑝+1

➢ Les pôles en boucle fermée sont : [-7.7870 0.5561 0.2309]


Le système G_BF(p) n’est pas stable en boucle fermée car il existe des pôles a
partie réel positif
➢ Les matrices de la représentation d’état sont :
−7 8 0 1
𝐴=[ 1 0 0] 𝐵 = [0] 𝐶 = [0 2 1] 𝐷=0
0 1 0 0

2)- Commande par placement de pôles :

PROGRAMME SOUS MATLAB


%%%% QUESTION 2 %%%%% %% erreur statique en un echelon
%% Controlabilit? t=0:0.01:1
Mc=ctrb(A,B) [Y,t]=step(G_BF2,t)
det_de_la_Mc=det(Mc) erreur_stat_E=(1-Y)
%% Determination du retour d'etat L plot(t,erreur_stat_E)
%% %% erreur statique en une rampe
pole_retour=[-10; -5*(1+sqrt(3)*i);- U_rampe=tf(1,[1 0])
5*(1-sqrt(3)*i)] u=step(U_rampe,t)
L=place(A,B,pole_retour) Y1=lsim(G_BF2,u,t)
%% Fonction de transfert boucle erreur_stat_R=(u-Y1)
ferm?e %% plot(t,erreur_stat_R)
A_BF=A-B*L
[Num_BF,Denum_BF]=ss2tf(A_BF,B,C,D)
G_BF2=tf(Num_BF,Denum_BF)
%% Bode %%
bode(G_BF2)
margin(G_BF2)

11
Partie Probleme
RESULTATS
Mc = A_BF =

1 -7 57 1.0e+03 *
0 1 -7
0 0 1 -0.0200 -0.2000 -1.0000
0.0010 0 0
0 0.0010 0
det_de_la_Mc =

1 Num_BF =

0 0 2.0000
pole_retour = 1.0000

-10.0000 + 0.0000i
-5.0000 - 8.6603i Denum_BF =
-5.0000 + 8.6603i
1.0e+03 *

L = 0.0010 0.0200 0.2000


1.0000
1.0e+03 *

0.0130 0.2080 1.0000 G_BF2 =

2 s + 1
---------------------------
s^3 + 20 s^2 + 200 s + 1000

12
Partie Probleme

Marge de phase :

DIAGRAMME DE BODE
𝑃𝑚 = Infinie, On
remarque que ya une
certaine stabilité juste
après un petit
dépassement après il
tend vers infinie
Marge de gain:
𝐺𝑚 =Infinie aussi

ERREUR STATIQUE ECHELON ERREUR STATIQUE RAMPE

13
Partie Probleme

➢ En remarque en premier à partir des résultats obtenus en boucle


fermée car le déterminant de Matrice de commandabilité est = 1 et
donc différent de 0 donc elle est commandable.

➢ 𝑢 = −𝐾𝑥 Avec le retour d’état [13 208 1000]

➢ Le temps de réponse : 0.99 secondes

2𝑝+1
➢ Fonction de transfert en Boucle fermée :
𝑝3 +7𝑝2 −6𝑝+1

3)- Commande Intégrale :

PROGRAMME SOUS MATLAB


%%% Question 3 %%%% %% marge de gain en boucle ferm?e
%% Commande intègrale pour annuler figure(6)
l'erreur margin(G3)
u=1 %% erreur statique ? une rampe
C_de=[C 0]; u=tf(1,[1 0])
B_de=[1 0 0 0]'; t2=0:0.01:2;
A_de=[A zeros(3,1);C_de] u2=step(u,t2);
D_de=0; y2=lsim(G3,u2,t2);
%% Le temps de réponse en boucle erreur_statique2=(u2-y2);
fermée figure(7)
pole=[-10, -5*(1+sqrt(3)*i),-5*(1- plot(t2,erreur_statique2)
sqrt(3)*i),-1]
L1=place(A_de,B_de,pole)
A1=A_de-B_de*L1
[num,den]=ss2tf(A1,B_de,C_de,D_de)
G3=tf(num,den)
figure(4)
step(G3)
%% marge de phase en boucle ferm?e
figure(5)
bode(G3)

14
Partie Probleme

RESULTATS
A_de = den =

-7 8 0 0 1.0e+03 *
1 0 0 0

0 1 0 0 0.0010 0.0210 0.2200 1.200


1.0000
0 2 1 0

A1 =

pole =
-21.0000 -220.0000 800.0000 -1000.0000

1.0000 0 0 0
Columns 1 through 2
0 1.0000 0 0

0 2.0000 1.0000 0
-10.0000 + 0.0000i -5.0000 - 8.6603i

G3 =
Columns 3 through 4

2 s^2 + s
-5.0000 + 8.6603i -1.0000 + 0.0000i
--------------------------------------

s^4 + 21 s^3 + 220 s^2 + 1200 s + 1000


L1 =

14.0000 228.0000 -800.0000 1000.0000

num =

0 0 2 1 0

15
Partie Probleme

DIAGRAMME DE BODE
Marge de phase:
𝑃𝑚 = Infinie
Marge de gain:
𝐺𝑚 =Infinie aussi

ERREUR STATIQUE ECHELON ERREUR STATIQUE RAMPE

16
Partie Probleme

➢ Nous avons la commande intégrale permettant d’annuler l’erreur


du système en réponse à un échelon 𝐶𝑑𝑒 𝐵𝑑𝑒 𝐴𝑑𝑒 𝐷𝑑𝑒 (voir table de
résultats)

4)- Synthèse d’observateur :

PROGRAMME SOUS MATLAB


%% Question 4 %% D_est=D;
%% Observabilit? du syst?me [Num_est,Den_est]=ss2tf(A_est,B_est,C
Mo=obsv(A,C) _est,D_est);
O=det(Mo) G_estimateur=tf(Num_est,Den_est)
%% La gain K de l'observateur %% Marge de phase du syst?me en
permettant d'assurer une estimation boucle ferm?e
pr?cise bode(G_estimateur)
%% 2.1 Coef du polynome figure(8)
Pole_caracteristique=poly(A) %% Marge de phase du gain du systeme
a1=Pole_caracteristique(2); boucle ferm?e
a2=Pole_caracteristique(3); margin(G_estimateur)
a3=Pole_caracteristique(4); figure(9)
%% 2.2 Matrices W et Q %% Erreur statique en r?ponse ? un
W=[a2 a1 1;a1 1 0;1 0 0] echelon
Q=inv(W*Mo') t=0:0.01:2;
%% 2.3 Matrice diagonal J [y,t]=step(G_estimateur,t);
J=[-10 0 0;0 -5-5*sqrt(3)*j 0;0 0 - e_stat_estimateur=(1-y);
5+5*sqrt(3)*j] plot(t,e_stat_estimateur)
Pole_caracteristique_J=poly(J)
%% Les coefficients du poly %% Erreur statique rampe
a_1=Pole_caracteristique_J(2); u=tf(1,[1 0]);
a_2=Pole_caracteristique_J(3); u1=step(u,t);
a_3=Pole_caracteristique_J(4); y1=lsim(G_estimateur,u1,t);
%% Le gain e_stat_estimateur_rampe=(u1-y1);
K_o=Q*[a_3-a3;a_2-a2;a_1-a1] figure(10)
%% Fonction de transfert de plot(t,e_stat_estimateur_rampe)
l'estimateur
pole_retour=[-10, -5*(1+i*sqrt(3)),-
5*(1-i*sqrt(3))];
[A1,B1,C1,D1]=tf2ss([2 1],[1 7 -8
0]);
L=place(A,C',pole_retour)
A_est=A-C'*L;
B_est=B;
C_est=C;

17
Partie Probleme
RESULTATS
Mo = J =

0 2 1 Columns 1 through 2
2 1 0

-13 16 0 -10.0000 + 0.0000i 0.0000 + 0.0000i

0.0000 + 0.0000i -5.0000 - 8.6603i

0.0000 + 0.0000i 0.0000 + 0.0000i


O =

Column 3
45

0.0000 + 0.0000i

0.0000 + 0.0000i
Pole_caracteristique = -5.0000 + 8.6603i

1 7 -8 0

Pole_caracteristique_J = L =

W = 1.0e+03 * -13.5208 -76.8333 166.6667

-8 7 1 0.0010 0.0200 0.2000


1.0000
7 1 0
G_estimateur =
1 0 0

69.6 s + 438.2

---------------------------
K_o =
Q =
s^3 + 20 s^2 + 200 s + 1000

285.0000
1.0000 -7.0000 57.0000
-126.2444
-0.5778 4.3333 -34.6000
-20.4222
-0.0889 0.6667 -5.4000

18
Partie Probleme

DIAGRAMME DE BODE
Marge de phase:
𝑃𝑚 = Infinie,
Marge de gain:
𝐺𝑚 =Infinie aussi

ERREUR STATIQUE ECHELON ERREUR STATIQUE RAMPE

19
Partie Probleme

0 2 1
➢ Nous avons la Matrice de commandabilité : 𝑀𝑜 = [ 2 1 0]
−13 16 0
det(𝑀𝑜 ) ≠ 0 Donc le système est Observable.

➢ Le gain K :
Nous avons le pôle caractéristique = [1 7 -8 0]
−8 7 1 1 −7 57
𝑊=[ 7 1 0] & 𝑄 = [−0.5778 4.3333 −34.6]
1 0 0 −0.0889 −0.6667 −5.4
𝐾𝑜 = [285 − 126.244 − 20.4222]′

➢ Fonction de transfert de l’estimateur


(Voir aussi résultats MATLAB)

20
Conclusion

CONCLUSION
A partir de ce TP on a pu étudier
des systèmes en boucles fermées et
boucles ouvertes. Ce TP nous a permis
d’étudier la stabilité, des systèmes à partir
leurs représentations d’état. A partir de ce
TP on a déduit que la commande par
placement de pôles a pour objectif de
stabiliser un système instable à condition
qu’il soit commandable. La commande
intégrale joue un rôle sur les précisions
c’est-à-dire l’erreur statique et la synthèse
d’observateur est une méthode pour les
améliorons du système et permet
l’augmentation du gain statique.

21

Vous aimerez peut-être aussi