Vous êtes sur la page 1sur 23

Compte rendu des TP de la 

: Régulation

Département Génie électrique : Génie thermique et énergie

 Elaboré par : Hamani Omaima


 Groupe de TP : 3

2020/2021
Table des matières  :
 TP 1 : Initiation MATLAB
o Calcul matriciel
o Graphiques
 TP2 simulation d`un système sous MATLAB
o Etape 1 : Déclaration de toutes les fonctions de
transfert
o Etape 2 : Etude du système en boucle ouvert
o Etape 3 :Etude du système en boucle fermée
o Etape 4 : analyser la réponse d’un système par
rapport à un autre signal
o Tracer un diagramme de BODE
 TP 3 Etude temporelle et harmonique des systèmes
o Etude du système de 1er ordre
o Etude du système de 2em ordre
 1
TP 4l’ utilisation de MATLAB pour l’automatique
o Programme 1
o Programme 2
o Programme 3
o Programme 4
o Programme 5
o Programme 6

1
I. TP 1 Initiation MATLAB  :
1.Calcul matriciel  :
Pour entrer la matrice A , 2 méthodes sont possible  soit :

>>A= [ 3 2 -2 ; -1 0 1 ; 1 1 0]

Ou : >> A=[ 3 2 -2

-1 0 1

110]

La réponse est :

>> A =

3 2 -2

-1 0 1

1 1 0

NB :

 Si on écrit  « A= » on reçoit la même réponse .


 Si on écrit  « a= » la réponse sera : «  Undefined function » cela
signifie que le MATLAB fait la différence entre le majuscule et le
minuscule .
 On utilise « clc » pour effacer ( on efface seulement l`écran mais les
variables restes enregistrer dans la zone Workspace ).
 On utilise « clear all » pour effacer tous les variables .
 On utilise « clear A » pour effacer la variable A seulement .

 Les commandes et leurs réponses  :
 Lorsqu`on saisit la même valeur de A en y ajoutant un point-virgule à la
fin ceci permet d`éviter l`affichage de résultat de A.
 >> B=A(2,:)
La réponse est :
B=
-1 0 1
Cette écriture sert à : affiché la 2em linge du matrice A.

 >> C=B*A
La réponse est :

C= -2 -1 2

Cette écriture sert à : multiplier la matrices B par la matrice A.

 D=A.*A
D=

9 4 4

1 0 1

1 1 0

Cette écriture sert à : multiplier les 2 matrices A et A élément par élément.

NB :

En précèdent d`un point les opérations  «  * , / ,\,^ » on réalise les opérations


élément par élément .

 A( :,2)
ans=
2
0
1
Cette écriture sert à :afficher les éléments de la 2em colonne de la
matrice A
 B=A ; B(5,1)=10
B=

3 2 -2
-1 0 1
1 1 0
0 0 0
10 0 0
Cette écriture sert à écrire une matrice B dont les éléments de (1,1)
jusqu`à (3,3) sont les mêmes que ceux du matrice A et les autres en une
valeur de 0 sauf celle de l`élément (5,1)

3 2 -2
-1 00 1
1 1 0
00 0 0
10 0 0
1,1 1,2 1,3
2,1 2,2 2,3
3,1 3,2 3,3
4,1 4,2 4,3
5,1 5,2 5,3

 C=0 :0.2 :1
C=
0 0.2000 0.4000 0.6000 0.8000 1.0000
Cette écriture sert à écrire la progression entre les éléments 0 et 1 avec
un pas de 0.2 .
 B=A+2*eye(3)
B=

5 2 -2

-1 2 1

1 1 2

2
Avec : Eye (3) est la matrice diagonale de 3em dimension.

Donc cette écriture sert à calculer la somme de la matrice diagonale fois 2 et la


matrice A.

 C=inv(B)

 C=
0.1111 -0.2222 0.2222
0.1111 0.4444 -0.1111
-0.1111 -0.1111 0.4444
Inv(B) : sert à écrire inverse de la matrice carré B.

 D=det(C)
D=
0.0370
Det(C) : sert à calculer le déterminant de le matrice C.
 Pour déterminer la transposé de C on peut utiliser l`une des écritures :
soit : E=C’
Ou : transpose (c)
La réponse est :

E=

0.1111 0.1111 -0.1111

-0.2222 0.4444 -0.1111

0.2222 -0.1111 0.4444

 La matrice a=ones(n) est la matrice de dimension n et dont tout les


éléments prennent la valeur 1.
 La matrice b=zeros(n) est la matrice de dimension n et dont tout les
éléments prennent la valeur 0.

 P=[1 -6 -72 27]


P=

1 -6 -72 27

>> roots(P)
ans =
11.8728
-6.2374
0.3646
Roots(P) : est la fonction qui donne les racines du polynômes
 polyval(P,3)
ans =
-216

La commande « polyval(P,x) » permet d'évaluer le polynôme p (la fonction


polynômiale) en des points donnés

2.Graphiques  :
Dans cette partie nous allons traiter les graphiques 2D( MATLAB a la
possibilité de produire des graphiques en 2 et 3 dimension ).
Pour dessiner une courbe il faut  :
-déterminer les points de l`axe des x pour lesquels les valeurs de la
fonction seront calculer :
>> x=0 : pi/4 : 5*pi
-calculer la valeur de la fonction pour chaque valeur de x :
>> y=sin(x/pi)

