Vous êtes sur la page 1sur 7

Automatique

` Matlab, page 1 Initiation a

` Matlab Initiation a
Ce document pr esente une d ecouverte de Matlab par lexemple. Cette approche a e ` e t utilis ee dans le cadre du cours dAutomatique des e tudiants de formation continue a ` l INSA de Toulouse, dont provient le document initial. Elle est aujourdhui utilis ee pour linitiation a ` Matlab des e tudiants de formation par alternance de lEcole Nationale de Physique de Strasbourg.

Principes de Matlab

Matlab est loutil de r ef erence pour la simulation num erique, notamment en ce qui concerne 1 lAutomatique . Il offre des possibilit es avanc ees que ce soit en mati` ere didentication ou de commande. Il permet, de mani` ere plus g en erale, de r esoudre une grande diversit e de probl` emes de simulation, dans des domaines aussi vari es que le traitement du signal, les statistiques ou la vision, pour ne citer que quelques exemples. Lapprentissage de Matlab se fera ` courant continu. en sappuyant sur l etude dun moteur a

1.1

G en eralit es

Avec Matlab les calculs sont num eriques (une variable doit avoir une valeur) et bas es sur la manipulation de scalaires, de vecteurs et de matrices. D enir un scalaire >>r=2*pi D enir un vecteur >>x=[1 ;-1] ou Pour d enir le vecteur x = >>x=[1 -1] 1 2 3 : 4 5 6 1 1 = (1 1)T : Pour d enir le r eel r = 2 :

D enir une matrice Pour d enir la matrice A = >>A=[1 2 3 ; 4 5 6] ou

>>A=[1,2,3 ;4,5,6]

ch Op erations sur les matrices (ainsi que sur les scalaires et les vecteurs, le cas e eant) addition : A+B soustraction : A-B multiplication : A*B et B*A inversion : inv(A) transposition : transpose(A) ou A
1

On parle doutil de CACSD (vComputer Aided Control Systems Design).

Ecole Nationale Sup erieure de Physique de Strasbourg, FIP, 1` ere Ann ee

Laurent Barb e et Benjamin Maurin 2005-2006

Automatique

` Matlab, page 2 Initiation a

Etude des matrices valeurs propres : eig(A) rang : rank(A) trace : trace(A) d eterminant : det(A) Quelques matrices utiles matrice identit e de dimension n : eye(n) matrice de z eros de dimension m n : zeros(m,n) matrice de uns de dimension m n : ones(m,n) De tr` es nombreux algorithmes de calcul sont par ailleurs disponibles pour r esoudre la plupart des probl` emes courants (ou non . . . ) en math ematiques. Parmi ceux-ci, on peut citer les fonctions sur les polyn omes (qui sont d enis comme des vecteurs lignes compos es des coefcients du polyn ome entr es par ordre d ecroissant du degr e). Par exemple, si on cherche les racines (complexes) de x2 x + 1 = 0 : >>roots([1 -1 1]) >>ans= 0.5000 + 0.8660i 0.5000 - 0.8660i

1.2

Aide en ligne

La bonne utilisation de laide en ligne est fondamentale pour travailler correctement avec Matlab. Si lon souhaite obtenir de laide sur certaines fonctions dont on conna t le nom, on utilise la fonction help. Par exemple :
>> help conv CONV Convolution and polynomial multiplication. C = CONV(A, B) convolves vectors A and B. The resulting vector is length LENGTH(A)+LENGTH(B)-1. If A and B are vectors of polynomial coefficients, convolving them is equivalent to multiplying the two polynomials. See also XCORR, DECONV, CONV2, FILTER, and CONVMTX in the Signal Processing Toolbox.

` un sujet pr Si lon cherche les noms des fonctions se rapportant a ecis, on utilise la fonction lookfor (puis le mot en anglais). Par exemple :
>>lookfor polynom >>POLYEIG Polynomial eigenvalue problem. >>CONV Convolution and polynomial multiplication. >>DECONV Deconvolution and polynomial division.

