Vous êtes sur la page 1sur 21

Petite introduction lutilisation de Matlab/Simulink pour lAutomatique

Ces quelques pages sont consacres l'illustration des cours d'automatique (asservissements linaires continus) l'aide du logiciel Matlab, et de ses extensions Simulink et Control System Toolbox, ddies particulirement l'automatique. Ces logiciels sont commercialiss par la socit amricaine Mathworks. Sans vouloir leur faire une publicit excessive, il faut reconnatre que leur produit est trs complet et trs agrable utiliser, ce n'est pas tonnant s'il est une rfrence dans l'industrie et dans l'enseignement (par exemple, les candidats l'agrgation de mathmatiques utilisent uniquement les logiciels Maple et Matlab pour l'preuve de modlisation). Le prix de vente aux tablissements d'enseignement s'est beaucoup amlior. Une version tudiante existe un peu plus de 100 euros TTC, elle est assez difficile trouver, l'diteur de cette version est Prentice-Hall. Un autre logiciel, assez proche de Matlab dans l'esprit et la forme, est disponible gratuitement, il s'agit de Scilab (prononcer ssal-lab!) acronyme de scientific laboratory. Ce logiciel a t labor par l'INRIA. Une extension trs proche de simulink est disponible et s'appelle scicos. Ce logiciel est tlchargeable : http://www-rocq.inria.fr/scilab/

Ce type de logiciel constitue une aide puissante pour le professeur faisant son cours d'automatique. Bien sr, il est possible d'illustrer un cours l'aide de transparents qui permettent de projeter une courbe qui est la rponse du systme tudi telle excitation, un diagramme de Nichols ou autre. Mais tout cela est dsesprment fig. Supposons une question du genre "Monsieur, si ce paramtre-l augmente, que se passe-t-il?", videmment le professeur rpond, avec ou sans Matlab. Il redessinera avec plus ou moins de bonheur la courbe modifie, il n'en pourra donner qu'une vague allure gnrale moins de passer tout le temps du cours calculer les coordonnes des points afin de la dessiner exactement. Un logiciel permet de projeter la courbe voulue exactement et en un clin d'il. Halte au vague, l'approximation ! Avant de faire dessiner la courbe au logiciel, on peut toujours, prvoir, estimer son allure, c'est un exercice indispensable. Mais ensuite: prcision et gain de temps ! Libr des contraintes des calculs, il est possible de consacrer plus de temps l'essence des choses, l'Automatique elle-mme. Fait-on vraiment de l'automatique lorsque l'on a les mains plonges dans le "cambouis du calcul" des ples d'une fonction de transfert en vue d'obtenir sa transforme de Laplace, lorsque l'on calcule 20 points afin de tracer un lieu de Nichols ? On ralise des oprations ncessaires l'automatique mais ce n'est qu'accessoire, ce n'est pas de l'Automatique.

Le temps consacr cette discipline austre est compt. Dans nos ENMM1o il est admis que le but n'est pas de former des ingnieurs de conception, champions du calcul mathmatique, je pense que l'utilisation raisonnable et bien pense de tels logiciels permettrait une meilleure comprhension de l'essence de l'automatique en consacrant moins de temps l'accessoire (le calcul) et plus l'essentiel : la rflexion sur les principes, les phnomnes.

Voici l'illustration, l'aide du logiciel Matlab, de ces nouvelles possibilits offertes aux professeurs, il est conseill de lire activement en refaisant sur un ordinateur quip de Matlab les manipulations dcrites ci-aprs.

ENMM : cole nationale de la marine marchande

Un soupon de MATLAB :

