Académique Documents
Professionnel Documents
Culture Documents
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 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) :
Expressions des fonctions de transfert I1(s)/ V(s), I2(s)/ V(s), I3(s)/ V(s).
2/13
Résultat
Expressions des courants I1(s), I2(s)et I3(s)en fonction de la tension d’entrée V(s) :
Expressions des fonctions de transfert I1(s)/ V(s), I2(s)/ V(s), I3(s)/ V(s).
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)
-6.00e-001 - 2.94e+000i
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.
Dépassement en % 52.6%
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)
4. En utilisant la fonction « lsim », tracer la réponse de ce système pour une entrée de la forme
suivante :
e(t)
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 :
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)
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)
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 :
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
0.5
Amplitude
-0.5
-1
0 1 2 3 4 5 6 7 8
Time (seconds)
1.5
Amplitude
0.5
0
0 1 2 3 4 5 6 7 8
Time (seconds)
10/13
Temps de monté tr=t90%-t10% 0.27 sec
0.5 System: He
Amplitude
Final value: 0
0
-0.5
-1
0 1 2 3 4 5 6 7 8
Time (seconds)
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)
-40
-60
0
-45
Phase (deg)
-90
-135
-180
-1 0 1 2
10 10 10 10
Frequency (rad/s)
12/13
Exercice 4 :
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