Edition et sauvegarde des fichiers MATLAB

Introduction au logiciel MATLAB

Méthode de travail

Edition et sauvegarde des fichiers MATLAB

Editeur PFE

Dans un premier temps, on peut se contenter d’introduire ses commandes une a` une au niveau de l’espace de travail ou elles sont interprétées directement. Cependant, par la suite, il est beaucoup plus pratique d’écrire sa séquence de commandes complète au moyen d’un éditeur, puis de sauver le tout dans un fichier avec l’extension .M. Cette séquence pourra alors etre exécutée dans MAT-LAB par simple introduction du nom du fichier. Sur les stations du laboratoire d’Automatique (salle C05), ”l’éditeur pour programmeur PFE” est installé et son utilisation est recommandée. On l’appelle soit par son icone a` partir du gestionnaire de programmes, soit directement a` partir de MATLAB en sélectionnant File-New-M-file.
De cette facon, l’utilisateur peut rajouter ses propres fonctions et se créer rapidement et facilement toute une panoplie d’outils (par exemple, ”synthèse automatique d’un régulateur PID par la méthode de Bode”). Les sources de MATLAB étant disponibles pour la plupart, ce n’est pas un problème que de modifier a` sa guise l’une ou l’autre des routines, par exemple dans de but d’obtenir un tracé particulier du lieu de Bode.

Aide en ligne

En plus de l’aide de Windows, une aide en ligne est disponible pour chaque commande de MATLAB. Il suffit d’introduire : help nom de commande

Création de fichiers de commandes et de fonctions utilisateur

Fichiers de commande (”script files”)

Un fichier de commande (script file) est un fichier ASCII d’extension .M contenant une suite de commandes MATLAB. Il etre exécut directement en tapant simplement son nom dans l’espace de travail MATLAB.

Fonctions

De nouvelles fonctions peuvent ˆetre ajoutées a` MATLAB par l’utilisateur. Il suffit de créer un fichier de nom nom de fonction.M contenant les commandes a` exécuter et dont l’entˆete a le format :
function [liste des arguments de sortie] = nom de fonction(liste des arguments d’entrée)
Exemple La fonction suivante convertit la grandeur d’entrée x en débibels et la retourne dans y.
function [ y ] = l i n 2 d b ( x ) y = 20∗ log10 ( x ) ;
Le fichier correspondant est sauvé sous le nom lin2db.m, dans un répertoire figurant dans le chemin de recherche de MATLAB.
Contrairement aux fichiers de commande, les variables intervenant dans les fonctions sont locales.
Les commentaires documentant les fonctions peuvent ˆetre insérés en les faisant précéder du symbole %.
Détail pratique intéressant, les premières lignes d’un fichier nom de fichier.m précédées du symbole % sont affichées lorsque l’on tape :
help nom de fichier
Ceci permet de fournir une aide en ligne pour chaque fonction utilisateur nouvellement créée. Pour la fonction lin2db, on documentera par exemple comme suit :
function [ y ] = l i n 2 d b ( x )
%f u n c t i o n [ y ] = l i n 2 d b ( x )
%c o n v e r s i o n en dB
y = 20∗ log10 ( x ) ;
En tapant help lin2db, on obtiendra alors :

Sauvegarde de données sur disque

