Vous êtes sur la page 1sur 42

Département : Génie industriel

Filière : Génie mécanique et systèmes automatisés

Compte rendu des Travaux Pratiques


d’Automatique

 Réalisé par :
Hamdi Hajar
OUINSOU Egill
 Encadré par :
Professeur M. Alfidi
Année Universitaire 2017-2018
Sommaire
Introduction ...................................................................................................................................................................... 3
I. Eléments généraux de programmation en MATLAB............................................................................................. 4
1. Saisie et construction de matrices. ....................................................................................................................... 4
II. Manipulations réalisées ...................................................................................................................................... 15
1. Partie théorique. ............................................................................................................................................. 19
2. Partie pratique. ............................................................................................................................................... 23
1. Dynamique d’un système du 1er ordre :.......................................................................................................... 27
2. Dynamique d’un système du 2ème ordre. ........................................................................................................ 34
Conclusion ....................................................................................................................................................................... 42
Introduction
MATLAB est un logiciel de calcul scientifique général. Comme d’autres produits (Scilab, Matrixx),
c’est un logiciel de calcul Numérique. Il propose notamment la résolution numérique d’un grand nombre de
problèmes mathématiques classiques, du plus grand intérêt pour les ingénieurs et les chercheurs. Bien plus
qu’une super calculatrice, Matlab permet de développer de façon rapide des programmes de calcul
scientifique pouvant présenter des interfaces homme machine très conviviale avec des possibilités
graphiques intéressantes. Il n’est donc pas dédié à un domaine ou application technique particulière. Parmi
ses utilisations, on peut citer :

 Mathématique et calcul numérique


 Développement d’algorithmes
 Modélisation, simulation et prototypage de systèmes
 Analyse des données, exploration et visualisation
 Graphisme scientifique et engineering
 Développement d’applications notamment interface graphique

Matlab présente donc un ensemble de fonctions générales, fournies dans sa version de base. A cela s’ajoute
un certain nombre de groupes de fonctions spécialisées appelées boîtes à outils : TOOLBOX. Ces boîtes à
outils permettent de traiter de problèmes des sciences de l’ingénieur :

 Simulink pour la simulation des systèmes


 Control System Toolbox pour la modélisation, l’analyse et la commande classique des systèmes
dynamiques linéaires stationnaires
 Mu analysis and synthesis toolbox pour modélisation, l’analyse et la commande avancée des
systèmes dynamiques linéaires stationnaires
 Identification Toolbox pour l’identification des systèmes dynamiques linéaires stationnaires
I. Eléments généraux de programmation en MATLAB
1. Saisie et construction de matrices.
La saisie des matrices dans MATLAB peut se faire de différentes manières :

Ou

Ou encore

-Pour effectuer la saisie à partie du clavier on utilise l’instruction INPUT .


A=input (‘Matrice A=’) produit l’apparition à l’écran du message Matrice A= et attend l’introduction des
éléments de A
-fprintf (‘Bonjour, soyez les bienvenus’) produit l’affichage de ce message à l’écran
-Les : permettent de générer des vecteurs dont les éléments sont consécutifs
Si le pas est omis il sera pris égal à 1
-A(2,3) : fait référence à l’élément de la 2eme ligne et 3eme colonne

L’indice en C et en D est un vecteur, donc il donne accès à des sous éléments


En D, on a utilisé les : caractères qui entraine la considération de toute une colonne, celle de la 1re de A
Syntaxe d’une instruction Matlab :
Dans le cas ci-dessous, le nom de la variable est omis, ce qui donne automatiquement la création d’une
variable portant le nom ans

Quand l’instruction se termine par ; (1900/81 ;), l’affichage du résultat est supprimé

Pour une instruction trop longue, par exemple celle de S, on utilisera les points de suspension … afin
d’indiquer qu’elle se termine sur la ligne suivante
Transposé d’une matrice :
Le caractère « ‘ » donne le transposé de la matrice

-Si Z est une matrice de nombres complexes, alors Z’ donne le conjugué du transposé

-Pour obtenir juste le transposé on doit écrire Z.’ ou conj(Z’)


