0% ont trouvé ce document utile (0 vote)
69 vues10 pages

TP1 Asser

Transféré par

chakernourhen75
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
69 vues10 pages

TP1 Asser

Transféré par

chakernourhen75
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP1 : INITIATION MATLAB

Objectifs

▪ Se familiariser avec l’utilisation du logiciel de calcul "MATLAB".


▪ Introduction à l'outil "SIMULINK" de Matlab.

I Introduction

Matlab est un logiciel de calcul numérique. Ce TP a pour but de vous familiariser avec son
utilisation.
MATLAB (abréviation de " MATrix LABoratory "), 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.
• 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.

II.2 Les vecteurs, les matrices et leur manipulation


En fait, toute variable de Matlab est une matrice (scalaire : matrice 1x1, vecteur : matrice
1xN ou Nx1). On peut spécifier directement une matrice sous la forme d'un tableau avec des
crochets, l'espace ou la virgule sépare deux éléments d'une même ligne, les points virgules
séparent les éléments de lignes distinctes.
>> A = [ 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 ]
Les éléments d'une matrice peuvent être n'importe quelle expression de Matlab :
>> x = [ -1.3, sqrt(3), (1+2+3)*4/5 ]
x = -1.3000 1.7321 4.8000
Pour calculer la transposée d’un vecteur x ou d’une matrice A , il faut
écrire x1 = x’
A1 = A’
Les éléments d'une matrice peuvent ensuite être référencés par leurs indices, on utilise alors
des parenthèses et non des crochets. Le mot-clé end peut être utilisé en indice pour signifier
le dernier élément.
On peut effectuer les opérations d’addition, de soustraction, de multiplication sur les
vecteurs et les matrices, s’ils ont bien sûr les dimensions adéquates, en utilisant les symboles
+, -, * . Le tableau suivant donne quelques fonctions de base pour le calcul matriciel :

Commandes Desription

det calcule le déterminant d’une matrice

trace calcule la trace d’une matrice

inv calcule l’inverse d’une matrice

size détermine la taille d’une matrice

eig permet d’obtenir les valeurs propres et les vecteurs propres d’une matrice

rank calcule le rang d’une matrice

length détermine la longueur d’un vecteur

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
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 M 2 
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)
II.4 Les fonctions arithmétiques
abs : module, sqrt : racine carrée, real : partie réelle, imag : partie imaginaire, angle : la phase,
conj : conjugue.
rem : reste de la division entière, ceil : quotient de la division entière + 1, round: quotient de
la division euclidienne , exp, log, log10.

II.5 L'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.

II.6 Affichage alphanumérique


On peut afficher des chaînes de caractères dans la fenêtre de commande :
>> message = 'bienvenue sur Matlab';
>> disp(message)
Les fonctions sprintf et fprintf existent également (même syntaxe qu'en langage C).
>> fprintf('pi vaut %f\n',pi)
pi vaut 3.141593.
On peut aussi demander des valeurs à l'utilisateur :
>> rep = input ('Nombre d'itération de l'algorithme : ');
Matlab affichera la chaîne de caractère entrée en paramètre et attendra une réponse de
l'utilisateur.

II.7 Affichages graphiques de courbes


Matlab permet un grand nombre de types d'affichage 1D et 2D, seuls les plus courant seront
décrits ici. La commande plot permet l'affichage d'une courbe 1D :
Exemple : On veut tracer la fonction y  sin(t) entre   et  . Matlab ne peut
pas calculer sin(t) pour tous les points entre   et  (il y en a une infinité). Il
faut choisir un nombre fini de points entre   et  . On peut utiliser la
commande linspace.
t=linspace(-pi,pi,100); (Cette fonction choisit 100 points régulièrement
espacés entre -pi et pi)
On peut aussi définir t de la façon suivante:
t=-pi:0.1:pi; ( cette définition crée un vecteur ligne dont le premier élément est
-pi et les points sont espacés de 0.1, 0.1 est l'incrément)
On calcule ensuite le vecteur y:
y=sin(t);
puis on trace la courbe:
plot(t,y)
On peut tracer une courbe en semilog ou en log avec les fonctions semilogx, semilogy et
loglog. On peut ajouter un titre aux figures ainsi que des labels aux axes avec les commandes
title, xlabel, ylabel:
>> title('Courbe y = sinus(t)')
>> xlabel('t'); ylabel('y')

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. C'est beaucoup plus simple.
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

trait continu ---

pointillé :

tiret point --

tirets --

 Type de Marqeur
Par défaut, Matlab ne met aucun marqueur

Type de marqueur symbole

plus + +

cercle o

astérix *

point .

croix x

carré s

diamant d

triangles ^ , v, > , <

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)
Exemple1:
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.

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 peut aussi utiliser 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.
Exemple2 :
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');

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

II.10 Création du Fichier .m


Les fichiers .m permettent le sauvegarde d’un ensemble de commandes et leur
exécution. Ils permettent d’écrire et de sauvegarder des fonctions.

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 sunisoidale de periode%i de longueur%i’,per,long)

Vous aimerez peut-être aussi