Objectifs
I Introduction
Matlab (abréviation de " MATrix LABoratory ") est un logiciel de calcul numérique. Ce TP a
pour but de vous familiariser avec son utilisation.
MATLAB est un environnement informatique conçu pour le calcul matriciel. L'élément de
base est une matrice dont la dimension n'a pas à être fixée. Matlab est un outil puissant qui
permet la résolution de nombreux problèmes en beaucoup moins de temps qu'il n'en faudrait
pour les formuler en C ou en Pascal. S'il est parfaitement destiné à l'Automatique et au
Traitement du Signal (traitement numérique des données), sa facilité d'emploi avec des
nombres complexes et ses possibilités d'affichages graphiques en font un outil intéressant
pour bien d'autres types d'applications. De plus, des "Toolboxs" (boîtes à outils) sont
disponibles dans de nombreux domaines (traitement du signal, traitement d'image,
automatique, contrôle, logique floue, ...). Matlab peut être considéré comme un langage de
programmation au même titre que C, Pascal ou Basic.
Il intègre le calcul numérique, la visualisation des résultats, la programmation dans un
environnement ouvert aux développements ultérieurs et il présente la possibilité de créer des
interfaces graphiques afin de fournir à l'utilisateur un espace de travail convivial. Le logiciel
MATLAB est réservé notamment au traitement numérique des signaux, à la modélisation, à la
simulation et à la conception des systèmes numériques complexes. Par contre, sa singularité
est qu’il s’agit d’un langage interprété, c'est-à-dire, que les instructions sont exécutées
immédiatement après avoir été tapées.
II Commandes de MATLAB
Help commande/ toolbox : fournit la syntaxe de la commande et les commandes similaires.
Help fonction: fournit comme aide ce qui a été écrit comme commentaire (précède par %).
Look for commande : affiche toutes les fonctions sous Matlab qui utilise la commande en
question.
Dans l'espace de travail fourni par MATLAB, Il n'est pas nécessaire de compiler un
programme avant de l'exécuter.
La réponse est affichée si on ne met pas de point-virgule en fin de ligne. Elle est de plus
stockée dans une variable nommée ans (answer). La plupart des fonctions mathématiques
usuelles sont définies dans Matlab, et ceci sous une forme naturelle (sin, cos, exp, ...). C’est
également le cas de certaines constantes comme ‘pi’ par exemple, « 2* sin (pi/4) ».
II.1 Variables
On peut évidemment indiquer le nom de la variable dans laquelle le résultat doit être stocké
(ce nom doit commencer par une lettre et occuper moins de 19 caractères).
Attention : Matlab distingue les minuscules des majuscules.
2
• Variable complexe
Matlab travaille indifféremment avec des nombres réels et complexes. Par défaut les variables
i et j sont initialisées à la valeur complexe. Naturellement si vous redéfinissez la variable i ou
j avec une autre valeur elle n'aura plus la même signification.
Commandes Desription
eig permet d’obtenir les valeurs propres et les vecteurs propres d’une matrice
Pour l'analyse des données, on peut utilisé : min, max, mean, std, sum,
On peut avoir des informations sur la taille d'une matrice:
>> size(x)
>> length(x) % longueur
3
II.3 Opérations matricielles
Les opérations usuelles sont définies de façon naturelle pour les matrices :
>> 2*A % Produit par un scalaire
>> A*B % Produit de deux matrices (de dimensions cohérentes)
>> A^p % Elève la matrice carrée A à la puissance p
>> inv(A) % Inversion d'une matrice carrée inversible (message d'alerte éventuel)
>> A.*B % Produit élément par élément de deux matrices.
Attention : A*A est différent de A.*A.
>> X = A\B % Donne la solution de A*X = B (équivalent à X = inv(A)*B)
>> X = B/A % Donne la solution de X*A = B (équivalent à X = B*inv(A))
>> X = A./B % Division éléments par éléments
A( :,n) n iéme colonne de A
A.^2 fait le carre des éléments de A.(élément par élément)
Zeros(m,n) : génère une matrice m*n de zéros.
Ones (m,n) génère une matrice m*n de 1.
Eye(m,n) génère une matrice m*n identité.
M1 M2
Pour définir une matrice M = par bloc, il faut d’abord définir les matrices M1,
M3 M 4
M2, M3 et M4 puis écrire:
M=[M1 M2 ;M3 M4]
Exemple :
A=[2 0;1 3]
B=[1 1;0 5]
C=eye(2)
D=ones(2)
A1=inv(A) (on calcule l’inverse de A)
E=[A B;C D] (c’est une matrice définie par bloc)
size(E) (on calcule la taille de E)
det(E) (pour calculer le déterminant de E)
rank(E) (pour calculer le rang de E)
4
II.5 Opérateur " : "
L'opérateur " : ", sous MATLAB, peut être considéré comme l'opérateur d'énumération. Sa
syntaxe usuelle est : « deb:pas:fin ». Il construit un vecteur dont le premier élément est deb
puis deb+pas, deb+2*pas... jusqu'à deb+n*pas tel que deb+n*pas < fin < deb+(n+1)*pas. « : »
est très utile pour construire des signaux.
5
II.8 Affichage de plusieurs courbes
On peut bien évidemment vouloir afficher plusieurs courbes à l'écran. Pour cela deux
solutions s'offrent à nous :
On peut effectuer plusieurs affichages sur une même figure en utilisant la commande subplot
qui subdivise la fenêtre graphique en plusieurs sous figures.
Sa syntaxe est : « subplot(nombre_lignes,nombre_colonnes,numéro_subdivision) ».
Les subdivisions sont numérotés de 1 à nombre_lignes*nombre_colonnes, de la gauche vers
la droite puis de haut en bas.
>> subplot(3,2,1)
>> plot(t,y)
>> subplot(3,2,2)
>> plot(t,y.^2)
On peut aussi ouvrir une deuxième fenêtre graphique à l'aide de la commande figure. Le
passage d'une fenêtre graphique à une autre pourra alors se faire à la souris ou en précisant le
numéro correspondant dans la commande figure(n). NB : on peut également superposer
plusieurs courbes sur le même référentiel, en utilisant la commande hold on (resp. hold off).
On peut changer la couleur, le type de trait ou le type de marqueur directement à partir des
menus de la figure sans passer par les commandes Matlab. Cependant, il est intéressant
parfois de le faire directement à partir de Matlab.
Couleur
Couleur symbole
bleu (défaut) b
vert g
rouge r
cyan c
magenta m
noir k
jaune y
Type de trait
Type de trait symbole
pointillé :
tiret point --
tirets --
6
Type de Marqeur
Par défaut, Matlab ne met aucun marqueur
plus + +
cercle o
astérix *
point .
croix x
carré s
diamant d
pentagone p
hexagone h
Pour les triangles, on aura un marqueur qui a la forme d'un triangle qui pointe dans la
direction du symbole utilisé.
Exemples (Applications détaillées)
Exemple 1
1. On veut tracer sin(t) et cos(t) sur [0, ] sur la même figure:
t1=linspace(0,pi,30); y1=sin(t1);
t2=linspace(0,pi,20); y2=cos(t2);
(on peut ne pas prendre les mêmes valeurs de t pour les deux courbes)
plot(t1,y1,'r+',t2,y2,':o')
Matlab affiche la courbe de sin(t) en utilisant le marqueur + et la couleur rouge, les points ne
sont pas joints entre eux parce qu'on a pas précisé le type de trait. La courbe cos(t) est tracé à
l'aide de pointillé avec des marqueurs cercle.
7
2. Un exemple où on précise les trois en même temps:
» plot (t1,y1,'-.+y',t2,y2,':o')
La courbe y1 est tracé avec des tiret-point, en jaune et des marqueurs
‘+’.
• Pour tracer deux courbes sur la même figure, on utilise la commande "hold on".
plot(t1,y1,'r+')
hold on
plot(t2,y2,':p')
Après qu'on a fini de tracer toutes les courbes dont on a besoin, on peut écrire "hold off" pour
que la prochaine courbe ne se superpose pas aux courbes précédentes.
• La légende d'une figure
On peut rajouter à une figure:
un titre en utilisant la commande title
title('la fonction sin(t) et cos(t)')
un nom à l'axe des abscisses avec la commande xlabel
xlabel('temps (s)')
un nom à l'axe des ordonnées avec la commande ylabel
ylabel('amplitude')
Pour subdiviser une figure en plusieurs sous figures. On utilise la commande subplot.
» subplot(3,2;k)
divise la fenêtre figure en 3 lignes et deux colonnes c.a.d qu'on pourra tracer 6 figure sur cette
fenêtre. k désigne le numéro de la figure courante.
Exemple 2
t=linspace(0,6,50); y1=sin(t); y2=cos(t); y3=exp(t); y4=exp(-t) ; y5=2*t;
(On vient de définir 5 fonctions)
figure;
subplot(3,2,1); plot(t,y1); title('y=sin(t)');
subplot(3,2,2); plot(t,y2); title('y=cos(t)');
subplot(3,2,3); plot(t,y3); title('y=exp(t)');
subplot(3,2,4); plot(t,y4); title('y=exp(-t)');
subplot(3,2,5); plot(t,y5); title('y=2*t');
8
II.9 Génération des signaux
Construire la fonction échelon : stem (ones (m,n))
Construire la fonction rectangulaire : stem ([ones(m,n) zeros(m,n)])
III Application
Gréer un fichier .m qui permet de calculer la fonction sinusoïdal.
function y= sinusoide(pas,long, per)
t=[0 :pas :long]
y=sin (2*pi*1/per*t)
plot (y)
xlabel(‘temps’)
ylabel(‘y(t)’)
nom=sprintf(‘fonction sinusoïdale de période %i de longueur%i’,per,long)
IV Introduction à SIMULINK
Voir Annexe 1