... ... ... ...

Ecole Nationale Sup erieure de Physique de Strasbourg, FIP, 1` ere Ann ee

Laurent Barb e et Benjamin Maurin 2005-2006

Automatique

` Matlab, page 3 Initiation a

2
2.1

Utilisation de la Control Toolbox


G en eralit es

` outils d ` la commande (Control Toolbox) permet de disposer de nomLa bo te a edi ee a breux outils danalyse pour lautomatique. D enition du syst` eme par sa fonction de transfert G(s) = s2 Soit le syst` eme d ecrit par :

2s + 1 s + 1/2 =2 , + 2s + 1 (s + 1)2

o` u s d esigne la variable de Laplace. A laide de Matlab, on peut d enir alternativement : >>F=tf([2 1],[1 2 1]) (num erateur et d enominateur de la fonction de transfert) ou >>F=zpk([-1/2],[-1 -1],2) (z eros, p oles et facteur de gain de la fonction de transfert) ` laide de diff Pour constituer un syst` eme a erents sous-syst` emes on peut effectuer diff erentes op erations. Soit G1 et G2 les repr esentations des deux syst` emes. Les combinaisons de base sont : >>G1*G2 ou >>series(G1,G2) G1 en s erie avec G2 >>G1+G2 ou >>parallel(G1,G2) G1 en parall` ele avec G2 >>feedback(G1,G2) G1 boucl e par G2 On peut obtenir diverses informations sur le syst` eme d eni par sa repr esentation G : >>pole(G) >>step(G) >>impulse(G) >>bode(G) >>nyquist(G) >>nichols(G) >>rlocus(G) >>rlocfind(G) >>damp(G) >>pzmap(G) donne les p oles du syst` eme trace la r eponse indicielle trace la r eponse impulsionnelle trace le diagramme de Bode trace le diagramme de Nyquist trace le diagramme de Black-Nichols trace le lieu dEvans donne les valeurs des p oles et du gain correspondant sur le lieu dEvans donne les p oles, ainsi que la pulsation propre et lamortissement ` chaque p associ es a ole place les p oles et les z eros dans le plan complexe

2.2

Prise en main de Matlab et de la Control Toolbox

` courant continu (MCC) dont l On rappelle ici la mod elisation du moteur a etude va permettre dillustrer les concepts fondamentaux de la Control Toolbox de Matlab. La fonction ` la tension appliqu ` linduit s de transfert reliant la vitesse de rotation du rotor a ee a ecrit : G(s) = K (s) = , U (s) (1 + el s)(1 + em s)
Laurent Barb e et Benjamin Maurin 2005-2006

Ecole Nationale Sup erieure de Physique de Strasbourg, FIP, 1` ere Ann ee

Automatique

` Matlab, page 4 Initiation a

