Cours Matlab
Cours Matlab
Cours Matlab
1
Chapitre 1. Introduction au logiciel Matlab
• Développé par la société ≪ The MathWorks ≫, MATLAB (matrix laboratoire) est un logiciel
Commercial utilisé à des fins de calcul numérique.
• C’est un langage de programmation de quatrième génération et un environnement de développement.
• MATLAB permet de manipuler des matrices, d'afficher des courbes et des données, de mettre en œuvre des
algorithmes, de créer des interfaces utilisateurs, et peut s’interfacer avec d’autres langages comme le C, C++,
Java, et Fortran.
• Il permet de réaliser des simulations numériques basées sur des algorithmes d'analyse numérique.
• Il peut donc être utilisé pour la résolution approchée d'équations différentielles, d'équations aux dérivées
partielles ou de systèmes linéaires, etc...
• L'objectif de cette partie est premièrement l’apprentissage de ce logiciel parce qu'il est de plus en plus utilisé
dans la recherche scientifique, la simulation des expérimentations des réseaux, en électronique, etc.
• Presque 50% des étudiants de licence et de master utilisent Matlab pendant leurs projets de fin d’étude.
Command window (console d’exécution) : à l’invite de commande « >> », l’utilisateur peut entrer les
instructions à exécuter. Il s’agit de la fenêtre principale de l’interface.
Current directory (répertoire courant) : permet de naviguer et de visualiser le contenu du répertoire courant
de l’utilisateur. Les programmes de l’utilisateur doivent être situés dans ce répertoire pour être visible et donc
exécutable.
2
Workspace (espace de travail) : permet de visualiser les variables définies, leur type, la taille occupée en
mémoire…
Command history : historique des commandes que l’utilisateur a exécutées. Il est possible de faire glisser
ces commandes vers la fenêtre de commande.
Notons que command window est la fenêtre centrale de l’interface, c’est à partir de là que l’utilisateur pourra
lancer les commandes interprétées par Matlab. Le principe est simple et intuitif, le tout est de connaitre les
fonctions appropriées et de respecter leur syntaxe. Premier exemple élémentaire : à l’invite de commande,
taper « 3*5 », puis entrer :
>> 3*5
ans =
15
A la validation de l’instruction, l’interface affiche le résultat de cette dernière. Afin d’alléger l’affichage, un
point-virgule « ; » en fin de commande empêche le renvoie du résultat dans la fenêtre (évidemment
l’instruction est toujours exécutée). Par exemple :
>> 3*5;
>>
Le calcul a été effectué mais le résultat n’est pas affiché..
2 - Premiers pas sur des exemples
Nous proposons en premier lieu un démarrage rapide basé sur un exemple simple. Celui-ci a pour objectif de
montrer comment se pratique Matlab dans une première utilisation basique. Cette section doit donc être
parcourue avec Matlab à côté. Les lecteurs non débutants pourront passer cette section.
2.1 Calcul et tracé d’une fonction sinus
La manipulation commence dans la fenêtre command window, à l’invite de commande :
>> t = [0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6]
t=
Columns 1 through 8
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000
Columns 9 through 13
4.0000 4.5000 5.0000 5.5000 6.0000
Cette ligne de commande définit un tableau de 13 valeurs (allant de 0 à 6 par incrément de 0.5) nommé «t».
On comprend l’utilité de mettre un « ; » à la fin de la ligne pour éviter l’affichage systématique du résultat des
opérations envoyées. Cela peut devenir très lourd si, par exemple, la taille du tableau est importante.
>> w = 2*pi/6;
>> y = sin(w*t);
Le terme « pi » est une constante prédéfinie et donne donc la valeur de π. Le tableau (ou vecteur) « y », de
même dimension que « t », contient les valeurs résultantes de l’opération appliquée à chaque composante de
3
« t ». « y » représente donc la fonction sinus de période 6 (de pulsation « w »). Il est possible de représenter
graphiquement les points du tableau à l’aide de la fonction suivante :
>> plot (t, y,’*’);
Une nouvelle fenêtre s’ouvre :
4
3 - Les variables
3.1 Aspects élémentaires
Matlab gère de façon automatique les nombres entiers, réels, complexes, les chaînes de caractères…
Ainsi, la déclaration des variables est implicite, et la mémoire nécessaire est automatiquement allouée
lors de la définition de celles-ci. Le symbole d’affectation est le signe « = »
>> x = 4
x=
4
>> x + y
ans =
6
Si l’utilisateur n’affecte pas explicitement le résultat d’une opération à une variable, Matlab l’affecte
automatiquement à la variable « ans ». Concernant le nom des variables, l’interpréteur fait la distinction entre
les minuscules et les majuscules. A la définition d’une variable, celle-ci apparait, accompagnée de quelques
informations, dans la fenêtre Workspace. Il est également possible de connaitre les variables du workspace
(espace de travail) via l’instruction « whos ». Par exemple, après les manipulations précédentes :
La commande « clear » permet de supprimer une variable du workspace (« clear all » les supprime
toutes). Toutes les commandes tapées dans la Command window peuvent être retrouvées et éditées
5
grâce aux touches de direction. Appuyez sur la touche ‘’haut’’ pour remonter dans les commandes
précédentes, et ‘’bas’’ pour redescendre.
3.2 Constantes prédéfinies
Il existe des symboles auxquels sont associés des valeurs prédéfinies. En voici quelques-uns :
6
4.1 Définition d'un vecteur
Un vecteur n’est rien d’autre qu’un tableau de valeurs. Il existe plusieurs façons de créer un vecteur et la plus
simple d’entre elles est de l’écrire explicitement.
L’ensemble des composantes est donné entre crochets et les valeurs sont séparées par un espace (ou une
virgule « , »). Nous avons ici défini un vecteur ligne. Un vecteur colonne est créé en utilisant un point-virgule
« ; » comme délimiteur.
>> v = [1 ; 2 ; 3 ; 4]
v=
1
2
3
4
Bien que simple, cette méthode n’est pas pratique pour définir des vecteurs de taille importante. Une seconde
méthode utilise l’opérateur deux-points « : ». Il permet de discrétiser un intervalle avec un pas constant.
>> v = 0:0.2:1
v=
0 0.2 0.4 0.6 0.8 1
Cette instruction crée un vecteur contenant des valeurs allant de 0 à 1 avec un pas de 0.2. La syntaxe est la
suivante : vecteur = valeur_initial:incrément:valeur_finale. Par défaut, le pas est égal à 1.
>> v = 0:5
v=
0 1 2 3 4 5
7
Enfin, des fonctions prédéfinies permettent de générer des vecteurs automatiquement.
La première fonction crée un vecteur de 1000 points avec des valeurs allant de 0 à 10 également espacées.
La seconde crée un vecteur de 1000 points sur un intervalle de 10-1 à 102 avec un espacement logarithmique.
On peut accéder aux différents éléments d’un tableau en spécifiant un (ou des) indice(s) entre parenthèses.
v(3) retourne le 3ième élément du vecteur v. L’argument 2:4 permet de sélectionner un bloc d’éléments (ici
du second au quatrième).
4.2 Quelques fonctions utiles
Nous présentons dans ce paragraphe un ensemble de fonctions usuelles liées à l’utilisation des tableaux.
length(v) renvoie la taille du tableau.
max(v) renvoie la valeur maximale du tableau.
min(v) renvoie la valeur minimale du tableau.
mean(v) renvoie la valeur moyenne des éléments du tableau.
sum(v) calcul la somme des éléments du tableau.
prod(v) calcul le produit des éléments du tableau.
sort(v) range les éléments du tableau dans l’ordre croissant.
Toutes les fonctions mathématiques vues au paragraphe I.3.3 sont applicables aux variables de type vecteur.
Dans ce cas, la fonction est opérée sur chacun des éléments du vecteur.
8
Matrices particulières
Quelques matrices particulières, et très utilisées, sont définies plus aisément au travers de fonctions. Ces
fonctions prennent en argument les dimensions de la matrice que l’on souhaite construire. Le premier
désigne le nombre de lignes et le second le nombre de colonnes.
La matrice nulle :
>> Z = zeros (2, 3)
Z=
0 0 0
0 0 0
Contrairement aux précédentes, cette dernière fonction prend en argument un vecteur. La taille de la matrice
diagonale est donc déterminée par la taille du vecteur.
9
Extraction de sous-tableaux
Il est souvent utile d'extraire des blocs d'un tableau existant. Pour cela on utilise l’opérateur « : ». Pour cela, il
faut spécifier pour chaque indice la valeur de début et la valeur de fin. La syntaxe générale est donc la suivante
(pour un tableau à deux dimensions) : tableau (début: fin, début: fin).
Cette opération est réalisée très simplement par la même syntaxe que pour les nombres.
>> N = [M V ; U 0];
Il est impératif que les matrices M, V, U et O aient été définies auparavant. De plus, les blocs composant une
matrice doivent évidemment être de dimension compatible. Si ces conditions ne sont pas respectées, la
commande ne pourra s’exécuter et l’interface affichera une erreur. Nous pouvons mentionner la fonction
blkdiag() qui permet de créer une matrice diagonale à partir des éléments donnés en argument.
11
Les fonctions mathématiques vues au paragraphe I.3.3 traitent également les matrices. Dans ce cas, la fonction
est appliquée à chaque élément. En outre, d’autres fonctions disponibles,
expm logm sqrtm mpower
réalisent quant à elles, des opérations matricielles. Par exemple, les fonctions « exp » et « expm » effectuent
deux opérations tout à fait différentes :
5 - Représentations graphiques
Les bibliothèques de Matlab proposent un très grand nombre de fonctions pour la manipulation d’objets
graphiques. Nous ne présentons ici que quelques principes de base, utiles pour la visualisation de courbes. Si
nous nous concentrons particulièrement sur la représentation graphique à 2 dimensions, il est possible d’aller
bien plus loin : graphismes 3D (courbes, maillages, surfaces…), édition d’IHM (graphical user interface,
GUI), animations… Quelques exemples de représentations 3D sont brièvement présentés.
12
5.1 Graphiques 2D
Comme nous l’avons vu dans l’exemple introductif du paragraphe II.2.1 le tracé d’une courbe s’effectue à
partir de la commande plot(). Celle-ci prend en paramètres deux vecteurs et affiche sur un graphique à
deux axes chaque couple de points (de même indice). Par exemple, plot(x,y) marquera un point pour
chaque couple [x(i),y(i)] avec i allant de 0 à length(x). On représente ainsi les valeurs de y en
fonction des valeurs de x. La fonction renvoie une erreur si x et y ne sont pas de même longueur. Si le premier
vecteur x est omis, y est tracé en fonction de son indice i. Par défaut, chaque point tracé est relié par une droite.
Traçons la fonction sinus dans l'intervalle [ -π,π] avec un pas de 0.01.
Le pas étant faible, la courbe semble parfaitement tracée. Bien évidemment, si l’on diminue le nombre de
points (le pas est augmenté), la courbe apparaitra plus saccadée.
La commande plot prend un troisième argument permettant de spécifier la couleur du tracé et le symbole de
représentation.
13
Il est également possible de tracer plusieurs courbes sur plusieurs fenêtres. Pour cela, une nouvelle fenêtre
(objet graphique figure) doit invoquée avant l’appel à la fonction plot correspondante.
>> plot(x,y)
>> figure(2)
>> plot(x,y2,'r')
D’autres fonctions permettent une représentation différente des données, par exemples sous forme discrète
(stem), d’histogramme (bar), de camembert (pie), d’escalier (stairs), avec échelle logarithmique (semilogx,
semilogy)…
La mise en forme d’une représentation graphique, c’est-à-dire l’insertion de labels, légende, le
dimensionnement des axes, peut être éditée de deux manières. La méthode la plus simple utilise directement
les menus de l’interface de la figure (Edit et Insert). Toutes ces manipulations sont également réalisables à
partir de la Command Window en ligne de commande. Cette seconde méthode est généralement utilisée lors
du développement de programmes. Voici quelques exemples parmi les manipulations les plus simples :
>> xlabel('valeur x')
>> ylabel('valeur y')
>> title('mon graphique')
>> legend('ma courbe')
>> grid on
>> axis([xmin xmax ymin ymax])
5.2 Graphiques 3D
Nous montrons ici les possibilités de Matlab en graphisme 3D sur quelques exemples.
Tracé de courbes dans l’espace
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t)
14
>> grid on
>> axis square
>> xlabel('sin(t)'), ylabel('cos(t)'), zlabel('t')
La fonction prend en argument 3 vecteurs de même taille. Son fonctionnement est similaire à celui de plot.
Elle affiche dans un système d’axe à 3 dimensions les triplets [x(i),y(i),z(i)].
15
6 - Programmation avec Matlab
Dans les précédentes sections, nous avons présenté des séries de commandes lancées depuis la command
window. Pour des calculs complexes et répétitifs, il est préférable (ou plutôt indispensable) de rassembler
l’ensemble des commandes dans un fichier qui constituera le programme à exécuter. On distingue deux types
de fichiers dans Matlab, également appelés m-files : les scripts et les fonctions. Bien que l’environnement de
Matlab propose son propre éditeur (fenêtre Editor), ces fichiers sont de simples fichiers textes avec une
extension .m. Vous pouvez donc utiliser votre éditeur de texte préféré pour créer vos programmes (sans oublier
de modifier l’extension). A partir de Matlab, un m-file est créé ou ouvert, soit depuis le menu Fichier (New >
M-File), soit depuis l’invite en tapant :
>> edit monfichier.m
Un m-file est reconnu, et donc exécutable, s’il se trouve dans le répertoire courant (current directory) ou si le
répertoire contenant est spécifié dans le PATH.
Nous allons voir que Matlab offre la possibilité de réaliser de véritables applications très élaborées. Notons
qu’il utilise un langage de programmation interprété, c’est-à-dire qu’il n’y a aucune phase de compilation et
les instructions du code sont directement exécutées à leur lecture.
6.1 Fichiers SCRIPT
Un fichier script permet regrouper des séries de commandes Matlab. Cela évite d’avoir à saisir plusieurs fois
de longues suites d’instructions. A son lancement, les instructions qu’il contient s’exécutent séquentiellement
comme si elles étaient lancées depuis l’invite de commande. Un script stocke ses variables dans le workspace,
lequel est partagé par tous les scripts. Ainsi, toutes les variables créées dans les scripts sont visibles depuis la
command window et vice versa. Lorsque Matlab détecte une erreur, le programme s’arrête et un message
d'erreur s'affiche à l'écran (avec le numéro de la ligne où l'erreur est détectée).
Editons notre script monfichier.m.
16
Notre script peut ensuite être exécuté, soit en tapant son nom (sans l’extension) à l’invite de commande, soit
en cliquant sur le bouton « run » de l’éditeur (icône avec un triangle vert).
Des annotations peuvent être ajoutées dans le code afin de le commenter. Pour cela, chaque ligne de
commentaires doit être précédée par le caractère %. Les mots suivant ce symbole ne seront pas interprétés.
De manière générale, il est essentiel d’inclure dans le code un nombre conséquent de commentaires. Ils
permettent de documenter un programme et facilitent la relecture, la maintenance de celui-ci.
6.2 Fichiers FUNCTION
Le principe d'une fonction est d'effectuer des opérations à partir d’une ou plusieurs entrées et fournir une ou
plusieurs sorties (résultat). Les variables d’entrées sont des paramètres à spécifier en argument de la fonction,
tandis que les variables de sorties sont des valeurs quelle renvoie. Un m-file function est tout à fait semblable
aux fonctions intégrées de Matlab. Par exemple, la fonction length renvoie la taille du tableau entré en
argument.
>> taille = length(tab);
Un m-file est définit comme une fonction en plaçant en tête du fichier le mot clé function suivit de son
prototype. Un prototype est de la forme
[s1,s2,…] = nomfonction(e1,e2,…)
17
Le membre de gauche regroupe les sorties renvoyées par la fonction et les variables entres parenthèses sont
les entrées. Le nom du fichier doit être identique au nom de la fonction. Ecrivons dans l’éditeur notre fonction
qui permet de calculer l’aire et le volume d’une sphère pour un rayon donné.
L’appel de la fonction s’effectue de la même façon que pour les fonctions prédéfinies dans le logiciel
>> global x;
>> x = 10;
>> [aire,volume]=mafonction(3);
>> x
x =
3
On constate donc que la variable globale x, a été modifiée lors de l’appel de la fonction.
Notons toutefois que l’utilisation de variables globales est déconseillée, car souvent source d’erreurs
d’exécution, et doit donc être minimisée.
18
Des instructions permettent de contrôler les arguments d’entrées et de sorties d’une fonction:
nargin retourne le nombre d’arguments d’entrée
nargout retourne le nombre d’arguments de sortie
nargchk vérifie le nombre d’arguments d’entrée
inputname retourne le nom d’un argument d’entrée
19
6.4 Structures de contrôle
Dans sa forme la plus simple, le déroulement d’un programme est linéaire dans le sens où les instructions qui
le composent s’exécutent successivement. Les structures de contrôle sont des mécanismes qui permettent de
modifier la séquence d’exécution des instructions. Plus précisément, lors de l’exécution, en fonction des
conditions réalisées certaines parties précises du code seront exécutées.
Branchement conditionnel (if … elseif … else)
Cette structure permet d’exécuter un bloc d’instructions en fonction de la valeur logique d’une expression. Sa
syntaxe est :
if expression
instructions …
end
L’ensemble des instructions instructions est exécuté seulement si expression est vraie. Plusieurs tests exclusifs
peuvent être combinés.
if expression1
instructions1 …
elseif expression2
instructions2 …
else
instructions3 …
end
Plusieurs elseif peuvent être concaténés. Leur bloc est exécuté si l’expression correspondante est vraie et si
toutes les conditions précédentes n’ont pas été satisfaites. Le bloc instruction3 associé au else est quant à lui
exécuté si aucune des conditions précédentes n’a été réalisées.
Bien évidement, la variable x doit être définie auparavant. La fonction disp permet d’afficher une chaîne de
caractère spécifiée entre apostrophes. Si x n’est ni positif ni nul, il reçoit la valeur 1.
20
Branchement multiple (switch … case)
Dans cette structure, une expression numérique est comparée successivement à différentes valeurs. Dès qu’il
y a identité, le bloc d’instructions correspondant est exécuté. Sa syntaxe est :
switch expression
case valeur1,
instructions1 …
case valeur2,
instructions2 …
case valeur3,
instructions3 …
………
otherwise
instructions …
end
L’expression testée, expression, doit être un scalaire ou une chaîne de caractère. Une fois qu’un bloc
instructions i est exécuté, le flux d’exécution sort de la structure et reprend après le end. Si aucune case vérifie
l’égalité, le bloc qui suit otherwise est exécuté.
En fonction de la valeur de x une opération particulière est effectuée. Par défaut, resultat prend la valeur 0.
Boucle conditionnelle (while … )
Ce mécanisme permet de répéter une série d’instructions tant qu’une condition est vérifiée. Sa syntaxe est :
while expression
instructions …
end
Le terme expression est une expression logique. Si cette dernière est vraie, le bloc instructions est exécuté.
Puis, expression est de nouveau testé. L’exécution du bloc est répétée tant que le test est vrai.
compteur = 0;
while compteur < 10
disp(‘toujours dans la boucle’) ;
compteur = compteur + 1;
end
Cet exemple affiche 10 fois la chaîne de caractère toujours dans la boucle.
Boucle itérative (for … )
21
Cette boucle exécute le bloc interne autant de fois que spécifié par une variable jouant un rôle de compteur.
Sa syntaxe est :
for variable = debut:increment:fin
instructions …
end
Le compteur variable est initialisé à la valeur debut et évolue jusqu’à la valeur fin par pas de increment. A
chaque itération, le bloc instructions est exécuté. Généralement, variable est un scalaire, et souvent un entier.
N = 5 ;
for k = 1:N
x(k)= 1/k;
end
Cet exemple construit élément par élément un vecteur x de dimension 5.
6.5 Les fonctions
22
B. L’interface graphique (GUI)
23
24
25
C. Application à l’automatique et Simulink
Matlab est le logiciel de prédilection des automaticiens, il possède de nombreuses fonctionnalités spécifiques
à l’Automatique. Les fonctions les plus standards sont regroupées dans la Control System Toolbox. Ce
chapitre présente, sur divers exemples, l’utilisation de Matlab pour l’Automatique. Dans un second temps
nous parlerons d’un second logiciel, Simulink®, intégré à Matlab, lui aussi très utilisé par la communauté des
automaticiens. Il s’agit d’un environnement graphique pour la modélisation et la simulation de systèmes multi-
domaine.
1 - Représentation des systèmes linéaires invariants
1.1 Fonctions de transfert
La Control System Toolbox permet de définir des objets de type tf, c’est-à-dire transfert function. La fonction
du même nom, tf(), crée une fonction de transfert particulière. Elle prend en argument deux vecteurs contenant
les coefficients des polynômes du numérateur et du dénominateur. Ainsi, une fonction de transfert de la forme
:
Dans Matlab, et plus généralement dans la littérature anglo-saxonne, la variable de Laplace p est notée s.
Des systèmes complexes peuvent être construits à partir de sous-systèmes élémentaires. Voici les trois
opérations de base pour l’interconnexion de modèles.
26
Mise en parallèle de deux systèmes
27
Bien qu’il soit possible de calculer les caractéristiques d’un système à partir des fonctions standards, il existe
des fonctions dédiées.
Un ensemble de fonctions permettent de calculer et tracer la réponse d’un système à une entrée donnée. Plus
particulièrement, la fonction step simule la réponse indicielle et impulse la réponse impulsionnelle d’un
système donné en argument. Pour les systèmes de type ss, initial calcule le régime libre d’un système pour des
conditions initiales spécifiées. Concernant les options d’affichage, la syntaxe est identique à la fonction plot.
Un clic droit sur la figure permet d’obtenir des informations sur différentes caractéristiques du système testé.
De manière générale, il est possible de calculer la réponse d’un système pour une entrée arbitraire via la
commande lsim. Elle peut prendre trois arguments: le système, le vecteur d’entrée et le vecteur temps. Ces
deux vecteurs doivent évidemment être de même taille. Le vecteur d’entrée peut être construit point par point
ou encore être généré à l’aide de gensig (pour des signaux carré, sinusoïdale ou impulsions).
>> G=tf([1 1],[1 4 3/2]);
28
>> [U,T]=gensig('square',20,70);
>> lsim(G,U,T)
La seconde ligne crée un signal carré périodique de période 20 sur un horizon temporelle de 70s. La fonction
renvoie le vecteur du signal et le vecteur temps.
3 - Simulink
Simulink7 est un logiciel muni d’une interface graphique pour la modélisation, la simulation et l’analyse des
systèmes dynamiques. Etant intégré à MATLAB, les deux environnements sont parfaitement compatibles et
les différentes fonctionnalités de ce dernier sont alors directement accessibles. Simulink est basé sur une
interface graphique qui permet une contruction aisée et conviviale de schémas-blocs. Chaque bloc composant
le système est sélectionné depuis un ensemble de bibliothèques prédéfinies.
3.1 Création d’un modèle
Simulink peut être lancé depuis l’environnement de MATLAB
La colonne de gauche liste les bibliothèques disponibles. Celles-ci sont rangées par disciplines (Automatique,
Aerospace, Communication, Traitement du signal, Système embarqués…) et regroupent un ensemble de blocs
fonctionnels liés à une catégorie de fonctions particulières. A la sélection d’une bibliothèque, les blocs qui la
composent sont affichés dans la partie de droite.
Un nouveau modèle est créé en cliquant sur l’icone « feuille blanche » (ou dans le menu File > New > Model).
Une fenêtre vide apparaît, elle va servir de support pour construire votre modèle.
L’interface est intuitive et facile à utiliser, un modèle est construit à partir des blocs fonctionnels par glisser-
déposer. Les blocs sont ensuite interconnectés par des flèches dessinées à l’aide de la souris (cliquer-maintenir
sur une entrée ou une sortie puis relâcher sur une entrée ou une sortie). Chaque bloc peut être édité (réglages
de ses paramètres) en double-cliquant dessus. Cette dernière action permet d’ouvrir une fenêtre de dialogue
dans laquelle une description du bloc et des champs paramétrables sont donnés.
30
Par exemple, si l’on souhaite éditer le bloc Sine Wave (obtenu dans la bibliothèque Sources), un double-clique
donne une fenêtre àéditer.
Cette fenêtre décrit la fonction réalisée par le bloc ainsi que les différents paramètres à régler.
Les modèles peuvent être sauvegardés dans des fichiers d’extension « .mdl ». Simulink manipule les fichiers
(sauvegarde, ouverture, fermeture, création…) de façon classique à l’aide du menu File ou des icones. Un
fichier existant (par exemple « monschema.mdl ») peut également être directement invoqué depuis la fenêtre
de commande MATLAB en tapant son nom sans extension :
>> monschema;
3.2 Quelques bibliothèques
Simulink possède de nombreuses bibliothèques, adaptées pour la modélisation d’une multitude de systèmes
de différentes natures. De plus, l’ajout de toolboxes supplémentaires permet d’enrichir les librairies et les
fonctionnalités du logiciel. Nous présentons dans ce paragraphe seulement quelques blocs simples et présents
dans la version de base de Simulink. Nous allons voir quelques blocs standards, souvent utilisés pour la
simulation de systèmes asservis LTI.
Sources
Les sources sont des blocs possédant une ou plusieurs sorties et aucune entrée. Ils sont utilisés pour la
génération de signaux.
31
32
La fonction de transfert peut être directement définie via les paramètres du bloc en suivant la syntaxe de la
fonction tf (vue précédemment). Par ailleurs, si une fonction de transfert a déjà été définie dans le workspace
de MATLAB, elle peut être reprise dans le bloc en spécifiant simplement son nom.
3.3 Simulation
Une fois le modèle réalisé, l’intérêt de Simulink consiste à le simuler. Une simulation peut être lancée soit à
partir de l’icône « lecture » en forme de triangle (ou dans le menu Simulation > Start), soit à partir de
MATLAB avec la commande sim().
Le premier paramètre de simulation (et le seul, dans le cas d’utilisation simpliste de Simulink) à régler est le
temps de simulation. Il peut être spécifié dans le champ à droite de l’icône de lancement d’une simulation. Il
doit être exprimé en seconde.
Pour une utilisation avancée, de nombreuses options permettent de configurer de manière très précise les
paramètres de simulation. De telles configurations sont accessibles dans le menu Simulation > Configuration
Parameters… :
33
Nous fixons un échelon de valeur initiale 0 (initial value), d’amplitude 1 (final value) et se déclanchant à t=0
(step time). Nous définissons ensuite le système que nous étudions par la variable G précédement définie dans
MATLAB. Enfin, la simulation sera effectuée sur un horizon temporel de 15s.
Après execution de la simulation, la réponse peut être observée en double-cliquant sur l’oscilloscope.
34
La variable a été spécifiée dans la boite de dialogue du bloc Gain. Celle-ci doit être préalablement définie avec
une valeur numérique. Exécutons dans MATLAB la commande :
>> K = 5
35
Bibliographie
Modélisation des Grands Systèmes Chimiques ,Professeur Georges HEYEN Université de Liège,
Année académique 2012-2013
Introduction au logiciel de simulation ASPEN-Plus, J. Schwartzentruber Septembre 2005
Aspen user manual (Freely downloadable from Aspen official website) Palm III, W.L.,
Introduction to MATLAB 7 for Engineers, McGraw-Hill, 2005
Polymath user manual (Freely downloadable from Polymath official website) Rudra Pratap,
Getting started with MATLAB: A quick introduction for scientists and engineers, Oxford University
press, 2003.
36