Les variables définies dans l’espace de travail MATLAB peuvent ˆetre sauve-gardées dans des fichiers ASCII par la commande :
save chemin\nom_de_fichier.dat nom_de_variable -ascii
Un tel fichier ASCII peut ˆetre ultérieurement relu soit par MATLAB (fonction load) soit par d’autres programmes (Excel, Word, etc). Dans le premier cas, il est cependant conseill´ de sauver directement la variable dans un fichier binaire *.MAT de format spécifique a` MATLAB :
save chemin\nom_de_fichier nom_de_variable
La fenˆetre graphique peut ˆetre soit imprimée directement, soit sauvée dans un fichier, lequel peut ˆetre intégr´ dans un document (menu importation d’image) ou imprimé ultérieurement. Signalons, parmi les différents formats de fichiers dis-ponibles, le format PostScript qui fournit une qualité irréprochable. Par exemple, le sauvetage de la fenˆetre graphique courante s’effectue par :
print chemin\ nom_de_fichier.eps -deps
pour le format PostScript et par print chemin\ nom_de_fichier.wmf -dmeta
pour le format Windows Meta File. Auparavant, il faut prendre garde a` ce que la fenˆetre graphique courante soit bien celle que l’on souhaite imprimer en tapant figure ( n u m e r o d e l a f e n e t r e a i m p r i m e r )
Attention : la commande print est très rudimentaire et ne donne aucun message en cas d’échec ou si le fichier existe déj`a !
La copie de la fenˆetre graphique est également possible par l’intermédiaire du clipboard, ce qui permet par exemple de sauver la fenˆetre dans WordPerfect, Word ou PowerPoint (choisir le format WMF plutˆot que le bitmap).

Répertoires de sauvegarde : D :\USERS et compte EINET

Il faut indiquer le chemin correspondant a` l’endroit o`u MATLAB trouvera le fichier de commande ou la fonction écrite par l’utilisateur. Dans le cas de la version MATLAB installée sur le réseau du laboratoire d’Automatique de l’eivd, il suffit a` l’utilisateur de sauver ses propres fonctions dans le répertoire : D :\USERS qui est dans le chemin de recherche de MATLAB. Le disque D : est local et les données qui s’y trouvent peuvent donc ˆetre modifiées voire carrément dis-paraˆıtre d’un cours a` l’autre. A la fin de sa session de travail, on aura donc intérˆet a` sauvegarder ses fichiers sur disquette ou son compte EINET. Le docu-ment s:\regulation\divers\connection_EINET.doc explique la manière de se connecter son disque EINET a` partir du domaine iAi.

Les bases de MATLAB

Création et calcul de vecteurs et matrices

Vecteurs
Un vecteur-ligne est introduit de la fa¸con suivante : v = [ 5 , 2 , 1 3 , 4 ]
Le vecteur v s’affiche alors a` l’écran : v= 52134
Si l’introduction est terminée par un point-virgule, on évite l’affichage du vecteur v. Un vecteur-colonne peut ˆetre introduit en rempla¸cant les virgules par des points-virgules ou des retours de chariot. L’accès aux composantes d’un vecteur s’effectue directement par des commandes du genre : v ( 3 ) ce qui donne a` l’écran : ans = 13
Si comme dans le cas présent, v(3) n’est pas affect´ a` une variable, par une commande de la forme x=v(3) , MATLAB copie d’office le résultat dans la variable système ans (answer ), alors disponible pour le calcul suivant.
Remarque Dans MATLAB, les indices des vecteurs et matrices doivent ˆetre des entiers positifs. L’indice zéro n’est donc pas plus admis que les indices négatifs.
 Matrices
Une matrice peut ˆetre construite de différentes manières :
m= [ 5 , 2 , 1 3 , 4 ; 6 , 8 , 3 , 1 0 ; 0 , 1 , 2 0 , 9 ]
et l’affichage devient :
m =
5 2134
68310
01209
ou encore, ayant défini préalablement les vecteurs-ligne v1, v2 et v3 :
v1 = [ 5 , 2 , 1 3 , 4 ] ;
v2 = [ 6 , 8 , 3 , 1 0 ] ;
v3 = [ 0 , 1 , 2 0 , 9 ] ;
m=[ v1 ; v2 ; v3 ]
L’accès a` un elément de la matrice s’effectue par :
m( 2 , 4 )
et l’on obtient :
ans =
10
Le remplacement de 2 par : (deux points) permet d’obtenir toute la colonne 4 :
m( : , 4 )
et l’écran affiche le vecteur-colonne :
ans =
4
10
9
De mˆeme, l’affichage d’une sous-matrice s’obtient par :
m( 2 : 3 , 2 : 4 )
et l’écran affiche :
ans =
8 3 1 0
1209
L’accès aux colonnes 2 et 4 de la matrice m se réalise comme suit :
m( : , [ 2 , 4 ] )
ce qui produit :
ans =
2 4
8 10
1 9
Parmi les opérations matricielles qui ont une certaine importance pratique, si-gnalons l’opérateur de transposition
m’
donnant dans le cas de l’exemple
ans =
5 6 0
2 8 1
13320
4109
et la fonction eig qui calcule les valeurs propres d’une matrice. Soit la matrice carrée 4 × 4 formée de composantes aléatoires (ici utilisation de la fonction rand)
A=rand ( 4 , 4 )
A =
0.2190 0.9347 0.0346 0.0077
0.0470 0.3835 0.0535 0.3834
0.6789 0.5194 0.5297 0.0668
0.6793 0.8310 0.6711 0.4175
Les valeurs propres (eigenvalues) sont :
eig (A)
ans =
1.4095
0 . 1 0 8 2 + 0 . 4 6 8 1 i
0 . 1 0 8 2 − 0 . 4 6 8 1 i
− 0.0763

Construction de matrices particulières

Les routines ones et zeros permettent de construire des matrices dont tous les eléments sont égaux a` 1 respectivement a` 0. Voir également eye (matrice identité), diag (matrice diagonale), linspace (vecteur dont les composantes sont espacées linéairement entre deux limites) et logspace (vecteur dont les composantes sont espacées logarithmiquement entre deux limites).

Nombres complexes

Les vecteurs et matrices peuvent avoir des composantes complexes. Les nombres complexes sont introduits comme suit :
x = a + j ∗b ;
ou
x = a + i ∗b ;
L’unité de l’axe imaginaire est donc indifféremment i ou j. Des fonctions sont prévues pour le calcul de la partie réelle (real(x)), de la partie imaginaire (imag(x)), du module (abs(x)), de l’argument (angle(x)) et du conjugué complexe (conj(x)).
3.2 Opérations sur les tableaux
On rappelle le slogan publicitaire de MATLAB, ”live is to short to spend time with for loops”, pour mentionner qu’effectivement, la majeure partie des opérations peuvent s’effectuer sans boucles de type for. Par exemple, le calcul du sinus cardinal
sinc (ϑ) = sin (ϑ)
ϑ de l’angle θ pour les valeurs de suivantes
t h e t a =linspace (−4∗ pi , 4∗ pi , 1 0 0 ) ;
soit 100 valeurs espacées linéairement entre −4π et +4π, se fait avantageusement dans MATLAB par s i n c = sin ( t h e t a ) . / t h e t a ;
o`u le point précédant l’opérateur de division indique qu’il ne s’agit pas d’une opération matricielle, mais d’une opération elément par elément sur deux ta-bleaux. Il faut donc bien faire la distinction entre par exemple le produit ma-triciel
a21 a22 • b21 b22 = a21 •• b11 + a22 •• b21 a21 •• b12 + a22 •• b22
a11 a12 b11 b12 a11 b11 + a12 b21 a11 b12 + a12 b22
et le produit, elément par elément de deux tableaux :
a21 a22 • b21 b22 = a21 •• b21 a22 •• b22
a11 a12 b11 b12 a11 b11 a12 b12
Remarque Ici, la fonction linspace a et´ utilisée, une variante étant d’écrire
t h e t a =−4∗pi : 8∗ pi / ( 1 0 0−1 ) : 4∗ pi ;