avec : K = em et el Kem gain statique du syst` eme, 2 Rf + Kem RJ lectrom = constante de temps e ecanique, 2 Rf + Kem L lectrique. constante de temps e = R

On rappelle que dans ce mod` ele R repr esente la r esistance de linduit du moteur, L son inductance ; f est le coefcient de frottement visqueux et J le moment dinertie du rotor ; K est le gal au rapport force e lectromotrice-vitesse de rotation). rapport couple-courant (suppos ee Pour la mise au point dun programme ou des calculs tr` es ponctuels, vous pouvez taper vos instructions sur la ligne de commande. N eanmoins :

A RETENIR D` es que lon a une s equence dinstructions a ex ecuter, on a tout ` les regrouper sous forme dun chier script (chier *.m). int er et a

Si un chier a lextension .m (par exemple nomFichier.m), alors il sera ex ecut e en tapant son nom (>>nomFichier) sur la ligne de commande. 1. Eteindre sa calculatrice et lenfouir dans son sac pour le reste du TP (et des autres TPs ` de graves repr dailleurs). En cas de non respect de cette consigne sattendre a esailles. . . 2. Cr eer un script qui comporte les diff erentes op erations d etaill ees ci-dessous Pour cela on tre introduits peut utiliser l editeur de Matlab (>>edit). Des commentaires peuvent e ` laide du symbole %. a 3. D enir tout dabord les diverses constantes du probl` eme (dans un script nomm e cal` cul constantes mmc.m par exemple). Les valeurs num eriques choisies correspondent a tudi un MCC un Maxon F 2260, num ero 885 e e en cours : R L J f Kem = = = = = 1, 44 5, 6 104 H 1, 29 104 kg.m2 7, 2 105 m.N.s 0, 10 m.N.A1

lectrique el et e lectrom 4. Calculer le gain K et les constantes de temps e ecanique em du MCC . D enir alors sa fonction de transfert. Pour cela, on note Num et Den le num erateur et le d enominateur de la fonction de transfert. 5. Par la fonction appropri ee, calculer les p oles de cette fonction de transfert. V erier que 1 1 ces p oles valent el et em .

Ecole Nationale Sup erieure de Physique de Strasbourg, FIP, 1` ere Ann ee

Laurent Barb e et Benjamin Maurin 2005-2006

Automatique

` Matlab, page 5 Initiation a

6. Cr eer une gure (avec la fonction figure) et la diviser en deux sous-trac es (avec la ` un e chelon fonction subplot). Dans le premier, tracer la r eponse indicielle du MCC a unitaire de tension. A laide de la souris, observer les caract eristiques accessibles du trac e (clic droit puis rel acher pour les caract eristiques, pointer la courbe et clic gauche puis rester appuy e pour les valeurs). Dans la seconde sous-gure, tracer le diagramme de Bode du MCC. Analyser les diff erents trac es. ` courant continu est d ` la gure 1. Il com7. Lasservissement de vitesse du moteur a eni a porte un correcteur proportionnel de gain Kp = 10. La fonction de transfert du capteur ` un gain pur not de vitesse est assimil ee a e K . La sortie de ce capteur valant 10 V pour une vitesse de rotation de 3000 tours/min calculer K en unit es SI.
Yr (s) + Y (s) E (s) Kp U (s) G(s) (s)

F IG . 1 Sch ema de lasservissement de vitesse du MCC 8. D enir ensuite les fonctions de transfert du syst` eme en boucle ouverte et en boucle ferm ee en combinant les fonctions de transfert des diff erents blocs. 9. Sur une m eme gure, tracer les r eponses indicielles du syst` eme en boucle ouverte et en boucle ferm ee. 10. Tracer les diagrammes de Bode, Black et Nyquist du syst` eme en boucle ouverte sur trois gures diff erentes (avec toujours Kp = 10). Identier les marges de stabilit e du syst` eme sur ces trac es. 11. En utilisant une boucle (>>help for), tracer sur un m eme graphe les r eponses indi ` cielles du syst` eme en boucle ferm ee pour les valeurs de Kp egales a 10, 100 et 1000. ` la question V erier la coh erence de ces r eponses avec les marges de stabilit e relev ees a pr ec edente.

3
3.1

Utilisation de Simulink
G en eralit es

` outils de Matlab qui permet de faire des simulations de Simulink est une autre bo te a ` laide dun outil graphique. On se propose ici dutiliser Simulink pour syst` emes d enis a ` courant continu. On pourra ainsi visualiser d enir lasservissement en vitesse du moteur a ` diff notamment les r eponses du syst` eme a erents types dentr ees. Pour lancer Simulink, on peut soit utiliser les menus disponibles, soit taper sur la ligne de commande >>simulink. Pour cr eer un nouveau mod` ele Simulink choisir New dans le menu File, puis Model. Une feuille de travail appara t, sur laquelle on va pouvoir d enir
Ecole Nationale Sup erieure de Physique de Strasbourg, FIP, 1` ere Ann ee Laurent Barb e et Benjamin Maurin 2005-2006