-Polynôme caractéristique :
-Poly(A) : une vectrice ligne de dimension (n+1) dont les éléments sont les coefficients du polynôme
caractéristique det(SI-A)
-roots(P) : est une vectrice colonne dont les éléments sont les racines de ce polynôme
-roots (poly(A)) : retourne les racines du polynôme caractéristique qui sont les valeurs propres de A

Valeurs propres et vecteurs propres :


Eig(A) : est un vecteur qui contient les valeurs propres de A
Dans la figure, ils sont stockés dans la variable ans
-[V, D]=eig(A) : retourne en D les valeurs propres et en V les vecteurs propres

Multiplication polynomiale :
-a et b sont deux vecteurs dont les éléments sont les coefficients de deux polynômes A(s) et B(s)
-conv(a,b) : un vecteur ligne dont les éléments sont les coefficients du polynôme A(s) et B(s)

Division polynomiale :
[q,r]=deconv(b,a) : déclenche la division polynomiale B(s)/A(s) et retourne dans q les coefficients du
polynôme quotient et dans r ceux du reste

Décomposition en éléments simples d’une fonction de transfert :


[r,p,k]=residue(b,a) : effectue la division et retourne les résidus dans le vecteur r ; les pôles dans P et le
terme directe dans k

[b,a]=residue[r,p,k] : effectue l’opération inverse et retourne dans b les coefficients de B(s) et dans à ceux
de A(s)
-Fonctions graphiques :
-plot(x,y) : si y et x sont deux vecteurs de même dimension. Cette instruction retourne la représentation
graphique de y en fonction de x
-plot(x,y,’s1s2’) : donne la courbe y=f(x) s1 et s2 sont deux caractères qui précisent la couleur et le type de
ligne choisis ils sont choisis dans la liste suivante :

-title(‘texte’) : ajoute la chaine de caractère entre ‘ ‘ au sommet de la représentation graphique en guise de


titre
-xlabel(‘texte’) : ajoute le texte ‘ ‘ pour la légende de l’axe des x
- ylabel(‘texte’) : ajoute le texte ‘ ‘ pour la légende de l’axe des y
-grid ou grid on : place les lignes de quadrillage sur la courbe courante
-grid off : les supprime
-Axis[Xmin Xmax Ymin Ymax] : place la graduation des axes en tenant compte des limites prescrites par
Xmin Xmax Ymin Ymax
Exemple :

Ce qui donne la figure suivante :

-Boucle de contrôle :
Voici un exemple d’une boucle de contrôle

Le résultat est le suivant :


Définition d’un système par sa fonction de transfert :
Soit le système décrit par :
2∗𝑠+1
G(s)=𝑠2+2∗𝑠+1

Ou s désigne la variable de Laplace


F=tf([2 1] ,[1 2 1]) : fonction de transfert définit par son numérateur et son dénominateur
F=zpk([-1/2],[-1 -1],2) : fonction de transfert définit par ses zéros, ses pôles et son facteur de gain

Pole(G) : donne les pôles du système


Step(G) : trace la réponse indicielle

impulse(G) : trace la réponse impulsionnelle


bode(G) : trace le diagramme de Bode

nyquist(G) : trace le diagramme de Nyquist


nichols(G) : trace le diagramme de Black-Nichols

rlocus(G): trace le lieu d’Evans


rlocfind(G) : donne les valeurs des pôles et du gain correspondant sur le lieu d’Evans

damp(G) : donne les pôles, ainsi que la pulsation propre et l’amortissement associés à chaque pôle
pzmap(G) : place les pôles et les zéros dans le plan complexe

II. Manipulations réalisées


A. Manipulation 1 : Prise en main de MATLAB et de la Control Toolbox
On rappelle ici la modélisation du moteur à courant continu (MCC) dont l’étude va permettre d’illustrer les
concepts fondamentaux de la Control Toolbox de Matlab
La fonction de transfert reliant la vitesse de rotation du rotor à la tension appliquée à l’induit s’écrit :*
𝐾
𝐺(𝑠) = (1+𝑇𝑒𝑙∗𝑠)(1+𝑇𝑒𝑚∗𝑠)

