Académique Documents
Professionnel Documents
Culture Documents
2022-2023
Table des matières
4 TP n°4 : Correction des systèmes échantillonnés Régulation d’un niveau d’eau par PID
numérique 31
4.1 But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Correcteur proportionnel : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 Correcteur proportionnel intégral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4 Correcteur proportionnel-intégral-dérivé . . . . . . . . . . . . . . . . . . . . . . . . . 36
1
Table des figures
2
Chapitre 1
1.1 Introduction :
MATLAB est un logiciel de programmation, de simulations numériques basées sur des algo-
rithmes d’analyse numérique, notamment en ce qui concerne l’automatique, il offre des possibili-
tés avancées que ce soit en matière d’identification ou de commande. MATLAB permet de résoudre
une grande diversité de problème de simulation, dans des domaines aussi variés que le traitement
du signal, les statistiques etc. MATLAB permet aussi d’exécuter des fonctions, d’attribuer des va-
leurs à des variables. Plus spécifiquement, le logiciel MATLAB permet d’effectuer des opérations
mathématiques, de manipuler des matrices, de tracer des graphiques en deux et aussi en trois di-
mensions.
Le logiciel MATLAB présente beaucoup de particularités par rapport aux autres langages de
programmation tels que le langage C ou Fortran, parmi ces particularités, on peut citer :
- la programmation facile
- la continuité parmi les valeurs entières, réelles et complexes
-la gamme étendue des nombres et leurs précisions
- la bibliothèque mathématique très compréhensive
- l’outil graphique qui inclut les fonctions d’interface graphique et les utilitaires
- la possibilité de liaison avec les autres langages classiques de programmation.
1.2 But :
Ce premier TP a pour but de se familiariser d’une part avec les fonctions de base de MAT-
LAB syntaxes des calculs, fonctions graphiques 2D, création de fonctions et création de sous pro-
grammes à l’aide de fichiers .m et d’autre part avec son extension Control System Toolbox dédiée
particulièrement à simuler le comportement des systèmes dynamiques à étudier.
1.3 Découverte :
help : permet d’obtenir la liste des toutes les commandes classées en bibliothèques
clc : permet d’éffacer simplement l’écran
clear : permet d’éffacer toutes les variables
save : permet de sauvegarder les variables sur le disque
who : affichage des variables dans l’éspace de travail
what : permet de donner la liste des fichiers MATLAB sur le répertoire courant
3
Quelques fonctions utilisées pour la manipulation des des matrices :
1 >> size ( A )
2
3 ans =
4
5
6 ans =
7
8 15
9
10 >> eye (4)
11
12 ans =
13
14 1 0 0 0
15 0 1 0 0
16 0 0 1 0
17 0 0 0 1
18
19 >> diag ( A )
20
21 ans =
22
23 1
24 5
25 9
26
27 >> [V , D ]= eig ( A )
28
29 V =
30
31 -0.2320 -0.7858 0.4082
32 -0.5253 -0.0868 -0.8165
33 -0.8187 0.6123 0.4082
34
35
36 D =
37
38 16.1168 0 0
39 0 -1.1168 0
40 0 0 -0.0000
41
42 >> randn (1 ,5)
43
44 ans =
45
46 0.5377 1.8339 -2.2588 0.8622 0.3188
1
2 >> Vligne =[27 ,31 ,40]
3
4 Vligne =
5
6 27 31 40
7
8 >> Vcol =[36;88;95]
9
10 Vcol =
11
12 36
13 88
14 95
4
1 >> zeros (1 ,4)
2
3 ans =
4
5 0 0 0 0
6
7 >> ones (5 ,1)
8
9 ans =
10
11 1
12 1
13 1
14 1
15 1
1
2
3 >> B =[3 2 5; 1 8 4 ; 2 7 3]; C =[0 2 9 ; 4 6 1 ; 3 8 5];
4 V =[1;2;3]; W =[0;5;2]
5
6 W =
7
8 0
9 5
10 2
11
12 >> B * C
13
14 ans =
15
16 23 58 54
17 44 82 37
18 37 70 40
19
20 >> B .* C
21
22 ans =
23
24 0 4 45
25 4 48 4
26 6 56 15
27
28
29 >> V .* W
30
31 ans =
32
33 0
34 10
35 6
1
2
3 >> F =[ B W ;1 2 3 4 ]
4
5 F =
6
7 3 2 5 0
8 1 8 4 5
9 2 7 3 2
5
10 1 2 3 4
11
12
13 >> F (2 ,2)
14
15 ans =
16
17 8
18
19 >> F (: ,3)
20
21 ans =
22
23 5
24 4
25 3
26 3
27
28
29 >> F (4 ,:)
30
31 ans =
32
33 1 2 3 4
34
35 >> F (2 ,[3 4])
36
37 ans =
38
39 4 5
40
41 >> F ([3 2 4 ] , [1 3 2 ])
42
43 ans =
44
45 2 3 7
46 1 4 8
47 1 3 2
6
F IGURE 1.1 – Courbe de y = sin(x2 )
26 P3 =
27
28 1 0 -1
29
30 >> polyder ( P )
31
32 ans =
33
34 6 -5
35
36 >> Ye = polyval ( P4 , x1 )
37
38 Ye =
39
40 1.0000 -1.0000 2.0000 -0.0000
7
F IGURE 1.2 – subplot
8
11
12 Gc =
13
14 s + 1
15 -------------
16 s ^2 + 2 s + 1
17
18
19
20 >> zeros =[]
21
22 zeros =
23
24 []
25
26 >> poles =[ -1 , -2];
27 >> gain = -10;
28 >> G_zpk = zpk ( zeros , poles , gain )
29
30 G_zpk =
31
32 -10
33 - - - - - - - --- -
34 ( s +1) ( s +2)
35
36 Continuous - time zero / pole / gain model .
9
8
9 dd =
10
11 1.0000 -1.9990 0.9990
12
13 >> Gd = tf ([1 0.985] , dd ,0.03)
14
15 Gd =
16
17 z + 0.985
18 ---------------------
19 z ^2 - 1.999 z + 0.999
20
21 Sample time : 0.03 seconds
22 Discrete - time transfer function .
23
24
25 2
26 -------------
27 s ^2 + 4 s + 4
28
29 Continuous - time transfer function .
30
31 >> syst_zpk = zpk ( syst_tf )
32
33 syst_zpk =
34
35 2
36 -------
37 ( s +2)^2
38
39 Continuous - time zero / pole / gain model .
1 >> Gc
2
3 Gc =
4
5 s + 1
6 -------------
7 s ^2 + 2 s + 1
8
9 Continuous - time transfer function .
10
11 >> Gd
12
13 Gd =
14
15 z + 0.985
16 ---------------------
17 z ^2 - 1.999 z + 0.999
18
19 Sample time : 0.03 seconds
20 Discrete - time transfer function .
21
22 >> G_zpk
23
24 G_zpk =
25
26 -10
27 - - - - - - - --- -
28 ( s +1) ( s +2)
29
30 Continuous - time zero / pole / gain model .
31
32 >> G_zpk * Gc
33
34 ans =
35
10
36 -10 ( s +1)
37 -------------
38 ( s +1)^3 ( s +2)
39
40 Continuous - time zero / pole / gain model .
41
42
43 Continuous - time zero / pole / gain model .
44
45 >>
1 >> bode ( G )
2 >> grid
1 >> ltiview
2 Figure de 4**
3 >> T =0:0.1:10;
4 >> step (G , T )
5 >>
1 [y , t ]= step ( G );
2 >> [u , t ]= gensig ( ’ square ’ ,2);
3 >> lsim (G ,u , t )
11
F IGURE 1.5 – Réponse indicielle
6 1
7
8
9 csi =
10
11 0.1000
12 0.1000
13
14 >> pzmap ( G )
15 pi = pole ( G )
16
17 pi =
18
19 -0.1000 + 0.9950 i
20 -0.1000 - 0.9950 i
21
22 >> zi = tzero ( G )
23
24 zi =
25
26 -1.0000
27
28 >> [ pi , zi ]= pzmap ( G ) % valeurs numeriques poles / zeros
29
30 pi =
31
32 -0.1000 + 0.9950 i
33 -0.1000 - 0.9950 i
34
35
36 zi =
37
38 -1
39
40 >> gs = dcgain ( G )
12
41
42 gs =
43
44 1
13
F IGURE 1.8 – fonction sinusoidale
10 end
11
12
13 function test_de_y ( z );
14 if (z <0) ’ negatif ’
15 elseif (z >0) ’ positif ’
16 else ’ nul ’
17 end
14
F IGURE 1.10 – Visualisation de x
W ( p) K
G ( p) = = (1.2)
U ( p) (1 + τel p)(1 + τem p)
avec : gain statique du système,
em
K= (1.3)
f + (em )2
R = 1.44Ω (1.6)
L = 5.6104 H (1.7)
J = 1.29104 kg · m2 (1.8)
f = 7.2105 m · N · s (1.9)
15
15 step ( G ); grid ;
16 % K =9.8974
17 %
18 %
19 % tau_em =0.0184
20 %
21 %
22 % tau_el =3.8889 e -04
23 %
24 %
25 % G =
26 %
27 % 9.897
28 % ----------------------------
29 % 7.15 e -06 s ^2 + 0.01877 s + 1
30 %
31 % Continuous - time transfer function .
32 %
33 %
34 % G =
35 %
36 % 1.3843 e +06
37 % ------------------
38 % ( s +54.39) ( s +2571)
39 %
40 % Continuous - time zero / pole / gain model .
41 Vcapteur =10;
42 omega_nominale =100* pi ;
43 Kw = Vcapteur / omega_nominale
44 Yr = omega_nominale /23.846669897662700
45 % Kw = 0.0318
46 % Yr = 13.1741
16
Conclusion :
Dans ce TP on fait une initiation au MATLAB ainsi que l’outil SIMULINK . Ce logiciel est très
utile pour l’analyse et la modélisation des processus afin de déterminer le comportement et les
caractériistiques des systèmes asservis.
17
Chapitre 2
2.1 But :
Introduire les systèmes échantillonnés et d’identifier les phénomènes produisant lors de l’échan-
tillonnage d’un système continu, ainsi que le choix de période d’échantillonnage et les consé-
quences de ce choix.
2.2 Discrétisation :
Soit le système décrit par la fonction de transfert G(p) :
2p + 1
G ( p) = (2.1)
p2 + 2p + 1
La discrétisation sert à la conversion d’un signal analogique continu par un modèle discret.
Cette fonction est effectuée par l’instruction ’c2d’ qui est un bloqueur d’ordre zéro
1 >> num =[2 1];
2 >> denum =[1 2 1];
3 >> Hd = tf ( num , denum )
4
5 Hd =
6
7 2 s + 1
8 -------------
9 s ^2 + 2 s + 1
10
11 Continuous - time transfer function .
12
13 >> Hd1 = c2d ( Hd ,0.2)
14
15 Hd1 =
16
17 0.345 z - 0.3122
18 ----------------------
19 z ^2 - 1.637 z + 0.6703
20
21 Sample time : 0.2 seconds
22 Discrete - time transfer function .
23
24 >> Hd2 = c2d ( Hd ,5)
25
26 Hd2 =
27
28 1.027 z - 0.04038
29 --------------------------
30 z ^2 - 0.01348 z + 4.54 e -05
31
32 Sample time : 5 seconds
18
33 Discrete - time transfer function .
34
35 >> step ( Hd , ’b ’ ,Hd1 , ’g ’ ,Hd2 , ’r ’ ); grid ;
36 >> legend ( ’ Hd ’ , ’ Hd1 ( Te =0.2) ’ , ’ Hd2 ( Te =5) ’)
Te2 = 5sec :
changement au niveau des caractéristiques temporelles :
=> perte d’informations => Déformation de signal d’origine .
=> cacher des instabilités
=> Le théorème de Shannon est verifié . Donc c’est un bon choix de Te doonc à retenir.
La visualisation des pôles et des zéros de Hd est effectuée par l’instruction pzmap
1 >> pzmap ( Hd )
19
F IGURE 2.2 – Zéros et pôles de la fonction Hd
Un système échantillonné linéaire est stable si et seulement si tous les pôles de sa fonction de
transfert sont situés à l’intérieur du cercle unité du plan z.
20
F IGURE 2.4 – Etude de la stabilité de H(z)
le système est bien stable puisque les pôles P1= 0,8 et P2 = 0,4 sont situés à l’intérieur du cercle
unité.
La fonction de transfert en boucle fermée :
kH (z) k k
FTBF (z) = = = 2 (2.6)
1 + kH (z) (z − 0.4)(z − 0.8) + k z − 1.2z + 0.32 + k
Pour k=1,
1
FTBF (z) = (2.7)
z2 − 1.2z + 1.32
Soit G(z) la fonction de transfert résultante ; l’instruction feedback permet la détermination de
la fonction de transfert en boucle fermée à retour unitaire.
1 >> K =1; FTBF = feedback ( K *H ,1)
2
3 FTBF =
4
5 1
6 -------------------
7 ( z ^2 - 1.2 z + 1.32)
8
9 Sample time : unspecified
10 Discrete - time zero / pole / gain model .
La localisation des pôles de la fonction de transfert est effectuée en utilisant rltool « Initialize the
Root Locus Design GUI ». Il faut en premier lieu définir la fonction de transfert à utiliser sous la
fenêtre de commande comme suit :
1 >> K = 1 ; H = tf ([ K ] , [1 -1.2 0.32] ,0.1)
2
3 H =
4
5 1
6 ------------------
7 z ^2 - 1.2 z + 0.32
8
9 Sample time : 0.1 seconds
10 Discrete - time transfer function .
11
12 >> rltool
21
F IGURE 2.5 – Détermination de la limite de stabilité et réponse indicielle pour C=6792
L’action Proportionnelle corrige instantanément l’erreur, donc elle augmente la rapidité du sys-
tème.Cela inclut qu’afin de diminuer l’écart de réglage et de rendre le système plus rapide, on
augmente le gain mais, on est limité par la stabilité du système. Par conséquent, un correcteur de
type P améliore la précision et la rapidité, mais elle peut causer l’instabilité.
22
F IGURE 2.8 – réponse indicielle
23
en boucle fermée issues de l’intégration respectivement de h1 et h2 dans des boucles fermées à
retour unitaire.
1 >> h = tf (10 ,[0.1 1])
2 h =
3 10
4 -- -- -- ---
5 0.1 s + 1
6 Continuous - time transfer function .
7 >> h1 = c2d (h ,0.1)
8 h1 =
9 6.321
10 - - - - - - ----
11 z - 0.3679
12 Sample time : 0.1 seconds
13 Discrete - time transfer function .
14 >> h2 = c2d (h ,0.01)
15
16
17
18 h2 =
19 0.9516
20 - - - - - - ----
21 z - 0.9048
22 Sample time : 0.01 seconds
23 Discrete - time transfer function .
24 >> hbf1 = feedback ( h1 ,1)
25 hbf1 =
26 6.321
27 -- -- -- ---
28 z + 5.953
29 Sample time : 0.1 seconds
30 Discrete - time transfer function .
31 >> hbf2 = feedback ( h2 ,1)
32 hbf2 =
33 0.9516
34 - - - - - - - --- -
35 z + 0.04679
36 Sample time : 0.01 seconds
37 Discrete - time transfer function .
38 >> figure (1); step ( hbf1 , ’b ’ , hbf2 , ’r ’ ); grid ;
39 >> legend ( ’ hbf1 ( Te1 =0.1 s ) ’ , ’ hbf2 ( Te2 =0.01 s ) ’)
40 >> figure (2); pzmap ( hbf1 , ’b ’ , hbf2 , ’r ’ );
On remarque, le système qui correspond à la fonction hbf2 est stable puisque le pôle associé à
cette fonction est situé à l’intérieur du cercle unité. Par contre, le pôle de la fonction hbf1 est situé
à l’extérieur donc le système est instable. ==>On peut conclure alors qu’un système échantillonné
bouclé est stable si sa période d’échantillonnage est inférieure ou égale à la constante du temps du
système continu divisé sur 5.
24
Conclusion :
On a exploré les différentes instructions reliées à la fonction de transfert discrète. On a aussi
decouvert le critère de stabilité informant sur la stabilité d’une fonction. D’autre part, on a constaté
l’influence directe de la période d’échantillonnage sur la stabilité et l’erreur de position.
25
Chapitre 3
3.1 But :
On se propose d’étudier le comportement et l’asservissement numérique d’un moteur à cou-
rant continu afin de mettre en évidence les effets de l’échantillonnage et de la numérisation des
correcteurs continus.
Ks = lim G ( p) = 20 (3.3)
p →0
26
Vcapteur = R × Ωnominale = 0.1 × 240 = 24V (3.5)
3) On veut déterminer la vitesse de rotation du moteur si on applique comme consigne Umax ;
FTBF : Fonction de Transfert en boucle fermée
G ( p)
FTBF = (3.6)
1 + RG ( p)
KBF : Gain statique en boucle fermée
KBF = lim FTBF ( p) = 20/3 (3.7)
p →0
==>
Ωmax = K BF Umax = 160rads/s (3.8)
On veut déterminer l’erreur statique :
ϵ = Umax − Ωmax R = 24 − 16 = 8V (3.9)
F IGURE 3.2 – Schéma synoptique du système en boucle fermée avec un gain k=0.5
27
Détermination de l’erreur statique de position de la régulation échantillonnée pour Te = 0.35s :
K=1 n’appartient pas au donaine de stabilité ==> système instable en BF
F IGURE 3.3 – Réponse indicielle et courbe d’erreur de la fonction avec un correcteur de gain pro-
portionnel K=0.5
F IGURE 3.4 – Schéma synoptique du système en boucle fermée avec un gain k=1
F IGURE 3.5 – Réponse indicielle et courbe d’erreur de la fonction avec un correcteur de gain pro-
portionnel K=1
28
Le pôle de G(z)=0.9048 1 proche de la limite de stabilité => pôle indésirable
Ce pôle indésirable doit être compensé par le zéro de correcteur
Avec le crrecteur proportionnel, l’erreur statique de position est finie et non nulle
=> Pour annuler cette erreur , il faut faire passer FTBO(z) du système corrigé de la classe 0 à la
classe 1 par ajout d’une action intégrale grâce au correcteur.
Kc ?
-> etudier la stabilité du système asservi :
1.903Kc
FTBO(z) = (3.20)
z−1
C (z) G (z) 1.903Kc
FTBF (z) = = (3.21)
1 + C (z) G (z) z − 1 + 1.903Kc
29
F IGURE 3.6 – Les pôles de G(z)
Conclusion :
L’asservissement d’un moteur à courant continue exige le bon choix de la période d’échantillon-
nage, celle-ci agit sur la stabilité du système étudié, car elle est un des paramètres du correcteur,
donc une bonne correction implique une parfaite période d’échantillonnage.
30
Chapitre 4
4.1 But
Identification des différents types de correction et étudier les performances du système échan-
tillonné bouclé.
K
H ( p) = (4.1)
1 + Tp
1- On veut intégrer système dans une boucle fermée à retour unitaire et on veut étudier les perfor-
mances du système échantillonné bouclé :
3- On discrétise la fonction de transfert H pour les valeurs Te=0.1 ; 0.07 ;0.05 ;0.03
1 >> H = tf (0.3 , [26.65 1])
2 H =
3
4 0.3
5 - - - - - - - --- -
6 26.65 s + 1
7 Continuous - time transfer function .
8 >> Hd1 = c2d (H ,0.1);
9 >> Hd2 = c2d (H ,0.07);
10 >> Hd3 = c2d (H ,0.05);
11 >> Hd4 = c2d (H ,0.03);
12 >> rltool
31
F IGURE 4.1 – Kp pour Hd1
32
F IGURE 4.4 – Kp pour Hd4
33
18 - - - - - - -- - - --
19 (z -1)
20 Sample time : 0.03 seconds
21 Discrete - time zero / pole / gain model .
22 >> rltool
34
correcteur correction P correction PI
Kp=0.6 Kp=0.6 et Ki=1
D% 0 51.5
tpic(sec) - 29.7
tm(sec) 49.6 11.4
t5%(sec) 67.7 128
Esp% 89.5% 0
- D% => apparition d’un dépassement important => réponse oscillatoire => stabilité diminue
- tm diminue => montée rapide de la dynamique du système asservi -> rapidité augmente
Esp% = 0 => erreur nulle => précision statique devient parfaite => Graçe à I
On note qu’en insérant un correcteur PI la stabilité du système échantillonné diminue.
Pour un correcteur PI le système devient lent, alors comme solution, on peut insérer un correc-
teur dérivateur qui permet d’améliorer la rapidité du système aussi bien que la stabilité.
Effet statique (régime permanent) : annule l’erreur statique (cf. précision des systèmes, effet
d’une intégration)
Effet dynamique (régime transitoire) : augmente le temps de réponse (système moins rapide),
et augmente l’instabilité (introduit un déphasage supplémentaire de -90°).
Solution pour l’effet indésirable de ce correcteur : On place le correcteur de telle sorte que le
déphasage positif soit effectif avant la pulsation de résonance du système non corrigé de manière
a ne pas rendre le système instable .
35
4.4 Correcteur proportionnel-intégral-dérivé
On se propose maintenant d’intégrer un correcteur proportionnel-intégral-dérivé de la forme
suivant :
Ki z K p ( z − 1) K − c(z − zc1)(z − zc2) R(z)
C (z) = K p + + = = Kc (4.8)
z−1 z z ( z − 1) S(z)
avec :
S ( z ) = z ( z − 1) (4.9)
Donc
(z − zc2) B(z)
FTBO(z) = Kc (4.11)
z ( z − 1)
0.0003375(z − 0.3)
FTBO(z) = Kc (4.12)
z ( z − 1)
Donc
C (z) H (z) 0.0003375Kc (z − 0.3)
FTBF (z) = = (4.13)
1 + C (z) H (z) z(z1) + 0.00075Kc (z − 0.3)
36
F IGURE 4.7 – Réglage pour avoir un temps de réponse =0.6
=> Le correcteur PID est le correcteur le plus adéquat dans l’asservissement des systèmes puis-
qu’il garantit la stabilité du système, qui constitue le critère de performance le plus important, ainsi
que la rapidité de système et son aptitude de se stabiliser rapidement.
Conclusion
Le correcteur P augmente la bande passante du système, améliore la rapidité du système, amé-
liore la précision pour un système sans intégrateur, mais il donne une instabilité.
Le correcteur PI introduit un gain et une action intégrale.Il annule l’erreur statique grâce à l’ac-
tion intégrale, mais il donne un retard de phase à cause de l’action intégrale qui peut conduire à
une instabilité si le correcteur est mal placé.
Le correcteur PID permet d’augmenter la précision statique due à l’intégration.Il induit une
avance de phase donc il a un effet stabilisant et à tendance à augmenter la rapidité.
37