-tracer une courbe par les commande suivantes :

>> plot(x,y) ; grid on ;

La réponse est  :

Columns 1 through 11

0 0.2474 0.4794 0.6816 0.8415 0.9490 0.9975 0.9840 0.9093


0.7781 0.5985

Columns 12 through 21

0.3817 0.1411 -0.1082 -0.3508 -0.5716 -0.7568 -0.8950 -0.9775


-0.9993 -0.9589
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 2 4 6 8 10 12 14 16

II. TP 2 simulation d`un système


sous MATLAB  :
On a les 3 composants de l`exemple général du schéma bloc du système :

- H1 : un simple gain qui peut représenter le gain d`un amplificateur


opérationnel , d’un potentiomètre…

- H2= un système du 2nd ordre , c’est le modèle du système


2 p+30
( H 2= 2 ).
p + p+ 3

-H3 : un système de 1er ordre qui représente la réponse du capteur


0.5
(  H 3= p+10 )

Etape 1  :Déclaration de toutes les fonctions de transfert

H1=3;

H2num=[2 30];

H2den=[1 1 3];

H2=tf(H2num,H2den)
H3num=0.5;

H3den=[1 10];

H3=tf(H3num,H3den)

NB :

- L’écriture : H2=tf(H2num,H2den); est fausse (y a pas de point-


virgule après cette formule )

- on peut même utiliser la formule : H2=tf ([2 30], [1 1 3]) ;

La réponse est :

H1=3 ;

H2 =
2 s + 30
-----------
s^2 + s + 3

Continuous-time transfer function.

H3 =

0.5
------
s + 10

Continuous-time transfer function.

Etape 2  :Etude du système en boucle ouvert

Pour tracer la réponse indicielle avec la fonction step()  :

G=series(H1,H2) ; % représentation du système en boucle ouverte

figure (1)% réponse a un échelon en boucle ouverte

step(G)

La réponse est :
Step Response
45

40

35

30
Amplitude

25

20

15

10

0
0 2 4 6 8 10 12
Time (seconds)

Etape 3  :Etude du système en boucle fermée

Pour ajouter un retour et obtenir le système en boucle fermée :

G=series(H1,H2);

Gbf=feedback(G,H3);

figure(2)

step(Gbf)

La réponse est :
Step Response
20

18

16

14

12
Amplitude

10

0
0 2 4 6 8 10 12 14
Time (seconds)

Etape 4  :analyser la reponse d’un systèmepar rapport a un autre signal

t=0 :0,05 :12 ;

figure (3)

lsim(Gbf,t,t) ;

La réponse est :

Linear Simulation Results


150

100
Amplitude

50

0
0 2 4 6 8 10 12
Time (seconds)
Tracer un diagramme de BODE  :

num=20;

den=[1 50 2];

G=tf(num,den);

figure (1)

bode(G)

La réponse est :

Bode Diagram
50
Magnitude (dB)

-50

-100
0

-45
Phase (deg)

-90

-135

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

III. TP 3 Etude temporelle et


harmonique des systèmes   :
-Etude du système de 1er ordre :

t=0:0.01:10 ;

k=4; taux=2

num=[k]; den=[taux 1];


sys=tf(num,den);

y1=impulse(sys,t);

figure(1)

plot(t,y1)

y2 = 3*step(sys,t)

figure(2)

plot(t,y2);

hold on

ym=max(y2);

yt=0.63*ym;

max_idx=min(find(y2>=yt));

tau=t(max_idx);

plot([tau tau],[0 yt],'m--')

str=sprintf('tau=\n%3.2f s',tau)

gtext(str)

hold off

a=6;

u=a*t;

y3=lsim(sys,u,t)

figure(3)

plot(t,y3);on reçoit une réponse indicielle a un échelon d`amplitude 3


2

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10

3.5

tau=
2.5
1.97 s

1.5

0.5

0
0 1 2 3 4 5 6 7 8 9 10

-Etude du système de 2em ordre :

Programme 1  :
200

180

160

140

120

100

80

60

40

20

