logiciels de simulation elt541 - unité transversale
TRANSCRIPT
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
Chapitre 1 Prise en main de Matlab
I.1 IntroductionI.2 Environnement MATLABI.3 Démarrage de MATLABI.4 Généralités
2
• 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
• 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
• 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
1
2
3
4
1 Command Window
2 workespace3 Command history4 Current folder 6
1
2
3
4
1 fenêtre de commande2 espace de travail
3 historique des commandes
4 le dossier courant7
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
C’est une fenêtre qui donne la liste des différentes variables.
historique des commandes
9
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
1.4 Présentation et généralités
Exemples de com
mandes
11
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
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
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
• -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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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 .
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
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.
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
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);
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