𝐾𝑒𝑚
K=𝑅𝐹+𝐾𝑒𝑚^2
𝑅𝐽
Tem=𝑅𝐹+𝐾𝑒𝑚^2
𝐿
Tel=𝑅

R : la résistance de l’induit du moteur


L : son inductance
F=le coefficient de frottement visqueux
J : le moment d’inertie du rotor
Kem : le rapport couple-courant (supposé égal au rapport force électromotrice-vitesse de rotation)
-Manipulation :
-On crée un script qui comporte les différentes opérations détaillées
C’est ainsi qu’on va utiliser l’éditeur de Matlab (>>edit)
-On définit ensuite les diverses constantes du problème de la façon suivante :

Résultat : les valeurs des constantes sont affichées dans le workspace


-On définit la fonction de transfert par son numérateur (num) et son dénumérateur (denum)
F=tf([num],[denum])
-On calcule les pôles de cette fonction grâce à la fonction pole(F)
-Avec l’aide de subplot on divise les figures en des sous-tracés
Dans le 1 er tracé, on trace la réponse indicielle du MCC à un échelon unitaire de tension
Dans le second, on trace le diagramme de Bode du MCC
Ce qui donne lieu au programme suivant :
Concernant la 2 eme partie du programme, celle qui commence depuis la ligne 22 on suit les instructions
suivantes :
-On définit Kp=10 comme étant le gain du correcteur proportionnel
Et Kw=3000*(2*pi)/60 comme étant le gain de la fonction de transfert du capteur de vitesse
-On définit ensuite les fonctions de transfert du systéme en boucle ouverte et en boucle fermée à l’aide de la
fonction series(,) qui définit deux représentations des systémes
-Sur une meme figure , on trace les réponses indicielles du système en boucle ouverte et en boucle fermée
avec la fonction subplot
-bode(BO) : permet de tracer le diagramme de Bode
-nichols(BO) : permet de tracer le diagramme de Black-Nichols
-nyquist(BO) :celui de Nyquist
On a utilisé « figure » afin de pouvoir dessiner les diagramme séparement
Ce qui donne les figures suivantes :
B. Manipulation 2 : Initiation à MATLAB
Le but de ce TP est l’initiation aux commandes et fonctions de la bibliothèque automatique du logiciel
Matlab (Control Toolbox)

1. Partie théorique.

 Calcul Matriciel

Soit la matrice A suivante :


1 1 0
A= 2 0 1
0 0 1
 Le transposé de Matrice A (B=A*)

La matrice transposée d'une matrice est obtenue en échangeant les lignes et les colonnes de la matrice.
𝑎 𝑏 𝑐
Soit M= 𝑑 𝑒 𝑓
𝑔 ℎ 𝑖

𝑎 𝑑 𝑔
Alors M’= 𝑏 𝑒 ℎ
𝑐 𝑓 𝑖
1 2 0
Ainsi on obtient la matrice  B=A’ = 1 0 0
0 1 1

 1.2 La Matrice C=A*B


1 1 0 1 2 0
A= 2 0 1 et B= 1 0 0
0 0 1 0 1 1

2 2 0
Alors  A*B= C= 2 5 1
0 1 1

 1.3 Le déterminant de A

1 0 1 0 1 1
Det (A) = 0| |–0| | + 1| |
0 1 2 1 2 0
Det (A) = 0-0+1*(-2)
 Det(A) = -2
 1.4 L’inverse de A :
Une matrice est inversible si son déterminant est non nul.
Dans notre cas, on det(A)=-4, donc la matrice A est inversible.
Soit 𝐴−1 l’inverse de A :
1
A-1 = det(𝐴) tcom A

La comatrice de A est :

0 1 2 1 2 0
| | −| | | |
0 2 3 2 3 1
1 3 1 3 1 1
Com A= − | | | | −| |
1 2 3 2 3 1
1 3 1 3 1 1
( |0 1
| −|
2 1
| |
2
|
0 )

0 −2 0
Com A = −1 1 0
1 −1 −1

0 −1 1
t
com A = −2 1 −1
0 0 −1

1 0 −1 1
-1 1 t
A = comA = × −2 1 −1
det(𝐴) −2
0 0 −1

0 0.5 −0.5
 A-1 = 1 −0.5 0.5
