Академический Документы
Профессиональный Документы
Культура Документы
Appliqu l'automatique et
au traitement du signal
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
TABLE DES MATIERES
1. INTRODUCTION 5
1.1. Qu'est ce que Matlab ? 5
1.2. Dmarrer Matlab 5
1.3. Arrter Matlab 5
1.4. A propos des versions 5
2. MATLAB COMME INTERPRETEUR EN LIGNE 7
2.1. Premiers pas 7
Premier essai 7
Deuxime essai 7
Troisime essai 7
2.2. Un peu de mthode 8
Choisir un rpertoire de travail 8
Les expressions 8
Un peu plus sur les matrices 9
Les structures 10
3. CTRL-C CTRL-V, M-FILES, FONCTIONS : RATIONALISONS NOTRE
TRAVAIL 13
3.1. Historique 13
3.2. Copier-Coller (Ctrl-C Ctrl-V) 13
3.3. Scripts 13
3.4. Fonctions 14
3.5. Instructions et structures de contrle 15
3.6. Un peu plus sur la programmation 15
4. LES FIGURES 17
4.1. Tracer des courbes 17
Crer une figure 17
Style et couleurs des lignes 17
Superposer des courbes 18
Variables complexes 18
Ajouter des courbes une figure existante 18
Plusieurs courbes dans une mme fentre 18
www.al mohandi ss.com
www.al mohandi ss.com
Placer des titres et des commentaires 19
4.2. Un peu plus sur les graphiques 19
5. MATLAB POUR L'AUTOMATICIEN 21
5.1. Rappels 21
5.2. Les objets : description des systmes linaires 21
Fonction de transfert 22
Reprsentation d'tat 22
Passage d'une reprsentation l'autre 22
Systmes discrets 23
5.3. Analyse des systmes et simulation 23
Analyse d'un systme 23
Rponse d'un systme 23
Un outil avanc : ltiview 23
Un outil avanc : sisotool 23
Simulink 24
Introduction 24
Un exemple trs simple 24
6. MATLAB POUR LE TRAITEMENT DU SIGNAL 26
6.1. Les fonctions de base du traitement du signal 26
6.2. Les signaux numriques 26
Reprsentation des signaux 26
Signaux courants 26
Importer des signaux 27
Analyser les signaux 27
6.3. Les filtres numriques 27
La convolution de signaux 27
Filtres 28
La fonction filter 28
Rponse impulsionelle d'un filtre 28
Rponse frquentielle d'un filtre 29
Ples et zros d'un filtre 29
6.4. Les signaux et les filtres continus 29
6.5. Les outils avancs 30
REFERENCES 31
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 5
1. Introduction
1.1. Qu'est ce que Matlab ?
Matlab est un langage de programmation de haut niveau destin au calcul scientifique. On
le trouve dans les applications de :
- calcul,
- dveloppement d'algorithmes,
- modlisation et simulation,
- analyse et visualisation de donnes,
- cration de graphiques scientifiques,
- cration d'application avec interfaces utilisateurs.
Il existe un grand nombre de toolboxes, familles de fonctions tendant les fonctions de
base de Matlab un certain type de problme. On trouve ainsi des toolboxes dans les
domaines du traitement du signal, de la commande des systmes, des rseaux de neurones,
de la logique floue, des ondelettes, de la simulation, etc
1.2. Dmarrer Matlab
1. Trouvez Matlab sur votre ordinateur.
2. Dmarrez le programme. Un certain nombre de fentres apparaissent. Les plus
importante sont l'interprteur en ligne et la fentre Help. Si cette dernire n'apparat
pas, dans l'onglet Help slectionnez Matlab Help.
C'est tout ; l'aide en li gne est extrmement conviviale et permet d'acqurir tout seul la
matrise du logiciel
Ce manuel se propose tout de mme de dcrire l'utilisation du logiciel pour une utilisation
en automatique et en traitement du signal.
1.3. Arrter Matlab
Taper quit ou exit ou fermez les fentre.
1.4. A propos des versions
Le prsent manuel a t rdig avec Matlab 6.0 sous les yeux. La plupart de ce qui est crit
dans ce manuel s'applique nanmoins Matlab 5.3 et versions antrieures.
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 7
2. Matlab comme interprteur en ligne
2.1. Premiers pas
Au lancement de Matlab, une fentre s'ouvre et propose le prompt >> : on est en prsence
de l'interprteur en ligne.
Premier essai
Taper 2+2 et appuyez sur envoi. L'affichage propose alors :
>> 2+2
ans =
4
>>
Bravo : Matlab sait rsoudre des opra tions
Deuxime essai
Taper a=2 et envoi. L'affichage propose :
>> a=2
a =
2
>>
Bravo : Matlab sait manipuler des objets.
Pour travailler en silence : taper a=2; L'affichage propose :
>>a=2;
>>
Troisime essai
Taper i^2. La rponse est :
>> i^2
ans =
-1
>>
Ouf. Matlab sait manipuler des nombres complexes voire compliqus.
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 8
2.2. Un peu de mthode
Choisir un rpertoire de travail
Avant toutes choses, choisir un rpertoire de travail : c'est dans celui -ci que vous stockerez
vos fichiers personnels. Dans la barre de menu, utilisez File/Set Path
Les expressions
La programmation en Matlab consiste en l'enchanement d'expressions composes de
variables, de nombres, de oprateurs et de fonctions.
- Variables
Il n'est pas ncessaire de dclarer le type ou la dimension de s variables : Matlab choisit
selon le contexte.
Par exemple :
a=2.37
Cre la variable a de dimension 1 et lui attribue la valeur 2.37.
Autre exemple :
>> a(2)=1.5
a =
2.37 1.5
>>
reprend la variable a et modifie sa dimension : c'est maintenant un vecteur de dimension 2
dont la deuxime valeur vaut 1.5
- Nombres
Exemples de nombres :
3 -99 0.001
1.6e-20 1i -3.14j
3e5i
Les nombres ont jusqu' 16 chiffres significatifs et doivent rester entre 10
-308
et 10
+308
.
- Matrices
Exemple :
>> mamatrice=[1 2 3;4,5,6;7 8,9]
mamatrice =
1 2 3
4 5 6
7 8 9
>>
Les donnes sont entres en ligne, spares par des virgules ou des espaces. Les lignes sont
spares par des point virgules.
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 9
- Oprateurs
+ Addition - Soustraction
* Multiplication / Division
Puissance ./ Division lment par
lment (matrices)
' Conjugu et transpose .* Multiplication
lment par lment
(matrices)
.' Transpose
Pour la liste des oprateurs disponibles, tapez help ops.
- Fonctions
Pour obtenir une liste des fonctions mathmatiques lmentaires taper :
>>help elfun
Pour obtenir une liste des fonctions matricielles lmentaires taper :
>>help elmat
Pour obtenir la liste des fonctions d'une toolbox spcifique, par exemple signal toolbox
(traitement du signal) taper :
>>help signal
Bien sr il est aussi possible de dfinir ses propres fonctions, voir le chapitre 3.4 page 14.
- Constantes
Un certain nombre de fonctions prdfinies (sans arguments) r envoient les valeurs de
constantes usuelles :
pi
3.14159265358979
i
unit imaginaire -1
j
pareil que i
eps
prcision relative en virgule flottante : 2
-52
realmin
plus petit nombre en virgule flottante : 2
-1022
realmax
plus grand nombre en virgule flottante : 2
+1022
Inf
Infini (rsultat de 1/0 par exemple)
NaN
Not A Number (rsultat de 0/0 par exemple)
Attention : il est possible de raffecter les valeurs de ces constantes (viter d'utiliser i et j
comme indice dans les boucles de calcul, notamment).
Un petit jeu amusant : essayer Inf+Inf, Inf/0, Inf-Inf, realmax+eps, realmax*(1+eps) , etc
Un peu plus sur les matrices
- Oprations sur les matrices et fonctions matricielles
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 10
Les additions, soustractions transposes et autres inversions de matr ices (taper A^-1) sont
triviales.
Un lment de la matrice s'appelle avec les parenthses. Par exemple A(1,3) renvoie
l'lment de la premire ligne, troisime colonne. Attention : pas de colonne 0.
La concatnation de matrice est triviale, attention cepen dant respecter les dimensions.
(Exemple : Z=[A,B;C,D])
L'oprateur : s'utilise de diffrentes manires :
- pour crer des listes. Par exemple 1:4 renvoie [1 2 3 4] et 1:2:5 renvoie [1 3 5].
- Pour faire appel des sous-parties de matrices. Par exemple A[:,3] renvoie la troisime
colonne de A et A[1:2:k,3] renvoie les k premiers lments impairs de la troisime
colonne de A
- Pour supprimer une ligne ou une colonne. Par exemple X(2,:)=[] supprime la deuxime
ligne (et redimensionne donc la matrice)
- Stocker des matrices dans des fichiers
On utilise souvent des matrices de grandes dimensions (rsultats de mesures par exemple).
Les donnes doivent alors tre crites sous forme de tableau, spares par des blancs et des
fins de lignes dans un fichier. dat
Par exemple un fichier donnees.dat cre par n'importe quel diteur de texte contient :
1.001 2.34 0.12
2.44431 2.2 2.0091
3.1 47 4.31112
La commande load donnees.dat charge le fichier sous matlab et cre la matrice donnees.
A l'inverse, disposant sous Matlab d'un tableau rsultat par exemple, il est possible de le
stocker dans un fichier par la commande save fichier_resultat resultat . Il est alors stock
sous forme binaire dans un fichier fichier_resultat.mat et rcuprable par la commande
load. Pour crer un fichier texte
1
(ressemblant au fichier donnees.dat par exemple) utiliser
la commande fwrite.
Les structures
Matlab permet de manipuler des donnes sous formes de structures : les donnes sont
ranges dans une arborescence et access ibles par des champs. L'exemple suivant permet de
comprendre comment crer une structure simple :
>> toto.tata=[1 2 3 4]
toto =
tata: [1 2 3 4]
>> toto.titi=2
toto =
tata: [1 2 3 4]
1
Par exemple pour tre trait par un autre logiciel comme Excel
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 11
titi: 2
>> toto
toto =
tata: [1 2 3 4]
titi: 2
>>
La structure toto contient deux champs : tata (qui est un vecteur de dimension 4) et titi (qui
est un entier). Pour accder un lment de la structure, on utilise le point :
>> toto.tata
ans =
1 2 3 4
>>
Bien sr, on peut imbriquer plus de deux champs et inclure des variables de nature
diffrentes. Ainsi le "papa du papa du papa de mon papa tait un fameux pioupiou"
2
donne :
>>papa.papa.papa.papa='fameux pioupiou';
2
Paroles et musique Boby Lapointe
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 13
3. Ctrl-C Ctrl-V, M-files, fonctions : rationalisons
notre travail
3.1. Historique
Les flches de direction ( |+) permettent de retrouver et modifier les lignes de
commandes prcdentes.
La version 6 de Matlab propose une fentre command history qui garde en mmoire les
commandes passes dans la session courante et dans les sessi ons prcdentes.
3.2. Copier-Coller (Ctrl-C Ctrl-V)
En pratique on tape les commandes directement dans la fentre de l'interprteur pour de
petits calculs. Lorsque cela devient plus srieux il est beaucoup plus rentable d'utiliser un
diteur de texte pour entrer les expressions (spares par des retours la ligne) puis de
copier-coller dans la fentre Matlab. L'diteur de texte le plus commode est alors celui de
Matlab : dans la barre de menu File / New / M-file.
3.3. Scripts
L'tape suivante consiste crer des scripts : il s'agit de fichiers textes comprenant un
ensemble de commandes. Pour cela le plus simple consiste utiliser l'diteur/Debugger de
Matlab.
Crons par exemple un nouveau script :
File / New / M-file
Puis crivons la squence de commande qui nous intresse :
%Mon premier script
a=2;
b=3;
a+b
Sauvegardons ce script dans un fichier : File / Save As puis choisir un nom de fichier, par
exemple essai. Notons que Matlab ajoute l'extension .m par dfaut.
Pour lancer le script depuis Matlab il suffit de ta per son nom essai sans l'extension .m.
L'affichage propose alors :
>> essai
ans=
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 14
5
>>
Deux remarques :
1. La ligne prcde du caractre % n'a pas t interprte : il s'agit d'une ligne de
commentaires.
2. Seule les expressions qui ne sont pas termines par un point virgule ( ; ) sont visibles
dans la fentre de l'interprteur.
3.4. Fonctions
Les M-files permettent aussi de dfinir des fonctions. A la diffrence des scripts, les
variables dfinies dans une fonction sont locales. Examinons par exemple le m -file
comportant les lignes d'instruction suivantes :
function r = rank(A,tol)
% RANK Matrix rank.
% RANK(A) provides an estimate of the number of linearly
% independent rows or columns of a matrix A.
% RANK(A,tol) is the number of singular values of A
% that are larger than tol.
% RANK(A) uses the default tol = max(size(A)) * norm(A) * eps.
s = svd(A);
%cas o il n'y qu'un argument
if nargin==1
tol = max(size(A)) * max(s) * eps;
end
%cas o il y a deux arguments
r = sum(s > tol);
La premire ligne dfinit le nom de la fonction, le nombre maximum et l'ordre des
arguments d'entre et de sortie.
Les lignes suivantes, prcdes du caractre %, sont des lignes de commentaire
particulires : elles sont renvoyes lorsqu'on tape help rank.
Les lignes suivantes sont le corps du programme. Les variables r, A, tol, s sont locales la
fonction.
La fonction rank peut tre appele de diffrentes manires (on suppose que la matrice B a
t dfinie ultrieurement) :
>> rank(B)
ans=
2
>> rang=rank(B);
>>rang=rank(B, 1.e-6);
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 15
Dans le premier cas, la variable de sortie n'est pas nomme : le rsultat est stock dans la
variable ans.
Dans le second cas, on ne fournit qu'un argument. Le corps du programme a prvu ce cas :
la variable nargin prend la valeur 1 et on attribue une valeur par dfaut tol.
3.5. Instructions et structures de contrle
Matlab dispose d'un certain nombre d'instructions de contrle :
- if
- switch
- for
- while
- continue
- break
Pour la syntaxe exacte et pour des exemples, utiliser l'aide en ligne : help if (par exemple).
Il est parfois possible de rduire le temps de calcul en utilisant la vectorisation. Examinons
par exemple les lignes suivantes :
A=1:1:100;
for ii=1:1:100
B(ii)=sin(A(ii));
end;
Ces lignes sont strictement quivalentes :
A=1:1:100;
B=sin(A);
Le rsultat produit est le mme que dans la premire version, le temps de calcul plus court
et la lisibilit amliore.
3.6. Un peu plus sur la programmation
Le programmeur en Java ou C++ sera rassur de savoir que le langage de programmation
de Matlab est aussi orient-objet. Le lecteur qui vient de lire ces lignes et qui n'a rien
compris est invit attendre les cours d'informatique.
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 17
4. Les figures
Matlab permet de crer des graphiques complexes et d'en contrler les moindres dtails. Ce
chapitre donne l'essentiel savoir ainsi que quelques clefs pour aller plus loin.
4.1. Tracer des courbes
Crer une figure
La squence d'instruction suivante cre d'abord une figure puis place les commentaires sur
les deux axes et enfin une ligne de titre :
>> x=0:pi/100:pi;
>>y=sin(x);
>>plot(x,y);
>>xlabel('x = 0:2\pi');
>>ylabel('sinus de x');
>>title('sinusode','Fontsize',12);
La figure suivante apparat dans une nouvelle fentre :
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x = 0:2t
s
i
n
u
s
d
e
x
sinusode
Style et couleurs des lignes
Il est possible de choisir le style et la couleur des lignes ave c la commande plot :
plot(x,y,'color_style_marker'). 'color_style_marker' est une chane de caractre comportant
jusqu' quatre caractres :
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 18
- Couleur : 'c', 'm', 'y', 'r', 'g', 'b', 'w'
- Style de ligne : ' -', '--', ':', '-.', 'none'
- Type de ligne : '+', 'o', '*', 'x', 's' (square), 'd' (diamond), etc
La variable 'color_style_marker' peut par exemple prendre la valeur 'y-o' pour que le trac
soit jaune et constitu de ronds relis par un trait continu.
Superposer des courbes
La fonction plot admet un nombre i ndfini d'arguments et permet de superposer dans une
mme figure plusieurs courbes.
Essayer par exemple : plot(x,y,x,y*2)
Variables complexes
Si Z est un vecteur de nombre complexes la fonction plot(Z) est quivalente
plot(real(Z),imag(Z)).
Ajouter des courbes une figure existante
La commande hold on permet de conserver la figure courante : le trac suivant ne se fait pas
dans une nouvelle fentre mais se superpose au trac prcdent (en adaptant
ventuellement les chelles).
Plusieurs courbes dans une mme fentre
La commande subplot permet de partitionner la fentre de la figure et de tracer plusieurs
courbes. Considrons l'exemple suivant :
x=0:pi/100:pi*2;
subplot(2,2,1);plot(x,sin(x);
subplot(2,2,1);plot(x,sin(x));
subplot(2,2,2);plot(x,cos(x));
subplot(2,1,2);plot(x,cos(x).*cos(x));
La figure cre est reproduite ci -aprs :
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 19
0 2 4 6 8
-1
-0.5
0
0.5
1
0 2 4 6 8
-1
-0.5
0
0.5
1
0 1 2 3 4 5 6 7
0
0.2
0.4
0.6
0.8
1
Le premier subplot partitionne en deux lignes et deux colonnes et place le pointeur sur la
premire case. Le second subplot partitionne de la mme manire et place le pointeur sur la
deuxime case. Le troisime subplot partitionne en deux lignes et une seule colonne et
place le pointeur sur la deuxime case (la deuxime ligne).
Placer des titres et des commentaires
Les commandes xlabel, ylabel, title, text permettent de commenter les axes x, y, de placer
un titre au graphique ou de placer un commentaire n'importe o sur le graphique.
4.2. Un peu plus sur les graphiques
Une fois le graphique cr, il est possible de rajouter des titres, des comment aires, etc... en
utilisant la fonction Tools / Edit Plot de la barre de menu de la fentre graphique.
De manire plus gnrale, et cela sort du cadre de ce manuel, les donnes dcrivant
l'ensemble d'un graphique sont stockes sous la forme d'une structure. Il est donc possible
de pointer directement sur un lment d'un graphique (axe, titre, donne, etc) et de le
modifier en utilisant des fonctions spcialises. Pour plus de dtails consulter l'aide de
Matlab.
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
www.al mohandi ss.com
Introduction Matlab
page 21
5. Matlab pour l'automaticien
3
5.1. Rappels
Un systme au sens de l'automaticien est compos de deux flches et d'un carr :
Systme
Entre Sortie
Une grandeur physique d'entre a un effet sur un systme et provoque l'volution d'une
grandeur de sortie.
Pour que tout soit plus simple, on suppose que :
- la grandeur d'entre est une grandeur physique continue e(t),
- idem pour la grandeur de sortie s(t),
- le systme est continu linaire invariant , c'est dire qu'une quation diffrentielle
coefficients constants relie les grandeurs d'entre et de sortie
4
.
Le systme est reprsent par sa fonction de transfert F(p). (F(p) est une fraction
rationnelle de la variable complexe p).
Quelle que soit l'entre e(t) on peut crire :
S(p) = F(p).E(p)
o E(p) et S(p) sont respectivement la transforme de Laplace de l a grandeur d'entre e(t)
et de la grandeur de sortie s(t).
Une autre reprsentation est l'quation d'tat : le systme est entirement dcrit par la
connaissance de quatre matrices A, B, C et D et par l'utilisation d'une variable
supplmentaire X (de dimension 1 ou plus) appel vecteur d'tat. La relation liant l'entre
la sortie est alors :
+ =
+ =
e(t) D X(t) C s(t)
e(t) B X(t) A (t) X