0
0 1 2 3 4 5 6 7 8 9 10

IV. TP 4  :utilisation de MATLAB


pour l`Automatique  :
Dans ce TP nous allons exécuter puis commenter chaque ligne des programmes
suivants :

Programme 1  :

num=10

den=[1 2 10]

printsys(num,den) % affiche la fonction de transfert comme fraction rationnelle en s

step(num,den) % tracer la réponse indicielle

t=0:0.1:10;

y=step(num,den,t);

plot(t,y)

title('reponse a un echelon');

xlabel('temps'); %écrit du texte ‘temps’ le long de l’axe x.

ylabel('y'); %écrit du texte ‘y’ le long de l’axe y.


grid

line([0 10],[1.05 1.05])%tracer la ligne qui passe par les 2 points (0 ;1.05)et(10 ;1.05)

line([0 10],[0.95 0.95]) ])%tracer la ligne qui passe par les 2 points (0 ;0.95)et(10 ;0.95)

figure

[numf,denf]=cloop(num,den,-1); %Pour construire un système en boucle fermée

step(numf,denf) % permet de visualiser la réponse en boucle fermée unitaire à un échelon

la reponse est  :

num = 10

den =

1 2 10

num/den =

10

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

s^2 + 2 s + 10
reponse a un echelon
1.4

1.2

0.8
y

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
temps
Step Response
0.8

0.7

0.6

0.5
Amplitude

0.4

0.3

0.2

0.1

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

Programme 2:

num=10

den=[1 2 10]

figure

t=0:0.1:10; %la variable t prend des valeurs de 0 à 10 par pas de 0,1

ramp=t;

y = lsim(num,den,ramp,t);

plot(t,y)

figure

sinus=sin(t);

z=lsim(num,den,sinus,t);

plot(t,z)

% Afin de visualiser la sinusoïde originale et le signal de sortie

hold on %"hold on" permet de tracer plusieurs courbes dans la même fenêtre. "hold off" annule
cette commande.

plot(t,sinus,'r') %'r' permet d'affecter la couleur rouge à ce tracé pour le différencier du


précédent
grid

la reponse est :

num =

10

den =

1 2 10

10

0
0 1 2 3 4 5 6 7 8 9 10

1.5

0.5

-0.5

-1

-1.5
0 1 2 3 4 5 6 7 8 9 10

Programme 3  :
num = 10

den = [1 2 10]

[gm,pm,wcg,wcp]= margin(num,den) %mesure de la marge de phase et de la marge de


gain ainsi que des pulsations correspondantes

bode(num,den)

grid

la réponse est  :

num =

10

den =

1 2 10

gm =

Inf

pm =

53.1445

wcg =

Inf

wcp =

3.9995
Bode Diagram
20

0
Magnitude (dB)

-20

-40

-60
0

-45
Phase (deg)

-90

-135

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

Programme4  :

num=10

den=[1 2 10]

figure
%pour avoir un diagramme de Bode personnalisé

puls=logspace(0,1,100);

[ampli,phase,puls]=bode(num,den,puls);

subplot(211),semilogx(puls,20*log10(ampli)),

grid

subplot(212),semilogx(puls,phase)

grid

margin(num,den)

[gm,pm,wcg,wcp]=margin(num,den)

La reponse est:

num =

10
den = 1 2 10

gm =

Inf

pm =

53.1445

wcg =

Inf

wcp = 3.9995

-5

-10

-15

-20
0 1
10 10

Bode Diagram
Gm = Inf dB (at Inf rad/s) , Pm = 53.1 deg (at 4 rad/s)
Magnitude (dB)

100

-100
Phase (deg)

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

Programme 5 :

num=10

den=[1 2 10]

nichols(num,den)

ngrid

line([-135 -135],[0 -50]) %permet de tracer une ligne verticale d'abscisse –135° pour la
visualisation de la marge de phase à 45°.

la reponse est :

num =10
den =

1 2 10

Nichols Chart
40
0 dB
30 0.25 dB
0.5 dB
20 1 dB -1 dB
10 3 dB
6 dB -3 dB
Open-Loop Gain (dB)

0 -6 dB

-10 -12 dB

-20 -20 dB

-30

-40 -40 dB

-50
-60 dB
-60
-360 -315 -270 -225 -180 -135 -90 -45 0
Open-Loop Phase (deg)

Programme 6  :

num=10
den=[1 2 10]
nyquist(num,den) % Diagramme de Nyquist

la reponse est:

num =
10
den =

1 2 10
Nyquist Diagram
2

1.5

0.5
Imaginary Axis

-0.5

-1

-1.5

-2
-1 -0.5 0 0.5 1 1.5
Real Axis

Vous aimerez peut-être aussi