Vous êtes sur la page 1sur 12

BTS : ELECTROTECHNIQUES TP U2

TP N°4
INITIATION AU LOGICIEL MATLAB ET SIMULINK

1 : PRESENTATION DU TP
Objectif du TP :
- S’initier aux fonctionnalités de base de Matlab et de Simulink
- Simuler des systèmes simples
Evaluation : Au plus tard, une semaine après la séance de TP, vous devez rendre le compte-
rendu du TP avec l'ensemble des réponses aux questions. Les questions doivent être traitées
dans l'ordre et toutes les courbes imprimées et analysées.
Quelques consignes de rédaction, pour faire un bon compte rendu de TP
Les travaux pratiques d’automatique se composent, le plus souvent, de deux parties
différentes
• Une partie théorique, à préparer à l’avance, qui doit impérativement être faite lors du
début de la séance de TP
• Une partie pratique, soit en simulation (sous MATLAB), soit en simulation et sur
maquettes. La plupart des séquences de travaux pratiques se déroulent sur plusieurs
séances. Dans tous les cas le compte rendu de travaux pratique est à rendre à la fin de
la dernière séance de TP.
Le compte rendu de TP comportera deux éléments :
• vos résultats, analyses et commentaires, rédigés proprement, incluant les éventuelles
􀀀

courbes dûment commentées


• les scripts MATLAB et les fichiers Simulink seront remis sous forme informatique
(sur flash mémoire, par e-mail ou dans un répertoire partagé à préciser)
Comment rédiger un bon compte rendu de TP d’automatique :
Répondre aux questions, en particulier théorique sans négliger les démonstrations.
Pour les simulations :
• Préciser quel est le système simulé,
• Indiquer les méthodes d’étude utilisées,
• Présenter les résultats de manière claire.
Les résultats numériques sont précédés d’un nom, et suivi d’une unité (ex : Marge de
phase : 32 dB
• Ne garder qu’un nombre raisonnable de chiffres significatifs
Les figures seront munies :
✓ d’un titre
✓ d’un nom de variable et d’une unité pour chacun des axes de coordonnées
✓ d’une légende si la figure comporte plusieurs courbes
• Analyser les résultats : cela signifie que chaque résultat obtenu doit être expliqué : Est
ce conforme à nos attentes, est ce cohérent avec le système étudié, quelles sont les
conséquences pour le système,...
• Terminer le compte rendu par une conclusion synthétisant vos résultats
• Le script MATLAB de simulation devra comporter
✓ une aide en ligne (ce sont les commentaires qui suivent immédiatement le
début du fichier) précisant votre nom et le titre du TP en cours
✓ des commentaires nombreux dans le fichier, permettant à quelqu’un qui n’a
jamais vu le script de le comprendre aisément
1
BTS : ELECTROTECHNIQUES TP U2

PRÉSENTATION DU LOGICIEL

Matlab est un système interactif et convivial de calcul numérique et de visualisation


graphique qui possède un langage de programmation.
Il est très utilisé dans le monde universitaire et industriel ainsi que dans les écoles
d’ingénieurs, notamment pour le traitement de signal et l’automatique. Il s’utilise associé aux
différents modules. Un des modules supplémentaires permet d’effectuer aussi du calcul
formel.
MATLAB est un environnement puissant, complet et facile à utiliser destiné au calcul
scientifique. Il apporte aux ingénieurs, chercheurs et à tout scientifique un système interactif
intégrant calcul numérique et visualisation. C'est un environnement performant, ouvert et
programmable qui permet de remarquables gains de productivité et de créativité.
Il permet de traiter les données sans aucune limitation de taille et de réaliser des calculs
numériques et symboliques de façon fiable et rapide. Grâce aux fonctions graphiques de
MATLAB, il devient très facile de modifier interactivement les différents paramètres des
graphiques pour les adapter selon nos souhaits.
L'approche ouverte de MATLAB permet de construire un outil sur mesure. On peut
inspecter le code source et les algorithmes des bibliothèques de fonctions (Toolboxes),
modifier des fonctions existantes et ajouter d’autres.
MATLAB possède son propre langage, intuitif et naturel qui permet des gains de temps
de CPU spectaculaires par rapport à des langages comme le C, le TurboPascal. Avec
MATLAB, on peut échanger des données avec d'autres applications (via la DDE : MATLAB
serveur ou client) ou utiliser MATLAB comme moteur d'analyse et de visualisation.
MATLAB comprend aussi un ensemble d'outils spécifiques à des domaines, appelés
Toolboxes (ou Boîtes à Outils). Indispensables à la plupart des utilisateurs, les Boîtes à Outils
sont des collections de fonctions qui étendent l'environnement MATLAB pour résoudre des
catégories spécifiques de problèmes. Les domaines couverts sont très variés et comprennent
notamment le traitement du signal, l'automatique, l'identification de systèmes, les réseaux de
neurones, la logique floue, le calcul de structure, les statistiques, etc.
En complément du noyau de calcul MATLAB, l'environnement comprend des
modules optionnels qui sont parfaitement intégrés à l'ensemble :
1) une vaste gamme de bibliothèques de fonctions spécialisées (Toolboxes)
2) Simulink, un environnement puissant de modélisation basée sur les schémas-blocs et de
simulation de systèmes dynamiques linéaires et non linéaires
3) Des bibliothèques de blocs Simulink spécialisés (Blocksets)
4) D'autres modules dont un Compilateur, un générateur de code C, un accélérateur,...
5) Un ensemble d'outils intégrés dédiés au Traitement du Signal : le DSP Workshop

