Vous êtes sur la page 1sur 86

INITIATION

A MATLAB

Lionel PREVOST
Sommaire :
1 - Initiation à Matlab

2 - Vecteurs et Matrices

3 - La Programmation Matlab

4 - Les Graphiques

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

• 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 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 1
MATRICES
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 2
MATRICES
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
– racine : sqrt
– valeur absolue : abs
– arrondis : round ceil floor
fix VECTEURS ET 3
MATRICES
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 4
MATRICES
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 5
MATRICES
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.000
2.500 3.000

⇔ v =linspace(1, 3, 5)

espacement logarithmique de 10debut à 10fin

syntaxe : v =logspace(debut, fin, N)

VECTEURS ET 6
MATRICES
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 2 3
VECTEURS ET 7
MATRICES
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 + 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 8
MATRICES
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 9
MATRICES
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 3
2 5 1
– lignes séparées 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 10
MATRICES
Les matrices spéciales (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
é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 11
MATRICES
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 0 .8 1

VECTEURS ET 12
MATRICES
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 13
MATRICES
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
• Extension des instruction min, max ...
>> max(M3) %maximum par colonnes
ans =
2 7 12
>> max(max(M3))
ans =
12
VECTEURS ET 14
MATRICES
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 15
MATRICES
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)
– exponentielle
expm: vecteurs et valeurs propres
expm1: approximation de Padé
expm2: série de Taylor

VECTEURS ET 16
MATRICES
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 17
MATRICES
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 18
MATRICES
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 19
MATRICES
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 20
MATRICES
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

VECTEURS ET 21
MATRICES
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 1
MATLAB
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 2
MATLAB
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 3
MATLAB
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 4
MATLAB
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 5
MATLAB
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 6
MATLAB
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 7
MATLAB
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 8
MATLAB
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 9
MATLAB
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 10
MATLAB
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 11
MATLAB
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 12
MATLAB
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 13
MATLAB
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 14
MATLAB
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 15
MATLAB
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

-5 0
-1 0 -5 0 5 10

LA PROGRAMMATION 16
MATLAB
Programmation (1)
Forme générale d ’une
application MATLAB

SCRIPT

Fonction 1 Fonction 2 Fonction 3

Fonctions privées
Fonction 21
et/ou
sous fonctions
Fonction 22

LA PROGRAMMATION 17
MATLAB
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 18
MATLAB
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 ’exécution total (en
secondes)
>> profile report N
N lignes demandant le plus de
temps d ’exécution (en % du temps
total) LA PROGRAMMATION 19
MATLAB
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 20
MATLAB
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 21
MATLAB
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 5 10

LES GRAPHIQUES 2
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’)

100

90

80

70

60

50

40

30

20

10

0
-1 0 -5 0 5 10

LES GRAPHIQUES 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
y : a xe d e s o rd o nné e s

60

50

40

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

80

60

40

20

0
-1 0 -5 0 5 10

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)

0 .8

0 .6

0 .4

0 .2

-0 .2

-0 .4

-0 .6

-0 .8

-1
0 2 4 6 8 10 12

LES GRAPHIQUES 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)
0
m o d u le
10

-2
10

-4
10
0 1 2 3 4
10 10 10 10 10
p ha s e
0

-5 0

-1 0 0

-1 5 0

-2 0 0
0 1 2 3 4
10 10 10 10 10

• 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

0
1
0 .5 1
0 0 .5
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

N(s) Σais i
H(s) = =
D(s) Σbis i

N(s) Π(s - zi)


H(s) = =
D(s) Π(s - pi)

SIMULINK 5
Le blockset Discrete

N(z) Σaiz i
H(z) = =
D(s) Σbiz i
N(z) Π(z - zi)
H(z) = =
D(z) Π(z - pi)

SIMULINK 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 te u r C C : C o rr e c tio n P : K = 1 :1 0
1 .4

1 .2
K=10

K=2
K=1
0 .8

0 .6

0 .4

0 .2

0
0 5 10 15 20 25 30 35

SIMULINK 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 ruit
10

-5

-1 0
0 0 .5 1 1 .5 2 2 .5 3 3 .5 4

m o d ule 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 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 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


>> [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-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 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 X + Y
B ∫ C
+
+

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 50 100 150

LES TOOLBOXES 8
La Toolbox Control (3)

• Lieux de transfert
>> bode(sys) lieu de Bode:Hdb(ω),ϕ(ω)
B o d e D ia g ra m s

15
10
P ha s e (d e g ); Ma g nitud e (d B )

0
-5
-1 0
0

-5 0

-1 0 0
-1 0 1
10 10 10
F re q ue nc y (ra d /s e c )

>> nyquist(sys) lieu de Nyquist :


Re(H),Im(H)
>> nychols(sys) lieu de Black : Hdb(ω),ϕ(ω)
>> rlocus(sys) lieu d’Evans
LES TOOLBOXES 9

Vous aimerez peut-être aussi