INITIATIONINITIATIONA MATLABA MATLAB
Lionel PREVOST
Sommaire :Sommaire :1 1 -- Initiation à Initiation à MatlabMatlab
2 2 -- Vecteurs et MatricesVecteurs et Matrices
3 3 -- La Programmation La Programmation MatlabMatlab
4 4 -- Les GraphiquesLes Graphiques
5 5 –– SimulinkSimulink
6 6 -- Les Les ToolboxesToolboxes
INTRODUCTION 1
1 - INITIATION
A MATLAB
Lionel PrevostLaboratoire des Instruments & Systèmes
Université Pierre & Marie Curie
INTRODUCTION 2
Introduction (1)
• MATrix LABoratory
• Logiciel qui permet, de manière interactive :– de faire des calculs matriciels ;– d ’analyser les données ;– de visualiser les résultats en 2D et 3D ...
• Langage de programmation
• Toolboxes : ensemble de fonctions (fichiers .M) développées pour des domaines d ’applications spécifiques
• SIMULINK : extension graphique interactive de MATLAB
INTRODUCTION 3
Introduction (2)
INTRODUCTION 4
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 5
L ’espace de travail :le Workspace (1)
• La fenêtre de commande
INTRODUCTION 6
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 :>> whoYour variables are:x y
>> whosName Size Bytes Classx 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)
• Gérer les accès 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 opérations scalaires
• Vecteurs et opérations vectorielles
• Matrices et opérations matricielles
• Polynômes
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 =
1j =
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 opérations arithmétiques>> 3 +7 - 2 * 9ans =
-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
– racine : sqrt
– valeur absolue : abs– arrondis : round ceil floor fix
VECTEURS ET MATRICES
4
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
5
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
6
Créer un vecteur (3)
• Génération automatiquecomposantes espacées 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 10debut à 10fin
syntaxe : v =logspace(debut, fin, N)
VECTEURS ET MATRICES
7
• 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 2 3
Opérations vectorielles (1)
!
VECTEURS ET MATRICES
8
Opérations vectorielles (2)• opérations élémentaires
– somme de vecteurs de même dimensions>> s = [2 1 -1] + [1 -3 5]s =
3 -2 4– ajout d ’un scalaire
>> s + 2ans =
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
9
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
10
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 32 5 1
– lignes séparées par un retour chariot>> M1=[1 0 3
2 5 1]M1 =
1 0 32 5 1
• Dimensions>> size(M1) ans =
2 3
VECTEURS ET MATRICES
11
Les matrices spéciales (1)
• Matrices identité, nulle et unité>> IDENTITE =eye( 2,3)
IDENTITE =
1 0 00 1 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
12
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) ;
-4 -3 -2 -1 0 1 2 3 40
2 0 0
4 0 0
6 0 0
8 0 0
0 0 .2 0 .4 0 .6 0 .8 10
5 0
1 0 0
1 5 0
2 0 0
2 5 0
VECTEURS ET MATRICES
13
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
14
Opérations matricielles (2)
• Comparaison>> M3 = [1 0 3 ; 2 5 1 ; 0 7 12] ;>> M4 =ones(3) ;
>> M3 >M4ans =
0 0 1
1 1 00 1 1
• Extension des instruction min, max ...>> max(M3) %maximum par colonnesans =
2 7 12
>> max(max(M3))
ans =12
VECTEURS ET MATRICES
15
Opérations matricielles (3)
• Produit classique Rappel : le produit de A(mxn) par B(pxq) n ’est possible que si n = p et le résultat 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 .*A
ans = ans =
7 10 1 4
15 22 9 16
VECTEURS ET MATRICES
16
Opérations matricielles (4)
• Fonctions diverses– déterminant :
>> det(M)
– norme>> norm(M)
– rang>> rank(M)
– inverse (et pseudo-inverse)>> inv(M) >> pinv(M)
– conditionnement>> cond(M)
– exponentielleexpm: vecteurs et valeurs propresexpm1: approximation de Padé
expm2: série de Taylor
VECTEURS ET MATRICES
17
Vecteurs et valeurs propres
>> M = [2 1 ; 1 2] ;
• Polynôme caractéristique : |λ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 polynômes
• Vecteur ligne ensemble de données
• Vecteur ligne polynôme de degré np(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
19
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
20
Opérations polynomiales (2)• Division de polynômes : cas général
p(x) = x3 + x - 1d(x) = x2 + 3x - 4>> [q,r] = deconv(p,d)q =
1 -3r =
0 0 14 -13
>> [res, poles, direct] =residue(p,d)res =
13.80000.2000
poles =-41
direct = 1 -3
p xq x
xx x
( )( )
. .= − ++
+−
3 1384
0 21
VECTEURS ET MATRICES
21
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 0
LA PROGRAMMATION MATLAB
1
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
2
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 1
LA PROGRAMMATION MATLAB
3
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
• Conversionsnum2str : nombre chaînemat2str : matrice chaînestr2num : chaîne nombre
LA PROGRAMMATION MATLAB
4
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
5
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
6
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
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 supérieur à un réel 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
prématurée d'une boucle de contrôle.
break termine l ’exécution d ’une boucle.for variable1 = debut1 : fin1instructions .......... 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 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
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 vérifier alors les instructions 2 sont exécutées
LA PROGRAMMATION MATLAB
11
L ’instruction IF (3)
• Permet une sélection multiple.syntaxe
if expression1 instructions 1
elseif expression2 instructions 2
elseif expression3instructions 3. . . . . . . . . . .
else expressionN instructions N
end
LA PROGRAMMATION MATLAB
12
L ’instruction SWITCH
• Permet une sélection multiple.syntaxe
switch variable case variable =expression1
instructions 1
case variable =expression2 instructions 2
. . . . . . . . . .
Otherwiseinstructions (erreur)
end
LA PROGRAMMATION MATLAB
13
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.
>> temps = 1 ;
>> message
il fait beau
%message.m affiche un messageif (temps)
disp(‘il fait beau ’)end
LA PROGRAMMATION MATLAB
14
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 par le mot réservé 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 définie dans un fichier (f1.m)
>> x = -10:0.1:10;
>> y =feval(‘ f1 ’, x) ;
>> plot(x,y)
-1 0 -5 0 5 1 0-5 0
0
5 0
1 0 0
1 5 0
2 0 0
2 5 0
3 0 0
function y = f1(x)
y = 2*x.^2 - 5*x +1
LA PROGRAMMATION MATLAB
17
Programmation (1)
Forme générale d ’une application MATLAB
Fonction 1 Fonction 2 Fonction 3
Fonction 21
Fonction 22
SCRIPT
Fonctions privéeset/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)
– 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
19
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) ; tocelapsed_time =
12.4100
• Le profiler ( >> help profile )>> profile reporttemps d ’exécution total (en secondes)
>> profile report NN lignes demandant le plus de temps d ’exécution (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 : 200x = x + A(i,j) ;
endend
>> toc
elapsed_time =
4.5000
>> tic ; sum(sum(A) ; toc
elapsed_time =
0.0600
LA PROGRAMMATION MATLAB
21
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 ...
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’)
-1 0 -5 0 5 1 00
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
1 0 0
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 même 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 00
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
1 0 0
LES GRAPHIQUES 4
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 5
Légender une courbe (2)
-1 0 -5 0 5 1 00
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
1 0 0
x : a xe d e s a b s is s e s
y : a
xe d
es o
rdon
nées
Tra cé d e x2 e t 0 .5 x2-x+1
x2
0 .5 x2 - 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 ‘ intéressante ’
de la courbe– Lecture précise du point d ’intersection
entre deux courbes
LES GRAPHIQUES 7
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)
-1 0 -5 0 5 1 00
5 0
1 0 0
-1 0 -5 0 5 1 00
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 (enregistrée dans le fichier f1.m) sur l ’intervalle x.
>> x =0:0.1:4*pi;
>> fplot (‘sin’, x)
0 2 4 6 8 1 0 1 2-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)• 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 10
Autres formats (2)
• 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.
1 00
1 01
1 02
1 03
1 04
1 0- 4
1 0- 2
1 00 m o d u le
1 00
1 01
1 02
1 03
1 04
-2 0 0
-1 5 0
-1 0 0
-5 0
0p h a 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
00 .5
1
-1
-0 .5
0
0 .5
10
5
1 0
1 5
2 0
2 5
LES GRAPHIQUES 12
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, activeredit copy figure
puis coller (sous Word, Powerpoint ...)
SIMULINK 1
5 - SIMULINK
• L ’environnement et les blockset
• Construire un schéma 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) Σais iH(s) = =
D(s) Σbis i
N(s) Π(s - zi)H(s) = =D(s) Π(s - pi)
SIMULINK 6
Le blockset Discrete
N(z) Σaiz i
H(z) = =D(s) Σbiz i
N(z) Π(z - zi)H(z) = =D(z) Π(z - pi)
SIMULINK 7
Le blockset Non-linear
SIMULINK 8
Schéma de simulation• Construire le schéma
• Sauvegarder :
SIMULINK 9
Fichier .M de paramètres
➩ Sauvegarder➩ Exécuter (pour définir les variables dans l ’espace de travail)
SIMULINK 10
Le masquage• Sélectionner avec le bouton gauche
SIMULINK 11
Asservissement de vitesse• Echelon de commande• Boucle fermée en vitesse• Correction proportionnelle
SIMULINK 12
Exécution➩ simulation ! parameters
• simulation linéaire ! linsim
• temps de simulation! StopTime
• fixer MinStepSize=MaxStepSize
➩ simulation ! start
0 5 1 0 1 5 2 0 2 5 3 0 3 50
0 .2
0 .4
0 .6
0 .8
1
1 .2
1 .4M o te u r C C : C o rre c tio n P : K = 1 :1 0
K = 1K = 2
K = 1 0
LES TOOLBOXES 1
6 - LES TOOLBOXES
•Signal
•Control
LES TOOLBOXES 2
La Toolbox Signal (1)• Analyse spectrale : transformée de
Fourier
%génération des signauxN = 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 fftfy = fft(y)/N ;
%affichagef = (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)
• Transformée de Fourier inverse>> ifft(y)*N ;
0 0 .5 1 1 .5 2 2 .5 3 3 .5 4-1 0
-5
0
5
1 0y=c o s (1 0 t) + c o s (6 0 t) + b ruit
0 1 0 2 0 3 0 4 0 5 0 6 0 7 00
0 .2
0 .4
0 .6
0 .8m o d ule d e la TF d e y
LES TOOLBOXES 4
La Toolbox Signal (3)• Les estimateur spectraux : fonctions
corrélation et covariance>>xcorr (x,‘option’)
➩ estimateur d ’autocorrélation biaisé (option=biased) ou non 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 5
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 6
La Toolbox Signal (5)
• Synthèse de filtres numériques>> [b,a]=butter (n,fc,option)
➩ filtre passe-bas de Butterworth d ’odre n, de fréquence de coupure normalisée fc(passe-bande si fc = [f1 f2])option = ‘high’ : passe-hautoption = ‘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 elliptiqueRp : taux d’ondulation bande passanteRs : taux d ’ondulation bande filtrée
LES TOOLBOXES 7
La Toolbox Control (1)• Création de modèles
➩ modèle d ’état>> ss(A,B,C,D)
A : matrice d ’étatB : matrice de commandeC : matrice d ’observationD : matrice de liaison directe
➩ modèle zéros/pôles>> zpk(Z,P,K)Z : zéros de transmissionP : pôlesK : gain
B
D
∫
A
C+
+
YU +
+
XX•
LES TOOLBOXES 8
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
0 5 0 1 0 0 1 5 00
1
2
3
4
5
0 5 0 1 0 0 1 5 00
1
2
3
4
5
6
LES TOOLBOXES 9
La Toolbox Control (3)
• Lieux de transfert>> bode(sys) lieu de Bode:Hdb(ω),ϕ(ω)
>> nyquist(sys) lieu de Nyquist : Re(H),Im(H)
>> nychols(sys) lieu de Black : Hdb(ω),ϕ(ω)
>> rlocus(sys) lieu d’Evans
F re q ue ncy (ra d /s e c )
Pha
se (d
eg);
Mag
nitu
de (d
B)
Bo d e D ia g ra m s
-1 0
-5
0
5
1 0
1 5
1 0-1
1 00
1 01
-1 0 0
-5 0
0
Top Related