2
BTS : ELECTROTECHNIQUES TP U2

I. ACCES A MATLAB
Matlab est, ici, une application Windows. En cliquant deux fois sur l'icône Matlab, s'ouvre
alors la fenêtre principale. Cette fenêtre est divisée en plusieurs parties comme le montre la
figure ci dessous:

Aide
ou
Détails des variables du
workspace
Fenêtre de travail :
Workspace

Répertoire de travail
Ou Historique des commandes

II. Utilisation liée aux Matrices et vecteurs


Le logiciel MATLAB est conçu en fonction de la manipulation de matrices et de vecteurs
(un vecteur de longueur N est une matrice de dimension 1×N, c’est-à-dire comportant une
ligne et N colonnes). On génère une matrice en écrivant ses éléments entre crochets, chaque
ligne étant délimitée par un point-virgule. Par exemple, pour générer la matrice
• Définir un scalaire : Pour définir le réel r = 2π

>> r=2*pi

• Définir une matrice : Pour définir la matrice

>>A=[1 2 3 ; 4 5 6] ou >>A=[1,2,3 ;4,5,6]


• Operations sur les matrice
– addition : A+B
– soustraction : A-B
– multiplication : A*B et B*A
– inversion : inv(A)
– transposition : transpose(A) ou A’
• Etude des matrices
– valeurs propres : eig(A)
– rang : rank(A)
3
BTS : ELECTROTECHNIQUES TP U2

– trace : trace(A)
– déterminant : det(A)
Les fonctions de base sont données dans le tableau suivant :

III. UTILISATION LIEE AUX TRAÇAGE DES COURBES


MATLAB est un outil très puissant et très convivial pour la gestion des graphiques, que ce
soit en une dimension, en deux dimensions ou en trois dimensions
✓ Graphiques 2D
On utilise l'instruction plot pour tracer un graphique 2D: Pour tracer une courbe y=sin(x)
par exemple, où x=0:50 ; il suffit de faire :
>>x=0:50;y=sin(x);plot(x,y)
plot(x,y) Tracer le vecteur y en fonction du vecteur x
plot(t,x,t,y,t,z) Tracer x(t), y(t) et z(t) sur le même graphique
plot(t,z,'r--') Tracer z(t) en trait pointillé rouge
✓ FORMAT DE GRAPHIQUE
On peut choisir le format du graphique:
plot(x,y) Tracer y(x) avec échelles linéaires
semilogx(f,A) Tracer A(f) avec échelle log(f)
semilogy(w,B) Tracer B(w) avec échelle log(B)
polar(theta,r) Tracer r(theta) en coordonnées polaires
bar(x,y) Tracer y(x) sous forme des barres
grid Ajouter une grille

Exemple
>> t=0:0.01e-3:0.06;
>> y=10*exp(-60*t).*cos(120*pi*t);
>> z=10*exp(-60*t).*sin(120*pi*t);
>> plot(t,y,'r',t,z,'g'),grid
>> a=10*exp(-60*t);
>> hold
Current plot held
>> plot(t,a,'b--')

4
BTS : ELECTROTECHNIQUES TP U2

>> plot(t,-a,'b--')
>> title('Fonctions sinusoidales amorties')
>> xlabel('Temps , s'),ylabel('Tension , V')

>> hold off


