Matlab
Table des matières
- Préambule à Matlab
- Introduction
- Graphiques
- Programmation
- Entrées et sorties
- Introduction GUIDE
- Boîtes d'outils
Préambule
Le manuel Matlab permet à
l'étudiant d'obtenir des explications de base sur le fonctionnement général
de Matlab. À l'aide de ce document, l'étudiant pourra facilement
utiliser les fonctions de Matlab.
En premier lieu, le manuel introduit
des notions de base de Matlab et surtout de la syntaxe à adopter pour
l'utilisation du logiciel. Deuxièmement, le présent document permettra
à l'étudiant de se servir des fonctions de base du logiciel pour
obtenir des graphiques et autres représentation. Par la suite, on traite
de la programmation propre à Matlab et de la syntaxe de celle-ci. Finalement,
on présente une introduction aux interfaces utilisateurs sous Matlab
et présente l'outil GUIDE.
Introduction
Démarrage
Pour démarrer Matlab, il suffit d'aller dans le menu Démarrer, Programmes, Génie, Matlab Ensuite, il est préférable de choisir le dossier dans lequel on veut travailler en entrant le chemin dans le menu Current Directory.
Environnement
L'environnement Matlab ressemble à celui-ci :
Command Window : Cette fenêtre permet d'entrer des commandes Matlab, démarrer des fonctions et d'utiliser des fichiers M.
Workspace : Permet de visualiser toutes les variables qui ont été initialisées jusqu'à maintenant. Pour y accéder il suffit de cliquer sur l'onglet Workspace. Ce menu permet aussi de modifier les valeurs des variables en double cliquant sur celles-ci.
Current Directory : Fenêtre permettant de changer le dossier actuel
et de démarrer un fichier quelconque avec l'outil approprié. Par
exemple, si on double clique sur un fichier M il s'exécutera aussitôt.
Accéder à l'aide
L'accès à celle-ci ce fait en démarrant Matlab et en tappant une des commandes suivantes dans la fenêtre de commande.
- help -> donne de l'aide sur une fonction ou un toolkit (help help)
- helpdesk -> documentation en hypertexte (requiert Internet Explorer ou Netscape ou autre)
- helpwin -> aide en ligne dans une fenêtre séparée
- lookfor -> recherche d'un mot clé
- which -> localise fonctions et fichiers
- what -> liste des fichiers matlab dans le répertoire courant
- exist -> vérifie si une fonction ou une variable existe dans le workspace
- who, whos -> liste des variables dans le workspace
Opérations de bases
Variables
Pour initialiser une variable utiliser la syntaxe suivante :
>>B=2
Ce qui donne comme réponse de Matlab :
B =
2
N.B. Si on ne veut pas afficher la réponse, il suffit d'ajouter " ; " à la fin de la commande. Cette variable sera stockée dans Matlab sous la forme d'une matrice 1 X 1. Matlab permet un maximum de 31 caractères pour le nom d'une variable. Dans le cas où la réponse n'est pas assignée à une variable, elle sera stockée dans la variable ans.
Nombres
Les nombres sont représentés sous la forme décimale précédée du signe. Les nombres imaginaires peuvent aussi bien utiliser j que i comme suffixe. Les grands nombres décimaux sont représentés en notation scientifique sous la forme AeB pour représenter A*10^B.
Par exemple 3 X 10 ^(-12):
>>3e-12
ans =
3.0000e-012
Le nombres ont une précision d'environ 16 chiffres et une valeur absolue maximale et minimale de 10^-308 et 10^308.
Constantes
Matlab contient quelques constantes prédéfinies:
pi | 3.14159265 |
---|---|
i | unité imaginaire |
j | unité imaginaire |
eps | Précision du type à virgule flottante |
realmin | Valeur minimale à virgule flottante |
realmax | Valeur maximale à virgule flottante |
Inf | Infini (réponse donnée à une division par zéro) |
NaN | Nombre invalide (Not-a-Number, réponse donnée à une division 0/0 ou Inf-Inf par exemple) |
Attention : Les noms des constantes ne sont pas réservés donc il est possible de les écraser. Pour retrouver la valeur initiale d'une constante prédéfinie entrer la commande : clear eps;
Cellules (cells)
Les cellules se présente sous la forme d'une liste et il est possible d'en créer avec la commande A={1,2,3,4}..
Fonctions
Pour avoir une liste des fonctions prédéfinies de Matlab taper : help elfun.
Exemples de fonctions : sin(), cos(), sqrt(), abs(), exp().
Les fonctions scalaires, c'est-à-dire celles qui sont appelées à être utilisées sur des scalaires, peuvent être aussi appliquées sur des matrices. La réponse résultante sera cependant une matrice à laquelle on aura appliquée la fonction sur tous les éléments.
Exemple :
>> A=[1 -2 -4;6 -7 8]
A =
1 -2 -4
6 -7 8>> abs(A)
ans =
1 2 4
6 7 8
Principaux Opérateurs
+ | Addition |
---|---|
- | Soustraction |
* | Multiplication |
/ | Division (2/3=0.6667) |
\ | Division par la gauche (2\3 = 1.5) |
^ | Puissance |
() | Opérateur parenthèse (Spécifie l'ordre d'évaluation) |
Exemple de calcul :
>>D=(A+B)^C+A*C/B
Opérateurs relationnelles
< | Inférieur |
---|---|
> | Supérieur |
<= | Inférieur ou égal |
>= | Supérieur ou égal |
= = | Égal |
~= | Différent de |
Opérateurs logiques
& | Et |
---|---|
| | Ou |
~ | Non |
xor | Ou exclusif |
Matrice et vecteurs
Introduction
Dans Matlab, les variables sont représentées sous forme de matrices, d'où le nom Matlab ou MatrixLaboratory. Il y a cependant deux types spéciaux de matrices : les matrice 1X1 (scalaire) et les matrice 1XN ou NX1 (vecteurs). Ces deux types spéciaux sont traités différemment par Matlab.
Syntaxe
Pour définir une matrice il faut entrer chaque nombre séparé par des espaces, un à la suite de l'autre, et séparer les lignes par un point-virgule, le tout entre crochets.
Exemple :
>>A = [1 2 3;4 5 6;7 8 9]
L'exécution de cette commande donne une matrice qui est aussitôt affichée.
A =
1 2 3
4 5 6
7 8 9
La même technique s'applique pour les vecteurs. Pour créer un vecteur ligne :
>>L=[1 2 3];
et le vecteur colonne :
>>C=[1;2;3];
La matrice et les vecteurs sont aussitôt ajoutés dans la fenêtre Workspace, il est alors possible de les modifier en double cliquant sur leur icône.
Pour accéder à un élément de la matrice, il faut
entrer le nom de la variable suivi du numéro de ligne et de colonne entre
parenthèses, séparés d'une virgule. Ex : A(2,3) permet
d'accéder à l'élément de la deuxième ligne
et de la troisième colonne de la matrice A.
Opérateurs matriciels
Dans Matlab il y a plusieurs opérateurs :
inv(A) | Matrice inverse de A |
---|---|
sum(A) | Somme des colonnes de A (réponse sous la forme d'un vecteur ligne). |
diag(A) | Sort les élément de la diagonale sous la forme d'un vecteur colonne. |
.+ | Addition élément à élément d'une matrice |
.- | Soustraction élément à élément d'une matrice |
.* | Multiplication élément à élément d'une matrice |
./ |
Division élément à élément d'une matrice |
.\ | Division élément à élément d'une matrice |
/ | Division matricielle (A/B équivaut à A*inv(B)) |
\ |
Division par la gauche (A\B équivaut à inv(A)*B) |
.^ | Puissance élément à élément d'une matrice |
.' |
Transposée |
' | Transposée conjuguée complexe |
Opérateur " : "
Pour créer un vecteur ou une matrice, il est possible d'utiliser l'opérateur " : ". Cet opérateur permet de construire une suite de nombre stockée sous la forme d'un vecteur.
Exemple :
>>A=[1:5]
donne :
A =
1 2 3 4 5
Il est possible aussi de spécifier un pas différent de 1.
>>B=[10:-2:-10]
ce qui donne :
B =
10 8 6 4 2 0 -2 -4 -6 -8 -10
L'opérateur " : " est aussi applicable à l'accès aux matrices. Il est possible de choisir une partie de la matrice en utilisant, par exemple :
A(2 :6,5)
afin d'accéder aux éléments 2 ,3, 4, 5 et 6 de la colonne 5 de la matrice A qui sont temporairement copiés dans un vecteur de taille 5.
Graphiques
Tracer une courbe
Pour tracer un courbe on doit utiliser la fonction plot qui peut être utilisée avec en paramètre (entre parenthèses) un ou plusieurs éléments. La manière la plus simple de l'utiliser est de créer un vecteur v que l'on passe en paramètre à la fonction plot. Ceci a pour résultat la création d'un graphique de v en fonction de l'index dans le tableau.
Exemple :
>> v=[1 4 9 16 25 36 49 64 81 100];
>> plot(v)
donne un graphique comme celui-ci :
L'utilisation de l'opérateur " : " pourrait être utile dans de tel cas. En effet,
>> X=0:0.1:10;
>> Y=sin(X);
>> plot(X,Y)
donne la courbe suivante :
Réels et imaginaires
La fonction plot permet aussi de tracer une courbe dans le plan complexe en entrant une valeur complexe (ou un vecteur de valeurs complexes) en paramètre. Par exemple, si W est un nombre complexe:
>>plot(W)
équivaut à :
>> plot(real(W),imag(W))
Courbes multiples
Les graphiques sous Matlab nous permettent de tracer simultanément plusieurs courbes, en utilisant plusieurs paramètres xi et yi.
Exemple :
>> x1=[1 2];
>> y1=[1 2];
>> x2=[2 3];
>> y2=[2 1];
>> plot(x1,y1,x2,y2)
donne un graphique comme suit :
De plus, il est possible par la suite d'ajouter une autre courbe à un graphique existant en utilisant la commande suivante :
>> hold on
>> plot(x,-cos(x))
>> hold off
La commande hold permet de ne pas écraser la figure actuelle par une nouvelle figure en conservant la figure actuelle ouverte.
Graphiques multiples
Normalement, les graphiques sont tracés dans la figure active. Une autre possibilité s'offre cependant à nous : activer plusieurs graphiques dans la même fenêtre. Cet technique permet de mieux visualiser plusieurs résultats à la fois. Pour y arriver on utilise la fonction subplot :
>> X=1:0.1:5;
>> Y=sin(X);
>> Z=cos(X);
>> W=X.^2;
>> V=2.*X;
>> subplot(2,2,1);plot(X,Y);
>> subplot(2,2,2);plot(X,Z);
>> subplot(2,2,3);plot(X,W);
>> subplot(2,2,4);plot(X,V);
Les deux premiers paramètres de la commande subplot définissent une matrice de graphiques dans la fenêtre " figure ". Pour accéder à chacun des graphiques on fait varier la valeur du paramètre 3 de 1 à n*m où n et m sont les paramètres 1 et 2 de la fonction.
Il est possible aussi de spécifier la figure à activer en entrant la commande figure(n) si la figure est déjà existante et figure pour créer une nouvelle fenêtre et la sélectionner comme figure active. Cette commande permet à l'usager d'avoir plusieurs fenêtre de figure ouverte à la fois et permet aussi de ne pas écraser les figures déjà tracées par les nouveaux graphiques à produire.
Édition
Titres et étiquettes
Les principales fonctions d'édition des graphiques se résument à :
title('titre')
Pour afficher le titre xlabel('étiquette')
Pour assigner une étiquette à l'axe des x ylabel('étiquette')
Pour assigner une étiquette à l'axe des y text(x,y,'texte à ajouter') Pour afficher le texte à la coordonné (x,y) N.B. En entrant la chaîne " \pi " on obtient le symbole de la lettre grec pi, " \leq " le signe plus petit ou égal, " \it " avant une chaîne permet d'afficher la chaîne en italique...
Les axes
Lors de la création d'un graphique il est possible de spécifier les limites des axes x, y et z. La fonction axis permet de spécifier les limites des axes x,y (et même z) en donnant un vecteur de paramètres.
axis([xmin xmax ymin ymax])
De même, pour les graphiques à trois dimensions:
axis([xmin xmax ymin ymax zmin zmax])
Matlab contient aussi des fonctions spéciales permettant d'ajuster les axes à une figure carrée :
axis square
d'ajuster les axes à une même échelle.
axis equal
et remettre les axes à leurs valeurs calculées automatiquement :
axis auto normal
Les fonctions suivantes permettent d'activer la visibilité des axes et
de la grille :
axis on, axis off, grid on, grid off
Styles et couleurs
Pour différencier les courbes d'un graphique, il est possible de changer la couleur, le style des marqueurs et le style de courbe. Pour assigner les styles on utilise la fonction plot en ajoutant en paramètre la couleur et le style du marqueur. La commande suivante crée une courbe y=f(x) de couleur cyan et des marqueurs de type +;
>>plot(x,y,'c','+');
Les couleurs possibles sont :
'c' | Cyan |
---|---|
'm' | Magenta |
'y' | Jaune |
'r' | Rouge |
'g' | Vert |
'b' | Bleu |
'w' | Blanc |
'n' | Noir |
Les styles de courbes:
'-' | Ligne pleine |
---|---|
'--' | Ligne tiretée |
':' | Ligne pointillée |
'none' | Aucune ligne |
Et les types de marqueurs :
'+' | Marqueur de type croix |
---|---|
'o' | Marqueur rond |
'*' | Marqueur en étoile |
'x' | Marqueur de type X |
's' | Marqueur carrés |
'd' | Marqueur losange |
'^' | Marqueur triangulaire vers le haut |
'v' | Marqueur triangulaire vers le bas |
'>' | Marqueur triangulaire vers la droite |
'<' | Marqueur triangulaire vers la gauche |
'p' | Marqueur pentagonal |
'h' | Marqueur hexagonal |
'none' | Aucun marqueur |
Menu d'édition
Lorsqu'une figure est ouverte, il est possible d'ajouter les valeurs de titre et d'étiquette des axes dans le menu Insert de la fenêtre de figure. Il est possible aussi d'ajouter des flèches pour pointer des endroits importants du graphique et du texte explicatif n'importe où sur le graphique.
Le menu Figure Properties du menu Edit permet aussi de
modifier les caractéristiques de la figure.
Programmation
Introduction
Lorsqu'un problème devient assez complexe et que les calculs mathématiques sont plus compliqués ou répétitifs, il est préférable d'utiliser la programmation Matlab. Nous présentons les outils de base de programmation sous Matlab.
L'utilisation des boucles et autres structures conditionnelles est sensiblement la même que dans les langages de programmation moderne. Il est même possible de créer des structures de données personnalisées.
La programmation peut être faite directement dans la ligne de commande, mais la manière la plus efficace est de construire un fichier M qui exécute une fonction précise ou une séquence précise de calculs successifs.
Fichier M
Les fichiers M (M-File) sont des fichiers permettant de construire des scripts de commandes, c'est-à-dire qu'elles sont exécutées sans aucune entrée en paramètre ou alors de créer des fonctions auxquelles on passe un ou plusieurs paramètres sur lesquelles on désire faire un traitement et qui peuvent comporter des sorties.
Pour ouvrir un nouveau fichier M il suffit d'aller dans le menu File, New et de sélectionner M-File.
Scripts
Les scripts sont des fichiers M qui ne possèdent pas d'entrées ni de sorties. C'est la manière la plus simple de construire un fichier M. Cette méthode permet d'exécuter plusieurs fois la même suite de calculs rapidement.
Un fait important à mentionner est que toutes les variables créées lors de l'exécution d'un script (ou toute variable modifiée à l'intérieur du script) sont créée (ou modifiée) dans l'espace de travail (Workspace de Matlab). Voici un exemple de script qui affiche plusieurs courbes polaires (le symbole " % " permet de commenter une ligne du programme. Tout le texte tapé après celui-ci sera ignoré par l'interpréteur) :
% An M-file script to produce % Comment lines
% "flower petal" plots
theta = -pi:0.01:pi; % Computations
rho(1,:) = 2*sin(5*theta).^2;
rho(2,:) = cos(10*theta).^3;
rho(3,:) = sin(theta).^2;
rho(4,:) = 5*cos(3.5*theta).^3;
for k = 1:4
polar(theta,rho(k,:)) % Graphics output
pause
end
Pour utiliser ce programme, il suffit de le taper dans la fenêtre de création de fichier M et ensuite le sauvegarder dans le dossier courant (Current Diretory). Pour l'exécuter, il suffit seulement de taper son nom dans la fenêtre Command Window ou de double cliquer sur l'icône correspondant dans la fenêtre Current Directory.
Fonctions
Les fonctions sont aussi des fichiers M, mais, contrairement aux scripts, elles permettent l'utilisation de paramètres et le retour de réponses en sortie. Une autre différence majeure est que chaque fonction possède son propre espace de travail (Workspace) et ainsi toute variable créée lors de l'exécution de la fonction n'est pas ajoutée à l'espace de travail actuel.
Un fichier M d'une fonction doit toujours commencer, par exemple, par la commande function y = nomDeLaFonction(paramètre1,paramètre2,...). Voici un exemple de fonction :
function y = average(x)
% AVERAGE Mean of vector elements.
% AVERAGE(X), where X is a vector, is the mean of vector elements.
% Non-vector input results in an error.
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error('Input must be a vector')
end
y = sum(x)/length(x); % Actual computation
Pour permettre son utilisation, il faut la taper ce code dans un nouveau fichier M et le sauvegarder sous le même nom (dans ce cas-ci average.m). Ensuite il est possible d'utiliser la fonction en tapant variable=nomDeLaFonction(valeur du paramètre) (par exemple y=average(3)) ou la variable est l'endroit où la réponse doit être stockée.
Dans le cas où il y a plusieurs éléments de sortie il est possible de les réunir sous la forme d'un vecteur : function [x,y,z] = sphere(theta,phi,rho).
Si aucune réponse n'est a fournir il suffit d'utiliser la syntaxe : function tracer(x,y).
Structure conditionnelle
Les structures conditionnelles sont utilisées pratiquement de la même manière que dans les langages modernes de programmation (C++, Java,...).
if, else, elseif
La syntaxe à utiliser pour le if est la suivante :
if condition 1
commande 1
elseif condition 2
commande 2
else
commande 3
end
Si la condition 1 est Vrai (égale à 1) alors la commande 1 est exécutée sinon, si la condition 2 est Vrai, la commande 2 est exécutée et ensuite si la condition 2 est Faux la commande 3 est exécutée. Les parties elseif et else sont facultatives. Il est très important de ne pas oublier le mot-clé end.
Un exemple de condition serait a<1 ou (B>=2 & C<4).
Switch - case
La commande switch permet de transformer une longue commande avec plusieurs if-elseif en une commande beaucoup plus simple d'utilisation. La commande switch permet d'utiliser une expression comme condition. La commande suivante :
switch expression
case valeur1
commande1
case valeur2
commande2
.
.
.
otherwise
commande n
end
équivaut à la commande :
if expresion==valeur1
commande1
elseif expression==valeur2
commande2
.
.
.
else
commande n
end
On voit que la première méthode est beaucoup plus simple à écrire et à comprendre. Contrairement à la programmation en C, la commande switch ne nécessite pas l'instruction break et la commande otherwise est facultative.
N.B. Les commandes peuvent comporter plus d'une ligne d'instructions.
Boucles while
La boucle while permet d'exécuter plusieurs fois une (ou plusieurs) commande(s) tant que la condition est Vrai (égale à 1). Cette commande est utilisée de paire avec la commande break. Break permet de sortir de la boucle à tout moment. Voici la syntaxe de la commande while :
while condition
commande
end
La commande sera donc exécutée tant que la condition sera Vrai.
Boucles for
La boucle for permet d'exécuter un nombre précis de fois une commande. Voici la syntaxe à utiliser :
for index=début :incrément :end
commande
end
Par exemple, si on veut exécuter la commande A=A+B 10 fois :
for i=1 :10
A=A+B ;
end
On voit donc, comme expliqué dans la section sur l'opérateur " : ", que la partie centrale, l'incrément, est facultative et que la valeur par défaut est de 1.
Il est possible aussi d'utiliser un vecteur comme indice par exemple :
A=[1 2 6 9];
B=0;
for i=A
B=i+B;
end
B
nous donne bel et bien 18 comme réponse. L'indice peut donc être une suite de nombres pris dans un vecteur.
Continue et break
Continue et break permettent d'avoir un plein contrôle sur l'exécution ou non des commandes dans une boucle for ou une boucle while. La commande break permet d'arrêter l'exécution d'une boucle quelconque, alors que continue permet à une boucle for d'arrêter la présente exécution et de passer à la suivante.
Ces deux commandes ne sont cependant pas recommandées si l'on désire
faire de la bonne programmation, et l'usage de celles-ci complique beaucoup
le déboguage de programme.
Sorties formatées
Lors de la création de fichier M il est possible d'arriver à des sorties formatées. Le formatage ce fait pratiquement de la même manière que sous le langage C en utilisant fprintf pour imprimer dans un fichier et sprintf pour imprimer sous la forme d'une chaîne de caractères.
Exemple :
sprintf('La réponse est :%e,2)
imprime :
La réponse est : 2.000000e+000
dans la fenêtre de commandes.
Pour connaître tous les types de données que l'on peut imprimer
et le caractère auquel chacun d'eux est lié, lire la rubrique
d'aide dans Matlab sur sprintf ou fprintf.
Entrées et sorties sous Matlab
Fichier de sauvegarde
Matlab utilise facilement les fichiers externes, il est possible de les manipuler en utilisant une multitude de fonctions déjà implémentées.Sauvegarder les données
Matlab permet de sauvegarder le contenu de toutes les variables utilisées, c'est-à-dire, celles qui sont présentes dans l'espace de travail (Workspace). Pour ce faire, ouvrir la fenêtre Workspace et cliquer sur l'icône Save Workspace As. Ensuite, il suffit de choisir un nom de fichier de sauvegarde et désigner le dossier de sauvegarde.
La même action peut être accomplie entrant la commande save nomDuFichier. Cette commande sauvegarde les données dans le fichier : nomDuFichier.mat. La commande save permet de spécifier les variables à sauvegarder.
Exemple :- > save reponse a b c
Sauvegarde les variables a b et c dans le fichier reponse.mat.
Cette commande accepte aussi des paramètres comme /ascii et /double pour spécifier respectivement que le fichier doit être en ascii et avec double précision.
Exemples :- save reponse.dat a b c /ascii
- save reponse2.dat a b c /ascii /double
Charger les données
Le chargement de données se fait soit en cliquant sur l'icône Load Data File de la fenêtre Workspace ou en entrant la commande load nomDuFichier. Pour utiliser cette commande il est recommandé de ne pas sauvegarder plusieurs variables en mode ascii, sinon le chargement se fera en mettant les données dans un vecteur ou une matrice.
Une fonction permet de plus de charger des valeurs d'un fichier Excel (.xls). La syntaxe est la suivante :
- A=xlsread('nomFichier.xls')
Cette commande lit le fichier nomFichier.xls et stocke la réponse dans la variable A. Les champs où la donnée est une chaîne de caractère sont représenté dans la variable pas la valeur NaN.
Formatage du fichier
Les fonctions de formatage de Matlab nous permettent de sauvegarder les données avec le formatage voulu ou même de charger des données d'un fichier non standard. La commande la plus importante à se rappeler quand on veut sauvegarder dans un fichier sous une forme spécifique est fprintf (la syntaxe est semblable à sprintf). La commande permet l'utilisation des formats suivant :
- %c Un seul caractère
- %d Notation décimale (signée)
- %e Notation exponentielle (utilise le e minuscule comme dans 3.1415e+00)
- %E Notation exponentielle (utilise le E majuscule comme dans 3.1415E+00)
- %f Notation à point fixe
- %g Même notation que %e mais plus compacte
- %G Même notation que %E mais plus compacte
- %I Notation décimale (signée)
- %o Notation octale (non signée)
- %s String of characters
- %u Decimal notation (unsigned)
- %x Notation hexadécimale (avec les lettres [a-f] en minuscule)
- %X Notation hexadécimale (avec les lettres [A-F] en majuscule)
La commande fprintf doit être utiliser absolument de pairs avec les commandes d'ouverture de fichier et de fermeture de fichier, soit, fopen et fclose.
Exemple (ficher M):- A=[121,56,78];
- refFichier=fopen('test.txt','w');%Le 'w' indique que le fichier est en écriture ('r' pour la lecture)
- fprintf(refFichier,'La variable A a comme premier élément:%g\n',A(1));
- fprintf(refFichier,'La variable A a comme deuxieme élément:%g\n',A(2));
- fprintf(refFichier,'La variable A a comme troisieme élément:%g\n',A(3));
- fclose(refFichier);
Le résultat est que le fichier test.txt (qui devait avoir été créé d'abord) contient maintenant les trois lignes spécifiées avec %g remplacé par les valeurs de variables spécifiées.
Fonctions de transfert
Le logiciel contient une notation permettant de créer des objets de type fonction de transfert. L'utilisation de celle-ci ce fait en spécifiant le numérateur et le dénominateur avec la notation vectorielle, c'est-à-dire qu'on n'utilise pas le s la position dans le vecteur spécifie la puissance du multiplicateur s.
Exemple :- FoncTrans=tf([1 0],[2 0 45]);
Nom de la fonction | Description |
---|---|
impulse(sys) | Trace la réponse impulsionnelle de la fonction de transfert sys |
step(sys) | Trace la réponse à un échellon de la fonction de transfert sys |
bode(sys) | Trace le diagramme de Bode de la fonction de transfert sys |
nichols(sys) | Trace l'abaque de Nichols de la fonction de transfert sys |
nyquist(sys) | Trace le lieu de Nyquist de la fonction de transfert sys |
rlocus(sys) | Trace le lieu de Evans de la fonction de transfert sys |
rlocfind(sys) | Permet, à l'aide de la souris, de déterminer la valeur du gain k pour un pôle donné |
[num,den]=tfdata(sys) | Retourne une cellule num contenant le numérateur et une cellule den contenant le dénominateur de la fonction de transfert sys. |
GUIDE
Dans l'environnement Matlab il existe un outil de création d'interfaces, appelé GUIDE, permettant de gérer graphiquement les entrées/sorties d'un programme de calcul. GUIDE est l'acronyme de Graphical User Interface Development Environnement ou Environnement Graphique de Développement d'Interface Usager. Cette section explique les grandes lignes de la création d'interface usager sous l'outil GUIDE.
Comment démarrer GUIDE
Pour démarrer GUIDE et commencer à construire une interface, on doit ouvrir l'onglet LaunchPad et ouvrir l'arborescence Matlab pour choisir l'icône GUIDE (GUI Builder).
L'outil est aussi accessible en entrant la commande guide dans la fenêtre
de commande.
Environnement
L'environnement GUIDE permet de construire une interface graphique en ajoutant des éléments d'interaction (boutons, boîtes de textes, etc.) en utilisant la fenêtre de l'éditeur de disposition d'interface. Celle-ci se résume à quelques menu et barre d'outils. Voici les plus important :
Align Object: | Permet d'aligner deux objets préalablement sélectionnés en spécifiant ou non la distance à respecter entre les deux objets. |
Menu Editor: | Permet d'ajouter des menus (du type File, Edit,...) dans l'interface et d'assigner à chaque menu ou sous-menu une action à accomplir. Pour assigner une action on définit un callback (nous y reviendrons plus tard dans le manuel). |
Figure activation: | Ce bouton permet de démarrer l'interface qui est en conception et de visualiser le résultat. |
Property inspector: | Permet de modifier les propriétés de l'objet sélectionné. |
Object browser: | Permet de naviguer à travers les différents objets qui ont été créés jusqu'à maintenant. |
Définir le callback d'un objet de l'interface
Dans la fenêtre du Layout Editor (fenêtre de travail de GUIDE), appuyer sur le bouton de droite de la souris sur l'objet pour afficher le menu contextuel. Choisir View Callbacks, Callbacks. Ensuite il suffit d'ajouter le code voulu dans le fichier M qui est affiché.
Changer l'étiquette (tag) d'un objet
Sélectionner l'objet, cliquer sur Property Inspector, aller au champ Tag et modifier la valeur inscrite. Tous les autres champs peuvent aussi être modifiés pour mieux répondre aux besoins de l'utilisateur.
Boutons et contrôles
Push Buttons | Les boutons poussoir sont des boutons de type ok, cancel.
Ils ne retiennent aucun état et ne retournent pas de valeur. |
Toggle Buttons | Les touches à bascule sont semblables aux boutons poussoirs,
lors de leur pression une action est exécutée (callback).
Cependant, elles possèdent un état sous forme binaire, Vrai
ou Faux. Il est donc nécessaire à l'intérieur du "
callback " de prendre en compte cet état. |
Checkboxes | Les case à cocher permettent d'assigner un état
à vrai ou faux. Lors de leur activation il est nécessaire
de vérifier l'état, un peu à la manière d'une
touche à bascule. |
Radio Buttons | Les cases d'option sont un peu comme les cases à cocher.
La différence est que celles-ci sont mutuellement exclusives et elles
doivent être assignées en groupe (virtuellement). Cette assignation
doit être fait par le développeur à l'intérieur
de chacun des " callbacks " de chaque case d'options du même
groupe virtuel. |
Edit Text | Les boites de texte sont utilisées afin d'entrer et
de modifier des chaînes de caractères. Les propriétés
de la boîte contiennent le texte entré par l'usager et le "
callback " est appelé lorsque le texte est modifié.Pour
accéder au texte à l'intérieur d'un " callback
" utiliser la fonction get de cette manière :user_string = get(h,'string'); |
Static Text | Les boîtes de texte statique ne peuvent pas être modifiées dynamiquement et doivent être initialisées à la conception. Aucun callback n'est associé à celles-ci. |
Sliders | Les boutons glissoirs permettent de sélectionner un
nombre à l'intérieur d'un intervalle prédéfini
en faisant glisser le bouton de gauche à droite ou de bas en haut.
Le bouton peut être placé à la vertical ou à
l'horizontal. L'emplacement du bouton détermine une valeur. |
Frames | Les cadres sont des sections de l'interface où l'on
peut insérer de nouveaux objets. Il est possible d'insérer
n'importe quel objet de contrôle dans un cadre à l'exception
du type axes. |
Listboxes | Les boîtes de listes contiennent une liste d'items possibles
que l'usager peut sélectionner. La liste est créée
à partir du champ String, chaque ligne correspond à un élément
de la liste. Celle-ci permet la sélection multiple. |
Popup Menus | Les menus permettent de sélectionner une chaîne
au même titre que les boîtes de listes. Cependant un seul sélection
est possible. |
Axes | Les axes permettent d'afficher une image ou un graphique. Il est possible de modifier l'apparence et le comportement des axes dans les propriétés. |
Boîtes de dialogue
Les boîtes de dialogue sont de type différent mais leur utilisation est sensiblement la même d'une boîte à l'autre. Voici les sept types de dialogues de l'environnement Matlab :
- errordlg : Dialogue d'erreur
- helpdlg : Dialogue d'aide
- msgbox : Dialogue de message
- warndlg : Dialogue d'avertissement
- inputdlg : Dialogue d'insertion
- questdlg : Dialogue de question
- uigetfile : Dialogue d'entré de ficher
Exemple d'interface à créer
Cette interface contient deux boîtes d'édition de texte (textx et textn), un bouton (pushbutton1) et une figure. Pour faire fonctionner le code du fichier M, il suffit d'ajouter le code suivant dans le callback du pushbouton1:
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)
y = str2double(get(handles.textx,'String'));
n = str2double(get(handles.textn,'String'));
if isnan(n)
errordlg('Vous devez entrer un nombre','Valeur non valide - Bad Input','modal')
else
x=0:0.1:n;
z=x.^y;
plot(x,z,'b');
handles.y = y;
guidata(h,handles) % Sauvegardes les données dans le handles du programme
end
La fonction get permet de retrouver l'élément entrée dans le champ String de la boite dont l'étiquette est textx (ou textn). Errordlg affiche un dialogue d'erreur.
Boîtes d'outils
Matlab permet l'ajout et l'utilisation d'un grand nombre d'outils externes, appelés Toolbox ou boîte d'outils. Celles-ci facilitent l'utilisation de fonctions déjà implémentées pour des domaines précis. Voici un survol des principales boîtes d'outils accessibles.
Control system
La boîte d'outils système de contrôle est une collection d'algorithme permettant la conception, l'analyse et la modélisation de systèmes de contrôle. Les éléments d'interface ajoutés simplifient beaucoup la tâche de l'ingénieur.
Partial differential equation
La boîte d'outils d'équation différentielles partielles offre un environnement d'étude puissant et flexible pour l'évaluation des équations différentielles partielles.
Les équations différentielles sont particulièrement utilisées, dans le domaine de l'ingénierie, dans les systèmes dynamiques et la résolution de circuits RLC.
Signal processing
La boîte d'outils traitement de signal apporte à l'utilisateur une multitude d'outils de calculs informatisés numériques. Bien sûr, elle supporte la génération de forme d'onde, la conception de filtres, l'analyse de spectre, etc.
Cet outil sera surtout utilisé, comme son nom l'indique, dans l'analyse et le traitement de signaux.
System identification
Les outils d'identification de systèmes sont utilisé afin de
construire des modèles simplifiés de systèmes complexes
à partir de données bruitées. Ils permettent de créer
des modèles mathématiques précis de systèmes dynamiques
basés sur des données d'entrées et de sorties réelles.
La boîte d'outils contient aussi une interface qui aide à l'organisation
des données et des modèles. Cet outil est particulièrement
utile pour le traitement de signal.