Rapport du Travail
Spécialité : Automatisation instrumentation
industrielle
Sujet :
Initiation à Matlab Simulink
(TP #2)
• Réalise par : - x
• Encadrant pédagogique : - x
Année anniversaire : 20x
1- Introduction
Ce document a pour but de vous familiariser avec l’usage de Matlab.
Matlab est un langage de programmation de haut niveau doublé d’un environnement de travail. Il
est principalement utilisé à des fins de calcul numérique. Il est largement utilisé dans les domaines
de l’ingénierie et des mathématiques appliquées. Pour effectuer un TP, si vous n’avez pas accès à
une licence Matlab sur votre machine, vous pouvez utiliser le logiciel GNU Octave qui est un clone
gratuit et libre de Matlab. En règle générale les codes se portent facilement de Matlab vers Octave
et vice-versa. Ce mémo est très loin d’être exhaustif et il est fortement recommandé de s’exercer
par soi-même à d´découvrir les richesses du langage. Matlab a été pensé pour le calcul numérique et
dispose d’implémentation natives et généralement très bien optimisées de toutes les fonctions
mathématiques de base. L’évaluation du cours comportera une partie pratique, sous forme de TP à
finir à la maison ou en présentiel. L’ensemble des TP sont à faire en autonomie, le professeur sera là
uniquement pour s’assurer que l’application du cours d’automatique linéaire et de régulation
industrielle est bien assimilée à travers l’application sous Matlab/Simulink.
1- Environnement Matlab
Le logiciel propose un environnement de travail composé de multiples fenêtres.
Commencez par lancer l’interface graphique de Matlab. Vous observez une fenêtre du type de celui
sur la Figure 1. Cette fenêtre est typique de Matlab.
Vous pouvez distinguer quatre blocs :
- au centre, l’invite de commande >> (console d’exécution). L’utilisateur peut entrer les
instructions à exécuter. Il s’agit de la fenêtre principale de l’interface de MATLAB (mode interactif).
- en haut à droite le contenu de l’espace courant de travail, (espace de travail). Il permet de
visualiser les variables définies, leur type, la taille occupée en mémoire…
- à gauche la liste des fichiers du répertoire courant (répertoire courant). Il permet de naviguer
et de visualiser le contenu du répertoire courant de l’utilisateur. Les programmes de l’utilisateur
doivent être situés dans ce répertoire pour être visible et donc exécutable.
- en bas à droite l’historique des commandes que l’utilisateur a exécutées. Il est possible de
faire glisser ces commandes
TP2 : initiation à Matlab
Soit un système réel dont on ne connait pas les lois de la physique : ‘système boite noire’’.
On a appliqué un échelon unitaire à l’entrée de ce système et on a obtenu la courbe de sortie
suivante :
Figure 1 : réponse indicielle du système
Cette courbe a été sauvegardée sous Matlab pour être utilisée par les étudiants lors du TP.
Cette courbe est appelée ‘TP2_courbe-[Link]’, jointe à ce TP.
N.B. pour sauvegarder une courbe sous Matlab, les instructions sont les suivantes :
- h = figure(1) ; % à la place de h, vous pouvez entrer n’importe quel nom, 1
veut dire figure 1
- saveas(h,’ nom de la [Link]’) ; % le .fig pour utiliser la figure sous Matlab,
vous pouvez sauvegarder sous .pdf, jpeg etc.
Pour ouvrir cette courbe sous Matlab, il suffit de cliquer dessus pour que Matlab l’ouvre
Partie 1 : identification en boucle ouverte
Question 1 :
Identifier le système représenté par la courbe de 2 façons différentes ‘Strejc et broida):
Selon Strejc :
𝑇1
= 0.08 Donc l’ordre n = 1
𝑇2
T1= 0.197718T2=3.311782T1/T2=0.0597 implique que n=1
D’
après le tableau de STREJC T2/z=0
alors que z=l’infini
D’après le tableau de STREJC
T1/z=0
alors que T1th=0
ΔT=T1-T1th=0.197718
T=X+ΔT=0.197718
K=1.5
Selon Broida
t1=1.1216
t2=1.5
z=2.0812
T=0.44048
K=1.5
1,5 𝑒 −0,436𝑝
𝐺(𝑝) =
1 + 2.09𝑝
Question 2
Quelle est votre conclusion par rapport à l’identification que vous venez d’accomplir.
L'identification de strejc ne permet pas de tracer la courbe car z tans vers l'infini.
Mais il est possible de tracer avec la technique broida
Partie 2 : identification en BF.
On rajoute un correcteur proportionnel en boucle fermée unitaire au modèle que vous venez
d’identifier. On porte le système à la limite de la stabilité.
Kosc = 9599999999999995.
Question 3)
A partir de la courbe fournie (‘’TP2_courbe_iden_BF.fig’’), déterminer la période d’oscillation
et en déduire osc.
Figure 2 : réponse du système à la limite de la stabilité
Tosc = 5,232 * 10−8 wosc = 12*107
Question 4)
Proposer 2 modèles différents d’identification (Strejc et Broida)
*Selon Strejc en BF
D'après Strejc en BF
K*kosc=1.44 e16, donc d'après le tableau de Strejc n=2
Z=(1/Wosc)*Tg(180/n)=infiniTosc=5.19756 e-08D selon la méthode Strejc
T(p)=1.5*exp(-5.19756 e-08*p)/(1+Z*)e2.1
Voici le script :
clc ;
sylms p ;
p=tf('p') ;
T=5.19e-08;
k=1.5;z=1.103844862e-07;
n=2.1;
G=(k*exp(-T*p))/((1+z*p)^2) ;figure ;
step(G) ;
grid ;
Question 5.
Quelle est votre conclusion par rapport à cette méthode
*Selon broida en BF
Il est impossible de modifier la méthodetrejc en boucle fermé avec
n=2 =>>>Z =(1/Wosc)*Tg(180/n) = erreur.
−𝟗
𝑲.𝒆−𝟐,𝟔.𝟏𝟎
T(p) =
(𝟏+𝟏,𝟐.𝟏𝟎𝟕 )
Question 6.
Quelle est votre conclusion par rapport à cette méthode
La courbe n’est pas assez descriptive du système en BF. Donc le modèle de
Broida n’est pas valable en BF.
Question 7.
Quelle est votre conclusion par rapport à l’identification de ce système en BF
Ce système ne peut pas être identifié en BF on se contente donc du modèle
d’identification de Broida en BO.
Partie 3 : Correction PID
Question 8
Appliquer la méthode de Ziegler/Nichols en BO sur le modèle de Broida trouvé dans la
section précédente et en utilisant la courbe du système réel (figure 1).
Sur la même figure, Tracer la courbe avec correction proportionnelle, puis la courbe du PI et
duPID
clc;
symsp;
p=tf('p');
T=0.44;
k=1.5;
kp=1.9242422424;
ti=0.88;
td=0.22;
c=pid(kp,ti,td);
G=(k*exp(-T*p))/((1+2.08*p));
H=c*Gg=feedback(H,1);
figure;
step(g);
grid;
Question 9
Quel est le meilleur correcteur pour ce système ?
PI
Partie 4 : SIMULINK
Question 10
Tracer la réponse indicielle en BO du modèle de Broïda trouvé précédemment.
Question 11
Intégrer les correcteurs calculés plus haut
N.B. dans le scope de la courbe de sortie ainsi que la consigne commencent à partir de
l’instant t = 1s. on a alors l’impression que l’on a un retard.
Pour y remédier, on ouvre la fenêtre du Step, et dans la case Step time, on remplace 1 par 0
Remarque :
- Dans Simulink : K p = Gain proportionnel
- K i = 1/Ti
- K d = Td
On peut aussi déterminer automatiquement les coefficients PID grâce à l’option tune du bloc
PID
On remplace un bloc PID dans la BF.
On laisse les coefficients par défaut.
On clique sur le bouton ‘tune’, il va calculer les coefficients PID lui-même et va proposer une
courbe de sortie corrigée par rapport à la courbe non corrigée.
On peut agir sur les temps de réponse ou de montée dans la fenêtre de la courbe. Une fois les
coefficients validés on clique sur ‘upload’.
Question 12
Donner les coefficients PID proposés par Simulink et tracer la courbe de sortie
correspondante.
Question 13
Comparer ce correcteur par rapport au correcteur PID selon Ziegler/Nichols calculé plus haut
Question 14 :
Quelle est votre conclusion