>> plot(y,z),grid
>> axis equal
>> xlabel('y'),ylabel('z')

✓ GRAPHIQUE MULTIPLE
On peut tracer plusieurs graphiques dans la même fenêtre en utilisant l’instruction subplot
pour diviser la fenêtre en plusieurs parties.
- Diviser la fenêtre en deux parties (2 x 1)
Exemple :
>> w=logspace(0,3,1000);
>> s=j*w;
>> H=225./(s.*s+3*s+225);
>> AdB=20*log10(abs(H));
>> phase=angle(H)*(180/pi);
>> subplot(2,1,1),semilogx(w,AdB),grid
>> xlabel('w , rad/s'),ylabel('Amplitude , dB')
>> subplot(2,1,2),semilogx(w,phase),grid
>> xlabel('w , rad/s'),ylabel('Phase , degre')

5
BTS : ELECTROTECHNIQUES TP U2

✓ AJOUT DU TEXTE AU GRAPHIQUE


title('Titre du graphique') Donner un titre au graphique
xlabel('Temps') Étiquette de l'axe x
ylabel('Tension') Étiquette de l'axe y
gtext('Valeur absolue') Ajouter du texte au graphique avec la souris
MANIPULATION DE GRAPHIQUES
axis([-1 5 -10 10]) Choix des échelles x = (-1,5) et y = (-10,10)
hold Garder le graphique sur l'écran (pour tracer plusieurs courbes sur le même
graphique)
Graphiques 3D
Le traçage des graphiques 3D est illustré dans les deux exemples suivants.
Exemple
>> t = 0:0.05:25;
>> x = exp(-0.05*t).*cos(t);
>> y = exp(-0.05*t).*sin(t);
>> z = t;
>> plot3(x,y,z), grid

Ci-dessous, un petit résumé très succinct est donné pour tracer, concernant le traçage
des graphiques et la manipulation des axes et des échelles :
• xlabel(‘temps’) pour donner un titre à l’axe x,
• ylabel(‘vitesse’) pour donner un titre à l’axe y,
6
BTS : ELECTROTECHNIQUES TP U2

• title(‘évolution de la vitesse’) pour donner un titre au graphique,


• loglog(x,y) tracer la courbe en échelle logarithmique (log-log),
• semilogx(t,f(t)) tracer la courbe seulement en échelle logarithmique suivant x,
• semilogy(t,f(t)) tracer la courbe seulement en échelle logarithmique suivant y,
• grid on afficher le quadrillage dans le graphique,
• grid off masquer le quadrillage dans le graphique,
• clf effacer le graphique
• close figure(i) fermer (ou quitter) la figure (i),
• close all fermer tous les graphiques ouverts,
• plot(x,y,x,z,x,w) tracer y, z et w en fonction de x sur le même graphe,
• polar(x,y) tracer la courbe y en fonction de x en coordonnées polaires,
• plot(x,y,’+g’) tracer y en fonction de x avec des marques ‘+’ en couleur verte,
• fplot(‘f_nom’,[x-mini, x-maxi]) tracer la fonction f_nom selon les axes données (x),
• axis(‘square’) tracer un graphe géométriquement carré,
• axis(‘off’) masque les axes x et y,
• axis(‘on’) affiche les axes x et y,
• axis([x-mini, x-maxi, y-mini,y-maxi]) affiche le graphique selon les limites données des
axes x et y,
• hold(‘on’) traçage des courbes sur le même graphique à chaque fois qu’on exécute la
fonction plot,
• hold(‘off’) traçage de chaque courbe sur un nouveau graphique à chaque fois qu’on
exécute la fonction plot,
• plot3(x,y,z) tracer z en fonction de x et de y en 3D,

IV. UTILISATION LIEE A L'AUTOMATIQUE


Matlab utilise pour les systèmes LIT (Linéaire et Invariant dans le Temps) une
représentation objet.
Cette représentation est commune pour tous les types de représentation (fonction de
transfert, état, zéros-pôles-gain,...). Ici, nous ne verrons que la représentation par fonction de
transfert.
1. Saisie des fonctions de transfert

• Définition du système par sa fonction de transfert

Afin de maîtriser le logiciel "Matlab", nous allons d'abord étudier un système du second ordre :

(en notation anglo-saxonne, la variable complexe p est remplacée par s).


Les instructions MATLAB sont écrites en gras. Pour avoir des détails, utiliser la
commande : "help instruction" (par exemple taper "help nichols").