0 0 1

 1.5 Les valeurs propres de A :


On calcule d’abord le 𝑃(𝑥) = det(𝐴 − 𝑥𝐼) étant le polynôme caractéristique de A qu’on

note P(x):
Dans notre cas on a
1 1 0
A= 2 0 1
0 0 1
1 1 0 𝑥 0 0
Donc 𝑃(𝑥) = det 2 0 1 − 0 𝑥 0
0 0 1 0 0 𝑥
1−𝑥 1 0
𝑃(𝑥) = det ( 2 −𝑥 1 )
0 0 1−𝑥
1 1 1−𝑥 0 1−𝑥 1
𝑃(𝑥) = 0 | | − 0| | + (1 − 𝑥) | |
−𝑥 0 2 1 2 −𝑥

Ce qui nous donne après calcul les résultats suivants :

𝑥1 = -1
𝑥2 = 2
𝑥3 = 1

 1.6 Les vecteurs propres de A :

On remplace X1, X2 et X3 par tour de rôle dans 𝐴 − 𝑥𝐼 :


a
(𝐴 − 𝑥𝐼). b =0
c

tel que a,b et c sont les composantes du vecteur propre.

Après calcule on trouve les vecteurs propres suivants :

0.7071 -0.4472 -0.4472


V1= 0.7071 V2= 0.8944 V3= 0
0 0 0.8944

Fonction de Transfert :
On prend la fonction de transfert suivante :
0.2 𝑠² + 0.3𝑠 + 1
𝐺(𝑠) = = 𝑁(𝑠)/𝐷(𝑠)
(𝑠 2 + 0.5𝑠 + 1)(𝑠 + 0.5)
 Les pôles de la fonction :
Ou plutôt les racines de D(s)

On a s+0.5= 0
 s1=- 0.5
On a aussi s²+0.5s+1=0
𝛥= (0.5)²-4=-3.75 < 0
√-𝛥=1.936
−0.5+𝑖1.936 −0.5−𝑖1.936
𝑠2 = ; 𝑠3 =
2 2

S2 = -0.25+i0.9682 ; s3 = -0.25-i0.9682

 Décomposition de la fonction en éléments simples :

On aura :
𝑎 𝑏 𝑐
𝐺(𝑠) = 𝑠+1/2 + 1 + 1
𝑠−( +𝑖0.9682) 𝑠−( −𝑖0.9682)
4 4

1
a= lim 𝐺(𝑠)(𝑠 + )
−1/2 2

b=1 lim 𝐺(𝑠) (s + (1/4 - i0,9682))


+𝑖0,9682
4

c= 1 lim 𝐺(𝑠) (s – (1/4 - i0,9682))


−𝑖0,9682
4

D’où on obtient: a=0,9 et b= - c =0,5803 – i1,0861.


2. Partie pratique.
-on tient à vérifier à l’aide du logiciel Matlab les résultats obtenus pour la partie théorique
-On visualise à l’écran la nouvelle expression de G(s) à l’aide de tf
-On détermine les racines de D(s) avec roots( )
-Ensuite , à l’aide de la fonction residue ( ) on décompose G(s) en fractions naturelles simples :
-la fonction damp permet de déterminer les fonctions naturelles et le facteur d’amortissement

-Résultats obtenus dans la commande windows


-Nous avons été amené après à visualiser les signaux suivants en s’aidant avec les opérations convenables :
La réponse impulsionnelle avec impulse(Gs)
La réponse du système à un échelon unitaire avec step(Gs)
La réponse du système à une exitation sinusoidale u(t)=sin(2*t) à l’aide de Isim(G,u,t)
Le diagramme de Bode avec bode(Gs)
Le diagramme de Nyquist avec nyquist(Gs)
Le diagramme de Black-Nichols avec nichols(Gs)

III. Manipulation 3 : Dynamique d’un système du 1er ordre et du 2ème


ordre

1. Dynamique d’un système du 1er ordre :


Les systèmes de 1er ordre sont définis de la façon suivante :
𝐾
G(s)=1+𝑇∗𝑠

-Pour chacun des fonctions d’excitation suivantes :


