34
Logiciels de Simulation ELT541 - Unité Transversale Chapitre 1 Prise en main de Matlab Chapitre 1 Prise en main de Matlab Chapitre 2 Types de données et variables Chapitre 3 Graphiques Chapitre 4 Programmer sous Matlab (doc pdf) Chapitre 5 Prise en main de Simulink Chapitre 6 Power System Blockest Chapitre 7 Simulation et co-simulation avec d’autres logiciels Pspice Scilab….. Contenu de la matière programme 2018/2019 1

Logiciels de Simulation ELT541 - Unité Transversale

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Logiciels de Simulation ELT541 - Unité Transversale

Logiciels de SimulationELT541 - Unité Transversale

Chapitre 1 Prise en main de Matlab

simulation avec d’autres

Chapitre 1 Prise en main de MatlabChapitre 2 Types de données et variablesChapitre 3 GraphiquesChapitre 4 Programmer sous Matlab (doc pdf)Chapitre 5 Prise en main de SimulinkChapitre 6 Power System BlockestChapitre 7 Simulation et co-simulation avec d’autres logiciels Pspice Scilab…..

Contenu de la matière programme 2018/2019

1

Page 2: Logiciels de Simulation ELT541 - Unité Transversale

Chapitre 1 Prise en main de Matlab

I.1 IntroductionI.2 Environnement MATLABI.3 Démarrage de MATLABI.4 Généralités

2

Page 3: Logiciels de Simulation ELT541 - Unité Transversale

• I.1 Introduction• Matlab est un langage de haut niveau dédié pour le calcul

scientifique sur ordinateur.

• La puissance de matlab, par rapport à un autre langage de programmation, réside dans le fait qu’il offre un nombre important de fonctions qui résolve beaucoup de problèmes (mathématique, physique). Donc l’utilisateur de matlabn’aura pas à programmer pour faire le produit de deux matrices ou pour résoudre un système d’équations donné.

• Dans matlab une donnée n’a pas besoin d’être déclarée. Toute donnée est considérée automatiquement comme une matrice d’ailleurs le nom matlab vient de MATrix LABoratory.

Chapitre 1 Prise en main de Matlab

3

Page 4: Logiciels de Simulation ELT541 - Unité Transversale

• I.2 Environnement Matlab• MATLAB est un environnement puissant, complet et

facile à utiliser. Il est destiné au calcul scientifique. Il apporte aux ingénieurs, chercheurs et à tout scientifique un système interactif intégrant calcul numérique et visualisation.

• C'est un environnement performant, ouvert et programmable qui permet de remarquables gains de productivité et de créativité.

Chapitre 1 Prise en main de Matlab

4

Page 5: Logiciels de Simulation ELT541 - Unité Transversale

• I.3 Démarrage de Matlab• Pour lancer matlab sur un PC (Personal Computer),

il suffit de faire un double click sur l’icône de matlab.

• Pour le quitter il suffit de taper quit après le prompt » de la fenêtre de commande (Command Window).

Chapitre 1 Prise en main de Matlab

5

Page 6: Logiciels de Simulation ELT541 - Unité Transversale

1

2

3

4

1 Command Window

2 workespace3 Command history4 Current folder 6

Page 7: Logiciels de Simulation ELT541 - Unité Transversale

1

2

3

4

1 fenêtre de commande2 espace de travail

3 historique des commandes

4 le dossier courant7

Page 8: Logiciels de Simulation ELT541 - Unité Transversale

Fenêtre de commande

Elle est caractérisée par le prompt ( l‘invite) >>C’est là où on tape les différentes commandes:>> a=1; b=2;>>c=a+b;

8

Page 9: Logiciels de Simulation ELT541 - Unité Transversale

C’est une fenêtre qui donne la liste des différentes variables.

historique des commandes

9

Page 10: Logiciels de Simulation ELT541 - Unité Transversale

1.4 Présentation et généralités• La fenêtre de commande peut être assimilé à

une calculatrice puissante pour faire différents calculs.

• Elle permet aussi de taper différentes commandes telles que:

help pour obtenir de l’aide.format pour changer le format des résultats.who pour avoir la liste des variables.what la liste des fichier dans le dossier

courant.

10

Page 11: Logiciels de Simulation ELT541 - Unité Transversale

1.4 Présentation et généralités

Exemples de com

mandes

11

Page 12: Logiciels de Simulation ELT541 - Unité Transversale

