Académique Documents
Professionnel Documents
Culture Documents
Faculté de Technologie
Département de Génie Electrique
Compte rendu de TP 03
Analyse et Commande Par retour d'état
Groupe de tp :
Charger de TP :
Mr. HADDAR
Licence ‘3’ / Automatique
Année Universitaire : 2018/2019
Exercice N°1
1. Concevoir un contrôleur par retour d’état qui satisfait les performances suivantes :
ωn ²
G ( s )=
s 2+ 2ζ ωn s+ ωn ²
π π
T p= =
ωd ωn √1−ζ ²
π
Donc ω n= =1.0030
T p √ 1−ζ ²
Δ d ( s )=s2 +2 ζ ω n s+ ωn ²
Pour trouver les valeurs de K, on utilise la formule d’Ackermann :
−1
K=[ 0 0 … 0 0] [ B AB A 2 B … A n−1 B ] Δd (s )
th=0.0707
tp=3.14
wn=pi/(tp*sqrt(1-th^2))=
deltad=[1,2*th*wn,wn^2]
A=[0 1;-6 -5]
B=[0 1]'
C=[1 0]
D=0
K= [−4.9940 −4.8582 ]
[y0,t0]=step(ss(A,B,C,D));
[yf,tf]=step(ss(A-B*k,B,C,D));
plot(t0,y0),grid
figure,plot(tf,yf),grid
1
En boucle ouverte
0.18
0.16
0.14
0.12
0.1
0.08
0.06
0.04
0.02
0
0 0.5 1 1.5 2 2.5 3 3.5
En boucle fermée
On obtient effectivement un instant de Pic de 3.14 sec donc les performances sont remplies.
2
Exercice N°2
[ ] []
−1 −2 −2 2
ẋ= 0 −1 −1 x + 0 u; y=[ 1 0 0 ] x
0 0 −1 1
a. Concevoir un contrôleur par retour d’état tel que la réponse indicielle en boucle fermée a
un dépassement de moins de 5% et un temps d’établissement en régime permanant de
± 2 % inferieur à 4.6 sec :
√
−πζ
√ 1−ζ ² log ( D p )²
D p=5 %=e → ζ= 2
=0.6901
log ( D p ) +π ²
T s (± 2 %)≤ 4.6
4 4
T s= → ωn= =0.9450
ζ ωn Tsζ
- Vu que notre système est de 3ème ordre, le polynôme caractéristique désiré est :
Δ d ( s )=(s 2 +2 ζ ωn s +ω2n)( s+ a)
- On choisit un pôle très rapide, par exemple -20
Δ d ( s )=(s 2 +2 ζ ωn s +ω2n)(s+20)
- Et pour trouver K, on utilise la méthode d’Ackermann :
A=[-1 -2 -2;0 -1 -1;1 0 -1];
B=[2 0 1]';
C=[1 0 0];
D=0;
Ts=4.6
Dp=0.05
logg=(log(Dp))^2;
th=sqrt(logg/(logg+pi^2))
wn=3/(th*Ts)
deltad=conv([1 2*th*wn wn^2],[1 20])
K=acker(A,B,roots(deltad))
3
b. Examiner la réponse indicielle du système en boucle fermée et vérifier qu’elle répond aux
exigences :
step(ss(A-B*K,B,C,D)),grid
Exercice N°3
4
[ ][ ][ ] [ ] [ ] [ ]
ẋ 1 0 0 0 1 0 0 x1 0 0 0
ẋ 2 0 0 0 0 1 0 x2 0 0 0
ẋ 3 0 0 0 0 0 1 x3 0 0 0
= + u 1+ u+ u
ẋ 4 7.3809 0 0 0 2 0 x4 1 0 2 0 3
ẋ 5 0 −2.1904 0 −2 0 0 x5 0 1 0
ẋ 6 0 0 −3.1904 0 0 0 x6 0 0 1
[ ] [ ]
−2.1587 −2.1587
2.1587 2.1587
1.8626 i 0
λ= real ( λ )=
−1.8626 i 0
1.7862 i 0
−1.7862 i 0
Le système contient une valeur propre à partie réelle positive donc il n’est ni asymptotiquement
stable, ni marginalement stable.
5
[U,D]=eig(A')
B=[B1 B2 B3]
B'*U
[ ]
x x x x 0 0
x x x x 0 0
0 0 0 0 x x
- D’après cette matrice on conclut que le système est contrôlable des trois entrées et pour
vérifier cela on peut calculer le déterminant :
gammac=ctrb(A,[B1 B2 B3]);
det(gammac*gammac')
La matrice n’étant pas carrée, son déterminant = det ( Γ c . Γ c ) =1.5948e+14 ≠ 0 donc le système est
T
- Le système peut être aussi contrôlable par deux entrées : u1 et u3 ou bienu 2 et u3 et on peut
aussi le vérifier :
gammac4=ctrb(A,[B1 B3]);
gammac5=ctrb(A,[B2 B3]);
det ( Γ c 4 . Γ c 4T )=7.0381e+10 ≠ 0
det ( Γ c 6 . Γ c6 ) =0
T
Exercice N°4 :
[][ ][ ] [ ]
β̇ −0.0895 −0.286 0 β 0.0145
ṙ = −0.0439 −0.272 0 r + −0.0122 δ
ψ̇ 0 1 0 ψ 0
6
G=zpk(ss(A,B,C,0))
−0.0122( s+0.1417)
- La fonction de transfert : G ( s )=
s ( s+0.3253)(s+0.03624)
- Le polynôme caractéristique en boucle ouverte : Δ ( s )=s 3 +0.3615 s 2+ 0.01179 s
3. Concevoir un estimateur d’état basé sur la mesure de ψ et placer les pôles de l’observateur
à {−0.8 ,−0.8 ±0.8 j } :
[ ]
−19.0856
L= 1.8113
2.0385
Pour vérifier si les pôles sont bien placés, il suffit de calculer les valeurs propres de ( A−L∗C) :
[ ]
−0.8
λ= −0.8+0.8 i
−0.8−0.8 i
¿ ( A−Bk−LC ) x^ + Ly
u=−k ^x
A1=A-B*K-L*C
B1=L
C1=K
Ds=tf(ss(A1,B1,C1,0))
7
[ ][ ] [ ]
−0.0935 −0.0073 19.2198 ^x 1 −19.0856
^x .= −0.0405 −0.5065 −1.9242 ^x 2 + 1.8113 u
0 1 −2.0385 x^3 2.0385
[ ^xẋ.]=[ LCA 0 x B
+ u
A−LY x^ B ][ ] [ ]
u=[ 0
[ x^ ]
k] x
0.2385( s+0.4823)(s+0.1391)
G bo ( s )=
s ( s+0.03624)( s+ 0.3253)
8
Marge de gain = ∞
6. Calculer les gains directs pour avoir une erreur de poursuite en régime permanant qui est
nulle et tracer la réponse du système :
gc=dcgain(ss(A-B*K,B,C,0))
gcc=((1/gc)*ss(A-B*K,B,C,0));
step(gcc),grid
g1=tf(gcc)
Le gain gc=-0.1080
−2+2 i
Les pôles du système sont : −2−2i
−2
9
10