LOGICIEL ET
SIMULATION
Hamidat Ibrahim
AGENDA
• Prise en main de Matlab
• Types de données et variables
• Les Graphiques
• Programer sous Matlab
• Prise en main de Simulink
• Power System Blockset (PSB)
• Simulation et co-simulation avec d’autres logiciels
LOGICIEL ET SIMULATION 3
PRISE EN MAIN DE MATLABE
INTRODUCTION
• MATLAB est un package software conçu pour le calcul mathématique et
scientifique. C’est aussi un envirennement de développement et un langage de
programmation.
• Sa specialization principale est de gérer efficacement les mathématiques
matricielles et vectorielles.
• 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 MATrix LABoratory.
LOGICIEL ET SIMULATION 4
PRISE EN MAIN DE MATLABE
ENVIRONNEMENT
• MATLAB est un environnement puissant, complet et facile à utilizer. Il est
destine au calcul scientifique. Il apporte aux ingénieurs, chercheurs et à tout
scientifique un systeme interactif integrant calcul numérique et visualization.
• C’est un environnement performant, ouvert et programmable qui permet de
remarquables gains de productivité et de créattivité.
LOGICIEL ET SIMULATION 5
ENVIRONNEMENT
LOGICIEL ET SIMULATION 6
PRISE EN MAIN DE MATLABE
GENERALITE DE MATLAB
• Pour le quitter il suffit de taper (“quit”) après le prompt (“>>”) de la fenêtre de commande
(“Command Window”).
• Pour effacer la memoire de Workspace il suffit de taper (“clear”).
• Pour fermer tout les fenetres et graphs il suffit de taper (“close all”).
• Pour effacer l’historique et le command Window de MATLAB if suffit de taper (“clc”).
• Pour ouvrire la fenetre de l’aide il suffit de taper (“help”)
• Pour afficher les details de certain command il suffit de taper (“help nom_de_command”)
Ex:
help quit / help sin / help cos … etc.
LOGICIEL ET SIMULATION 7
PRISE EN MAIN DE MATLABE
GENERALITE DE MATLAB
• Messages d'erreur : MATLAB affiche les erreurs dans la fenêtre de commande, en rouge.
Lisez toujours le message d'erreur. C'est souvent une indication précise de ce qui ne va pas.
>> cos h
Undefined function 'cos' for input arguments of type 'char'.
• Stockage du contenu de la fenêtre de commande : La commande MATLAB (" diary
[Link] ") copie le contenu de la fenêtre de commande MATLAB dans le fichier
portant le nom spécifié, au format texte ASCII.
• Pour terminer l'enregistrement de la boîte de dialogue de la fenêtre MATLAB,
tapez (" diary off ") à l'invite de la fenêtre de commande.
LOGICIEL ET SIMULATION 8
PRISE EN MAIN DE MATLABE
GENERALITE DE MATLAB
• Les operations en MATLAB:
LOGICIEL ET SIMULATION 9
PRISE EN MAIN DE MATLABE
GENERALITE DE MATLAB
• Quelque fonctions courantes utilisées dans MATLAB :
• Round() • whos() • str2num()
• Ceil() • length() • str2mat()
• Floor() • eye() • eye()
• Fix() • zeros() • zeros()
• Abs() • ones() • ones()
• Mod() • diag() • diag()
• Rand() • Strcmp() • Strcmp()
• Factorial() • Findstr() • Findstr()
• Factor() • Num2str() • Num2str()
• Size() • Int2str() • Int2str()
LOGICIEL ET SIMULATION 10
PRISE EN MAIN DE MATLABE
GENERALITE DE MATLAB
• Quelque examples pour pratique:
TYPES DES DONNÉES
ET VARIABLES
LOGICIEL ET SIMULATION 12
VARIABLES ET CONSTANTS :
• Affectation des valeurs :
Les variables et les constantes (scalaires) dans MATLAB n'ont pas besoin d'être
déclarées au début du code comme dans d'autres langages. Des valeurs peuvent
leur être affectées dans une simple opération d'affectation, par exemple:
variable = -1.23456789;
m = 12;
string = ’My first MATLAB string’;
raining_tomorrow = true;
LOGICIEL ET SIMULATION 13
VARIABLES ET CONSTANTS :
• Quelques types des variable courantes utilisées dans MATLAB et tout les langages des programmations:
• Les variables:
• >> a = 1; % variable Integer
• >> b = 1.2; % variable avec une virgule Flottante
• >> c = ‘h’ % variable caractère
• >> d = ‘Hello world’ % variable string
• >> e = [ 0 1]; e = [0 , 1] % variable vecteur (matriciel) de 1 ligne et 2 colonnes
• >> f = [0 ; 1] % variable vecteur (matriciel) de 2 lignes et 1 colonne
LOGICIEL ET SIMULATION 14
VARIABLES ET CONSTANTS :
• Le point-virgule à la fin de l'opération d'affectation supprime la sortie dans la fenêtre de commande mais n'a
aucun effet sur l'affectation elle-même. Vous pouvez afficher la valeur de n'importe quelle variable existante en
tapant son nom à l'invite MATLAB dans la fenêtre de commande.
Par exemple, taper m renverra 12, et taper raining_tomorrow renverra 1.
• MATLAB stocke les vraies valeurs comme 1 mais acceptera toute valeur différente de zéro comme 'true' ; une
valeur 0 est utilisée pour "faux". Une manière plus simple d'afficher une chaîne ou le contenu d'une variable dans
la fenêtre de commande MATLAB est la commande disp. Cette commande ne prend qu'un seul argument, qui
correspond à un nombre ou à une chaîne. Par exemple,
>> x = 9;
>> disp(’The value of x is:’)
>> disp(x)
LOGICIEL ET SIMULATION 15
VARIABLES ET CONSTANTS :
• MATLAB a plusieurs constantes prédéfinies qui peuvent être utilisées à la place
des variables ou des valeurs dans les expressions. Voici une petite sélection de
quelques-uns des plus utiles :
LOGICIEL ET SIMULATION 16
VARIABLES ET CONSTANTS :
• Noms et conventions :
un nom de variable valide commence par une lettre, suivie de lettres, de chiffres ou
de traits de soulignement. Notez que MATLAB est sensible à la casse. Lors du choix
d'un nom de variable, il est préférable d'éviter les mots qui pourraient être des
commandes MATLAB ou des mots réservés tels que : if, end, for, try, error, image,
case, plot, all, etc. Si vous faites cela, vous effacerez (temporairement) la commande
MATLAB du même nom dont vous pourriez avoir besoin plus tard dans votre code.
LOGICIEL ET SIMULATION 17
VARIABLES ET CONSTANTS :
• Matrices :
• Création et indexation :
Commençons par un exemple de matrice bidimensionnelle (tableau) A avec m = 3 lignes et n = 2
colonnes. La matrice peut être entrée dans la mémoire MATLAB (espace de travail) comme suit :
>> A = [6 3; 5 2; 4 1];
A=
6 3
5 2
4 1
LOGICIEL ET SIMULATION 18
VARIABLES ET CONSTANTS :
• Matrices :
• Création et indexation :
La taille d'une matrice A peut être trouvée en utilisant size(A). Pour un scalaire, la commande size
renverra un tableau avec deux valeurs : 1 (nombre de lignes) et 1 (nombre de colonnes). Pour la matrice
A, la réponse MATLAB sera 3 et 2.
>> size(A)
ans =
3 2
LOGICIEL ET SIMULATION 19
VARIABLES ET CONSTANTS :
• Matrices :
• Création et indexation :
Les vecteurs sont des matrices où soit m = 1, n > 1 (vecteur-ligne) ou m > 1, n = 1
(vecteur-colonne). Les matrices peuvent avoir une troisième, une quatrième
dimension, etc. Par exemple, les images peuvent être représentées sous la forme de
trois panneaux pour les couleurs rouge, verte et bleue, respectivement. Chaque
panneau est une matrice de m lignes et n colonnes de pixels. Par conséquent, une
image est une matrice tridimensionnelle1 de taille m × n × 3. Les matrices peuvent
être indexées (ou indicées en termes MATLAB) comme dans d'autres langages de
programmation, sauf que dans MATLAB, les indices commencent à 1. La figure
suivante montre un parallèle entre l'accès aux tableaux en Java et dans MATLAB.
LOGICIEL ET SIMULATION 20
VARIABLES ET CONSTANTS :
• Matrices :
• Accéder aux éléments de la matrice:
Il existe plusieurs façons d'accéder aux éléments individuels d'un tableau. Considérez la matrice A de
l'exemple ci-dessus. Chaque élément est accessible à l'aide de ses index de ligne et de colonne. Par
exemple, l'élément de la ligne 3 colonne 1 contient la valeur 4. La ligne ci-dessous stocke cet élément
dans la variable ‘element’.
>> element = A(3,1)
element =
4
LOGICIEL ET SIMULATION 21
VARIABLES ET CONSTANTS :
• Matrices :
• Accéder aux éléments de la matrice:
Alternativement, les matrices bidimensionnelles peuvent être indexées avec un seul indice qui va de 1 à mxn. Considérons
un vecteur-colonne construit en plaçant les colonnes consécutives de la matrice sous la colonne précédente. Par exemple,
organiser A de cette manière donnera le vecteur-colonne [6, 5, 4, 3, 2, 1]. Par conséquent, A(5) renverrait la valeur 2.
L'un des principaux atouts de MATLAB est qu'un ensemble d'éléments d'une matrice peut être adressé
simultanément. Par exemple:
>> A([1 4 5])
ans =
6 3 2
LOGICIEL ET SIMULATION 22
VARIABLES ET CONSTANTS :
• Matrices :
• Accéder aux éléments de la matrice:
Les éléments d'une matrice peuvent être adressés par indexation logique. Nous reviendrons sur cette méthode dans la section 3.1.
Considérons ici l'exemple suivant impliquant la matrice A ci-dessus. Tout d'abord, créez une matrice L de la même taille que A,
contenant des valeurs logiques. Adressage de A avec L, car A(L) n'extrairea que les éléments de A où L contient une valeur vraie.
>> L = [true false; true true; false false]
L=
1 0
1 1
0 0
>> A(L)
ans =
6 5 2
LOGICIEL ET SIMULATION 23
VARIABLES ET CONSTANTS :
• Matrices :
• Accéder aux éléments de la matrice:
Une valeur peut être affectée à un élément d'une matrice par l'opérateur d'affectation simple, par exemple:
>> A(3,1) = -9
A=
6 3
5 2
-9 1
LOGICIEL ET SIMULATION 24
VARIABLES ET CONSTANTS :
• Matrices :
• Accéder aux éléments de la matrice:
MATLAB permettra également l'attribution de plusieurs valeurs en une seule opération. Par exemple, pour remplacer
les éléments adressés par L par la valeur 25, on peut utiliser :
>> A(L) = 25
A=
25 3
25 25
-9 1
LOGICIEL ET SIMULATION 25
VARIABLES ET CONSTANTS :
• Matrices :
• Accéder aux éléments de la matrice:
De plus, vous pouvez extraire les éléments souhaités dans n'importe quel ordre et avec n'importe quel nombre de
copies. Par exemple, prenez deux copies de l'élément #6 suivies de trois copies de l'élément #1.
>> A ([6 6 1 1 1])
ans =
1 1 55 55 55
LOGICIEL ET SIMULATION 26
VARIABLES ET CONSTANTS :
• Matrices :
• Visualiser une matrice:
Une matrice peut être visualisée dans MATLAB en la transformant en image. Chaque élément de la matrice devient
un pixel. Les éléments de même valeur auront la même couleur. Essayez le code suivant :
• A = [1 2 3 4; 5 6 7 8; 9 10 11 12]; % crée la matrice A
• figure % ouvre une nouvelle fenêtre de figure
• imagesc(A) % transforme et affiche la matrice sous forme d'image
• axis equal off % égalise et supprime les axes du tracé
LOGICIEL ET SIMULATION 27
VARIABLES ET CONSTANTS :
• Matrices :
• Concaténation et redimensionnement des matrices:
Si les dimensions concordent, les matrices peuvent être concaténées à l'aide de crochets. La figure suivante montre
un exemple.
LOGICIEL ET SIMULATION 28
VARIABLES ET CONSTANTS :
• Matrices :
• Concaténation et redimensionnement des matrices:
Une matrice peut être utilisée comme une "tuile" pour former un motif répété à l'aide de la commande ‘repmat’. Par
exemple, soit A une matrice 2×3. Le code ci-dessous utilise A comme tuile et le répète sur 3 lignes et 2 colonnes.
LOGICIEL ET SIMULATION 29
VARIABLES ET CONSTANTS :
• Matrices :
• Concaténation et redimensionnement des matrices:
Une matrice peut être remodelée à l'aide de la commande ‘reshape’. La nouvelle matrice doit avoir exactement le
même nombre d'éléments. Le fonctionnement de cette commande est illustré à la Figure suivante:
LOGICIEL ET SIMULATION 30
VARIABLES ET CONSTANTS :
• Matrices :
• Galerie matricielle:
MATLAB propose une multitude de matrices prédéfinies. Un sous-ensemble utile de ceux-ci est illustré ci-dessous :
Si une matrice carrée est requise, un argument d'entrée suffira, par exemple, ones(3). Il s'agit à la fois du nombre de
lignes et du nombre de colonnes. La matrice d'identité est carrée par définition, donc eye() ne prend qu'un seul
argument d'entrée. Sinon, la matrice est créée avec le nombre spécifié de lignes et de colonnes. Ces matrices
peuvent être générées en plus de deux dimensions.
LOGICIEL ET SIMULATION 31
VARIABLES ET CONSTANTS :
• Matrices :
• L'opérateur Colon:
L'utilisation principale de l'opérateur deux-points est de créer des plages. La forme de base d'une plage est
début:incrément:fin. Le paramètre d'incrémentation est facultatif et vaut 1 par défaut. Par exemple, pour créer une
ligne vectorielle x avec tous les entiers de 1 à 10, vous pouvez utiliser :
Les trois composants de l'opérateur deux-points ne doivent pas nécessairement être des nombres entiers, ni
doivent-ils être positifs. Par exemple:
LOGICIEL ET SIMULATION 32
VARIABLES ET CONSTANTS :
• Matrices :
• L'opérateur Colon:
Les vecteurs générés par les opérateurs deux-points sont des vecteurs-lignes. Le vecteur contient autant d'éléments
que nécessaire pour augmenter la valeur de départ de la valeur d'incrément pour atteindre la valeur de fin sans
dépasserce. Par exemple:
Les matrices peuvent être adressées avec des vecteurs créés par
l'opérateur deux-points. Le vecteur peut être intégré directement
en tant qu'index :
Dans l’exemple de coté, les valeurs adressées sont dans la ligne
1 et les colonnes 2, 3 et 4
LOGICIEL ET SIMULATION 33
VARIABLES ET CONSTANTS :
• Matrices :
• L'opérateur Colon:
Une forme particulièrement utile de l'opérateur deux-points consiste à définir toute la plage dans une dimension
matricielle. Par exemple, Y(:,2) renverra tous les éléments de la colonne 2 de Y . Dans ce cas, ':' signifie 'toutes'
(lignes) :
LOGICIEL ET SIMULATION 34
VARIABLES ET CONSTANTS :
• Matrices :
• L'opérateur Colon:
L'opérateur deux-points seul, A(:), reconfigure la matrice A en un vecteur colonne en plaçant chaque colonne sous la
dernière. Par exemple:
LOGICIEL ET SIMULATION 35
VARIABLES ET CONSTANTS :
• Exercices:
• Créez tout les types des variables motionnée précédent dans la fenêtre de commande.
• Créez des variables basées sur d'autres variables, par example: a = 1; b = a+1;
• Créer un variable matriciel (‘M’) de 2 lignes et 5 colonnes.
• Ajouter 6 à chaque élément du vecteur M, puis divisez-le par la valeur 2 et multipliez le résultat par la
racine carrée de 5.
• Créer un autre vecteur (‘T’) de 1 ligne et 3 colonnes.
• Faites la concaténation et le redimensionnement pour le vecteur ('T') afin qu'il puisse avoir la même taille
que le vecteur ('M') avec 2 lignes et 5 colonnes.
• Faites la somme des deux vecteurs et enregistrez les résultats dans un nouveau vecteur nommé ('N’).
• Afficher tous les éléments de la colonne 3 du vecteur ('N') à l'aide de l'opérateur colon (deux-points).
• Enregistrez tout ce que vous avez fait dans un fichier nommé par votre nom et prénom en utilisant la
fonction ‘diary'.