Syntaxe d'une ligne d'instructionsSi une instruction MATLAB est suivie d'un point virgule, le résultat de cette instruction n'est pas affiché. Pour réafficher un résultat contenu dans une variable, il suffit de taper le nom de la variable. Ou ans s’il s’agit d’une expression>> A=2;>>A A=

2

>> A*A;>> ans ans =

412

Page 13: Logiciels de Simulation ELT541 - Unité Transversale

Plusieurs instructions MATLAB peuvent figurer sur une même ligne. Il faut alors les séparer par une virgule ou par un point virgule. D'autre part, si une commande est trop longue pour tenir sur une ligne, il est possible de poursuivre sur la ligne suivante en terminant la ligne par 3 points (...).>> B =3;B*B;ans =

9>> x = 1 + 2 + 3 + 4 + 5 + 6 ...+7 + 8 + 9 + 10x =

55

Syntaxe d'une ligne d'instructions

13

Page 14: Logiciels de Simulation ELT541 - Unité Transversale

Gestion des fichiers du répertoire de travail

Un certain nombre de commandes permettent de gérer les fichiers du répertoire de travail.La commande dir donne la liste des fichiers du répertoire de travail.La commande cd permet de changer de répertoire de travail.La commande type permet d'afficher le contenu d'un fichier. La commande delete permet de détruire un fichier. Enfin la commande edit permet d'ouvrir un éditeur de texte.

Ces commandes s'utilisent de la même manière que les commandes correspondantes DOS. Voici alors quelques exemples d'utilisation des commandes de gestion des fichiers.

14

Page 15: Logiciels de Simulation ELT541 - Unité Transversale

• -Pour supprimer une variable x:• clear x• - Pour effacer toutes les variables de l’espace de

travail on tape• clear all• - Pour savoir les variables qui se trouvent dans

l’espace de travail :• who• - Pour effacer l’écran sans supprimer les variables :• clc ou à partir du menu Edit/clear session1 ji

1.4 Présentation et généralitésBon à savoir

15

Page 16: Logiciels de Simulation ELT541 - Unité Transversale

• Bon à savoir• - Toutes les commandes passées après le prompt

sont mémorisées dans l’espace de travail. On peut y accéder par les touches et du clavier

• - On peut changer le nombre de chiffres après la virgule. Par défaut c’est le format short qui est utilisé pour l’affichage : soit 4 chiffres après la virgule. Pour passer au format long (14 chiffres après la virgule) et donc pour plus de précision, on tape:

• format long• - pour retourner au format short on tape• format short

1.4 Présentation et généralités

16

Page 17: Logiciels de Simulation ELT541 - Unité Transversale

Bon à savoirConstantes prédéfinies• Matlab a prévu un certains nombre de

variables prédéfinies, on cite :• pi=3.14… eps=2.22…10-16

• inf pour l’ (division par zéro)• NaN (Not a Number) pour signaler une

