Introduction Matlab
Introduction Matlab
Introduction Matlab
INTRODUCTION A MATLAB
ENVIRONNEMENT MATLAB
Matlab est un environnement de calcul numrique matriciel. Aprs le lancement de Matlab, une fentre de commande apparat qui permet l'utilisateur de taper une commande quelconque obissant la syntaxe de Matlab. :
">>" symbole/prompt apparaissant gauche et indiquant que l'interprteur est prt recevoir une commande. Variables Les variables dfinies par l'utilisateur sont ranges dans l'espace mmoire de Matlab, ces variables sont dites globales. Le "Workspace browser" permet d'observer les variables existantes. Les commandes who ou whos permettent d'obtenir les mmes informations. Pour lancer le Workspace browser, icne : Rpertoires de travail Matlab permet d'ouvrir, de crer, de modifier etc des fichiers. Matlab sauvegarde tous les fichiers crs dans le rpertoire par dfaut qu'il est possible de modifier l'aide de la commande "cd" ou en lanant le "path browser" l'aide de l'icne suivant : La fentre suivante apparat , il est alors possible de changer le rpertoire courant. Quand une commande est taper, matlab recherche celle-ci dans l'ensemble des rpertoires dont la liste apparat dans la fentre "path", on peut ajouter ou supprimer un rpertoire de son choix.
Introduction Matlab
jouvencel
Aide / Help L'icne permet d'accder l'aide en ligne, la fentre d'aide est ouverte
Les commandes suivantes >> help >> helpwin (la fentre ci-contre) >> helpdesk (manuel complet avec Acrobat Reader) Toute commande Matlab possde une entte fournissant des informations sur la commande et sa syntaxe. la commande : >>lookfor mot-cl permet d'avoir la liste des commandes ont l'entte contient mot-cl Autres outils Editeur : accs par FileNewM_file ou icne Dbugger : intgrer l'diteur Array_editor : dans le Workspace Browser, double clic sur une variable. Simulink : environnement graphique de simulation de systmes dynamique : Interprteur >> commande rsultat affichage du rsultat >> interprteur disponible >> commande ; le point virgule provoque l'absence de l'affichage du rsultat >> interprteur disponible Format d'affichage Les rsultats numriques sont affichs avec le format dfini par dfaut et redfinissable par l'utilisateur. File Preferences Commentaires Le symbole % introduit un commentaire, celui-ci n'est pas valu par l'interprteur.
Introduction Matlab
jouvencel
DONNEES
Vecteurs Vecteur ligne >> v=[1 2 3 4 5] ; % vecteur 1*5 >> v=[1:5]; % rsultat identique la ligne prcdente (incrment de 1 par dfaut) >> v= [1:1:5]; % idem incrment spcifi Vecteur transpos >> v=[1 2 3 4 5] '; % vecteur 5*1 >> v=[1:5]'; >> v= [1:1:5]'; >> w=v'; >> v1 =[borne inf:increment:borne sup]; >> v1(i) ; %ime lment ATTENTION le premier est i=1 >> length(v) %dimension du vecteur Matrices >>A=[1 2 3; 4 5 6;7 8 9; 10 11 12]; %matrice rectangle 4*3 >>B=[1 2 3] %matrice 3*1 >> size(A); %dimension de la matrice >>A(i,j); % lment ligne i colonne j >>A(:,n); % nime colonne >>A(p,:); % pime ligne >>A(i:j,:); % sous matrice des lignes i j >>A(i:j,k:l); % sous matrice des lignes i j colonnes k l Suppression des donnes >> clear >> clear A % supprime toutes les variables % supprime la variable A
Sauvegarde des donnes save nom_fichier A B C % sauve les variables A B et C dans le fichier nom_fichier load nom_fichier % rcupration des donnes
Introduction Matlab
jouvencel
SCRIPT
M_files : est un fichier avec l'extension .m qui contient du code Matlab. Script : contient des commandes Matlab function : procdure arguments valeur retourne action sur utilit function dfinition accs par lookfor accs par help corps function f = fact(n) %fact factorielle % fact(n) retourne n! f=prod(1:n); Script Non Non var globales actions rptes function Oui oui variables locales et globales Extension matlab
Introduction Matlab
jouvencel
GRAPHISME
Tout trac avec Matlab, s'effectue dans une fentre graphique que l'on cre par la commande figure ou quand on excute une commande de dessin (plot ). On peut crer autant de fentres graphiques que l'on veut celles-ci tant numrotes de 1 N au fur et mesure de leur cration. La fentre graphique par dfaut et la dernire qui a t cre par figure ou la dernire active par une commande de dessin ou slectionne avec la souris. figure % cre une fentre graphique qui devient la figure par dfaut, figure(n) % cre une fentre graphique numro n qui devient la fentre active
Fonctions plot t = 0:0.1:5; x = 2*sin(2*pi*t); plot(t,x); % dessin de x en fonction de t, interpolation linaire entre les points. plot(t,x,'-') % idem avec style - - plot(t,x,'b-') % idem style --- couleur bleue plot(t,x,'o') % idem pas d'interpolation, chaque point marqu par o Un plot provoque l'effacement du dessin prcdent (par dfaut) on peut superposer des dessins en mettant le commutateur hold on hold on % dsactivation par hold off title('Titre de la figure'); xlabel('commentaire sur l'axe x'); ylabel('idem axe y'); axis([xmin,xmax,ymin,ymax]); % dfinit l'chelle des axes legend('trac 1','trac 2',.) ; %chaque trac est associ une lgende grid % affiche une grille text(x,y,'texte') % place texte la position x y dans la fentre gtext('texte") % place texte la position dfinie avec la souris Une fentre graphique peut tre subdivise en plusieurs tracs, subplot(n,p,q)% subdivision en n*q dessin et slectionne qime
Introduction Matlab
jouvencel
SIMULINK
LANCEMENT DE SIMULINK:
Dans la fentre de commande de Matlab: Cliquer sur cet icne pour lancer Simulink
La fentre suivante contenant les librairies de simulink, apparat ainsi qu'une fentre de travail. librairies de simulink
fentre de travail
Construction d'un modle dans la fentre de travail Mthode de placement d'un composant on slectionne une librairie de simulink : double clic pour l'ouvrir (exemple librairie : Linear) on slectionne un composant (exemple Sum): on maintient l'appui sur le bouton gauche de la souris on fait glisser l'lment dans la fentre de travail on relche le bouton.
Introduction Matlab
jouvencel
Exercice : construire l'environnement dcrit dans la figure suivante, on indique au-dessus de chaque lment, la librairie d'origine.
Ralisation des connexions Mthode : On slectionne avec la souris, le symbole > situ sur un composant On maintient l'appui sur le bouton et on tire le lien vers un symbole > On peut relcher le bouton pour changer de direction. On vrifie que la connexion est correcte par le fait que la flche est accentue Paramtrage des composants Mthode On effectue un double clic sur le composant exemple Mux, la fentre de paramtrage s'ouvre, On tape les valeurs dsires : ici la valeur 2 pour indiquer 2 entres, On ferme cette fentre par Close, les nouvelles valeurs sont prises en compte. Exercice paramtrer le gnrateur sinusodal avec une amplitude de 2 et une frquence de 0.5 Hz le gain sera rgl 0.5. rgler la frquence de dpart du chirp 0.01 hz Dsignation des composants Chaque composant possde un nom par dfaut exemple Gain, on peut modifier ce nom. Mthode clic sur le nom on tape un nouveau nom
Introduction Matlab
jouvencel
Marquage des liens ou connexions Mthode Double clic sur le lien que l'on veut marquer, une fentre apparat qui vous indique le bon droulement de l'opration. on tape un nom exemple sin, Ritrer l'opration pour le chirp
Propagation des marquages Mthode la sortie d'un composant : double clic sur le lien, taper le symbole < puis cliquer hors de cette fentre, taper Ctrl D (contrle D) Renvoi d'un signal et rcupration Afin de ne pas surcharger le dessin, on peut utiliser 2 composants situs dans la librairie connections qui permettent d'effectuer une transition sans fil. Ces 2 composants s'appellent GOTO et FROM Le "tag" possde un nom que l'on peut modifier
Chaque tag doit tre modifi un par un, attention aux correspondances.
Introduction Matlab
jouvencel
Personnalisation de la fentre de travail Il est possible de redimensionner chaque composant on le slectionne, on saisit une poigne, on tire ou on diminue.
Dans le menu Format de la fentre on dispose d'autres commandes (il faut d'abord slectionner un composant).
Font permet de choisir le type de caractres Flip name : de placer le nom au dessus /en dessous Hide name de cacher le nom Flip block de retourner le bloc Rotate block de le tourner de 90 Foreground color de slectionner une couleur pour le texte Background color : de slectionner une couleur pour le bloc
On peut de mme personnaliser les liens ou connexions : Wide Vector Lines permet de dimensionner l'paisseur des liens en fonction du nombre de signaux, Line Width permet d'obtenir l'indication du nombre de signaux sur les liens Ctrl D permet de mettre jour tout ceci en cas de modification.
Modifications Modification des composants On peut : ajouter un composant tout moment, supprimer un composant en le slectionnant et touche Suppr, Modifier la position d'un composant en le slectionnant on laisse la touche gauche de la souris appuye et on le dplace. dupliquer un composant : on le slectionne, on appuie sur la touche Ctrl on faisant glisser le composant. 9 Introduction Matlab
jouvencel
undo
droulement simulation
en utilisant les poignes situes sur le lien (une fois slectionner celles-ci apparaissent), en appuyant sur le bouton droit de la souris on ajoute un nouveau dpart, shift et bouton gauche permet d'ajouter de nouvelles poignes de changement de direction.
nouveau dpart
nouvelle poigne
SIMULATION
Paramtrage de la simulation La simulation utilise un certain nombre de paramtres : menu simulation parameters instant de dpart ( 0 par dfaut) instant d'arrt (mettre 20s) On tudiera ultrieurement les autres paramtres. Faire close ce qui valide les modifications. Lancement de la simulation menu simulation start ou ctrl T ou icne > Une sonnerie indique la fin de la simulation
10
Introduction Matlab
jouvencel
On peut effectuer des zooms avant/arrire avec les 3 premiers icnes ajuster les axes avec le 4 sauver les donnes avec le 5 rgler le scope avec le 6 imprimer avec le dernier
11
Introduction Matlab
jouvencel
On commence par crer le systme l'aide du bloc Fcn de la librairie NonLinear L'entre de ce bloc est nomme u et peut-tre un vecteur Les composantes sont dsignes par u(1) u(2) etc
& la fonction correspondant x1 s'crit : u(3)+u(1)*cos(u(2)) si les entres sont respectivement u,x1 et x2 ceci est programm dans la fentre de dfinition de Fcn
La construction du systme cidessus, utilise des intgrateurs (librairie linear) et des multiplexeurs (librairie Connexions) comme sur la figure suivante.
On peut alors effectuer une simulation du systme, on voit que celui-ci diverge, le contrle de ce systme sera vu ultrieurement dans le chapitre commande non linaire. Cration d'un sous systme On va encapsuler le systme prcdent dans un sous systme, cette mthode permet de rendre plus lisible un schma et de paramtrer le sous-systme. Mthode on slectionne tous les lments qui formeront le sous-systme On tape Ctrl G (ou EditCreate SubSystem)
12
Introduction Matlab
jouvencel
On obtient : un bloc nomm Subsystem que l'on peut renommer, les entres et sorties peuvent tre elle aussi renommes l'intrieur du bloc (double clic pour ouvrir le bloc). Des ports d'entre et de sortie on t rajouts automatiquement, on peut en ajouter par exemple le port correspondant x2
On va introduire un gain suivant x2 d'une valeur dsigne par g edit Mask Subsystem initialization
En cliquant maintenant sur le soussystme, on obtient la fentre suivante, dans laquelle on fixe une valeur de g
On prend en compte cette valeur pour la drive de x2 par exemple par editLook under Mask
13
Introduction Matlab
jouvencel
1 p + 0.2 p + 1
2
cration dun modle LTI {Linear Time Invariant} Dfinir le numrateur exemple : >num = 1 ; Dfinir le dnominateur exemple >den = [1 0.2 1] ; Construire le systme LTI exemple > sys1= tf(num,den) ; Faire afficher sys1 en tapant le nom puis sur la touche Return Vecteur dfinissant les zros exemple : > zz=[] %aucun Vecteur dfinissant les ples exemple : > pp=[ -0.1000 + 0.9950i -0.1000-0.9950i] Gain exemple > k=1 Construire le systme : > sys2=zpk(zz,pp,k)
Ou
Les proprits dun modle LTI sont obtenues en tapant : > get(sys1)
14
Introduction Matlab
jouvencel
On obtient : num = {[0 0 1]} den = {[1 0.2 1]} Variable = 's' choix possible {continu : {s p} chantillonn : {z z-1 q}} Ts = 0 0 / systme continu sinon la priode dchantillonnage Td = 0 0 ou la valeur dun retard sur lentre InputName = {''} on peut donner un nom lentre OutputName = {''}Idem pour la sortie Notes = {} UserData = [] modification des champs laide de la fonction set >set(sys,'Variable','p') Transfer function: 1 --------------p^2 + 0.2 p + 1 analyse du systme Diagramme de bode > bode(sys1) Diagramme de Nyquist > nyquist(sys1) Diagramme de Nichols > nichols(sys1) Trac des ples et des zros > pzmap(sys1) Lieu des ples > rlocus(sys1) Note : aprs chacune de ces commandes, la commande grid permet dobtenir un maillage adapt au type de diagramme. Calcul des zros, des ples et du gain >[Z,P,K]=zpkdata(sys1,'v') Ples seuls >pole(sys1) ou eig(sys1) Calcul des marges de phase et de gain >margin(sys1) Simulation Rponse impulsionnelle >impulse(sys1) Rponse un chelon > step(sys1) Rponse une entre quelconque : Il faut dfinir la variable temporelle t=0 :0.01 :10 ; Il faut dfinir lentre u=sin(t) On simule > lsim(sys1,u,t) Interface de travail avec les modle LTI Matlab offre un environnement de travail que lon obtient en tapant >ltiview Utilisation de simulink Le modle LTI peut-tre utilis dans lenvironnement de simulink Ouvrir successivement : Blocksets&toolsboxes LTI /exer5/aexer5
15
Introduction Matlab
jouvencel
Faire glisser dans la fentre de travail le bloc lti Taper le nom sys1 aprs un double clic sur le bloc. Simuler le systme.
Tout ce qui prcde permet de travailler pratiquement indpendamment de simulink, dans la suite, nous allons nous servir uniquement de simulink qui permet dinterconnecter facilement des systmes. Interconnexion de systmes But : dfinir un correcteur avance de phase et corriger le systme du stage prcdent {aexer6/exer6} Rappel : calcul dun correcteur avance de phase (pendant la sance) calculer le correcteur construire lenvironnement suivant qui permet de comparer sans et avec correcteur /exer6/
Discrtisation du correcteur Rappel : cf. cours /exer7/aexer7 Extraire le numrateur et le dnominateur de sysc le correcteur continu Utiliser la fonction c2d avec la mthode de Tustin pour transforme le correcteur continu en correcteur discret avec une priode dchantillonnage de 0.1s, Simuler ce correcteur discret et comparer le au rsultats obtenus avec le correcteur continu.
16
Introduction Matlab
jouvencel
Complments Le correcteur avance de phase calcul prcdemment, possde un gain statique que lon peut dterminer de la manire suivante : /aexer8/exer8 Calcul du systme en boucle ouverte > sysbo = sysc*sys Calcul du systme en boucle ferme > sysbf = feedback(sysbo,1) Attention le dnominateur nest pas normalis Gain statique : Gs = sysbf(0) Si on dsire ramener le gain statique 1 il faut ajouter un amplificateur de 1/Gs. Le correcteur devient sysc*1/Gs [nu,de]=tfdata(sysbf,'v'); gs=de(length(de)); nu=nu./gs; de=de./gs; sysbf=2*tf(nu,de); [mg,mp,wg,wp]=margin(sysbf); %erreur mpd-mp On vrifie dans ce cas que la marge de phase diminue, pour modifier la marge de phase, on recalcule le correcteur en prenant en compte cette cart.
17
Introduction Matlab
jouvencel
& X (t ) = AX (t ) + Bu (t ) s (t ) = Cu (t ) + Du (t )
ou
X k +1 = FX k + Gu k s k = CX k + Du k
est le vecteur dtat de dimension n la matrice dvolution ou dtat de dimension n n la commande de dimension r la matrice dentre de dimension n r la sortie de dimension m la matrice dobservation de dimension m n la matrice de couplage entre/sortie de dimension m r
Cration dun modle LTI en reprsentation dtat : ss Les proprits sobtiennent et se modifient par get et set Sous simulink, utiliser le bloc StateSpace de la librairie Linear (ou Discret )
avec : r: f : 18 la position du chariot (m) la force horizontale applique au chariot (en N) Introduction Matlab
jouvencel
q: M1 : M0 : M: ls : J K, fR : g:
la position angulaire du pendule (en rd) la masse du pendule (Kg) la masse du chariot la masse totale du chariot et du pendule distance au chariot, du centre de gravit du pendule (m) Inertie (kg m2) coefficients de frottement visqueux du pendule et du chariot gravit.
Mise en quation voir le document en annexe Reprsentation dtat du systme linaris et normalis:
0 - 1.9503 0 0 0 0 0 0 1 & X + 0 u X= 0 - 0.1289 - 1.9148 0.0008 - 6.1347 0 21.4964 26.3388 - 0.1362 84.3862 1 0 0 0 0 0 1 0 0 X + 0 u Y= 0 0 1 0 0
1 Calcul de lobservateur 2 Calcul du retour dtat 3 Calcul du gain statique 4 Construction de lenvironnement 5 Simulation
Figure 2 Schma du systme stabilis Simuler le fonctionnement du systme Le systme est-il stabilis ? Vrifier le bon fonctionnement de l'observateur Exercer une forte variation de position au chariot, le modle est-il raliste ?
19
Introduction Matlab
jouvencel
Etape 3 : Limitation de la commande (cor_lin3) Ajout dune saturation sur lentre du pendule
Etape 4 : Simulation avec le modle non linaire (cor_nl) On remplace le modle linaris par le modle non linaire du pendule
20
Introduction Matlab