Afin de matriser le logiciel "Matlab", nous allons d'abord tudier un systme du second ordre : H(p) = est remplace par s). Les instructions MATLAB sont crites en gras. Pour avoir des dtails, utiliser la commande : "help instruction" (par exemple taper "help nichols"). Ecriture de la fonction de transfert : Taper les instructions suivantes dans le "workspace" de Matlab num=10 den=[1 2 10] printsys(num,den) Etude de la rponse un chelon : step(num,den) pour voir la rponse un chelon pendant 10s t=0:0.1:10 ; y=step(num,den,t); le point virgule ";" vite d'afficher le rsultat plot(t,y) commentaires sur la courbe : title('rponse un chelon'); xlabel('temps'); ylabel('y');
10 (en notation anglo-saxonne, la variable complexe p s + 2.s + 10
2

rponse un chelon 1.4

1.2

0.8 y 0.6 0.4 0.2 0 0

5 temps

10

Figure 1 - Rponse du systme H un chelon unit Pour lire des valeurs sur la courbe : [x,y]=ginput(3) et cliquer avec la souris sur 3 points mesurer (pas de point virgule sinon commande inoprante ici) Pour tracer un quadrillage ou une ligne : grid line([0 10],[1.05 1.05]) line([0 10],[1.05 1.05] ,'color','g') ces instructions permettent de tracer deux lignes horizontales et de faire apparatre le "tuyau des rponses 5%" : line([0 10],[1.05 1.05]) line([0 10],[0.95 0.95]) la commande line([x1,x2],[y1,y2]) trace une ligne du point (x1,y1) au point (y1,y2).

rponse un chelon 1.4

1.2

0.8 y 0.6 0.4 0.2 0 0

5 temps

10

Figure 2 - "Tuyaux de la rponse 5%" sur la rponse un chelon On peut mesurer les coordonnes de points intressants avec l'instruction ginput : le temps de rponse 5% le dpassement D% le temps de monte au premier pic tpic la pseudo priode.

3) rponse un signal quelconque Il faut d'abord dfinir le temps : t=0:0.1:10; une rampe : ramp=t; y=lsim(num,den,ramp,t); plot(t,y)
3.5

la variable t prend des valeurs de 0 10 par pas de 0,1

2.5

1.5

0.5

0.5

1.5

2.5

3.5

Figure 3 - Rponse de H une rampe unit, zoom effectu pour observer le dpart de la rponse Une sinusode : sinus=sin(t); (ne pas employer sin comme nom car c'est une fonction de Matlab et cela entranerait une "plante" du programme) z=lsim(num,den,sinus,t); plot(t,z)

Afin de visualiser la sinusode originale et le signal de sortie, taper : hold on plot(t,sinus,'r') du prcdent

'r' permet d'affecter la couleur rouge ce trac pour le diffrencier

"hold on" permet de tracer plusieurs courbes dans la mme fentre. "hold off" annule cette commande.
1.5

0.5

-0.5

-1

-1.5

10

Figure 4 - Rponse de H une excitation sinusodale (en bleu), sinusode excitatrice en rouge

4) Etude frquentielle nichols(num,den) ngrid line([-135 -135],[0 -50]) permet de tracer une ligne verticale d'abscisse 135 pour la visualisation de la marge de phase 45. La fonction zoom on permet d'agrandir une partie de la figure, cliquer a l'aide du bouton droit de la souris et tirer le pointeur en maintenant l'appui afin de dlimiter une zone prcise.
fonction zoom

Figure 5 - Rponse frquentielle de H dans le repre de Black Nichols

Nichols Chart 10 3 dB 6 dB -3 dB

-6 dB

-10

-12 dB

Open-Loop Gain (dB)

-20

-20 dB

-30

-40

-40 dB

-50

-60 -180 -135 -90 Open-Loop Phase (deg) -45

-60 dB

Figure 6 - Zoom sur la rponse frquentielle de H dans Black Nichols bode(num,den)


Bode Diagram 20

0 Magnitude (dB)

-20

-40

-60 0

-45 Phase (deg)

-90

-135

-180 10
-1

10

10 Frequency (rad/sec)

10

Figure 7 - Diagramme de Bode de H

[Gm,Pm,Wcg,Wcp] = MARGIN(num,den) mesure de la marge de phase et de la marge de gain ainsi que des pulsations correspondantes Gm = Inf ; Pm = 53.1301 Wcg = Inf ; Wcp = 4.0000 figure pour ouvrir une nouvelle fentre "windows"

pour avoir un diagramme de Bode personnalis : puls=logspace(0,1,100); [ampli,phase,puls]=bode(num,den,puls); subplot(211),semilogx(puls,20*log10(ampli)), grid subplot(212),semilogx(puls,phase) grid
5 0 -5 -10 -15 -20 0 10

10

-50

-100

-150

-200 0 10

10

Figure 8 - Diagramme de Bode personnalis pour H Mesure de la marge de phase et de la marge de gain ainsi que des pulsations correspondantes : margin(num,den) [Gm,Pm,Wcg,Wcp] = margin(num,den)

Bode Diagram Gm = Inf, Pm = 53.13 deg (at 4 rad/sec) 20

0 Magnitude (dB)

-20

-40

-60 0

-45 Phase (deg)

-90

-135

-180 -1 10

10

10 Frequency (rad/sec)

10

Figure 9 - Diagramme de Bode de H avec la marge de gain figure nyquist(num,den)


Nyquist Diagram

1.5

0.5 Imaginary Axis

-0.5

-1

-1.5

-1

-0.5

0 Real Axis

0.5

Figure 10 - Diagramme de Nyquist de H

