Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
systmes continus
MATLAB
Sance 1
INSA de Lyon
3GI
2005-2006
Lounis ADOUANE
INSA de Lyon 3 GI
TP MATLAB
Prambule
Savoir matriser un outil de simulation pour systmes physiques, conomiques ou statistiques est un atout que tout
ingnieur doit dtenir. Le but de ces deux sances de TP est de vous initier lun de ces outils puissants et
performants (en loccurrence MATLAB). Bien videment, en deux sances nous nallons pas pouvoir faire le
tour de l'ensemble des fonctionnalits de MATLAB, nanmoins le TP va tcher de vous orienter (via des questions
et des exercices appropris) vers les principaux outils et mthodes quoffre MATLAB. Le but est de cerner
globalement ses potentialits et sa philosophie de fonctionnement, afin de pouvoir aisment juger de sa pertinence
lors de vos dveloppements futurs de projets acadmiques ou professionnels.
Pourquoi MATLAB ?
Le logiciel MATLAB, contraction de MATrix LABoratory est un environnement de calcul numrique de haut
niveau. Il est devenu de nos jours un standard pour la recherche scientifique et l'ingnierie, dailleurs, MATLAB est
la rfrence mondiale dans le domaine du calcul technique. Il peut tre utilis autant pour le prototypage et le test
rapide dapplication que pour des applications plus sophistiques et labores. En effet, il met la disposition de
l'utilisateur un environnement convivial et performant pour mener bien des calculs numriques ou symboliques,
obtenir des reprsentations graphiques et crire des programmes. Des problmes numriques complexes peuvent
tre ainsi rsolus bien plus rapidement quavec des langages de programmation comme le C ou le FORTRAN.
Larchitecture ouverte de MATLAB facilite son utilisation, la figure 1 nous donne un aperu des diffrents lments
le composant. Le noyau MATLAB peut tre complt par des botes outils (Toolboxes) qui sont constitues de
bibliothques de fonctions spcialises propres un domaine particulier (voir figure. 1). On trouve des botes
outils dans des domaines aussi varis que la commande des systmes, le traitement du signal, la chimie, la finance
ou l'conomie. Simulink est une bote outils particulire puisque elle permet de traduire la rsolution des systmes
(principalement diffrentiels) de manire graphique laide de schmas blocs. MATLAB est principalement utilis
sous sa forme dinterprteur de commandes, il est toutefois possible de compiler les programmes afin damliorer la
vitesse dexcution.
Communications
Control Systems
Financial Computation
Frequency-Domain System Identif.
Fuzzy Logic
Higher-Order Spectral Analysis
Image Processing
Linear Matrix Inequalities
Model Predictive Control
Mu-Analysis and Synthesis
Numerical Algorithms
Neural Networks
Optimization
Partial Differential Equations
Quantitative Feedback Theory
Robust Control
Signal Processing
Simulation (Simulink)
Splines
Statistics
Symbolic Mathematics
System Identification
Wavelets
etc...
Figure. 1
Principales fonctionnalits
1.
2.
3.
4.
5.
6.
7.
8.
INSA de Lyon 3 GI
TP MATLAB
Les thmes qui seront abords au cours des 2 sances de TP toucheront aux points allant de 1 5. Ces points
couvrent l'essentiel de ce qu'il faut connatre sur MATLAB pour se rendre compte de ses potentialits et ainsi
lutiliser efficacement.
Vous allez d'abord aborder les fonctions lmentaires de MATLAB dans les domaines du calcul vectoriel et
matriciel, de la reprsentation graphique et de la programmation. Ensuite vous dcouvrirez Simulink ainsi que les
GUI. Vous allez utiliser succinctement aussi les boites outils concernant l'automatique et les statistiques.
I DECOUVERTE
Pour lancer le logiciel double-cliquez sur l'icone de MATLAB :
I.1
Environnement graphique :
Programme MATLAB :
Fichier .m qui correspond un programme
crit en MATLAB.
Espace de travail :
Toutes les variables dfinies seront listes ici.
Un double clic sur une ligne permet d'accder la
valeur de la variable.
Fentre de commande :
MATLAB est construit autour d'un langage
interprt. Les calculs se font donc d'abord
par la ligne de commande...
INSA de Lyon 3 GI
TP MATLAB
I.2 L'aide :
Il y a plusieurs faons dobtenir des informations sur les diffrentes composantes et fonctionnalits de
MATLAB, parmi elles nous citons :
a- partir de la fentre de commande :
>> help help % instruction pour savoir comment obtenir de laide.
NB : - Lorsque le symbole ">>" apparat gauche de la fentre de commande alors cela indique que
l'interprteur est prt recevoir une commande.
- Tout ce qui est aprs le symbole % indique un commentaire sous MATLAB.
>> help % liste les thmes pour lesquels une aide en ligne est disponible.
>> help thme % liste les fonctions relatives au thme mentionn pour lesquelles une aide est disponible.
>> help nom_fonction % prsente la page daide concernant la fonction choisie.
>> lookfor mot_cl % liste les commandes et fonctions MATLAB contenant le mot_cl demand dans leur
% documentation.
>> helpdesk % obtient une documentation en format HTML.
>> helpwin % prsente une fentre de navigation (figure.2) pour une aide interactive. La partie gauche de la
% fentre permet, partir d'onglets, de rechercher de l'aide en fonction du contenu thmatique
% (Contents), de la liste alphabtique des thmes et mots cls (Index) ou partir d'un moteur de
% recherche (Search). Un onglet permet galement d'accder des dmonstrations classes par
% thmes (Demos).
Figure. 2
b- partir dInternet : plus particulirement partir du site de MathWorks1. Il existe aussi des dmonstrations
en ligne intressantes au niveau de lINSA de Lyon, pour cela il faut se rendre sur le site du Centre de
Mathmatique http://maths.insa-lyon.fr/ rubrique : Enseignant/Matlab-Wserv.
II TRAVAIL A RENDRE
Aprs la fin des deux sances de TP vous devez me rendre un compte-rendu sous format papier (1 par binme).
Ces documents doivent absolument tre dposs dans mon casier (secrtariat GI) la semaine qui suit la deuxime
sance de TP.
apparat gauche du texte, ceci signifie qu'une explication sur la syntaxe, que la
A chaque fois que l'icne
description d'une commande ou qu'un programme raliser doit figurer dans votre compte-rendu. Ceux-ci
doivent tre donns dans l'ordre avec l'indication du numro not cot de l'icone. Vous devez galement me
fournir les principaux programmes (.m), (.mdl), etc. que vous allez raliser ( menvoyer mon adresse email
avec comme objet : TP MATLAB [Vos noms].
1
INSA de Lyon 3 GI
TP MATLAB
0
4
3
2
0
5
2
4
1
2
1
7
5
1
4
2
INSA de Lyon 3 GI
TP MATLAB
Tout polynme peut s'crire sous la forme d'un vecteur ligne contenant les coefficients du polynme
rangs par puissance dcroissante.
III.2 Graphiques
MATLAB, en plus de ses possibilits de calcul numrique, produit aussi des graphiques en 2 et 3 dimensions de
haute qualit. Nous allons nous focaliser dans ce qui suit sur les graphiques 2D.
Il est trs facile de reprsenter graphiquement les rsultats de calculs.
Pour dessiner une courbe il faut d'abord dterminer les points de l'axe des x pour lesquels les
valeurs de la fonction seront calcules. Crez un vecteur :
> > x = 0 : p i/4 : 5*p i
Pour chaque valeur de x dfini prcdemment il faut ensuite calculer la valeur de la fonction :
> > y = sin (x /pi)
Par dfaut une seule courbe peut tre trace sur une figure. Pour tracer plus de figures dans
une mme fentre, veillez ne pas fermer la fentre contenant la figure prcdente et tapez
les commandes suivantes :
> > ho ld on
> > z = y + 0 .2
> > p lo t(x, z)
La commande plot permet aussi de tracer directement plusieurs courbes et de spcifier
leurs proprits :
> > ho ld of f
> > p lo t(x, y, 'r+ ',x ,z , 'bo ')
courbe.
changer les proprits de la courbe la plus haute :
INSA de Lyon 3 GI
TP MATLAB
Les modifications qui ont t faites sur la figure peuvent tre ralises avec des commandes. Par
exemple :
> > title('titre de la figure')
> > x l abe l( 'a b s ci s s es ')
> > ylabel( 'ordonn es')
> > legend( 'courb e1 ','courbe2 ')
9
Donnez les commandes permettant de crer plusieurs fentres de figures puis de choisir dans
quelle fentre sera dessine une courbe.
III.3 Programmation
Jusqu maintenant vous avez utilis uniquement le mode interactif de MATLAB, qui excute les instructions au
fur et mesure quelles lui sont donnes par lutilisateur dans la fentre de commande. Nanmoins, MATLAB
dispose aussi dun mode excutif qui permet dexcuter un programme inclus dans un fichier appel un m-file
(en relation son extension .m ). Il en existe deux types, les scripts et les fonctions. Ces fichiers vous
permettront ainsi d'excuter plusieurs fois les commandes sans avoir les entrer chaque fois.
a =3
x =1 :10
y=a*x-2
p lo t(x, y)
gr id on
sauvegardez ce programme Script1. Pour enregistrer un programme existant et l'excuter :
touche F5.
Une fonction en MATLAB est un m-file particulier, on lui passe des arguments et il retourne des
valeurs de sortie. Les fonctions sont trs utiles dans la mesure o chaque utilisateur peut tendre les
possibilits de MATLAB son domaine dapplication. Il est noter que les variables utilises
lintrieur dune fonction sont locales et cela afin de limiter la taille mmoire des programmes
excuts.
La forme gnrale de la dclaration dune fonction est :
function nom_variable_retour = nom_fonction ( nom_paramtres )
Quelques remarques :
(i) le m-file et la fonction doivent avoir le mme nom
(ii) il peut y avoir plusieurs arguments (il suffit de les sparer par des virgules) ou aucun
(iii) il peut y avoir plusieurs valeurs de retour (les mettre entre crochets et les sparer par des virgules)
ou aucune.
Exemple : Implmentez (en mot mot) la fonction ci-dessous.
function y = Fonction1(m,n)
%Gnration alatoire dune matrice coefficients entiers
%Fonction1(m,n) renvoie une matrice de dimensions mn
% coefficient compris entre 0 et 9
y = floor (10*rand(m,n)) ;
Remarque: La fonction Fonction1 peut tre teste directement dans la fentre de commande avec :
Fonction1(argument1, argument2),
INSA de Lyon 3 GI
10
11
12
13
TP MATLAB
Excutez la commande
> > h e lp Fon c tion1
que constatez vous ?
x2
x 2x 1
Les programmes un peu plus volus ncessitent des lments de structuration permettant les tests de
valeurs, les boucles, les interruptions prioritaires, etc.
14
III.4 Simulink
Simulink est l'extension graphique de MATLAB qui permet de modliser, de simuler et danalyser des systmes
dynamiques via lutilisation de schmas-blocs.
Pour ouvrir la bibliothque de schmas-blocs,
Fentre Bibliothque
Simulink
Fentre Nouveau Modle
modle.
Pour ajouter un nouveau schma-bloc dans le
modle, il faut d'abord que celui-ci apparaisse
dans la partie droite de la fentre de la
bibliothque. Par exemple, dans la partie
gauche de la fentre, cliquez sur le symbole
+ de la ligne Simulink puis endessous cliquez sur Continuous . Dans la
partie droite sept schmas-blocs apparaissent
alors.
Ajoutez
maintenant
le
schma-bloc
Integrator en cliquant sur son symbole et
en le glissant dans la fentre du nouveau
modle.
INSA de Lyon 3 GI
15
TP MATLAB
Pour apprendre utiliser Simulink construisez le modle donn dans l'aide Simulink :
Dans la fentre Simulink cliquez sur le menu Help puis sur Simulink Help .
Cliquez ensuite sur Getting Started puis sur Building a Model .
Suivez les instructions pour construire le modle donn que vous nommerez Simulink1 .
Quel est le rle potentiel du schma Simulink2 implment ? Expliquer le rle de chaque bloc
graphique du schma.
Ralisez un programme Script4.m qui ralise les mmes fonctionnalits dcrites dans le
modle Simulink2.
Trouvez les ples de cette fonction de transfert, reprsentez le diagramme de Bode et de
Nyquist du systme tudi, commentez.
Expliquez quoi correspond loutil sisotool (single input single output tool) de la boite outils
Control System Toolbox.
Commentaire : Utilisez les fonctions contenues dans le Control System Toolbox help control.
COMMANDES USUELLES
Tableau 1 : les commandes indispensables
help
help sujet
commande ;
clc
quit, exit
10
INSA de Lyon 3 GI
TP MATLAB
title(texte)
xlabel(texte)
ylabel(texte)
gtext(texte)
legend('texte1', 'texte2')
axis([Xmin Xmax Ymin Ymax])
grid on ou grid off
figure
figure(num)
hold on ou hold off
close
close(num)
close all
Tableau 5 : programmation
x = input('text')
disp('xxx')
pause
for i=min : max end
break
if cond1 elseif cond2
else end
% texte
11