indétermination (par exemple dans le cas ou 0/0

• i ou j nombre imaginaire pur 1 ji

1.4 Présentation et généralités

17

Page 18: Logiciels de Simulation ELT541 - Unité Transversale

Chapitre 2 Type de données et variables

2.1 Types de données2.2 Les variables- Nombres complexe- Chaines de caractères- Variables booléennes- Les vecteurs, les matrices- Les polynômes

18

Page 19: Logiciels de Simulation ELT541 - Unité Transversale

2.1 Types de données

On a 3 types de données:-Type complexes (INIZ IR IC)-Type chaines de caractères-Type logique ou booléen

RappelDans matlab une donnée n’a pas besoin d’être déclarée.

19

Page 20: Logiciels de Simulation ELT541 - Unité Transversale

2.1 Types de donnéesType ComplexeUn nombre complexe peut être représenté sous matlabpar:

Z=1+i*2 Z=1+2i Z=1+2*iz=2*exp(2i) z=2*exp(2*i) z=2*exp(2j)

On peut accéder:

Partie réelle

Partie imaginaire

module argument conjugué

real(z) imag(z) abs(z) angle(z) conj(z)Ou bienz’

20

Page 21: Logiciels de Simulation ELT541 - Unité Transversale

2.1 Types de donnéesType chaine de caractèreUne chaine de caractères peut être représenté sous matlab par:

s=‘oui’ s='aujourd''hui’ s='&#'

>> s='oui'

s =

oui

>> s='aujourd''hui'

s =

aujourd'hui

>> s='&#'

s =

&#

21

Page 22: Logiciels de Simulation ELT541 - Unité Transversale

2.1 Types de donnéesType logique logical ou booléenUn type booléen admet deux valeurs:Vrai (true) ou faux (false)

Pour matlab vrai 1 et faux0Le type logique est attribué à une expression logique.Exemple Si Température > 18 et pluie=‘non’ il fait beauSinon il fait mauvais

Température > 18 et pluie=‘non’ expression logiqueExempleTempérature=20 pluie=‘oui’ donc Température > 18 et pluie=‘non’ = 0 (n’est pas vérifiée) il fait mauvais

22

Page 23: Logiciels de Simulation ELT541 - Unité Transversale

2.2 Les variables•Les vecteurs et matrices (voir support de cours )•Les polynômesSous MATLAB le polynôme de degré n, p(x) = an xn + an-1 xn-1 + . . . + a1 x + a0est défini par un vecteur p de dimension n+1 contenant les coefficients {ai}{i=0,...,n} rangés dans l'ordre décroissant des indices. Exemple

p(x) = x2 + 2 x +3>> p=[1 2 3];>> x=2;>> polyval(p,x)ans =

1123

Page 24: Logiciels de Simulation ELT541 - Unité Transversale

24

Chapitre 3 Graphiques3.1 Graphisme 2DTracer le graphe d'une fonction; la commande fplotLa commande fplot permet de tracer le graphe d'une fonction sur un intervalle donné. La syntaxe est:

fplot('nomf', [xmin , xmax])où nomf est soit le nom d'une fonction MATLAB incorporée, soit une expression définissant une fonction de la variable x, soit le nom d'une fonction utilisateur.[xmin , xmax] est l'intervalle pour lequel est tracé le graphe de la fonction.Exemple>>fplot('cos',[-2*pi, 2*pi]) >>fplot('x^2+2*x-1',[-2,2])

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1

0

1

2

3

4

5

6

7

-6 -4 -2 0 2 4 6-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Page 25: Logiciels de Simulation ELT541 - Unité Transversale

25

>>fplot('[cos(100*pi*t),cos(100*pi*t-2*pi/3),cos(100*pi*t-4*pi/3)]', [0, 40e-3])

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Il est possible de tracer plusieurs fonctions sur la même figure:fplot('[nomf_1 , nomf_2 , nomf_3]', [xmin , xmax])Exemple

Graphisme 2D

Page 26: Logiciels de Simulation ELT541 - Unité Transversale

26

La commande plotLa commande plot permet de tracer un ensemble de points de coordonnées (xi , yi), i=1, ..., N.

La syntaxe estplot(x,y) où x est le vecteur contenant les valeurs xien abscisse et y est le vecteur contenant les valeurs yi en ordonnée.

0 0.5 1 1.5 2 2.5 3 3.5 4-5

0

5

10

15

20

x=[0:0.1:4];>> y=2*x.^2-2*x-4;>> plot(x,y)

Exemple

Page 27: Logiciels de Simulation ELT541 - Unité Transversale

27

Par défaut, la courbe est tracé en trait continu en bleu pour la 1ere courbe, la 2eme en Vert et la 3eme en Rouge

Il est possible de changer la couleur et le type de trait, il est aussi possible d’utiliser des marques:

Couleurs:r rouge; y jaune b bleu g vert, k noir etc

Marques:. Pointx croixO cercle+ plus* Étoile etc

Type de trait-Trait plein-- pointillé long: pointillé court-. Pointillé mixte

x=0.1:0.1:1;>> y1=exp(x);>> y2=1./x;>> plot(x,y1,'k:',x,y2,'k-')>> plot(x,y1,'k-x',x,y2,'k-o')

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 11

2

3

4

5

6

7

8

9

10

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 11

2

3

4

5

6

7

8

9

10

Page 28: Logiciels de Simulation ELT541 - Unité Transversale

28

Améliorer la lisibilité d'une figure

xlabel(' légende ')ylabel(' légende ‘)

Le titre

Title(‘titre’)

Exemple>>x=0.1:0.1:3;>> y1=exp(-x);>> y2=1./x;>> y3=3*sin(x);>> plot(x,y1,'k:',x,y2,'k-',x,y3,'k--');>> legend('exp(-x)','1./x','3*sin(x)');>>grid ;>>title('exemple');>>xlabel('x');>>ylabel('y');

Une légende

legend(‘courbe1’,’courbe2’);

0 0.5 1 1.5 2 2.5 30

1

2

3

4

5

6

7

8

9

10

x

y

exemple

exp(-x)1./x3*sin(x)

Légendes axes x et y

Page 29: Logiciels de Simulation ELT541 - Unité Transversale

29

Afficher plusieurs courbes dans une même fenêtre

Il est possible d’afficher plusieurs figures en même temps grâce à la commande hold on:

x=0.1:0.1:3;>> y1=exp(x);>> y2=2*sin(x);>> plot(x,y1,'r');>>hold on>> plot(x,y2,'g');

0 0.5 1 1.5 2 2.5 30

5

10

15

20

25

hold off permet de revenir à la situation initiale càd la dernière courbe est tracée seule .

Page 30: Logiciels de Simulation ELT541 - Unité Transversale

30

Il est possible de décomposer une fenêtre en sous-fenêtres et d'afficher une figure différente sur chacune de ces sous-fenêtres grâce à la commande subplot. La syntaxe est

subplot(m,n,i)m est le nombre de sous-fenêtres verticalement;n est le nombre de sous-fenêtres horizontalement;i sert à spécifier dans quelle sous-fenêtre doit s'effectuer l'affichage. Les fenêtres sont numérotées de gauche à droite et de haut en bas.

>>subplot(2,3,1); fplot('cos',[0 4*pi]), title('cosinus'),grid,>>subplot(2,3,2), fplot('sin',[0 4*pi]), title('sinus'), grid>>subplot(2,3,3), fplot('tan',[-pi/3 pi/3]), title('tangente'), grid>>subplot(2,3,4), fplot('acos',[-1 1]), title('arc-cosinus'), grid>>subplot(2,3,5), fplot('asin',[-1 1]), title('arc-sinus'), grid>>subplot(2,3,6), fplot('atan',[-sqrt(3) sqrt(3)]), title('arc-tangente'), grid

0 5 10-1

-0.5

0

0.5

1cosinus

0 5 10-1

-0.5

0

0.5

1sinus

-1 0 1-2

-1

0

1

2tangente

-1 0 10

1

2

3

4arc-cosinus

-1 0 1-2

-1

0

1

2arc-sinus

-1 0 1-2

-1

0

1

2arc-tangente

Page 31: Logiciels de Simulation ELT541 - Unité Transversale

31

3.2 Gestion des fenêtres graphiques

Une commande de graphique permet de tracer une courbe dans une fenêtre.Si une deuxième commande est lancée pour tracer une 2eme courbe, la première est automatiquement fermée.

Si on veut maintenir la première fenêtre, on doit taper la commande figure avant de lancer la 2eme commande. On aura apparition des deux fenêtres graphiques avec numéros 1 pour la première et 2 pour la seconde.

Si on veux fermer une des fenêtres on tape la commande:close (n) avec n le numéro de la fenêtre à fermer.Si on veut fermer toutes les fenêtres on tape:close all.

Page 32: Logiciels de Simulation ELT541 - Unité Transversale

32

>> close all;>>x=0.1:0.1:3;>>y1=exp(-x);y2=1./x;y3=3*sin(x);>>plot(x,y1),xlabel('x');ylabel('y1');title('exp(-x)');grid>>figure;>>plot(x,y2);xlabel('x');ylabel('y2');title('1./x');grid;

Exemple

Page 33: Logiciels de Simulation ELT541 - Unité Transversale

33

Les diagrammes dans le Cas des données discrètes, on peut utiliser les commandes bar et stem pour présenter les résultats :

0 2 4 6 8 1010

15

20

25

1 2 3 4 5 6 7 8 9 100

10

20

30

0 2 4 6 8 100

10

20

30

>> x=[1 2 3 4 5 6 7 8 9 10];>> y=[10 12 14 16 20 24 16 14 12 12];>> subplot(3,1,1); plot(x,y);>>subplot(3,1,2); bar(x,y);>>subplot(3,1,3); stem(x,y);

Page 34: Logiciels de Simulation ELT541 - Unité Transversale

34

3.3 Graphisme 3D>>[X,Y] = meshgrid(-2:.2:2, -2:.2:2);>>Z = X.*exp(-X.^2-Y.^2);>>figure>>mesh(X,Y,Z)>>figure>>surf(X,Y,Z)>>figure>>contour(X,Y,Z)

-2-1

01

2

-2-1

0

12

-0.5

0

0.5

-2-1

01

2

-2-1

0

12

-0.5

0

0.5

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Pour plus de détails voir la Réf : https://perso.univ-rennes1.fr/stephane.balac/matlab