Lieu des racines La mthode consiste regarder o se trouvent les ples du systme boucl lorsque l'on fait varier le gain du correcteur proportionnel. Pour afficher le lieu des ples: rlocus(num,den);
Root Locus

10

Imag Axis

-5

-10

-2

-1.5

-1 Real Axis

-0.5

Figure 11 - Lieu des racines de H Pour prciser une zone sur le lieu des ples : zeta=0.2; wo=5; sgrid(zeta,wo) Pour chercher la valeur du gain k permettant d'obtenir les ples dsirs en boucle ferme [k,poles]=rlocfind(num,den); slectionner un point sur le graphique, les coordonnes s'affichent dans le "workspace".

Pour construire un systme en boucle ferme : [numf,denf]=cloop(num,den,-1); step(numf,denf) permet de visualiser la rponse en boucle ferme unitaire un chelon
Step Response 0.8

0.7

0.6

0.5

Amplitude

0.4

0.3

0.2

0.1

0 0 1 2 3 Time (sec) 4 5 6

Figure 12 - Rponse du systme en boucle ferm unitaire un chelon

Il est facile de voir l'influence d'un correcteur. Par exemple, si on considre un simple gain de 6, il faut redfinir le numrateur par l'instruction : num=60 (106) Redfinir la fonction de transfert en boucle ferme : [numf,denf]=cloop(num,den,-1); et faire dessiner la rponse un chelon step(numf,denf)

Step Response 1.5

Amplitude 0.5 0 0 1 2 3 Time (sec) 4 5 6

Figure 13 - Rponse de H en boucle ferme un chelon avec un correcteur constitu d'un amplificateur de gain = 6 Il apparat donc trs facile de montrer l'influence du changement d'un paramtre sur les rponses. L o il fallait avoir recours des calculs longs et fastidieux, des abaques, pour obtenir la rponse d'un systme, le logiciel fournit cette rponse de manire aise et rapide.

Une autre manire de procder est de recourir Simulink, extension logicielle de Matlab destine faciliter la modlisation de phnomnes physiques. Un schma se substitue aux quations pour constituer le modle, mais les quations diffrentielles reprsentatives du systme physique sont sous-jacentes. Cette manire de rsoudre numriquement des systmes d'quations diffrentielles est trs proche de la manire de penser des ingnieurs et des automaticiens qui raisonnent par schma bloc, par fonction de transfert. Cela se faisait couramment avec les calculateurs analogiques. Analyse de H l'aide de simulink Ouvrir Simulink, soit par un clic sur son icne, soit en tapant simulink et en appuyant sur la touche entre. Cliquer sur l'icne reprsentant une page blanche en haut gauche "new model" afin d'ouvrir une nouvelle fentre permettant de construire H. Cliquer sur "continuous" dans la fentre "Simulink" et traner la souris une "transfer Fcn" dans la fentre vide. Cliquer sur "Math" et traner dans la nouvelle fentre un "Gain", et un "sum". Cliquer sur "sinks" et traner un "scope" dans la nouvelle fentre. Cliquer ensuite sur "Sources" et trainer un bloc "step" dans la nouvelle fentre. Raccorder les lments comme indiqu ci-dessous.

Ce fichier peut tre appel en double cliquant sur auto/H

Double cliquer sur "transfer Fcn" et ajuster les coefficients du numrateur et du dnominateur. Le nombre le plus gauche reprsente la plus grande puissance de p, crer un espace (barre d'espace), crire le coefficient suivant (ventuellement 0), etc. Bien faire attention ce que les coefficients soient entre crochets. Vrifier que la dure de la simulation est bien de 10 s en cliquant sur "simulation", "simulation parameters" (ne toucher rien d'autre). Lancer la simulation, puis double cliquer sur le scope.

Figure 14 - H reprsente par un schma-bloc Simulink

L'chelon peut tre rgl lui aussi en double cliquant dessus. Par dfaut, il possde un amplitude de 1 et devient gal 1 t = 0,5 s. En double cliquant sur le scope, on obtient la figure suivante :

Figure 15 - Rponse de H un chelon visualise par un oscilloscope de Simulink Cliquer ventuellement sur le bouton figurant une paire de jumelles afin d'ajuster la courbe la taille de l'cran du scope. Cette figure peut tre ajuste la taille dsire en cliquant avec le bouton gauche sur un coin de la figure et en tranant le coin la souris en maintenant le bouton enfonc. Bien videmment, la courbe est la mme que celle de la Figure 16. En double cliquant sur l'lment "gain", une boite de dialogue s'ouvre et il est possible de modifier le gain. Relancer la simulation permet d'obtenir la nouvelle rponse sur le scope si on a pris soin de ne pas fermer cette fentre "scope". Il est possible d'ajuster rapidement la courbe la fentre en cliquant sur l'icne reprsentant une paire de jumelles.

