86
INITIATION INITIATION A MATLAB A MATLAB Lionel PREVOST

INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

  • Upload
    buinhan

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

INITIATIONINITIATIONA MATLABA MATLAB

Lionel PREVOST

Page 2: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 3: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

INTRODUCTION 1

1 - INITIATION

A MATLAB

Lionel PrevostLaboratoire des Instruments & Systèmes

Université Pierre & Marie Curie

Page 4: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 5: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

INTRODUCTION 3

Introduction (2)

Page 6: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 7: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

INTRODUCTION 5

L ’espace de travail :le Workspace (1)

• La fenêtre de commande

Page 8: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 9: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 10: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

INTRODUCTION 8

L ’espace de travail (4)

• Gérer les accès fichiers>> pathtool

• Editer les commandes :

Page 11: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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é.

Page 12: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 13: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 14: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 15: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 16: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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 =[ ] ;

Page 17: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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)

Page 18: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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)

!

Page 19: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 20: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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)

Page 21: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 22: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 23: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 24: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 25: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 26: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 27: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 28: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 29: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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!

Page 30: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 31: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 32: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 33: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 34: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 35: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 36: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 37: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 38: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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 !!!

Page 39: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 40: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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).

Page 41: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 42: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 43: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 44: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 45: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 46: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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.

Page 47: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 48: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 49: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 50: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 51: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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)

Page 52: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 53: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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 ...

Page 54: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

LES GRAPHIQUES 1

4 - LES GRAPHIQUES

• Les graphes en 2D

• Les graphes en 3D

• L ’exportation de graphes

Page 55: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 56: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 57: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 58: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 59: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 60: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 61: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 62: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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)

Page 63: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 64: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 65: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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 ...)

Page 66: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 1

5 - SIMULINK

• L ’environnement et les blockset

• Construire un schéma de simulation

• La simulation

Page 67: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 2

Simulink>> simulink

Page 68: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 3

Le blockset Sources

Page 69: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 4

Le blockset Sinks

Page 70: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 5

Le blockset Linear

N(s) Σais iH(s) = =

D(s) Σbis i

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

Page 71: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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)

Page 72: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 7

Le blockset Non-linear

Page 73: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 8

Schéma de simulation• Construire le schéma

• Sauvegarder :

Page 74: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 9

Fichier .M de paramètres

➩ Sauvegarder➩ Exécuter (pour définir les variables dans l ’espace de travail)

Page 75: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 10

Le masquage• Sélectionner avec le bouton gauche

Page 76: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

SIMULINK 11

Asservissement de vitesse• Echelon de commande• Boucle fermée en vitesse• Correction proportionnelle

Page 77: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 78: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

LES TOOLBOXES 1

6 - LES TOOLBOXES

•Signal

•Control

Page 79: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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') ;

Page 80: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 81: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 82: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 83: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 84: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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•

Page 85: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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

Page 86: INITIATION A MATLABread.pudn.com/downloads166/sourcecode/math/765121/Matlab... · 2003-04-19 · • SIMULINK : extension graphique ... au fur et à mesure de leur déclaration

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