INITIATION A MAT MATLAB
Lion ionel PREV PRE VOST
Sommaire : 1- Initiation à Matlab 2- Vecteurs et Ma Matric trices 3- La Progra rogram mmation tion Matlab 4- Les Gra raph phiiqu que es 5– Simulink 6- Les Toolboxes
Sommaire : 1- Initiation à Matlab 2- Vecteurs et Ma Matric trices 3- La Progra rogram mmation tion Matlab 4- Les Gra raph phiiqu que es 5– Simulink 6- Les Toolboxes
1 - INITIATION A MATLAB Lionel Prevost Laboratoire des Instruments & Systèmes Université Pierre & Marie Curie
INTRODUCTION
1
Introduction (1) • MATrix LABoratory • Logi Logici ciel el qu quii interactive :
perm pe rmet et,,
de
man aniè ière re
– de faire des calculs calculs matriciels matriciels ; – d ’analyser les données ; – de visualiser les résultats en 2D et 3D ...
• Langa gag ge de prog ogrrammation • Toolboxes : ensemble de fonctions (fichiers .M) développées pour des domaine dom ainess d ’app ’applica licatio tions ns spécif spécifique iquess • SIM IMU ULI LINK NK : ex exte tens nsiion interactive de MATLAB INTRODUCTION
grap gr aphi hiqu quee 2
Introduction (2)
INTRODUCTION
3
Fonctionnement • Mode interactif : Les instructions sont exécutées au fur et à mesure qu ’elles sont entrées par l ’utilisateur.
• Mode programme : MATLAB exécute, ligne par ligne, les instructions d ’un fichier .M
• Type de variables : unique : la matrice
INTRODUCTION
4
L ’espace de travail : le Workspace (1) • La fenêtre de commande
INTRODUCTION
5
L ’espace de travail (2) • Déclarer des variables : >> x =12.5 ; y = [1 -5 0 2] ;
– définies et dimensionnées automatiquement au fur et à mesure de leur déclaration – stockées 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
6
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
7
L ’espace de travail (4) • Gérer les accès fichiers >> pathtool
• Editer les commandes :
INTRODUCTION
8
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é.
INTRODUCTION
9
2 - VECTEURS ET MATRICES • Scalaires et opérations scalaires • Vecteurs et opérations vectorielles • Matrices et opérations matricielles • Polynômes
VECTEURS ET MATRICES
1
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 format long e format rat
3.3333E-002 3.333333333334E-002 1/30
VECTEURS ET MATRICES
2
Les scalaires (2) • Les opérations arithmétiques >> 3 +7 - 2 * 9 ans = -8
divisions droite (/) et gauche (\) élévation à une puissance (^)
• Quelques fonctions – – – – – – –
fonctions trigo : cos acos cosh exponentielle : exp log népérien : log log décimal : log10 sqrt racine : valeur absolue : abs arrondis : round ceil floor fix
VECTEURS ET MATRICES
3
Créer 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
4
Créer un vecteur (2) • Le vecteur : une matrice 1xn >> size(v1) ans = 1 3
longueur d ’un vecteur >> long_v1 = length(v1) long_v1 = 3
• Concaténation >> v4 =[v1 v3] v4 = 1 2
-5
-7
3
• Vecteur vide >> v =[ ] ; VECTEURS ET MATRICES
5
Créer un vecteur (3) • Génération automatique composantes espacées d ’un pas constant syntaxe : v =debut : pas : fin >> v5=1:0.5:3 v5= 1.000 1.500 2.500 3.000 ⇔
2.000
v =linspace(1, 3, 5)
espacement logarithmique de 10debut à 10fin syntaxe : v =logspace(debut, fin, N)
VECTEURS ET MATRICES
6
Opérations vectorielles (1) • Extraction >> v4(3) ans = -5
• Extraction selon un critère >> 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 VECTEURS ET MATRICES
2
3 7
Opérations vectorielles (2) • opérations élémentaires – somme de vecteurs de même dimensions >> s = [2 1 -1] s = 3 -2
+ [1 -3 5]
4
– ajout d ’un scalaire >> s + 2 ans = 5 0
6
– produit de vecteurs de même dimensions >> p = [2 1 -1]
* [1 -3 5] ’
p = - 6
– produit élément par élément >> [2 1-1]
.* [1 -3 5]
ans = 2 -3 -5 VECTEURS ET MATRICES
8
Opérations vectorielles (3) >> v = [1 2 -5 -7 3] – somme des éléments d ’un vecteur >> sum (v) ans = -6
– produit des éléments d ’un vecteur >> prod (v) ans = 210
– moyenne :
mean(v)
– médiane :
median(v)
– écart-type :
std (v)
– minimum :
min(v)
– maximum :
max(v) VECTEURS ET MATRICES
9
Créer une matrice • Saisie d ’une matrice – lignes séparées par un point virgule >> M1=[1 0 3;2 5 1] M1 = 1 0 2 5
3 1
– lignes séparées par un retour chariot >> M1=[1 0 3 2 5 1] M1 = 1 0 2 5
3 1
• Dimensions >> size(M1) ans = 2 3 VECTEURS ET MATRICES
10
Les matrices spéciales (1) • Matrices identité, nulle et unité >> IDENTITE =eye( 2,3) IDENTITE = 1 0
0 1
0 0
– ones (m,n) : matrice m x n dont tous les
éléments valent 1 – zeros(m,n) : matrice m x n dont tous
les éléments valent 0
Si m=n, spécifier une seule dimension >> UNITE =ones( 2) UNITE = 1
1
1
1 VECTEURS ET MATRICES
11
Les matrices spéciales (2) • Matrices aléatoires – Distribution normale (m = 0 , σ = 1) : >> y = randn(10000,1) ; – Distribution uniforme (m = 1/2 , σ = 1/12) : >> y = rand (10000,1) ; 800 600 400 200 0 -4
-3
-2
-1
0
1
2
3
4
250 200 150 100 50 0 0
0 .2
0 .4
0 .6
VECTEURS ET MATRICES
0 .8
1
12
Opérations matricielles (1) • Extraction – d ’un élément >> 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
13
Opérations 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
• Extens nsiion des ins nsttru rucction min, max ... >> max(M3)
%maximum par colonnes
ans = 2
7
12
>> max max (max(M3)) ans = 12 VECTEURS ET MATRICES
14
Opérations matricielles (3) • Produit cl classique Rappel Rapp el : le pr prod odui uitt de A(m A(mxn xn)) par par B(px B(pxq) q) n ’est poss possible ible que si n = p et le résu résultat ltat est de dimension mxq
• Produit de Hadamard ou produit élément par élément de deux matrices de mêmes dimensions >> A = [1 2 ; 3 4] >> A
*A
>> A
ans =
.*A
ans =
7
10
1
4
15
22
9
16
VECTEURS ET MATRICES
15
Opérations matricielles (4) • Fonctions di diverses – déterminant : >> det(M) – norme >> norm (M) (M) – rang >> rank(M)
– inverse (et pseudo-inverse) pseudo-inverse) >> inv(M) >> pinv(M) – conditionnement conditionnement >> cond (M) (M) – exponent exponentielle ielle expm : vecteurs et valeurs propres expm1: approximation de Padé expm2: série de Taylor VECTEURS ET MATRICES
16
Vecteurs et valeurs propres >> M = [2 1 ; 1 2]
;
• Polynôme ca cara racctéristique : |λI - M| = 0 >> poly(M) ans = 1
-4
3
• Vecte teu urs et valeur urss pr pro opre ress >> [vec val] = eig(M) vec = 0.7071
0.7071
- 0.7071 0.7071 val = 1
0
0
3
VECTEURS ET MATRICES
17
Les polynômes • Vecteur ligne
ensemble de données
• Vecteur ligne polynôme de degré n p(x) = anxn + an-1xn-1 + ... + a1x + a0 >> p =[an an-1
... a1 a0] ;
>> length(p) ans =
n >> p1 =[1 0 2] ;
%p1(x) = x2 +
2 >> p2 =[2 4 0] ;
%p2(x) = 2x2
+4x
!
coefficients entrés suivant les puissances décroissantes de x VECTEURS ET MATRICES
18
Opérations polynomiales (1) • Multiplication de 2 polynômes >> p3 =conv(p1, p2) p3 = 2 4 4 8
0
p3(x) = 2x4 + 4x3 + 4x2 + 8x • Extension à n polynômes p4(x) = x(x + 2)(2x - 3) >> p4 =conv([1 0],conv([1 2],[2 -3])) p4 = 2 1 -6 0
• Division de polynômes >> p1 = deconv(p3, p2) p1 = 1 0 2 VECTEURS ET MATRICES
19
Opérations polynomiales (2) • Division de polynômes : cas général p(x) = x3 + x - 1 d(x) = x2 + 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 p( x ) 138 . 0.2 = x − 3 + + poles = q( x ) x + 4 x − 1 -4 1 direct = 1 -3 VECTEURS ET MATRICES
20
Opérations polynomiales (3) • Racines d ’un polynôme >> poles_p4 = roots(p4) poles_p4 = 0 -2.0000 1.5000
• Inversement >> p4 = poly(poles_p4) p4 = 2
1
-6
VECTEURS ET MATRICES
0
21
3 - LA PROGRAMMATION MATLAB • Les opérateurs logiques • Les chaînes de caractères • Les commandes structurées • Les scripts et les fonctions • La programmation
LA PROGRAMMATION MATLAB
1
Opérateurs logiques == égalité • ~ =
différence
• <( <=)
inférieur (ou égal)
• >( >=)
supérieur (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
LA PROGRAMMATION MATLAB
1 2
Chaînes de caractères (1) • Généralités – chaîne = vecteur ligne – nombre de composantes = longueur de la chaîne
• Affectation >> ch = ‘ bonjour monsieur ’ >> size(ch) ans = 1
16
• Conversions num2str : nombre
chaîne
mat2str : matrice
chaîne
str2num : chaîne
nombre
LA PROGRAMMATION MATLAB
3
Chaînes de caractères (2) • Ecriture de chaînes formatées 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
4
L ’instruction FOR (1) • parcours d'un intervalle syntaxe : for variable =debut : fin instructions .......... instructions
end
exemple : créer 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
5
L ’instruction FOR (2) • On peut utiliser un incrément (pas) autre que 1 (valeur par défaut). syntaxe : for variable =debut:pas:fin
• Les bornes ne sont pas nécessairement des entiers. • Le pas peut être négatif. • Il est possible d ’imbriquer les boucles
!
Penser à l ’indentation !!
LA PROGRAMMATION MATLAB
6
La boucle WHILE • tant que . . . faire syntaxe : while expression instructions .......... instructions
end
exemple: calculer le plus petit entier n tel que 2^n soit supérieur à un réel a donné. >> max =1998; n=1; >> while (2^n > n n = 11 LA PROGRAMMATION MATLAB
7
Les ruptures de boucle • Il est possible de provoquer une sortie prématurée d'une boucle de contrôle. break termine l ’exécution 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
8
L ’instruction IF (1) • La séquence d ’instructions intérieure est exécutée si expression est vrai (=1 logique). syntaxe if expression instructions . . . . . . . . . instructions
end • expression
peut
être
simple
ou
composée. Exemple if (a<0 & b<0) disp(‘ a et b négatifs ’)
end LA PROGRAMMATION MATLAB
9
L ’instruction IF (2) • Permet de choisir entre deux options. syntaxe if expression instructions 1
else instructions 2
end
• si expression n ’est pas vérifier alors les instructions 2 sont exécutées
LA PROGRAMMATION MATLAB
10
L ’instruction IF (3) • Permet une sélection multiple. syntaxe if expression1 instructions 1
elseif expression2 instructions 2
elseif expression3 instructions 3 . . . . . . . . . . .
else expressionN instructions N
end
LA PROGRAMMATION MATLAB
11
L ’instruction SWITCH • Permet une sélection multiple. syntaxe switch variable case variable =expression1 instructions 1
case variable =expression2 instructions 2 . . . . . . . . . .
Otherwise instructions (erreur)
end
LA PROGRAMMATION MATLAB
12
Script • Fichier (message.m par exemple) contenant une suite d ’instructions matlab. • Exécuté séquentiellement dans l ’espace de travail, il accède aux variables (locales) qui s ’y trouvent. %message.m affiche un message if (temps) disp(‘il fait beau ’) end >> temps = 1 ; >> message il fait beau LA PROGRAMMATION MATLAB
13
Fonctions (1) • Fichier (temps.m par exemple) contenant une suite d ’instructions matlab. • Reçoit un (ou plusieurs) paramètre(s) d ’entrée. • Peut renvoyer un (ou plusieurs) paramètre(s) en sortie ou n ’en renvoyer aucun. • Commence function.
par
le
LA PROGRAMMATION MATLAB
mot
réservé
14
Fonctions (2) function y = temps(x) %retourne le temps en fonction de if (x) y = ‘ il fait beau ’ end >> clear all >> help temps retourne le temps en fonction de x >> y = temps(1) ; >> y y = il fait beau
LA PROGRAMMATION MATLAB
15
Fonctions (3) • Evaluation d ’une fonction définie dans un fichier (f1.m) function y = f1(x) y = 2*x.^2 - 5*x +1 >> x = -10:0.1:10; >> y =feval(‘ f1 ’, x) ; >> plot(x,y) 300
250
200
150
100
50
0
-5 0 -1 0
-5
0
LA PROGRAMMATION MATLAB
5
10
16
Programmation (1) Forme générale d ’une application MATLAB
SCRIPT
Fonction 1
Fonctions privées
Fonction 2
Fonction 3
Fonction 21
et/ou sous fonctions
Fonction 22
LA PROGRAMMATION MATLAB
17
Programmation (2) • Quelques recommandations – Choisir des noms significatifs pour les variables et les fonctions – Documenter les fonctions (help) – Vérifier le nombre d ’arguments d ’entrée (nargin) et de sortie (nargout) des fonctions – Eviter (autant que possible !) les boucles for et while
LA PROGRAMMATION MATLAB
18
Programmation (3) • Mesure de complexité algorithmique – nombre d ’opérations depuis le début de la session MATLAB ou une remise à zéro >> flop – remise à zéro du compteur >> flop(0) – temps d ’exécution (en secondes) : >> A = rand(200); >> tic ; inv(A ’*A) ; toc elapsed_time = 12.4100
• Le profiler ( >> help profile ) >> profile report temps d secondes)
’exécution
total
(en
>> profile report N N lignes demandant le plus de temps d ’exécution (en % du temps total) LA PROGRAMMATION MATLAB
19
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
20
Programmation (5) • Le débogage permet de corriger : – les erreurs de programmation (nombre d ’arguments d ’entrée et de sortie, syntaxe des commandes ...) – les erreurs logiques (bugs)
• Utiliser : – le point virgule ; – le mode keyboard : keyboard – pause
– le débugger >> help debug
Debugging command ...
LA PROGRAMMATION MATLAB
21
4 - LES GRAPHIQUES • Les graphes en 2D • Les graphes en 3D • L ’exportation de graphes
LES GRAPHIQUES
1
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’) 100 90 80 70 60 50 40 30 20 10 0 -1 0
-5
0
LES GRAPHIQUES
5
10
2
Tracer de courbes 2D (2) • plot(y) permet
de tracer directement le vecteur y en fonction de ses indices. trace y1, y2 ... en fonction de x sur le même graphe avec les attributs s1, s2 ...
• plot(x,y1,s1,x,y2,s2,...)
>> y2 =0.5*x.^2 - x + 1 ; >> plot(x, y1, ’r’, x , 2, ’b’)
1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 -1 0
-5
0
LES GRAPHIQUES
5
1 0
3
Légender une courbe (1) • Insérer un titre >> title(‘Tracé de x^2 et 0.5x^2-x+1’)
• Légender l ’axe des abscisses >> xlabel(‘x : axe des abscisses’)
• Légender l ’axe des ordonnées >> ylabel(‘y : axe des ordonnées’)
• Insérer du texte >> gtext(‘x^2’) >> gtext(‘0.5x^2 - x + 1’)
• Ajouter un quadrillage >> grid
LES GRAPHIQUES
4
Légender une courbe (2) 2
2
Tra c é d e x e t 0 . 5 x -x+1 100
90
80
70 2
x
s e é 6 0 n n o d r o 5 0 s e d e x a 4 0 : y
30
20 2
0 . 5 x - x + 1 10
0 -1 0
-5
0
5
10
x : a xe d e s a b s is s e s
LES GRAPHIQUES
5
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 ‘ intéressante ’ de la courbe – Lecture précise du point d ’intersection entre deux courbes LES GRAPHIQUES
6
Tracer plusieurs courbes • Sur un même graphique >> plot(x, y1, ’r’) >> hold on >> plot(x, y2, ’b’)
• Sur plusieurs graphiques différents >> subplot(211), plot(x, y1, ’r’) >> subplot(212), plot(x, y2, ’r’) (Nb écrans vertical, Nb écrans horizontal, N° écran) 100
50
0 -1 0
-5
0
5
10
-5
0
5
10
80 60 40 20 0 -1 0
LES GRAPHIQUES
7
Tracer le graphe d ’une fonction • La commande fplot(‘ f ’,x) permet d ’afficher les variations de la fonction f1 (enregistrée dans le fichier f1.m) sur l ’intervalle x. >> x =0:0.1:4*pi; >> fplot (‘sin’, x)
1 0 .8 0 .6 0 .4 0 .2 0 -0.2 -0.4 -0.6 -0.8 -1 0
2
4
6
8
LES GRAPHIQUES
10
12
8
Autres formats (1) • Coordonnées 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
9
Autres formats (2) 10
10
10
m o d u le
0
-2
-4
10
0
10
1
10
2
10
3
10
4
p h a s e 0 -5 0 -100 -150 -200 10
0
10
1
10
2
10
3
10
4
• De même : – semilogy %ordonnées en logarithmique – bode(n,d) ➩
n et d sont deux polynômes en ω (Cf chap 5) représentant le numérateur et le dénominateur de la fonction de transfert. LES GRAPHIQUES
10
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)
25 20 15 10
5 0 1 0 .5
1 0 .5
0 0
-0.5
-0.5 -1
-1
LES GRAPHIQUES
11
Gérer un graphique • Gestion des fenêtres – ouvrir une nouvelle fenêtre : figure – fermer une fenêtre : close – fermer toutes les fenêtres : close all
• Exportation – créer 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 ...) LES GRAPHIQUES
12
5 - SIMULINK • L ’environnement et les blockset • Construire un schéma de simulation • La simulation
SIMULINK
1
Simulink >> simulink
SIMULINK
2
Le blockset Sources
SIMULINK
3
Le blockset Sinks
SIMULINK
4
Le blockset Linear
H(s) =
H(s) =
SIMULINK
N(s) D(s) N(s) D(s)
=
Σais i Σ bis i
Π(s
- zi)
Π(s
- pi)
=
5
Le blockset Discrete
N(z) H(z) = H(z) =
SIMULINK
D(s) N(z) D(z)
=
Σaiz i Σ biz i
Π(z
- zi)
Π(z
- pi)
=
6
Le blockset Non-linear
SIMULINK
7
Schéma de simulation • Construire le schéma
• Sauvegarder :
SIMULINK
8
Fichier .M de paramètres
➩ Sauvegarder ➩ Exécuter
(pour définir les variables dans l ’espace de travail) SIMULINK
9
Le masquage • Sélectionner avec le bouton gauche
SIMULINK
10
Asservissement de vitesse • Echelon de commande • Boucle fermée en vitesse • Correction proportionnelle
SIMULINK
11
Exécution simulation ! parameters
➩
• simulation linéaire ! linsim • temps de simulation! StopTime • fixer MinStepSize=MaxStepSize ➩
simulation ! start
M o t e u r C C : C o r re c t io n P : K = 1 :1 0 1 .4
1 .2 K=10 1 K=2
K=1
0 .8
0 .6
0 .4
0 .2
0 0
5
10
15
SIMULINK
20
25
30
35
12
6 - LES TOOLBOXES
•Signal •Control
LES TOOLBOXES
1
La Toolbox Signal (1) • Analyse spectrale : transformée de Fourier %génération 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
2
La Toolbox Signal (2) y= c o s ( 1 0 t ) + c o s ( 6 0 t ) + b r uit 10 5 0 -5 -1 0 0
0 .5
1
1 .5
2
2 .5
3
3 .5
4
m o d u le d e la TF d e y 0 .8 0 .6 0 .4 0 .2 0 0
10
20
30
40
50
60
70
• Transformée de Fourier inverse >> ifft(y)*N ;
LES TOOLBOXES
3
La Toolbox Signal (3) • Les estimateur spectraux : fonctions corrélation et covariance >>xcorr (x,‘option’) ➩ estimateur
d
’autocorrélation
(option=biased)
ou
non
biaisé biaisé
(option=unbiased) >>xcorr (x,y,‘option’) ➩ estimateur
d ’intercorrélation
>>xcov (x,‘option’) ➩ estimateur
d autocovariance
>> xcov (x,y,‘option’) ➩ estimateur
d ’intercovariance LES TOOLBOXES
4
La Toolbox Signal (4) • La troncature des signaux par la fenêtre naturelle (rectangle) entraîne des ondulations dans l ’espace fréquentiel (phénomène de Gibbs) ➩ Utilisation
de fenêtres de pondération qui réduisent ce phénomène >>hamming (N) >>hanning (N) >> bartlett (N) >> blackman (N)
où N représente le nombre de points de la fenêtre LES TOOLBOXES
5
La Toolbox Signal (5) • Synthèse de filtres numériques butter (n,fc,option) >> [b,a]=
passe-bas de Butterworth d ’odre n, de fréquence de coupure normalisée fc (passe-bande si fc = [f1 f2]) option = ‘high’ : passe-haut option = ‘stop’ : coupe-bande >> [b,a]=cheby1 (n, ➩ filtre
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 d’ondulation bande passante Rs : taux d ’ondulation bande filtrée LES TOOLBOXES
6
La Toolbox Control (1) • Création de modèles ➩ modèle
d ’état
>> ss(A,B,C,D) U
+
•
X
B
∫
X
+
Y
C +
+ A D
A : matrice d ’état
B : matrice de commande C : matrice d ’observation
D : matrice de liaison directe ➩ modèle
zéros/pôles
>> zpk(Z,P,K) Z : zéros de transmission
P : pôles K : gain LES TOOLBOXES
7
La Toolbox Control (2) • Réponses temporelles >> sys = zpk([],[-1],5) Zero/pole/gain: 5 --------(s +1)
>> step(sys)
réponse indicielle
>> impulse(sys)
réponse
impulsionnelle >> lsim (sys,u) réponse à l ’entrée u 5
6 5
4
4 3 3 2 2 1
1
0
0 0
50
100
150
0
LES TOOLBOXES
50
100
150
8