Vous êtes sur la page 1sur 86

INITIATION

INITIATION
A MATLAB
A MATLAB
Lionel PREVOST
Sommaire :
Sommaire :
1
1
-
-
Initiation
Initiation
Matlab
Matlab
2
2
-
-
Vecteurs et Matrices
Vecteurs et Matrices
3
3
-
-
La Programmation
La Programmation
Matlab
Matlab
4
4
-
-
Les Graphiques
Les Graphiques
5
5

Simulink
Simulink
6
6
-
-
Les
Les
Toolboxes
Toolboxes
INTRODUCTION 1
1 - INITIATION
A MATLAB
Lionel Prevost
Laboratoire des Instruments & Systmes
Universit Pierre & Marie Curie
INTRODUCTION 2
Introduction (1)
MATrix LABoratory
Logiciel qui permet, de manire
interactive :
de faire des calculs matriciels ;
d analyser les donnes ;
de visualiser les rsultats en 2D et 3D ...
Langage de programmation
Toolboxes : ensemble de fonctions
(fichiers .M) dveloppes pour des
domaines d applications spcifiques
SIMULINK : extension graphique
interactive de MATLAB
INTRODUCTION 3
Introduction (2)
INTRODUCTION 4
Fonctionnement
Mode interactif :
Les instructions sont excutes au
fur et mesure qu elles sont
entres par l utilisateur.
Mode programme :
MATLAB excute, ligne par ligne,
les instructions d un fichier .M
Type de variables :
unique : la matrice
INTRODUCTION 5
L espace de travail :
le Workspace (1)
La fentre de commande
INTRODUCTION 6
L espace de travail (2)
Dclarer des variables :
>> x =12.5 ; y = [1 -5 0 2] ;
dfinies et dimensionnes automatiquement
au fur et mesure de leur dclaration
stockes dans l espace de travail
S informer sur les variables :
>> who
Your variables are:
x y
>> whos
Name Size Bytes Class
x 1x1 8 double array
y 1x4 32 double array
Grand total is 5 elements using 40
bytes
INTRODUCTION 7
L espace de travail (3)
Supprimer une (ou toutes les) variable(s) :
>> clear x
>> clear all
Entrer une valeur au clavier :
>> x = input(Valeur de x =)
Valeur de x =12
x =
12
Afficher un texte l cran :
>> disp( Ceci est un test )
Ceci est un test
>> disp([ x vaut , num2str(x)])
x vaut12
INTRODUCTION 8
L espace de travail (4)
Grer les accs fichiers
>> pathtool
Editer les commandes :
INTRODUCTION 9
L aide sous MATLAB
>> helpdesk
>> help nom de commande fournit de
l aide sur l utilisation de la commande (et
les rubriques connexes).
>> lookfor mot-cl fournit la liste des
fonctions contenant le mot-cl.
VECTEURS ET
MATRICES
1
2 - VECTEURS
ET
MATRICES
Scalaires et oprations scalaires
Vecteurs et oprations vectorielles
Matrices et oprations matricielles
Polynmes
VECTEURS ET
MATRICES
2
Les scalaires (1)
Le scalaire : une matrice 1x1
>> s =2.5 ;
>> size(s)
ans =
1 1
ou
>> [i,j] = size(s)
i =
1
j =
1
Les format d affichage
format short 0.0333
format long 0.033333333333
format short e 3.3333E-002
format long e 3.333333333334E-002
format rat 1/30
VECTEURS ET
MATRICES
3
Les scalaires (2)
Les oprations arithmtiques
>> 3 +7 - 2 * 9
ans =
-8
divisions droite (/) et gauche (\)
lvation une puissance (^)
Quelques fonctions
fonctions trigo : cos acos cosh
exponentielle : exp
log nprien : log
log dcimal : log10
racine : sqrt
valeur absolue : abs
arrondis : round ceil floor
fix
VECTEURS ET
MATRICES
4
Crer un vecteur (1)
Vecteur ligne
>> v1= [1 2 -5] ;
ou
>> v1(1) =1; v1(2) =2;v1(3)=-5;
ou
>> v1(1) = [1, 2 ,-5] ;
Vecteur colonne
>> v2=[-7;3];
Transposition :
>> v3=v2
v3 =
-73
VECTEURS ET
MATRICES
5
Crer un vecteur (2)
Le vecteur : une matrice 1xn
>> size(v1)
ans =
1 3
longueur d un vecteur
>> long_v1 =length(v1)
long_v1 =
3
Concatnation
>> v4 =[v1 v3]
v4 =
1 2 -5 -7 3
Vecteur vide
>> v =[ ] ;
VECTEURS ET
MATRICES
6
Crer un vecteur (3)
Gnration automatique
composantes espaces d un pas constant
syntaxe : v =debut : pas : fin
>> v5=1:0.5:3
v5=
1.000 1.500 2.000
2.500 3.000
v =linspace(1, 3, 5)
espacement logarithmique de 10
debut
10
fin
syntaxe : v =logspace(debut, fin, N)
VECTEURS ET
MATRICES
7
Extraction
>> v4(3)
ans =
-5
Extraction selon un critre
>> i =find(v4 <0)
i =
3 4
>> v4(i)
ans =
-5 -7
Sous MATLAB, le premier indice
d un tableau est 1
Tri ascendant
>> sort(v4)
ans =
-7 -5 1 2 3
Oprations vectorielles (1)
!
VECTEURS ET
MATRICES
8
Oprations vectorielles (2)
oprations lmentaires
somme de vecteurs de mme dimensions
>> s = [2 1 -1] + [1 -3 5]
s =
3 -2 4
ajout d un scalaire
>> s + 2
ans =
5 0 6
produit de vecteurs de mme dimensions
>> p = [2 1 -1] * [1 -3 5]
p =
- 6
produit lment par lment
>> [2 1-1] .* [1 -3 5]
ans =
2 -3 -5
VECTEURS ET
MATRICES
9
Oprations vectorielles (3)
>> v = [1 2 -5 -7 3]
somme des lments d un vecteur
>> sum(v)
ans =
-6
produit des lments d un vecteur
>> prod(v)
ans =
210
moyenne : mean(v)
mdiane : median(v)
cart-type : std(v)
minimum : min(v)
maximum : max(v)
VECTEURS ET
MATRICES
10
Crer une matrice
Saisie d une matrice
lignes spares par un point virgule
>> M1=[1 0 3;2 5 1]
M1 =
1 0 3
2 5 1
lignes spares par un retour chariot
>> M1=[1 0 3
2 5 1]
M1 =
1 0 3
2 5 1
Dimensions
>> size(M1)
ans =
2 3
VECTEURS ET
MATRICES
11
Les matrices spciales (1)
Matrices identit, nulle et unit
>> IDENTITE =eye( 2,3)
IDENTITE =
1 0 0
0 1 0
ones (m,n) : matrice m x n dont tous les
lments valent 1
zeros(m,n) : matrice m x n dont tous
les lments valent 0
Si m=n, spcifier une seule dimension
>> UNITE =ones( 2)
UNITE =
1 1
1 1
VECTEURS ET
MATRICES
12
Les matrices spciales (2)
Matrices alatoires
Distribution normale (m = 0 , = 1) :
>> y = randn(10000,1) ;
Distribution uniforme (m = 1/2 , = 1/12) :
>> y = rand(10000,1) ;
-4 -3 -2 -1 0 1 2 3 4
0
200
400
600
800
0 0.2 0.4 0.6 0.8 1
0
50
100
150
200
250
VECTEURS ET
MATRICES
13
Oprations matricielles (1)
Extraction
d un lment
>> M1(2,1) >>
M1(4)
ans = ans =
2 2
d une ligne
>> M1(2, : )
ans =
2 5 1
d une colonne
>> M1( : ,2)
ans =
0
5
VECTEURS ET
MATRICES
14
Oprations matricielles (2)
Comparaison
>> M3 = [1 0 3 ; 2 5 1 ; 0 7
12] ;
>> M4 =ones(3) ;
>> M3 >M4
ans =
0 0 1
1 1 0
0 1 1
Extension des instruction min, max ...
>> max(M3) %maximum par colonnes
ans =
2 7 12
>> max(max(M3))
ans =
12
VECTEURS ET
MATRICES
15
Oprations matricielles (3)
Produit classique
Rappel : le produit de A(mxn) par B(pxq)
n est possible que si n = p et le rsultat est
de dimension mxq
Produit de Hadamard
ou produit lment par lment de deux
matrices de mmes dimensions
>> A = [1 2 ; 3 4]
>> A *A >> A .*A
ans = ans =
7 10 1 4
15 22 9 16
VECTEURS ET
MATRICES
16
Oprations matricielles (4)
Fonctions diverses
dterminant :
>> det(M)
norme
>> norm(M)
rang
>> rank(M)
inverse (et pseudo-inverse)
>> inv(M) >> pinv(M)
conditionnement
>> cond(M)
exponentielle
expm: vecteurs et valeurs propres
expm1: approximation de Pad
expm2: srie de Taylor
VECTEURS ET
MATRICES
17
Vecteurs et valeurs propres
>> M = [2 1 ; 1 2] ;
Polynme caractristique : |I - M| = 0
>> poly(M)
ans =
1 -4 3
Vecteurs et valeurs propres
>> [vec val] = eig(M)
vec =
0.7071 0.7071
- 0.7071 0.7071
val =
1 0
0 3
VECTEURS ET
MATRICES
18
Les polynmes
Vecteur ligne ensemble de donnes
Vecteur ligne polynme de degr n
p(x) = a
n
x
n
+ a
n-1
x
n-1
+ ... + a
1
x + a
0
>> p =[a
n
a
n-1
... a
1
a
0
] ;
>> length(p)
ans =
n
>> p1 =[1 0 2] ; %p1(x) = x
2
+
2
>> p2 =[2 4 0] ; %p2(x) = 2x
2
+4x
coefficients entrs suivant les
puissances dcroissantes de x
!
VECTEURS ET
MATRICES
19
Oprations polynomiales (1)
Multiplication de 2 polynmes
>> p3 =conv(p1, p2)
p3 =
2 4 4 8 0
p
3
(x) = 2x
4
+ 4x
3
+ 4x
2
+ 8x
Extension n polynmes
p
4
(x) = x(x + 2)(2x - 3)
>> p4 =conv([1 0],conv([1 2],[2
-3]))
p4 =
2 1 -6 0
Division de polynmes
>> p1 =deconv(p3, p2)
p1 =
1 0 2
VECTEURS ET
MATRICES
20
Oprations polynomiales (2)
Division de polynmes : cas gnral
p(x) = x
3
+ x - 1
d(x) = x
2
+ 3x - 4
>> [q,r] = deconv(p,d)
q =
1 -3
r =
0 0 14 -13
>> [res, poles, direct]
=residue(p,d)
res =
13.8000
0.2000
poles =
-4
1
direct =
1 -3
p x
q x
x
x x
( )
( )
. .
= +
+
+

