Transcription of Introduction à MATLAB et SIMULINK
1 Introduction MATLAB et SIMULINKUn guide pour les l vesde l cole Nationale Sup rieured Ingenieurs Electriciens de GrenoblePaolino TonaLaboratoire d Automatique de GrenobleCe document couvre les aspects principaux du logiciel MAT-LAB et de son a t labor partir de l homonyme guide pr par parHoang Le-Huy, Professeur l Universit Laval, Quebec, rapport au document du Prof. Le-Huy qu on peut t l char-ger l ~lehuy/intromatlabce guide propose une mise jour (version de MATLAB de SIMULINK ), des corrections et du nouveau mat particuli rement, une annexe sur la CONTROLSYSTEMTOOLBOXa t ajout e. Pour la pr paration de cette annexe,le Tutorial for Control System Toolbox de Finn Haugen(Telemark College, Porsgrunn, Norv ge), s est av r tr s dernier document peut tre consult l URL : ~ et suggestions sont les bienvenus l adressem l - Introduction MATLAB et SIMULINK2 Table des mati resIntroduction MATLAB2 Introduction session de travail MATLAB .
2 3Op rations math matiques7 Nombres et op rations arithm et matrices ..7 Variables et fonctions .. 10 Graphiques12 Introduction .. 12 Graphiques 2D .. 12 Graphiques 3D .. 14 Impression et enregistrement de 15 Nouvelles fonctionnalit 15 Programmation avec MATLAB16 Communication avec l utilisateur .. 16 Contr le de l execution .. 16 Fichiers M .. 17 Programmation orient e-objets .. 18 Introduction SIMULINK19D marrer 19 Construction d un diagramme 20 Simulation d un diagramme 21La CONTROLSYSTEMTOOLBOX23 Introduction .. 23 Repr sentation des syst mes lin aires .. 23 Outils d 28 Outils de synth 301 Introduction MATLABI ntroduction MATLABMATLAB est un logiciel de calcul matriciel syntaxe simple ; peut tre consid r comme un langage de programmation adapt pour les probl mes scientifiques,gr ce ses fonctions sp cialis es ; est un interpr teur, car ses instructions sont interpr t es et ex cut es ligne par ligne ; poss de des bonnes capacit s graphiques pour pr senter des r sultats ou pour cr er des applica-tions ; peut tre int gr avec du code C ou FORTRAN; fonctionne dans plusieurs environnements tels que UNIX/X-Windows, Windows, MDLSIMULINKF ichiers MEXT oolboxToolboxToolboxToolboxToolboxMATLAB F ichiers MFichiers PFen treGraphiqueGUIFen tre deCommandeFen treGraphiqueFen tre de Commande :dans cette fen tre, l utilisateur donne les instructions et MATLAB retourne lesr sultats.
3 Fen tres Graphiques : MATLAB trace les graphiques dans ces fen tres ;Fichiers M :ce sont des programmes en langage MATLAB ( crits par l utilisateur) ;Fichiers P :version pr -interpr t e des fichiers M ;2 UNE SESSION DE TRAVAILMATLABT oolboxes :( bo tes outils ) ce sont des collections de fichiers M d velopp s pour des domaines d ap-plication sp cifiques (SIGNALPROCESSINGTOOLBOX,SYSTEMIDENTIFIC ATIONTOOLBOX,CONTROLSYSTEMTOOLBOX, -SYNTHESIS ANDANALYSISTOOLBOX,ROBUSTCONTROLTOOLBOX, OPTIMI-ZATIONTOOLBOX,NEURALNETWORKTOOLBO X,SPLINETOOLBOX,SYMBOLICMATHTOOLBOX,FUZZ YLOGICTOOLBOX, etc.) ; SIMULINK :c est l extension graphique de MATLAB permettant de travailler avec des sch ma en blocs,pour mod liser et simuler des syst mes ;Blocksets :ce sont des collections de blocs SIMULINKd velopp s pour des domaines d application sp -cifiques (DSP BLOCKSET,POWERSYSTEMBLOCKSET, etc.)Fichiers MDL :ce sont des fichiers repr sentant des mod les SIMULINK ;Fichier MEX :modules executables cr s partir de sources en C ou FORTRAN;GUI :interface graphique utilisateur pour cr er des applications bas es sur MATLAB ;En MATLAB , ilexiste deux modes de fonctionnement :mode interactif :MATLABex cute les instructions au fur et mesure qu elles sont donn es par l ex cutif :MATLABex cute ligne par ligne un programme en langage MATLAB crit dans unfichier M (ou P), ou un fichier ex cutable session de travail MATLABD marrer MATLABPour activer la Fen tre de Commande MATLAB sousUNIX :dans une fen trecmdtool, tapermatlab.
4 Sous WINDOWS:cliquer sur l ic neMatlabsur le bureau ou dans le groupeMatlabdu menuD mar- la Fen tre de Commande, l invit de commande permet de taper les instructions une ligne la fois, chaque ligne etant ex cut e imm diatement apr s la toucheEntr e(ouReturn). Les instructionsde contr le (for,while,if:::else), aussi bien que le d finitions de matrices et vecteurs peuventprendre plusieurs lignes, avec une ex cution diff r e. Une ligne peut contenir plusieurs instructions s -par es par des virgules (,).AidePour obtenir de l aide sur un sujet, une instruction ou une fonction, on tapehelpsuivi par le sujet,l instruction ou la fonction d sir e (en minuscule ! ! !).Exemple help log10 LOG10 Common (base 10) (X) is the base 10 logarithm of the elements of results are produced if X is not also LOG, LOG2, EXP, - Introduction MATLAB et SIMULINK3 UNE SESSION DE TRAVAILMATLABD autres commandes utiles sont :helpwinacc der l aide travers une fen tre de navigationhelpdeskacc der la documentation MATLAB lookfor xyzchercher la cha ne de caract resxyzdans les descriptions des toutes lesfonctions disponiblesdemolancer les demos MATLABC ommandes syst mepwdnom du r pertoire courantcdchanger de r pertoiredir,lscontenu du r pertoire courantmkdircr er un nouveau r pertoiredeleteeffacer un fichiercopyfilecopier un fichierVariables et espace de travail (Workspace)En MATLAB il n y a pasd instructions pour d clarer ou dimensionner une variable.
5 Une nouvellevariable est d finie en donnant son nom et sa valeur num rique ts= = C=[1 1 0 0]C=1100ou son expression math matique ws=2*pi/tsws = la variable existe d j , MATLAB enchange le contenu, et, si n cessaire, alloue plus de place enm moire C=[123;456;789]C=123456789 Les variables ainsi d finies sont stock es dans l espace de travail et peuvent tre utilis es dans lescalculs subs - Introduction MATLAB et SIMULINK4 UNE SESSION DE TRAVAILMATLABAFFICHAGEPour afficher la valeur d une variable il suffit de taper son nom tsts = r sultat d une instruction est affich par d faut. Si l on veut que l instruction soit ex cut e sansafficher de r sultat, il faut ajouter; la fin de la ligne ws=2*pi/ts; CLASSESPar la syntaxe introduite ci-dessus, MATLABd finit des variables qui appartiennent la classedou-ble array, c est dire des tableaux de r els qui peuvent correspondre des scalaires, des vecteurs oudes matrices.
6 Mise part cette classe fondamentale, il faut signaler qu il existe d autres classes MATLABpr -d finies. La plus importante est certainementchar array, laquelle appartiennent les cha nes decaract res, d finies en utilisant hi = salut hi =salutINFORMATION SUR L ESPACE DE TRAVAIL whoaffichage des variables dans l espace de travailwhosaffichage d taill des variables dans l espace de travailExemples whoYour variables are:Chitsws whosName Size Bytes ClassC 3x3 72 double arrayhi 1x5 10 char arrayts 1x1 8 double arrayws 1x1 8 double arrayGrand total is 16 elements using 98 bytesEFFACER DES VARIABLES DE L ESPACE DE TRAVAIL clear var1 var2effacer les variablesvar1etvar2clear (all)effacer toutes les - Introduction MATLAB et SIMULINK5 UNE SESSION DE TRAVAILMATLABENREGISTRER DES VARIABLES DANS UN FICHIERPour enregistrer les variables de l espace de travail dans un fichier, on utilise les instructions suivantes.
7 Saveenregistrer toutes les variables dans un ne les variables enregistr es dans le l espace de travailsave x Y zenregistrer les variablesx, Y, zdans un fichier1ram ne les variables enregistr es dans le l espace de travailClore une session de travailPour clore une session de travail, - Introduction MATLAB et SIMULINK6Op rations math matiquesNombres et op rations arithm tiquesNombresLes nombres r els peuvent tre sous diff rents formats :5 nombres complexes peuvent tre crits sous forme cart sienne ou polaire :forme cart + i* + j* + *exp(j* )Formats d affichagePour choisir le format d affichage pour les nombres, on utilise l instructionformat:format (format par d faut)format short +002format long +002format hexABCDEF0123456789Op rations arithm tiques+Addition-Soustraction*Multiplicat ion/Division droitenDivision gauche PuissanceEn demandant l aide sur l un de ces op rateurs help +ou help /on obtient la liste de tous les op rateurs (arithm tiques et non) et matricesVecteursOn peut d finir un vecteurxen donnant la liste de ses l ments :7 VECTEURS ET MATRICES x=[3 ]x= en donnant la suite qui forme le vecteur : x=1 :3x= en utilisant une fonction qui g n re un vecteur espacement lin aire : x=linspace(1,10,6)x= exponentiel : x=logspace(0,2,7)x= d finit une matrice A en donnant ses l ments : A=[.]
8 ]A= unitaire : B=eye(4)B=1000010000100001 Emploi des indicesLes l ments d un vecteur ou d une matrice peuvent tre adress s en utilisant les indices sous la formesuivante :t(10) l ment no10 du vecteur tA(2,9) l ment se trouvant ligne 2, colonne 9 de la matrice AB(:,7)la colonne 7 de la matrice BC(3,:)la ligne 3 de la matrice - Introduction MATLAB et SIMULINK8 VECTEURS ET MATRICESOp rations matriciellesLes op rations matricielles ex cut es par MATLAB sont illustr es dans le tableau suivant :B=A la matrice B est gale la matrice A transpos eE = inv(A)la matrice E est gale la matrice A invers eD = A-BsoustractionZ = X*YmultiplicationX = A\Br sout le syst me d quationsAx=BX = A/B quivaut (B /A ) (help slashpour plus de details)Op rations " l ment par l ment"Les op rations l ment par l ment des vecteurs et des matrices sont effectu es en ajoutant unpoint (.)
9 Avant les op rations*\/ Exemple. A=[1 2 3 4 5]; B=[6 7 8 9 10]; C=A.*B;C=614243650 D= ;D= des lignes et des colonnest=[]cr er un tableaux videX(:,2)=[]effacer la deuxi me colonne deXY(3,:)=[]effacer la troisi me ligne deYConcat nationL op rateur[:::]permet d encha ner des matrices ou des vecteurs entre eux pour former des ma-trices ou des vecteurs plus grands A = ones(2)A=1111 B = zeros(2)B=0000 C=[AB]C=11001100 D=[A;B]D= - Introduction MATLAB et SIMULINK9 VARIABLES ET FONCTIONS11110000Il agit aussi sur des cha nes de caract res poli = merci ; tres_poli = [poli beaucoup ];tres_poli =merci beaucoupPolyn mesMATLAB nefournit pas de types ou classes pr -d finis pour repr senter directement des polyn l on utilise un vecteurPcontenant les coefficients du polyn me (en ordre d croissant), les fonctionssuivantes sont disponiblesroots(P)racines deP;polyval(P,x) valuation dePenx.
10 Conv(P1,P2)multiplication polynomialedeconv(P1,P2)division polynomialeSiRest un vecteur contenant les racines d un polyn meP, la fonctionpoly(R)reconstruit les coeffi-cients du polyn me. SiAest une matrice,poly(A)calcule son polyn me et fonctionsVariablesOn d finit une variable en donnant son nom et sa valeur num rique ou son expression math matique :a = ;x = 0 :10;y = a*x;z = y.^2;Expressions math matiquesOn crit les expressions math matiques de la fa on habituelle :z = 5*exp( *x).*sin( *y);Fonctions math matiquesLesfonctions math matiques de basesont donn es dans le tableau suivant - Introduction MATLAB et SIMULINK10 VARIABLES ET FONCTIONS absanglesqrtrealimagvaleur absolueargumentracine carr epartie r ellepartie imaginairemodule (nb. complexe)(nb. complexe)conjroundfixfloorceilconjugu e (nb. complexe)arrondirarrondir (vers z ro)arrondir (vers 1)arrondir (vers+1)signremexploglog10signeresteexpo nentiellelogarithme baseelogarithme base10 Lesfonctions trigonom triquessont donn es dans le tableau suivant :sincostanasinacosatanatan2sinhcoshtanha sinhacoshatanhExemple x=-2+5ix= + a=real(x);a=-2 b=imag(x);b=5 m=abs(x);m= alpha=angle(x);alpha = w=50; t= ; y=25*exp(-4*t)*cos(w*t)y= ation de fonctionsL utilisateur peut cr er des fonctions particuli res pour ses applications.