Afin d'tudier le rglage d'un PID et l'influence des diffrents paramtres, on reprend le schma prcdent sur Simulink. Un clic sur l'lment "gain" le slectionne. Un appui sur la touche "suppr" le supprime. Il ne reste plus qu' le remplacer par un lment PID que l'on trouve dans "Simulink Extras" "Additional Linear". On obtient le schma suivant :

Figure 17 Schma-bloc Simulink montrant la fonction de transfert H contrle par un PID En double cliquant sur l'lment PID, il est trs facile de modifier les paramtres. Relancer la simulation fait apparatre la nouvelle rponse sur le scope. On peut donc simuler rapidement en salle de classe n'importe quel systme et procder la correction du systme en boucle ferme que ce soit avec un PID ou l'aide d'autre rgulateur. Les possibilits ainsi offertes au professeur sont immenses. Il n'a plus besoin d'quipement encombrant et coteux pour exprimenter et mettre au point ses connaissances, ses cours, ses exercices et problmes. Un PC quip du logiciel adquat suffit.

Pilote automatique d'un navire

Figure 18 - Modlisation de la barre d'un navire l'aide de Simulink Appeler le fichier "pilot_auto" du rpertoire auto/pilot_auto. Si Matlab est install, un double-clic lance la simulation (de l'intrt de la lecture sur l'cran du PC). Le safran et sa motorisation ont t modliss par une fonction de transfert comprenant une intgration au dnominateur (asservissement de position), les coefficients proviennent d'un polycopi d'exercices de l'ENSTA. Les perturbations sont gnres par un gnrateur de fonctions qui fournit des sinusodes de frquence 0,4 Hz (des vagues agissant sur le safran), leur amplitude a t rgle 20. Ces valeurs sont modifiables souhait. L'actionneur (vannes de tlcommande de l'hydraulique du safran) a t modlis par une fonction de transfert du premier ordre avec une constante de temps de 1/10s. L'ordre de barre est 10 (babord ou tribord, peu importe ici), il est donn t = 1s. Aprs avoir dclench la simulation, l'instruction "plot(y(:,2),y(:,1))" dans le "workspace" de Matlab dclenche le trac suivant :

12 rponse

10

temps(s) 0 0 5 10 15 20 25 30 35 40

Figure 19 - Rponse de l'asservissement de position "barre de navire" un ordre de barre de 10 intervenant t = 1s, les perturbations sont sinusodales On remarque le filtrage des perturbations, elles sont trs attnues. Nanmoins, la rponse est "bruite" par ces perturbations. Un peu de drive peut amliorer la rponse, notamment si l'amplitude des perturbations augmente.

Dans le domaine des travaux pratiques galement, l'utilisation de logiciels comme Matlab/Simulink permet, par exemple, de se familiariser avec les systmes du premier ordre et du second ordre de manire beaucoup plus enrichissante, ludique et bon march qu'avec des mthodes classiques ncessitant des oscilloscopes performants (et donc onreux) et une rserve de composants (rsistances, condensateurs, selfs) qui fait souvent dfaut dans les salles d'automatique. L'tude des rponses frquentielles est trs simple avec Matlab, il n'est plus ncessaire de passer des heures faire des mesures avec des oscilloscopes souvent inadapts pour obtenir un lieu de Nichols ! La simulation permet de rgler des PID en s'affranchissant des difficults rencontres lors de manipulation sur des maquettes relles. Prenons l'exemple des maquettes de rgulation de niveau d'eau. Ces dernires sont chres (plus de 10000 euros), la salle de

TP d'automatique n'en possde donc gnralement qu'une seule entranant la ncessit de faire tourner les groupes de TP. Ces maquettes sont gnralement vieilles et fonctionnent mal, voire plus du tout, entranant un gaspillage de temps pour le professeur qui essaye de remettre en tat du matriel au lieu d'amliorer et de crer des TP et pour les lves qui ne peuvent observer un fonctionnement correct. Un fichier Simulink tournant sur 6 PC permet de raliser un TP de rglage de PID de manire sre et agrable pour tous les groupes en mme temps. Eloigner les lves du concret pour leur faire manipuler une ralit simule n'est pas si nuisible puisque, de toutes les manires, l'automatique a pour but de modliser les systmes contrler. Je reste persuad que le recours la simulation en TP est un excellent compromis qui permet, malgr tout, de raliser nos objectifs de formation.

Vous aimerez peut-être aussi