3
138
4
0 2
1
VECTEURS ET
MATRICES
21
Oprations polynomiales (3)
Racines d un polynme
>> poles_p4 = roots(p4)
poles_p4 =
0
-2.0000
1.5000
Inversement
>> p4 =poly(poles_p4)
p4 =
2 1 -6 0
LA PROGRAMMATION
MATLAB
1
3 - LA PROGRAMMATION
MATLAB
Les oprateurs logiques
Les chanes de caractres
Les commandes structures
Les scripts et les fonctions
La programmation
LA PROGRAMMATION
MATLAB
2
Oprateurs logiques
== galit
~ = diffrence
<( <=) infrieur (ou gal)
>( >=) suprieur (ou gal)
& ET logique (AND)
~ NON logique (NOT)
| OU logique (OR)
xor OU exclusif (XOR)
Exemple :
>> a = [1 0 0 1] ;
>> b = [1 1 0 1] ;
>> a |b
ans =
1 1 0 1
LA PROGRAMMATION
MATLAB
3
Chanes de caractres (1)
Gnralits
chane = vecteur ligne
nombre de composantes = longueur de
la chane
Affectation
>> ch = bonjour monsieur
>> size(ch)
ans =
1 16
Conversions
num2str : nombre chane
mat2str : matrice chane
str2num : chane nombre
LA PROGRAMMATION
MATLAB
4
Chanes de caractres (2)
Ecriture de chanes formates
syntaxe :
text=sprintf( format1
format2... , data1, data2 ...)
exemple :
>> pi2 = pi^2
pi2 =
9.8696
>> text = sprintf( le carr de
pi vaut %3.2f , pi2)
text =
le carr de pi vaut 9.87
LA PROGRAMMATION
MATLAB
5
L instruction FOR (1)
parcours d'un intervalle
syntaxe :
for variable =debut : fin
instructions
..........
instructions
end
exemple : crer le vecteur [1 2 4 8 .... 2^10]
>> x=[ ];
x =
[ ]
>> for n=0:10 ; x =[x 2^n] ;
end
ou directement
>> for n=0:10; x(n +1)
=2^n;end
LA PROGRAMMATION
MATLAB
6
L instruction FOR (2)
On peut utiliser un incrment (pas) autre
que 1 (valeur par dfaut).
syntaxe :
for variable =debut:pas:fin
Les bornes ne sont pas ncessairement
des entiers.
Le pas peut tre ngatif.
Il est possible d imbriquer les boucles
Penser l indentation !!
!
LA PROGRAMMATION
MATLAB
7
La boucle WHILE
tant que . . . faire
syntaxe :
while expression
instructions
..........
instructions
end
exemple: calculer le plus petit entier n tel que
2^n soit suprieur un rel a donn.
>> max =1998; n=1;
>> while (2^n <max);n=n+1;end;
>> n
n =
11
LA PROGRAMMATION
MATLAB
8
Les ruptures de boucle
Il est possible de provoquer une sortie
prmature d'une boucle de contrle.
break termine l excution d une boucle.
for variable1 = debut1 :
fin1
instructions
..........
for variable2 = debut2 :
fin2
instructions
..........
break
instructions
end
instructions
end
return provoque un retour au programme
appelant (ou au clavier).
LA PROGRAMMATION
MATLAB
9
L instruction IF (1)
La squence d instructions intrieure
est excute si expression est vrai
(=1 logique).
syntaxe
if expression
instructions
. . . . . . . . .
instructions
end
expression peut tre simple ou
compose.
Exemple
if (a<0 & b<0)
disp( a et b ngatifs )
end
LA PROGRAMMATION
MATLAB
10
L instruction IF (2)
Permet de choisir entre deux options.
syntaxe
if expression
instructions 1
else
instructions 2
end
si expression n est pas vrifier alors
les instructions 2 sont excutes
LA PROGRAMMATION
MATLAB
11
L instruction IF (3)
Permet une slection multiple.
syntaxe
if expression1
instructions 1
elseif expression2
instructions 2
elseif expression3
instructions 3
. . . . . . . . . . .
else expressionN
instructions N
end
LA PROGRAMMATION
MATLAB
12
L instruction SWITCH
Permet une slection multiple.
syntaxe
switch variable
case variable =expression1
instructions 1
case variable =expression2
instructions 2
. . . . . . . . . .
Otherwise
instructions (erreur)
end
LA PROGRAMMATION
MATLAB
13
Script
Fichier (message.m par exemple)
contenant une suite d instructions
matlab.
Excut squentiellement dans
l espace de travail, il accde aux
variables (locales) qui s y trouvent.
>> temps = 1 ;
>> message
il fait beau
%message.m affiche un message
if (temps)
disp(il fait beau )
end
LA PROGRAMMATION
MATLAB
14
Fonctions (1)
Fichier (temps.m par exemple)
contenant une suite d instructions
matlab.
Reoit un (ou plusieurs) paramtre(s)
d entre.
Peut renvoyer un (ou plusieurs)
paramtre(s) en sortie ou n en
renvoyer aucun.
Commence par le mot rserv
function.
LA PROGRAMMATION
MATLAB
15
Fonctions (2)
>> clear all
>> help temps
retourne le temps en fonction
de x
>> y = temps(1) ;
>> y
y =
il fait beau
function y = temps(x)
%retourne le temps en fonction de
if (x)
y = il fait beau
end
LA PROGRAMMATION
MATLAB
16
Fonctions (3)
Evaluation d une fonction dfinie
dans un fichier (f1.m)
>> x = -10:0.1:10;
>> y =feval( f1 , x) ;
>> plot(x,y)
-10 -5 0 5 1 0
-50
0
5 0
1 00
1 50
2 00
2 50
3 00
function y = f1(x)
y = 2*x.^2 - 5*x +1
LA PROGRAMMATION
MATLAB
17
Programmation (1)
Forme gnrale d une
application MATLAB
Fonction 1 Fonction 2 Fonction 3
Fonction 21
Fonction 22
SCRIPT
Fonctions prives
et/ou
sous fonctions
LA PROGRAMMATION
MATLAB
18
Programmation (2)
Quelques recommandations
Choisir des noms significatifs pour les
variables et les fonctions
Documenter les fonctions (help)
Vrifier le nombre d arguments d entre
(nargin) et de sortie (nargout) des
fonctions
Eviter (autant que possible !) les boucles
for et while
LA PROGRAMMATION
MATLAB
19
Programmation (3)
Mesure de complexit algorithmique
nombre d oprations depuis le dbut de la
session MATLAB ou une remise zro
>> flop
remise zro du compteur
>> flop(0)
temps d excution (en secondes) :
>> A = rand(200);
>> tic ; inv(A *A) ; toc
elapsed_time =
12.4100
Le profiler ( >> help profile )
>> profile report
temps d excution total (en
secondes)
>> profile report N
N lignes demandant le plus de
temps d excution (en % du temps
total)
LA PROGRAMMATION
MATLAB
20
Programmation (4)
Boucles et programmation matricielle
>> A = rand(200) ;
>> x = 0 ;
>> tic
>> for i = 1 : 200
for j = 1 : 200
x = x + A(i,j) ;
end
end
>> toc
elapsed_time =
4.5000
>> tic ; sum(sum(A) ; toc
elapsed_time =
0.0600
LA PROGRAMMATION
MATLAB
21
Programmation (5)
Le dbogage permet de corriger :
les erreurs de programmation (nombre
d arguments d entre et de sortie,
syntaxe des commandes ...)
les erreurs logiques (bugs)
Utiliser :
le point virgule ;
le mode keyboard : keyboard
pause
le dbugger
>> help debug
Debugging command ...
LES GRAPHIQUES 1
4 - LES GRAPHIQUES
Les graphes en 2D
Les graphes en 3D
L exportation de graphes
LES GRAPHIQUES 2
Tracer de courbes 2D (1)
La commande plot(x,y,s) trace la
courbe y en fonction de x avec les
attributs (facultatifs) s.
>> x =[-10:0.1:10];
>> y1 =x.^2;
>> plot(x, y1, r)
-10 -5 0 5 10
0
10
20
30
40
50
60
70
80
90
100
LES GRAPHIQUES 3
Tracer de courbes 2D (2)
plot(y) permet de tracer directement
le vecteur y en fonction de ses indices.
plot(x,y1,s1,x,y2,s2,...) trace
y1, y2 ... en fonction de x sur le mme
graphe avec les attributs s1, s2 ...
>> y2 =0.5*x.^2 - x + 1 ;
>> plot(x, y1, r, x , 2, b)
- 1 0 - 5 0 5 1 0
0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
1 0 0
LES GRAPHIQUES 4
Lgender une courbe (1)
Insrer un titre
>> title(Trac de x^2 et
0.5x^2-x+1)
Lgender l axe des abscisses
>> xlabel(x : axe des
abscisses)
Lgender l axe des ordonnes
>> ylabel(y : axe des
ordonnes)
Insrer du texte
>> gtext(x^2)
>> gtext(0.5x^2 - x + 1)
Ajouter un quadrillage
>> grid
LES GRAPHIQUES 5
Lgender une courbe (2)
-10 -5 0 5 10
0
10
20
30
40
50
60
70
80
90
100
x : a xe de s a bs is s e s
y

:

a
x
e

d
e
s

o
r
d
o
n
n

e
s
Tra c de x
2
e t 0.5x
2
-x+1
x
2
0.5x
2
- x + 1
LES GRAPHIQUES 6
Manipuler un graphique
La commande zoom (2D seulement)
permet de zoomer sur une partie de
courbe avec le bouton gauche de la
souris (le bouton droit annule le zoom)
La commande axis permet de changer
les bornes de visualisation
syntaxe:
axis([xmin xmax ymin ymax])
Dans les deux cas :
focalisation sur une partie intressante
de la courbe
Lecture prcise du point d intersection
entre deux courbes
LES GRAPHIQUES 7
Tracer plusieurs courbes
Sur un mme graphique
>> plot(x, y1, r)
>> hold on
>> plot(x, y2, b)
Sur plusieurs graphiques diffrents
>> subplot(211), plot(x,
y1, r)
>> subplot(212), plot(x,
y2, r)
(Nb crans vertical, Nb crans horizontal, N cran)
- 1 0 - 5 0 5 1 0
0
5 0
1 0 0
- 1 0 - 5 0 5 1 0
0
2 0
4 0
6 0
8 0
LES GRAPHIQUES 8
Tracer le graphe d une
fonction
La commande fplot( f ,x)
permet d afficher les variations de la
fonction f1 (enregistre dans le
fichier f1.m) sur l intervalle x.
>> x =0:0.1:4*pi;
>> fplot (sin, x)
0 2 4 6 8 10 12
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
LES GRAPHIQUES 9
Autres formats (1)
Coordonnes semilog et log-log
exemple : trac du diagramme de Bode
d un filtre.
Soit le circuit RLC de fonction de transfert :
1
H(jw) =
1 - LC
2
+ jRC
>> R =100 ; C =1e-3 ; L =0.1 ;
>> w =0 : 5000 ;
>> H =1./(1 - L*C*w.^2 +
R*C*w*i);
>> mod = abs(H) ;
>> phase = 180*angle(H)/pi ;
>> subplot(211),loglog(w,mod)
>> ubplot(212),semilogx(w,phase)
LES GRAPHIQUES 10
Autres formats (2)
De mme :
semilogy %ordonnes en logarithmique
bode(n,d)
n et d sont deux polynmes en (Cf chap
5) reprsentant le numrateur et le
dnominateur de la fonction de transfert.
1 0
0
1 0
1
1 0
2
1 0
3
1 0
4
1 0
- 4
1 0
- 2
1 0
0
m o d ule
1 0
0
1 0
1
1 0
2
1 0
3
1 0
4
-2 0 0
-1 5 0
-1 0 0
-5 0
0
p ha s e
LES GRAPHIQUES 11
Tracer une courbe 3D
Syntaxe : plot3(x, y, z, s)
>> t =0:0.1:25;
>> x = exp(-0.05*t).*cos(t) ;
>> y = exp(-0.05*t).*sin(t) ;
>> z = t ;
>> plot3(x, y,z)
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
5
10
15
20
25
LES GRAPHIQUES 12
Grer un graphique
Gestion des fentres
ouvrir une nouvelle fentre : figure
fermer une fentre : close
fermer toutes les fentres : close all
Exportation
crer un fichier postcript (qu il est
possible d importer dans un traitement de
texte). Son nom est alors fig.ps :
print -deps fig
sous Windows, activer
edit copy figure
puis coller (sous Word, Powerpoint ...)
SIMULINK 1
5 - SIMULINK
L environnement et les blockset
Construire un schma de simulation
La simulation
SIMULINK 2
Simulink
>> simulink
SIMULINK 3
Le blockset Sources
SIMULINK 4
Le blockset Sinks
SIMULINK 5
Le blockset Linear
N(s) a
i
s
i
H(s) = =
D(s) b
i
s
i
N(s) (s - z
i
)
H(s) = =
D(s) (s - p
i
)
SIMULINK 6
Le blockset Discrete
N(z) a
i
z
i
H(z) = =
D(s) b
i
z
i
N(z) (z - z
i
)
H(z) = =
D(z) (z - p
i
)
SIMULINK 7
Le blockset Non-linear
SIMULINK 8
Schma de simulation
Construire le schma
Sauvegarder :
SIMULINK 9
Fichier .M de paramtres
Sauvegarder
Excuter (pour dfinir les variables
dans l espace de travail)
SIMULINK 10
Le masquage
Slectionner avec le bouton gauche
SIMULINK 11
Asservissement de vitesse
Echelon de commande
Boucle ferme en vitesse
Correction proportionnelle
SIMULINK 12
Excution
simulation ! parameters
simulation linaire !linsim
temps de simulation!StopTime
fixer
MinStepSize=MaxStepSize
simulation ! start
0 5 1 0 1 5 2 0 2 5 3 0 3 5
0
0 . 2
0 . 4
0 . 6
0 . 8
1
1 . 2
1 . 4
Mo te u r C C : C o rr e c tio n P : K = 1 :1 0
K = 1
K = 2
K = 1 0
LES TOOLBOXES 1
6 - LES TOOLBOXES
Signal
Control
LES TOOLBOXES 2
La Toolbox Signal (1)
Analyse spectrale : transforme de
Fourier
%gnration des signaux
N = 256 ;
t = 0:Te:(N-1)*Te ;
x1 = cos(2*pi*10*(0:N-1)*Te) ;
x2 = cos(2*pi*20*(0:N-1)*Te) ;
y= x1 + x2 +
1.5*randn(1,length(t));
%calcul des fft
fy = fft(y)/N ;
%affichage
f = (0:N-1)/Te/N ;
subplot(211) ;
plot(t,y) ;
title('y=cos(10t) + cos(60t)') ;
subplot(212) ;
plot(f,abs(fy)) ;
title( module de la TF de y') ;
LES TOOLBOXES 3
La Toolbox Signal (2)
Transforme de Fourier inverse
>> ifft(y)*N ;
0 0.5 1 1.5 2 2.5 3 3.5 4
-10
-5
0
5
10
y=cos (10t) + cos (6 0t) + bruit
0 10 20 30 40 50 60 70
0
0.2
0.4
0.6
0.8
module de la TF d e y
LES TOOLBOXES 4
La Toolbox Signal (3)
Les estimateur spectraux : fonctions
corrlation et covariance
>>xcorr (x,option)
estimateur d autocorrlation biais
(option=biased) ou non biais
(option=unbiased)
>>xcorr (x,y,option)
estimateur d intercorrlation
>>xcov (x,option)
estimateur d autocovariance
>> xcov (x,y,option)
estimateur d intercovariance
LES TOOLBOXES 5
La Toolbox Signal (4)
La troncature des signaux par la fentre
naturelle (rectangle) entrane des
ondulations dans l espace frquentiel
(phnomne de Gibbs)
Utilisation de fentres de pondration
qui rduisent ce phnomne
>>hamming (N)
>>hanning (N)
>>bartlett (N)
>>blackman (N)
o N reprsente le nombre de points de la
fentre
LES TOOLBOXES 6
La Toolbox Signal (5)
Synthse de filtres numriques
>> [b,a]=butter (n,fc,option)
filtre passe-bas de Butterworth d odre n,
de frquence de coupure normalise fc
(passe-bande si fc = [f1 f2])
option = high : passe-haut
option = stop : coupe-bande
>> [b,a]=cheby1 (n,
Rp,fc,option)
>> [b,a]=chevy2
(n,Rp,fc,option)
filtres de Chebychev de type I et II
>> [b,a]=ellip
(n,Rp,Rs,fc,option)
filtres elliptique
Rp : taux dondulation bande passante
Rs : taux d ondulation bande filtre
LES TOOLBOXES 7
La Toolbox Control (1)
Cration de modles
modle d tat
>> ss(A,B,C,D)
A : matrice d tat
B : matrice de commande
C : matrice d observation
D : matrice de liaison directe
modle zros/ples
>> zpk(Z,P,K)
Z : zros de transmission
P : ples
K : gain
B
D

A
C
+
+
Y U +
+
X X

LES TOOLBOXES 8
La Toolbox Control (2)
Rponses temporelles
>> sys = zpk([],[-1],5)
Zero/pole/gain:
5
---------
(s +1)
>> step(sys) rponse indicielle
>> impulse(sys) rponse
impulsionnelle
>> lsim(sys,u) rponse l entre u
0 5 0 1 0 0 1 5 0
0
1
2
3
4
5
0 5 0 1 0 0 1 5 0
0
1
2
3
4
5
6
LES TOOLBOXES 9
La Toolbox Control (3)
Lieux de transfert
>> bode(sys) lieu de Bode:H
db
(),()
>> nyquist(sys) lieu de Nyquist :
Re(H),Im(H)
>> nychols(sys) lieu de Black : H
db
(),()
>> rlocus(sys) lieu dEvans
Fre que ncy (ra d/s e c)
P
h
a
s
e

(
d
e
g
)
;

M
a
g
n
i
t
u
d
e

(
d
B
)
Bode Dia gra ms
-10
-5
0
5
10
15

10
-1
10
0
10
1
-100
-50
0