Automatique

` Matlab, page 6 Initiation a

graphiquement notre syst` eme. Les diff erents outils disponibles seront trouv es dans les menus correspondants : sources, visualisation, automatique continue, automatique discr` ete, fonctions math ematiques, fonctions et tables, automatique non-lin eaire, signaux et syst` emes. De par sa tre ais nature graphique Simulink peut e ement d ecouvert intuitivement. Cet outil utilise la tech l nique de drag and drop (s electionner et faire glisser). Il est facile de positionner les e ements l n ecessaires dans la fen etre du mod` ele. Ensuite, on relie ces e ements entre eux pour consti l ventuellement des param` tuer le mod` ele. Chaque e ement poss` ede une description et e etres qui tre modi l peuvent e es. Pour y acc eder double-cliquer sur un e ement. Par exemple si on veut visualiser le signal dun g en erateur sinuso dal, on utilise la source correspondante (menu Sources) et un oscilloscope (menu Sinks). On connecte ensuite ces l deux e ements en attrapant la sortie du g en erateur et amenant la souris enfonc ee sur lentr ee de loscilloscope. La simulation est jou ee en cliquant sur Run, dans le menu Simulation. ` laide dun script. En effet, Simulink La encore, on peut d enir lensemble de la simulation a partage les variables de lespace de travail Matlab (variables globales). On peut ainsi d enir ` laide de variables dont les valeurs sont d le mod` ele Simulink a enies dans un script. On peut jouer la simulation depuis la ligne de commande (donc lancer cette simulation depuis un script). Ainsi sur lexemple pr ec edent, on obtient le mod` ele exempleMinimum.mdl et le script ci-apr` es.

Ecole Nationale Sup erieure de Physique de Strasbourg, FIP, 1` ere Ann ee

Laurent Barb e et Benjamin Maurin 2005-2006

Automatique

` Matlab, page 7 Initiation a

% Visualisation dun signal sinuso dal damplitude 1.5, de % fr equence 1 Hz, sur un horizon de 5 s. % le mod` ele simul e (voir ci-dessus) porte le nom exempleMinimum.mdl Tsimu=5 Xmax=1.5 f=1 sim(exempleMinimum)

3.2

Prise en main de Matlab et de la Simulink

Selon la m ethode d ecrite pr ec edemment, on r epondra aux questions suivantes, dont certaines reprennent largement l etude effectu ee pour la prise en main de la Control Toolbox. N eanmoins il est conseill e de cr eer un nouveau script. 1. A laide de Simulink cr eer le mod` ele de lasservissement de vitesse vu dans la partie 2.2. l On parcourra pour cela les menus de Simulink pour trouver les e ements n ecessaires. En particulier le bloc fonction de transfert, nomm e Transfer Fcn sera trouv e dans le menu Continuous. Les constantes, le num erateur et le d enominateur de la fonction de ` limage de lexemple transfert seront d enis dans le script qui pilotera les simulations, a pr ec edent. 2. Sur une m eme gure, tracer la consigne et la r eponse indicielle du syst` eme en boucle ouverte. Le trac e sera fait sur un horizon de temps judicieusement choisi. ` un oscilloscope autant de signaux que lon veut. Par exemple, Note : on peut envoyer a si lon souhaite afcher deux signaux diff erents il faut utiliser un multiplexeur (Mux dans le menu Signals and Systems) pour les mettre sur une m eme ligne. 3. D enir le syst` eme en boucle ferm ee selon le sch ema de la gure 1 avec Kp = 100. Sur une m eme gure, tracer la consigne et la r eponse indicielle du syst` eme en boucle ferm ee.

Ecole Nationale Sup erieure de Physique de Strasbourg, FIP, 1` ere Ann ee

Laurent Barb e et Benjamin Maurin 2005-2006

Vous aimerez peut-être aussi