TD Matlab
TD Matlab
TD Matlab
ouverte
Barhdadi Abdelouahad
Soit le dipôle RC suivant :
i(t)
R v(t)
u( t ) y(
C
Question 2)
Donner les équations de Laplace et la fonction de transfert G(p) correspondantes
1
𝐺( 𝑃 ) =
𝑅𝐶𝑃 + 1
Question 3)
Quel est l’ordre de ce système et donner l’expression de chaque paramètre correspondant Ordre de
système : 1
K =1
T=RC
Question 4)
AN : R= 10000Ω , C = 10-4F
On place en série, avec G(p), une fonction de transfert H(p) = 2
Donner l’expression numérique de la nouvelle fonction de transfert BO(p)
2
𝐵𝑂(𝑃) =
𝑃+1
Question 5)
A partir de G(p) et de H(p) donner le script qui permet d’obtenir BO(p)
num=2;
Question 6)den=[1
1];
En utilisantG=tf(num,de
les tableaux de Laplace, donner l’expression de la transformée inverse de bo(t) de
BO(p) n) step(G);
grid;
ylim([0 2.5]) 𝑏𝑜(𝑡) = 2𝑒−𝑡
En utilisant la fonction laplace de Matlab, vérifier que vous trouvez la même fonction bo(t)
Question 7)
Tracer la courbe de la sortie bo(t) de ce système par rapport à un échelon unité en donnant le
script correspondant. L’axe des temps ne doit pas dépasser 10 et l’axe de bo(t) ne doit pas
dépasser 2.5 (utiliser les instructions xlim et ylim)
Sur cette courbe tracer la fourchette de 95% de bo() et 105% de bo() et en déduire le temps
de réponse de ce système
Rajouter une légende à votre courbe.
Question 8)
Reprenez le même script mais au lieu d’utiliser l’instruction step, vous utiliserez le code
l’instruction plot selon le code suivant
t = [0:0.1:10]; % on veut tracer la courbe bo(t) avec le tracé de l’échelon unité
consigne = ones(size(t));
sortie = lsim(BO,consigne,t);
plot(t,consigne,'r',t,sortie,'b')
Question 9 :
Garder le même script mais en appliquant cette fois ci un échelon de 5 volts
Tracer la courbe correspondante
t = [0:0.01:12]; % on veut tracer la courbe de BO avec le tracé de l’échelon de 5V
num=2;
den=[1
1];
G=tf(num,den);
t = 0:0.01:12;
consigne = 5*ones(size(t));
sortie =
lsim(H,consigne,t);
plot(t,consigne,'r',t,sortie,'b')
grid
Partie 2 :
Question 10)
Tracer la réponse du système en boucle fermée unitaire
num=2;
den=[1
1];
G=tf(num,den);
H = feedback(G,1);
t = 0:0.01:10;
consigne = ones(size(t));
sortie =
lsim(H,consigne,t);
plot(t,consigne,'r',t,sortie,'b'
)
grid
ylim([0 1.2])
line([0 10],
Question 11)
Proposer un correcteur proportionnel permettant d’améliorer ce système
Pour trouver le meilleur correcteur utiliser une boucle for faisant augmenter la valeur de KP et
tracer les différentes sorties sur la même figure. Changer le pas de la boucle for jusqu’à
trouver le bon KP
Quel est le meilleur KP proposé (donner le code Matlab aussi)
num=2;
den=[1
1];
G=tf(num,den);
H =
feedback(G,1); t
= 0:0.01:10;
consigne = ones(size(t));
sortie =
lsim(H,consigne,t);
plot(t,consigne,'r',t,sortie,'b')
for i= 1:1:10
KP=i
G1=KP
*G
H1 =
feedback(G1,1);
hold on;
On prend Kp=5
Question 12)
Tracer les lieux de Bode de votre fonction de transfert en boucle ouverte.
Question 13)
Déterminer la fréquence de coupure co soit par lecture directe (si vous y arrivez), soit en
utilisant l’instruction [co GdB] =input() ;
Un système de premier ordre est caractérisé par une seule pole dans sa fonction
de transfert et la compensation de pôles nécessite l’élimination du pole dominant
ce qui va rendre le système sans pole et avec un seul intégrateur et elle va
déstabilise le système (Mp=infini=>instable)
Généralement pour un régulateur PI, on prend ti = co/10 quand il ne s’agit pas de compenser
les pôles.
Question 15.)
Tracer la courbe du système corrigé par le PI (donner le code correspondant)
c=pid(Kp,Ki); G1=c*G
H = feedback(G1,1); step(H);
grid;
Donner le temps de réponse du système et son erreur statique.
num=2;
den=[1
e=0 1];
G=tf(num,den)
; Kp=5;
tr5% = 0,389 Ki=5.025;
c=pid(Kp,Ki);
Comparer ce tempsG1=c*G
de réponse avec celui de la boucle ouverte
syms p;
a = [10,10.5];
b = [1,1,0];
rt = tf(a,b)
num1 =
poly2sym(a,p); den2
= poly2sym(b,p); gs