a. Ecriture de la fonction de transfert :


Taper les instructions suivantes dans le "workspace" de Matlab
num=10
den=[1 2 10]
printsys(num,den)

7
BTS : ELECTROTECHNIQUES TP U2

b. Etude de la réponse à un échelon :

step(num,den)
pour voir la réponse à un échelon pendant 10s
t=0:0.1:10 ;
y=step(num,den,t); le point virgule ";" évite d'afficher le résultat
plot(t,y)

c. Commentaires sur la courbe :

title('réponse à un échelon');
xlabel('temps');
ylabel('y');

Pour lire des valeurs sur la courbe :


[x,y]=ginput(3) et cliquer avec la souris sur 3 points à mesurer (pas de point virgule
sinon commande inopérante ici)
Pour tracer un quadrillage ou une ligne :

grid
line([0 10],[1.05 1.05])
line([0 10],[1.05 1.05] ,'color','g')
ces instructions permettent de tracer deux lignes horizontales et de faire apparaître le
"tuyau des réponses à 5%" :
line([0 10],[1.05 1.05])
line([0 10],[0.95 0.95])
la commande line([x1,x2],[y1,y2]) trace une ligne du point (x1,y1) au point (y1,y2).

On peut mesurer les coordonnées de points intéressants avec l'instruction ginput :


le temps de réponse à 5%
le dépassement D%
le temps de montée au premier pic tpic
la pseudo période.
d. Réponse à un signal quelconque
Il faut d'abord définir le temps :
t=0:0.1:10; la variable t prend des valeurs de 0 à 10 par pas de 0,1
• une rampe :
ramp=t;
y=lsim(num,den,ramp,t);
plot(t,y)

• Une sinusoïde :
sinus=sin(t); (ne pas employer sin comme nom car c'est une fonction de Matlab et
cela entraînerait une "plante" du programme)
8
BTS : ELECTROTECHNIQUES TP U2

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

Afin de visualiser la sinusoïde originale et le signal de sortie, taper :


hold on
plot(t,sinus,'r') 'r' permet d'affecter la couleur rouge à ce tracé pour le différencier du
précédent
"hold on" permet de tracer plusieurs courbes dans la même fenêtre. "hold off" annule
cette commande.
e. Etude fréquentielle
• Diagramme de Bode de H

bode(num,den)

[Gm,Pm,Wcg,Wcp] = MARGIN(num,den) mesure de la marge de phase et de la


marge de gain ainsi que des pulsations correspondantes
Gm = Inf ; Pm = 53.1301
Wcg = Inf ; Wcp = 4.0000
figure pour ouvrir une nouvelle fenêtre "windows"
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

Mesure de la marge de phase et de la marge de gain ainsi que des pulsations


correspondantes :
margin(num,den)
[Gm,Pm,Wcg,Wcp] = margin(num,den)

• Diagramme de Nyquist de H

nyquist(num,den)

f. Construire un système en boucle fermée :


[numf,denf]=cloop(num,den,-1);
step(numf,denf) permet de visualiser la réponse en boucle fermée unitaire à un
échelon

Il est facile de voir l'influence d'un correcteur. Par exemple, si on considère un


simple gain de 6, il faut redéfinir le numérateur par l'instruction :
num=60 (10×6)
Redéfinir la fonction de transfert en boucle fermée :
[numf,denf]=cloop(num,den,-1);
9
BTS : ELECTROTECHNIQUES TP U2

et faire dessiner la réponse à un échelon


step(numf,denf)

Il apparaît donc très facile de montrer l'influence du changement d'un paramètre


sur les réponses. Là où il fallait avoir recours à des calculs longs et fastidieux, à des
abaques, pour obtenir la réponse d'un système, le logiciel fournit cette réponse de
manière aisée et rapide.

Soit le système décrit par la fonction de transfert

ou p désigne l’operateur de Laplace. A l’aide de Matlab, on peut définir :


>>G=tf([2 1],[1 2 1]) (numérateur et dénominateur de la fonction de transfert)

Pour constituer un système à l’aide de différents sous systèmes on peut effectuer


différentes opérations. Soit G1 et G2 les représentations de deux systèmes

Les combinaisons de base sont :


>>G1*G2 ou >>series(G1,G2) G1 en serie avec G2
>>G1+G2 ou >>parallel(G1,G2) G1 en parallele avec G2
>>feedback(G1,G2) G1 bouclée par G2

On peut obtenir diverses informations sur le système défini par sa représentation G :


>>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

Prise en main de SIMULINK

Une autre manière de procéder est de recourir à Simulink, extension logicielle


de Matlab destinée à faciliter la modélisation de phénomènes physiques. Un schéma se
substitue aux équations pour constituer le modèle, mais les équations différentielles
représentatives du système physique sont sous-jacentes. Cette manière de résoudre
numériquement des systèmes d'équations différentielles est très proche de la manière
de penser des ingénieurs et des automaticiens qui raisonnent par schéma bloc, par
fonction de transfert. Cela se faisait couramment avec les calculateurs analogiques
10
BTS : ELECTROTECHNIQUES TP U2

Pour lancer cet outil, il suffit d’ouvrir Matlab et d’appuyer sur l’icône suivante :

Ouvrez une nouvelle fenêtre de travail "new file"


Dans l’onglet "Continuous" choisissez l’outil "Transfert Fcn" et à l’aide de la souris, faites le
"glisser" vers la fenêtre de travail (cette boîte correspond à une fonction de transfert du
premier ordre) ;
– Dans la sous-section "Sources" choisissez "Step" et faites le glisser vers la fenêtre de travail
(cette boîte correspond à un échelon) ;
– faites de même avec l’outil "Scope" dans l’onglet "Sinks" ;
– Reliez ensuite les 3 blocs et vous obtenez un premier modèle de ce type :

-lancez la simulation afin d’obtenir le résultat de la sortie du filtre passe bas sur l’écran
d’oscilloscope simulé.

Analyse de H à l'aide de Simulink


Ouvrir Simulink, soit par un clic sur son icône, soit en tapant Simulink et en
appuyant sur la touche entrée. Cliquer sur l'icône représentant une page blanche en
haut à gauche "new model" afin d'ouvrir une nouvelle fenêtre permettant de construire
H.
Cliquer sur "continuous" dans la fenêtre "Simulink Library" et traîner à la souris
une "transfer Fcn" dans la fenêtre vide. Cliquer sur "Math" et traîner dans la nouvelle
fenêtre un "Gain", et un "sum". Cliquer sur "sinks" et traîner un "scope" dans la
nouvelle fenêtre. Cliquer ensuite sur "Sources" et trainer un bloc "step" dans la
nouvelle fenêtre. Raccorder les éléments comme indiqué ci-dessous.

Double cliquer sur "transfer Fcn" et ajuster les coefficients du numérateur et du


dénominateur. Le nombre le plus à gauche représente la plus grande puissance de p,
créer un espace (barre d'espace), écrire le coefficient suivant (éventuellement 0), etc.
Bien faire attention à ce que les coefficients soient entre crochets. Vérifier que la durée
de la simulation est bien de 10 s en cliquant sur "simulation", "simulation parameters"
(ne toucher à rien d'autre). Lancer la simulation, puis double cliquer sur le scope.

11
BTS : ELECTROTECHNIQUES TP U2

L'échelon peut être réglé lui aussi en double cliquant dessus. Par défaut, il
possède une amplitude de 1 et devient égal à 1 à t = 0,5 s.
Cliquer éventuellement sur le bouton figurant une paire de jumelles afin
d'ajuster la courbe à la taille de l'écran du scope.

Cette figure peut être ajustée à la taille désirée en cliquant avec le bouton
gauche sur un coin de la figure et en traînant le coin à la souris en maintenant le
bouton enfoncé.
En double cliquant sur l'élément "gain", une boite de dialogue s'ouvre et il est
possible de modifier le gain. Relancer la simulation permet d'obtenir la nouvelle
réponse sur le scope si on a pris soin de ne pas fermer cette fenêtre "scope". Il est
possible d'ajuster rapidement la courbe à la fenêtre en cliquant sur l'icône représentant
une paire de jumelles.

Afin d'étudier le réglage d'un PID et l'influence des différents paramètres, on


reprend le schéma précédent sur Simulink. Un clic sur l'élément "gain" le sélectionne.
Un appui sur la touche "suppr" le supprime. Il ne reste plus qu'à le remplacer par un
élément PID que l'on trouve dans "Simulink Extras" "Additional Linear". On obtient le
schéma suivant :

Schéma-bloc Simulink montrant la fonction de transfert H contrôlée par un PID

En double cliquant sur l'élément PID, il est très facile de modifier les paramètres.

Relancer la simulation fait apparaître la nouvelle réponse sur le scope.

12