U(t)=𝛿(𝑡) (impulsion)
U(t)=𝛤(𝑡) (échelon unité)
-On va fixer la valeur du gain a K=2 et représenter la réponse du système
-On va effectuer le même travail en fixant T=1 er faisant varier K
-On considère la fonction Gr(s)=G(s)*𝑒 −𝑟𝑠 obtenue en ajoutant un temps mot en cascade à la fonction G(s)
En utilisant l’approximation de Padé :
𝑟
1− ∗𝑠
𝑒 −𝑟𝑠 = 2
𝑟 On représente la réponse du système pour r=1.5
1+ ∗𝑠
2

-On trace ensuite les diagrammes de bode, Nyquist et Black de G et de Gr avec les fonctions déjà prédéfinies
2. Dynamique d’un système du 2ème ordre.
Soit la fonction de transfert suivante :
𝑏0
G(s)=𝑎2∗𝑠2 +𝑎1∗𝑠+𝑎0

On exprime le gain K, la pulsation naturelle wn et le facteur d’amortissement :


𝑏0
-K=𝑎0

𝑎0
-wn=√𝑎2

𝑎1
-E=1/2*
√𝑎0∗𝑎2

On traite les cas suivants :


-b0=1.5 a2=1 a1=4 a0=3
-b0=1.5 a2=1 a1=0.25 a0=1
-b0=1.5 a2=2 a1=2 a0=1
Pour chaque cas, on va calculer K, wn et E
On va déterminer les pôles de G(s) et en déduire la stabilité du système et représenter la réponse à un
échelon unitaire, le diagramme de Nyquist, Bode et Nichols
-CAS 2:b0=1.5 a2=1 a1=0.25 a0=1
CAS 3:b0=1.5 a2=2 a1=2 a0=1
-Le dépassement en % :
95%*1,5=1,425
Le point correspondant à 1,425 est 20,1 s
I. Manipulation 4 : Manipulation d’un asservissement et initiation sur
Simulink
Soit l’asservissement suivant décrit par son diagramme fonctionnel :

G(S) étant la fonction de transfert du processus à réguler, C(s) celle du correcteur. L’entrée du système yc
étant un échelon unitaire.
On représente graphiquement la sortie du système dans les cas suivants :
𝐾
1- G(s)=1+𝑇∗𝑠 avec K=1 et T=1
Et le correcteur utilisé est :
1-1-un correcteur proportionnel P caractérisé par C(s)=Kp

On fait varier Kp : Pour Kp=1

Pour Kp=10
Pour Kp=20

Pour Kp=50

1-2-Un correcteur proportionnel intégral PI dont la fonction de transfert correspondante est donnée par
C(s)=Kp+K1/s
Pour Kp=5 et K1=18

1-3-Un correcteur proportionnel dérivée PI dont la fonction de transfert correspondante est donnée par
C(s)=Kp+Kd*s
Pour Kp=8 et Kd=0.05

1-4-Un correcteur proportionnel intégral Dérivée PID dont la fonction de transfert correspondante est
donnée par C(s)=Kp+K1/s+Kd*s pour Kp=1 et K1=2 et Kd=1

2-On considère la fonction de transfert suivante :


3
G(s)=𝑠∗(0.5∗𝑠+1)

Et le correcteur utilisé est :


2-1-un correcteur proportionnel P caractérisé par C(s)=Kp avec Kp=10

1+𝜏𝑠
2-2-un correcteur de phase avec C(s)=10*
1+𝛼𝑠

On prend 𝛼 = 0.07 et 𝜏 = 10
Conclusion

L’ensemble de ces manipulations ont été une grande occasion pour mieux assimiler les différentes
applications de MATLAB, mieux comprendre le comportement dynamique des différents systèmes
rencontrés.

On a pu découvrir aussi à travers ces différentes manipulations, l’application Simulink, qui permet la
simulation des systèmes, nous avons pu pratiquer aussi les notions qu’on a appris pendant les cours
théoriques de l’automatique, surtout, les réponses indicielles, impulsionnelles et à une sinusoïde. Et aussi de
tracer les diagrammes de Bode, Nyquist et Black-Nichols de notre système.

Vous aimerez peut-être aussi