Vous êtes sur la page 1sur 13

Polytechnique Sousse

TP Matlab
3ième année Génie Electrique et Automatique
Enseignant : Fayçal Ben Hmida

Exercice 1 :
On considère le circuit électrique suivant :

On suppose que les conditions initiales sont nulles.


Les équations décrivant le fonctionnement de ce circuit électrique sont données par le
système linéaire suivant :

On demande d’écrire un script Matlab pour résoudre ce système linéaire en déterminant les
expressions des trois courants I1(s), I2(s)et I3(s)en fonction de la tension d’entrée V(s). Puis d’en
déduire les fonctions de transfert suivantes : I1(s)/ V(s), I2(s)/ V(s), I3(s)/ V(s).
Première méthode : en utilisant l’inversion matricielle
Script matlab
clear all, clc
syms s I1 I2 I3 V
% Ecriture matricielle A X=B
A=[2*s+2 -(2*s+1) -1;-(2*s+1) (9*s+1) -4*s;-1 -4*s 4*s+1+(1/s)];
B=[V;0;0];
% résolution par inversion matricielle
X=inv(A)*B;
% Expressions des courants I1(s), I2(s) et I3(s)
I1=X(1)

1/13
I2=X(2)
I3=X(3)

Résultat

Expressions des courants I1(s), I2(s)et I3(s)en fonction de la tension d’entrée V(s) :