1 Introduction 
2 M´ethode de travail 
2.1 Edition et sauvegarde des fichiers MATLAB
2.1.1 Editeur PFE
2.2 Aide en ligne
2.3 Creation de fichiers de commandes et de fonctions utilisateur 
2.3.1 Fichiers de commande (”script files”)
2.3.2 Fonctions
2.4 Sauvegarde de donn´ees sur disque
2.4.1 R´epertoires de sauvegarde : D :\USERS et compte EINET
3 Les bases de MATLAB 
3.1 Cr´eation et calcul de vecteurs et matrices
3.1.1 Vecteurs
3.1.2 Matrices
3.1.3 Construction de matrices particuli`eres
3.1.4 Nombres complexes
3.2 Op´erations sur les tableaux
3.3 Repr´esentation graphique 2D
3.3.1 Exemple
4 Analyse de systemes dynamiques lineaires a l’aide de la boite a outils control systems 
4.1 Introduction de fonctions de transfert
4.1.1 Introduction sous forme polynˆomiale
4.1.2 Introduction sous forme de z´eros, pˆoles et gain (”forme d’Evans”)
4.2 Introduction de mod`eles d’´etat
4.3 Passage d’un mod`ele `a l’autre
4.4 Construction de sch´emas fonctionnels
4.4.1 Fonctions series, cloop
4.4.2 Fonction feedback
4.5 Calcul et trac´e de r´eponses de syst`emes dynamiques lin´eaires 
4.5.1 R´eponse temporelle
4.5.2 R´eponse fr´equentielle
4.6 Analyse des propri´et´es des syst`emes
4.7 Calcul affichage des marges de gain et de phase
4.8 Trac´e du lieu d’Evans
4.9 Divers
5 Les structures de controle du ”langage” MATLAB 
6 Simulation de systemes dynamiques lineaires et non-lin´eaires avec la boite a outils Simulink 
6.1 Introduction
6.2 Exemple introductif : simulation d’un systeme dynamique lineaire 
6.2.1 Mod´elisation
6.2.2 Construction du sch´ema
6.2.3 Initialisation des param`etres
6.2.4 Simulation
6.2.5 Sauvegarde des signaux puis traitement dans l’espace de travail MATLAB
6.2.6 Lancement de la simulation `a partir de MATLAB
6.3 La biblioth`eque standard
6.3.1 Sources
6.3.2 Sinks
6.3.3 Discrete
6.3.4 Linear
6.3.5 Nonlinear
6.3.6 Connections
6.4 Les S-functions de Simulink (version provisoire)
6.4.1 Conventions d’appel des S-functions
6.4.2 Exemple
6.4.3 Autres fonctionnalités de Simulink

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *