Initiation à MATLAB
HELP topics
matlab\general - General purpose commands.
matlab\ops - Operators and special characters.
matlab\lang - Programming language constructs.
matlab\elmat - Elementary matrices and matrix
manipulation.
matlab\elfun - Elementary math functions.
matlab\specfun - Specialized math functions.
matlab\matfun - Matrix functions - numerical linear
algebra.
matlab\datafun - Data analysis and Fourier transforms.
matlab\polyfun - Interpolation and polynomials.
matlab\funfun - Function functions and ODE solvers.
matlab\sparfun - Sparse matrices.
matlab\scribe - Annotation and Plot Editing.
matlab\graph2d - Two dimensional graphs.
matlab\graph3d - Three dimensional graphs.
matlab\specgraph - Specialized graphs.
. . . . . . . . . . . .
Pour obtenir le contenu d'un répertoire, il suffit de taper ou cliquer directement dessus :
» help <nom_répertoire>
Exemple :
» help elmat
Pour obtenir des renseignements sur une fonction particulière il suffit de taper :
» help nom_fonction
Par exemple zeros qui est contenue dans le bloc elmat, (Matlab 7.1) :
»lookfor polynom
. . . . . . . . . . . .
» lookfor zeros permet d'obtenir la liste d'instruction qui ont un rapport avec la
fonction zeros.
Pour connaître le répertoire courrant
» pwd
Pour lister le contenu d'un répertoire
» dir
Pour changer de répertoire courrant
» cd ..
» cd nom répertoire
Ceci vous permettra de sauvegarder vos fichiers .m dans votre répertoire. Par défaut le
répertoire de travail est Workspace. Il est possible de sauvegarder vos données de l'espace de
travail dans un fichier d'extension .mat comme suit:
» save nom_fichier
»load nom_fichier
La commande clear peut être utilisée pour effacer une variable ou tout l'environnement de
travail.
2. Utilisation élémentaire :
2.1. Manipulations de base : affectation et calculs de base
Avec Matlab les calculs sont numériques (une variable doit avoir une valeur) et basés sur
la manipulation de scalaires, de vecteurs et de matrices.
1
Définir un vecteur Pour définir le vecteur x 1 1T
1
>>x=[1 ;-1] ou >>x=[1 -1]
1 2 3
Définir une matrice Pour définir la matrice A
4 5 6
>>A=[1 2 3 ; 4 5 6] ou >>A=[1,2,3 ;4,5,6]
Opérations sur les matrices (ainsi que sur les scalaires et les vecteurs, le cas échéant)
– 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)
– trace : trace(A)
– déterminant : det(A)
– poly(A) donne le polynôme caractéristique de la matrice A (vecteur ligne donnant. les
coefficient du déterminant de (pI - A) dans 1un ordre décroissant de puissance).
Quelques matrices utiles
– matrice identité de dimension n : eye(n)
0.5000 + 0.8660i
0.5000 - 0.8660i
Le produit de deux polynômes est obtenu par la commande :
>> p3=conv(p1,p2). On obtient alors le vecteur ligne p3 dont. Ies coefficients sont
ceux du produit p3(x) = p1(x)*p2(x).
Le quotient est donné par :
>> [p3,p4]=deconv(p1.p2) on obtient alors p1=conv(p2,p3)+p4 donc p3 est
le résultat de la division et p4 est le reste.
2.2. Graphiques
Sur Matlab il est très facile de représenter les résultats sous forme graphiques avec la
commande plot.
Soit x, y z et. t des vecteurs de même dimensions
>>plot(x) trace le graphe donnant les éléments de x en fonction de leur position dans x
>>plot(t,x) trace x en fonction de t
>>plot(t,x,z,y): trace x en fonction de t et y en fonction de z.
Avec la commande plot, il est possible d’ajouter des options de couleur et de type de signe
pour le tracé de la courbe. Ceci permet de différencier les différentes courbes affichées à
l’écran sur un même graphique:
>>plot(t,x,'b +') courbe bleue avec des +..
L'écran peut aussi être divisé pour visualiser plusieurs courbes à la fois ave la commande
subplot(n,m,p) divise l'écran en n lignes et m colonnes et place la courbe suivante à la place
p.
On peut utiliser d'autres commandes pour tracer des graphiques et personnaliser les courbes
en changeant le type des axes. Dans ce cas au lieu d’utiliser plot on pourra choisir selon les
cas l'une des commandes ci dessous:
Plot Axes linéaires par défaut
Loglog Axes logarithmiques x et y
Semilogx axe x logarithmique, y linéaire
Semilogy axe y logarithmique, x linéaire
Axis précise les valeurs maximales et minimales des axes
Le titre des axes et le titre de la courbe peuvent être personnalisés. On peut aussi ajouter du le
quadrillage.
Exemple :
>> t=linspace(0,2*pi,50)
>> x=20*sin(t)
>> y=20*cos(t)
>> plot(t,x)
>> plot(t,x)
>> hold on permet de superposer des courbes sur le même graphique
>> plot(t,y,'*')
>> title(‘exemple de courbe') Titre de la courbe
15
10
sinus et cosinus
0
-5
-10
-15
-20
0 1 2 3 4 5 6 7
temps
On peut obtenir diverses informations sur le système défini par sa représentation sys1 :
>>pole(sys1) donne les pôles du système
>>damp(sys1) donne les pôles, ainsi que l’amortissement et la pulsation propre
associés à chaque pôle
Dans les deux cas, vérifier le résultat
>>pzmap(sys1) place les pôles et les zéros dans le plan complexe
Opération sur les fonctions de transfert
Il est possible d'assembler 2 fonctions de transfert entre elles:
En série: sys1 en série avec sys2
>>sys_serie=sys1*sys2 ou >>sys_serie=series(sys1,sys2)
En parallèle: sys1 en parallèle avec sys2
>>sys_para=sys1+sys2 ou >>sys_para=parallel(sys1,sys2)
Dans les deux cas, vérifier le résultat.
En boucle fermée:
Pour calculer la fonction de transfert en boucle fermée, il existe la fonction feedback qui
calcule la fonction de transfert en boucle fermée du système présenté ci-dessous. La variable
signe définit le type de bouclage (contre réaction: - par défaut sinon + pour une réaction) :
Une fois ce TP terminé, sauvegarder les différentes variables que vous avez utilisées avec la
commande save workspace as dans le menu file sous le nom TP1_votrenom.
Initiation à SIMULINK
1. Accès à Simulink
Pour accéder à la fenêtre de commande de Simulink, il faut lancer Matlab et taper simulink
dans la fenêtre de travail de Matlab ou cliquer sur l’icône . Celle-ci est représentée sur
la figure ci-contre.
2. Présentation du simulateur
2.1. Réalisation d'un schéma de simulation
Pour créer un nouveau modèle Simulink choisir New dans le menu File, puis Model. Une
feuille de travail apparaît, sur laquelle on va pouvoir définir graphiquement notre système.
Les fichiers Simulink possèdent l'extension ".mdl".
Pour réaliser un schéma, il faut réunir ses éléments dans la fenêtre graphique correspondante
au fichier courant. Pour cela, il faut ouvrir une bibliothèque de Simulink (Continuous,
Discrete, Sources, Sinks. etc.), choisir l'élément intéressant dans cette bibliothèque en
cliquant dessus avec la souris et en maintenant la souris cliquée, faire glisser l'élément ainsi
sélectionné vers votre fenêtre graphique.
Une fois les éléments essentiels présents, il suffit de les lier entre eux avec la souris, c'est-à-
dire tracer des connexions entre la sortie du premier bloc et l'entrée du deuxième bloc,
toujours en maintenant la souris cliquée.
Sauvegarder de temps en temps le schéma dans votre répertoire de travail, il sera ainsi
possible d'aller le rechercher en cas de fausse manipulation.
2.2. Définition des paramètres des éléments.
Ceux-ci peuvent être définis en cliquant deux fois sur l'élément considéré. La manière dont
Matlab les exige est indiquée en commentaire dans la boite d'entrée qui s'ouvre à cet effet. On
définit ainsi les paramètres des fonctions de transfert, les signaux appliqués, les échelles par
défaut des graphes des signaux observés. On peut utiliser aussi comme paramètres des
variables préalablement définies dans le workspace (l'espace de travail) de Matlab.
2.3. Réalisation d'une simulation
Une fois le schéma de simulation réalisé, on effectue la simulation en choisissant dans le
menu "Simulation" les paramètres de celle-ci: instant de début, instant de fin, etc .. Ces
paramètres sont utilisés par l'algorithme de simulation qui est un algorithme d'intégration
numérique. Il est possible de choisir son algorithme de simulation mais sauf cas particulier, on
utilisera "ode45 Dormand- Prince". Ensuite, lancer la simulation en cliquant sur l'icône
3. Exemple N°l
De manière à retrouver les variables que vous avez définies dans le TP. n° l, charger votre
fichier de sauvegarde (extension ".mat") réalisée à la fin du TP en tapant :
>> load TP1_votrenom
Ouvrir ensuite un nouveau fichier sous Simulink :
– Cliquer sur File.
– Cliquer sur New (une fenêtre untitled s'ouvre).
Dans la fenêtre simulink :
– Clic sur la rubrique "Sources"
– Amener avec la souris (drag and drop) un bloc Step depuis la fenêtre source dans la
fenêtre untitled.
– Clic sur la rubrique Continous
– Amener avec la souris un bloc Transfert fonction depuis la fenêtre Continous dans
la fenêtre untitled.
– Clic sur la bibliothèque Sinks
– Amener avec la souris (drag and drop) un bloc Scope depuis la fenêtre Sinks dans la
fenêtre untitled.
Dans la fenêtre untitled, relier les différents éléments avec la souris. Le schéma, une fois
terminé, doit correspondre à celui de la figure ci-dessous.
Modifier les paramètres du bloc "Transfert Fcn" de manière à utiliser le système sys2 à partir
des champs de l'objet système sys2
– Double clic sur transfert fnc.
– taper dans numérateur sys2.num{1} et dans dénominateur sys2.den{1}. Fermer la
fenêtre.
– Double clic sur le bloc Step , choisir l’échelon unité. Fermer la fenêtre.
– Laisser l'oscilloscope ouvert dans un coin de l'écran.
Ajuster les paramètres de la simulation pour obtenir une réponse indicielle complète.
– Dans la fenêtre untitled, cliquer sur simulation puis sur paramètre choisir (start
time, stop time .....). Fermer la fenêtre.
– Dans la fenêtre untitled, cliquer sur simulation puis sur start ou cliquer sur l’icône
.
– Observer la réponse sur l'oscilloscope.
Vérifier les valeurs de la sortie en régime permanent et la constante de temps (vous pouvez
utiliser les icônes de la figure graphique pour effectuer un zoom par exemple).
De manière à visualiser le signal d'entrée sur la même figure, utiliser un multiplexeur en
sélectionnant l'objet "Mux" de la bibliothèque "Signal Routing" et relier le signal d'entrée et
de sortie de la fonction de transfert. Relier enfin la sortie du multiplexeur au Scope.
Il est possible de manipuler aussi des blocs contenant un objet système. Ce bloc est présent
dans le répertoire "Control System toolbox". Il suffit d'indiquer le nom du système mémorisé
dans le workspace de Matlab. Remplacer le bloc "Transfert Fcn" par le bloc "LTI System"
de la bibliothèque "Control System toolbox". Vérifier le fonctionnement.
De manière à visualiser les signaux sous Matlab, ajouter le bloc "To Workspace" dans le
schéma. Pour récupérer le temps de simulation, utiliser le bloc "Clock" puis tracer sous
Matlab la réponse du système en fonction du temps. On peut aussi utiliser l'option
"Workspace I/0" dans les paramètres de simulation de Simulink.
4. Exemple N° 2 :
Pour réaliser un système bouclé, introduire le comparateur en sélectionnant l'objet "Sum" de
la bibliothèque "Math". Par défaut, l'objet sélectionné est un sommateur. Il faut donc modifier
ses paramètres pour le transformer en comparateur.
Afin de voir les effets du bouclage sur la bande passante du système, déterminer, sous Matlab,
la fonction de transfert en boucle fermée à partir des paramètres de la fonction de transfert en
boucle ouverte.
Ensuite, sur la même fenêtre graphique, tracer le diagramme de Bode des 2 fonctions de
transfert (boucle ouverte et boucle fermée). Quel est l'effet du bouclage? Justifier votre
réponse en comparant les paramètres des deux fonctions de transfert.
Déterminer la bande passante à -3db et le gain statique de ces deux fonctions de transfert et
vérifier que le produit bande passante*gain statique reste constant.
Afin de visualiser l'effet du bouclage dans le domaine temporel (avec Simulink), tracer sur le
même graphe la réponse indicielle de F(p) et celle de AG(p). Déterminer les deux constantes
de temps et les gains statiques de chaque réponse.
Pour mettre en évidence les effets du gain A, refaire ces manipulations en augmentant ou en
diminuant sensiblement sa valeur. Comment évoluent les constantes de temps associées aux
deux systèmes lorsque A devient très grand ou très petit?