I1 =(V*(20*s^3 + 13*s^2 + 10*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I2 =(V*(8*s^3 + 10*s^2 + 3*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I3 =(V*s*(8*s^2 + 13*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

Expressions des fonctions de transfert I1(s)/ V(s), I2(s)/ V(s), I3(s)/ V(s).

I1(s)/ V(s)= 20*s^3 + 13*s^2 + 10*s + 1)/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I2(s)/ V(s)=(8*s^3 + 10*s^2 + 3*s + 1)/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I3(s)/ V(s)=(s*(8*s^2 + 13*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

Deuxième méthode : en utilisant la règle de Cramer


Script matlab
clear all, clc
syms s I1 I2 I3 V
% Ecriture matricielle A X=B
A=[2*s+2 -(2*s+1) -1;-(2*s+1) (9*s+1) -4*s;-1 -4*s 4*s+1+(1/s)];
B=[V;0;0];
% Expression du courant I1(s)
A1=[B A(:,2) A(:,3)];
I1=det(A1)/det(A)
% Expression du courant I2(s)
A2=[A(:,1) B A(:,3)];
I2=det(A2)/det(A)
% Expression du courant I3(s)
A3=[A(:,1) A(:,2) B];
I3=det(A3)/det(A)

2/13
Résultat

Expressions des courants I1(s), I2(s)et I3(s)en fonction de la tension d’entrée V(s) :

I1 =(V*(20*s^3 + 13*s^2 + 10*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I2 =(V*(8*s^3 + 10*s^2 + 3*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I3 =(V*s*(8*s^2 + 13*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

Expressions des fonctions de transfert I1(s)/ V(s), I2(s)/ V(s), I3(s)/ V(s).

I1(s)/ V(s)= 20*s^3 + 13*s^2 + 10*s + 1)/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I2(s)/ V(s)=(8*s^3 + 10*s^2 + 3*s + 1)/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

I3(s)/ V(s)=(s*(8*s^2 + 13*s + 1))/(24*s^4 + 30*s^3 + 17*s^2 + 16*s + 1)

Exercice 2 :
Soit un système linéaire à temps continu décrit par la fonction de transfert suivante
Y (s ) 5
H s   
E (s ) 18  2.4s  2s 2
1. Déterminer, les pôles, le coefficient d’amortissement, la pulsation naturelle et le gain statique
de cette fonction de transfert.
Script Matlab >> H=tf(5,[2 2.4 18]);
>> damp(H)
>> dcgain(H)

Pôles -6.00e-001 + 2.94e+000i

-6.00e-001 - 2.94e+000i

Coefficient d’amortissement 0.2

Pulsation naturelle 3 rd/s

Gain statique 0.2778

3/13
2. Ecrire un programme sous Matlab permettant de tracer la réponse indicielle de ce système à un
échelon de position unitaire et de remplir le tableau ci-dessous.

Script Matlab >> step(H)

Valeur finale de la sortie 0.278

Dépassement en % 52.6%

Temps de pic 1.05 sec

Temps de montée 0.406 sec

Temps de réponse à  10% 3.49 sec

3. Ecrire un script Matlab pour évaluer les indicateurs de performances fréquentiels indiqués
sur le tableau ci-dessous :
Script Matlab

>> bode(H)
>> bandwidth(H)

Pic de résonance (PMdB) -2.99+11.1=8.11 dB


Pulsation de résonance (r) 2.88 rd/s
Bande passante à -3dB (BP) 4.5270 rd/s

4. En utilisant la fonction « lsim », tracer la réponse de ce système pour une entrée de la forme
suivante :
e(t)

Pas de calcul t  0.01sec


3

2
t (en s)
-1 0 5 10 20 25

4/13
Script Matlab

>> t=-1:0.01:25;
>> e=(0.2*t+2).*(t>=0 & t<5)+3*(t>=5 & t<10)+(-0.2*(t-10)+2).*(t>=10 & t<20);
>> lsim(H,e,t)
Linear Simulation Results
3

2.5

1.5
Amplitude

0.5

-0.5
0 5 10 15 20 25
Time (sec)

Exercice 3 :
On considère un système asservi décrit par le schéma fonctionnel suivant :

1. Ecrire un script Matlab qui permet de calculer les fonctions de transfert suivantes :

a. Fonction de transfert en boucle ouverte Hbo(s).

b. Fonction de transfert He(s)=Ea(s)/R(s).

c. Fonction de transfert Hu(s)=U(s)/R(s).

d. Fonction de transfert en boucle fermée Hbf(s)=Y(s)/R(s).

Script matlab
clear all
clc
% Fonction de transfert Gc(s)
Gc=zpk([-1],[-2],1);
% Fonction de transfert G(s)
G=zpk([],[0 0],1);
% Fonction de transfert en BO Hbo
Hbo=Gc*G
% Fonction de transfert He=Ea/R
He=feedback(1,Hbo,-1)
% Fonction de transfert Hu=U/R
Hu=feedback(Gc,G,-1)
% Fonction de transfert en boucle fermée Hbf=Y/R

5/13
Hbf=feedback(Hbo,1,-1)

Résultat

Hbo =
(s+1)
---------
s^2 (s+2)

He =
s^2 (s+2)
----------------------------------
(s+1.755) (s^2 + 0.2451s + 0.5698)

Hu =
s^2 (s+1)
----------------------------------
(s+1.755) (s^2 + 0.2451s + 0.5698)

Hbf =
(s+1)
----------------------------------
(s+1.755) (s^2 + 0.2451s + 0.5698)

2. Ecrire un script Matlab pour tracer le signal d’erreur ea(t) et la sortie c(t) pour une entrée en
échelon unité r(t)=u(t).

Script matlab
% Tracé des réponses indicielle
figure(1)
subplot(311), step(He),grid, title('Signal d''erreur ea(t)')
subplot(312), step(Hu),grid, title('Signal de commande u(t)')
subplot(313), step(Hbf),grid, title('Signal de sortie y(t)')

Résultat

6/13
Signal d'erreur ea(t)
1
Amplitude
0

-1
0 5 10 15 20 25 30 35 40 45 50
Time (seconds)
Signal de commande u(t)
1
Amplitude

-1
0 5 10 15 20 25 30 35 40 45
Time (seconds)
Signal de sortie y(t)
2
Amplitude

0
0 5 10 15 20 25 30 35 40 45 50
Time (seconds)

3. A partir de ses réponses indicielles, remplir le tableau suivant :

Erreur statique en ea(∞) 0


régime permanent
Valeur finale de la c(∞) 1
sortie
Dépassement maximal D% 70.3%
en %
Temps de pic tp 3.83 sec

Temps de monté tr=t90%-t10% 1.32 sec

Temps de réponse ts à ±5% 25.4sec

7/13
4. Ecrire un script Matlab pour tracer le diagramme de Bode de la fonction de transfert en boucle
fermée Hbf.

Script matlab
% Tracé du diagramme de Bode de la FT en BF
figure(2), bode(Hbf), grid

Résultat

Bode Diagram
20

0
Magnitude (dB)

-20

-40

-60

-80
0

-45
Phase (deg)

-90

-135

-180
-1 0 1 2
10 10 10 10
Frequency (rad/s)

5. A partir de ce diagramme de Bode, déterminer le pic de résonance, la


pulsation de résonance et la bande passante à -3 dB.
Pulsation de résonance r 0.735 rd/s

Pic de résonance MP en dB=|Hbf(jr)|dB- 11.1 dB


|Hbf(0)|dB
Bande passante à -3 dB wc=bandwidth(Hbf) wc= 1.2547 rd/s
BP=[0, wc]

8/13
Exercice 3 :
On considère un système asservi décrit par le schéma fonctionnel suivant :

6. Ecrire un script Matlab qui permet de calculer les fonctions de transfert suivantes :

a. Fonction de transfert en boucle ouverte Hbo(s).

b. Fonction de transfert He(s)=Ea(s)/R(s).

c. Fonction de transfert en boucle fermée Hbf(s)=C(s)/R(s).

Script matlab

clear all
clc
% Fonction de transfert G(s)
G=zpk([],[0 -1],20);
% Fonction de transfert H(s)
H=zpk([-3],[-4],1);
% Fonction de transfert en BO Hbo
Hbo=G*H
% Fonction de transfert He=Ea/R
He=feedback(1,Hbo,-1)
% Fonction de transfert en boucle fermée Hbf=C/R
Hbf=feedback(Hbo,1,-1)
Résultat

Hbo =
20 (s+3)
-------------
s (s+1) (s+4)

He =
s (s+1) (s+4)
--------------------------------
(s+3.271) (s^2 + 1.729s + 18.34)

Hbf =
20 (s+3)
--------------------------------
(s+3.271) (s^2 + 1.729s + 18.34)

9/13
7. Ecrire un script Matlab pour tracer le signal d’erreur ea(t) et la sortie c(t) pour une entrée en
échelon unité r(t)=u(t).

Script matlab
% Tracé des réponses indicielle
figure(1)
subplot(211), step(He),grid, title('Signal d''erreur ea(t)')
subplot(212), step(Hbf),grid, title('Signal de sortie c(t)')

Résultat

Signal d'erreur ea(t)


1

0.5
Amplitude

-0.5

-1
0 1 2 3 4 5 6 7 8
Time (seconds)

Signal de sortie c(t)


2

1.5
Amplitude

0.5

0
0 1 2 3 4 5 6 7 8
Time (seconds)

8. A partir de ses réponses indicielles, remplir le tableau suivant :

Erreur statique en ea(∞) 0


régime permanent
Valeur finale de la c(∞) 1
sortie
Dépassement maximal D% 56.7%
en %
Temps de pic tp 0.746 sec

10/13
Temps de monté tr=t90%-t10% 0.27 sec

Temps de réponse ts à ±5% 3.21sec

Signal d'erreur ea(t)


1

0.5 System: He
Amplitude

Final value: 0
0

-0.5

-1
0 1 2 3 4 5 6 7 8
Time (seconds)

Signal de sortie c(t)


2

1.5
Amplitude

System: Hbf
1 Peak amplitude: 1.57
Overshoot (%): 56.7
System: Hbf
At time (seconds): 0.746
0.5 Final value: 1

0
0 1 2 3 4 5 6 7 8
Time (seconds)

9. Ecrire un script Matlab pour tracer le diagramme de Bode de la fonction de transfert en boucle
fermée Hbf.

Script matlab
% Tracé du diagramme de Bode de la FT en BF
figure(2), bode(Hbf), grid

Résultat

11/13
Bode Diagram
20

0 System: Hbf
Magnitude (dB)

Peak gain (dB): 8.53


At frequency (rad/s): 4.1
-20

-40

-60
0

-45
Phase (deg)

-90

-135

-180
-1 0 1 2
10 10 10 10
Frequency (rad/s)

10. A partir de ce diagramme de Bode, déterminer le pic de résonance, la


pulsation de résonance et la bande passante à -3 dB.
Pulsation de résonance r 4.1 rd/s

Pic de résonance MP en dB=|Hbf(jr)|dB- 8.53 dB


|Hbf(0)|dB
Bande passante à -3 dB wc=bandwidth(Hbf) wc=6.61 rd/s
BP=[0, wc]

12/13
Exercice 4 :

On considère un système asservi décrit par le schéma fonctionnel suivant :

Ecrire un script Matlab pour calculer la fonction de transfert en boucle fermée C(s)/R(s).

Script matlab
clear all, clc
% fonction de transfert de la boucle interne
H1=feedback(zpk([],[0 0 -1],1),zpk([],[0],1),-1);
% fonction de transfert en boucle fermée
Hbf=feedback(H1*zpk([],[0 -3],1),zpk([-1],[-2],1),-1)

s (s+2)
Hbf(s)= ---------------------------------------------------------------------------------------
s (s+3.034) (s+1.885) (s^2 + 2.175s + 1.561) (s^2 - 1.095s + 0.7839)

13/13

Vous aimerez peut-être aussi