Vous êtes sur la page 1sur 16

Master MNE 1` ere Ann ee Automatique, 2008-2009

Travaux pratiques dautomatique Master 1 MNE

Pr eparation

Il est imp eratif de pr eparer chaque s eance de travaux pratiques. On estime ` a 1 heure le temps n ecessaire pour pr eparer un TP. Lessentiel du travail consiste ` a lire et ` a comprendre ce qui est demand e et, le cas ech eant, a rechercher les informations qui pourront ` etre n ecessaire pendant la s eance. Deux questions sont egalement explicitement pos ees pour la pr eparation du TP2 (section pr eparation).

Pr esentation des sujets


1. Le TP 1 peut etre consid er e comme un TD sur machine (simulation sous Matlab et Simulink). Il servira ` a mettre en evidence leet de l echantillonnage et de la quantication lors de la transposition de correcteurs et dans limmunit e aux bruits. 2. Le TP 2 porte sur lasservissement en position dune maquette moteur de faible puissance. Vous mettrez en evidence la di erence de comportement des correcteurs synth etis es par transposition et des correcteurs synth etis es directement en num erique. 3. Le TP 3 porte sur lasservissement de temp erature dune maquette p edagogique dun syst` eme thermique. Deux m ethodes de synth` ese seront mises en oeuvre dans le cas tr` es courant en pratique dun syst` eme ` a retard : synth` ese fr equentielle continue et transposition, et synth` ese num erique directe.

D eroulement des TPs

Les TPs seront r ealis es en bin omes et il y aura une rotation entre les sujets (se rapporter au planning des rotations qui vous sera remis). Il vous est demand e de respecter le planning. Lencadrant se r eserve le droit de refuser la pr esence en TP des etudiants se pr esentant en dehors des cr eneaux pr evus.

Evaluation

L evaluation des TPs dautomatique est r epartie entre contr ole continu (1/3 de la note totale de TP) et un oral nal pouvant porter sur tous les TPs (2/3 de la note totale). L evaluation en contr ole continu se fait sur la base 1. du travail eectu e pendant chacunes des 3 s eances de 4heures ; 2. des comptes-rendus de chaque TP qui doivent egalement comporter les r eponses aux questions th eoriques de la pr eparation. En principe, deux etudiants dun m eme bin ome ont la m eme note. Cependant, si un d es equilibre important appara t dans le travail fourni, rien ninterdit dattribuer des notes di erentes.

Conseils pour la r edaction des comptes-rendus

Lobjectif du compte-rendu est de montrer le travail qui a et e r ealis e pendant la s eance et de montrer lanalyse et la compr ehension des r esultats. Par cons equent le compte-rendu COMPORTERA :

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

l etude th eorique eventuellement demand ee en pr eparation le relev e synth etique des r esultats obtenus accompagn e de l egendes les r eponses aux questions pos ees dans l enonc e lanalyse des r esultats obtenus : est-ce ce qui etait attendu, pourquoi, comment am eliorer les r esultats, etc. les explications th eoriques et pratiques

Mais le compte-rendu NE CONTIENDRA PAS : un recopi e de l enonc e et des questions pos ees des descriptions des commandes matlab tap ees des dizaines de courbes non comment ees et non l egend ees des r esultats non observ es durant la s eance et obtenus de sources non autoris ees (annales, autres bin omes, etc.)

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 1, page 3

TP 1 Asservissement num erique dun syst` eme continu


Lobjectif de ce TP est de mettre en evidence les eets de l echantillonnage et de la num erisation des correcteurs continus. Ce TP seectuera enti` erement en simulation avec Matlab et la bo te a ` outils Simulink. Le syst` eme etudi e poss` ede une seule sortie y et une seule entr ee u (il sagit de tensions, mesur ees en Volts). Sa fonction de transfert, identi ee au point de fonctionnement, s ecrit : G(s) = o` u s d esigne la variable de Laplace. Y (s) 2, 3 = , U (s) s(1 + 0, 1s)

1
1.1

Correction proportionnelle
Correcteur analogique

ere partie est un rappel de lutilisation de matlab pour les syst` Cette 1` emes continus. Vous ne devez pas y passer plus dune demie heure

1. D enir la fonction de transfert du syst` eme ` a laide de la commande : >>G=tf([2.3],[0.1 1 0]) et lancer lutilitaire de trac e du lieu dEvans avec la commande : >>rltool(G) Les points rouges sur le lieu dEvans correspondent ` a la position des p oles du syst` eme boucl e pour la valeur du gain indiqu ee dans lacheur Gain. Ces p oles peuvent etre d eplac es le long du lieu dEvans. La valeur du gain est alors r eactualis ee. 2. Faire la synth` ese dun correcteur proportionnel analogique de sorte que le syst` eme asservi ait un facteur damortissement egal ` a 0,707. 3. Simuler ` a laide de rltool la r eponse indicielle du syst` eme asservi pour un echelon unitaire. Identier les el ements caract eristiques de la r eponse conrmant le bon r eglage du correcteur. 4. Lancer Simulink avec la commande : >>simulink Construire un mod` ele Simulink du syst` eme analogique en boucle ferm ee comprenant le correcteur proportionnel d etermin e. Pour cela, on recherchera dans les menus de Simulink les di erents blocs n ecessaires (fonction de transfert continue, sommateur, gain, oscilloscope pour visualiser, etc.), que lon fera glisser dans le mod` ele. La fonction de transfert G(s) de m eme que le gain d etermin es pr ec edemment seront utilis es dans ce mod` ele, Simulink partageant les variables de lenvironnement de Matlab (son Workspace en anglais dans le logiciel). 5. Ce mod` ele construit, retrouver la r eponse indicielle du syst` eme en boucle ferm ee pour un echelon unitaire.

1.2

Correcteur num erique

1. Cr eer un nouveau mod` ele. Transformer lasservissement analogique en un asservissement num erique en supposant que la cha ne directe int` egre alors un bloqueur dordre z ero et quun retard dune p eriode d echantillonnage apparait pour mod eliser le temps de calcul de la commande. 2. Simuler la r eponse indicielle du syst` eme asservi pour di erentes p eriodes d echantillonnage : 10, 25, 50, 100, 250 et 500 ms. Comparer ces r eponses ` a celle lasservissement analogique et commenter. Pour quelle p eriode d echantillonnage le syst` eme asservi devient-il instable. Pour quelles p eriodes le comportement continu est-il bien approch e? 3. Nous faisons maintenant lhypoth` ese que le syst` eme asservi est soumis ` a un bruit de mesure dans sa boucle de retour. Ce bruit est sinuso dal, de fr equence 122 Hz et damplitude unit e. Comparer la r eponse indicielle du syst` eme asservi avec le correcteur analogique ` a celle du syst` eme asservi num eriquement avec une p eriode d echantillonnage de 25 ms. Expliquer le di erence de comportement face ` a ce bruit. 3
Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 1, page 4

4. Refaire lexp erience avec un bruit ` a 150 Hz et commenter. 5. Ajouter un ltre analogique de Butterworth (commande butter ) dordre 2 ` a lasservissement num erique de mani` ere ` a rejeter correctement les bruits de mesure. V erier lecacit e du ltrage par un essai indiciel.

2
2.1

Rejet de perturbations
Rejet dune perturbation dentr ee

Le convertisseur num erique/analogique (CNA) a un oset d ependant de la temp erature ambiante. Cet oset peut- etre mod elis e comme une perturbation dentr ee constante sur la commande. 1. Cr eer un nouveau mod` ele. Simuler la r eponse indicielle du syst` eme asservi avec le correcteur num erique pr ec edent et un oset de 0,2 V . On souhaite synth etiser un correcteur dordre r eduit permettant de rejeter cette perturbation dentr ee. La synth` ese sera faite par transposition dun correcteur continu. 2. A laide de rltool, calculer un correcteur analogique du second ordre (au plus) tel que le syst` eme boucl e respecte le cahier des charges suivant : erreur statique nulle malgr e loset du CNA ; d epassement inf erieur ` a 15% ; temps de r eponse ` a 5% inf erieur ` a 1 s. Pour cela on notera que dans lutilitaire rltool, il est possible dajouter des p oles et des z eros au correcteur (dans Tools Edit compensator ou simplement en cliquant sur le bloc K). Il est egalement possible dutiliser le bouton Add zero (` eche pointant un cercle) ou le bouton Add pole (` eche pointant une croix) puis de cliquer ` a lendroit du plan complexe o` u on d esire placer le z ero ou le p ole. Ces derniers peuvent etre d eplac es par la suite en cliquant sur le bouton drag pole/zero (` eche seule) ; le lieu dEvans est alors r eactualis e. 3. Appliquer la transformation bilin eaire : s 2 z1 Te z + 1

o` u Te est la p eriode d echantillonnage, pour passer du correcteur continu au correcteur num erique. Ceci est r ealis e en utilisant la fonction c2d de Matlab. Expliquez comment choisir la p eriode d echantillonnage. 4. Simuler la r eponse indicielle de lasservissement num erique ainsi obtenu.

2.2

Eet de la quantication

Le convertisseur num erique/analogique (CNA) et le convertisseur analogique/num erique (CAN) introduisent respectivement une quantication de la commande et une quantication de la mesure de position. Nous faisons lhypoth` ese que le pas de quantication est de 0,5. 1. Simuler leet de la quantication au niveau de la commande sur la r eponse indicielle du syst` eme avec le correcteur num erique pr ec edent. Utiliser pour cela le bloc quantizer de la biblioth` eque non lin eaire de Simulink. 2. Simuler leet de la quantication au niveau de la mesure (CAN) sur une r eponse indicielle. 3. Expliquer pourquoi ces eets sont tr` es di erents. Si la mesure de position est r ealis ee avec un codeur incr emental, calculer quelle devrait etre la r esolution minimale de ce codeur pour que lamplitude du bruit de quantication soit inf erieure ` a un 0,1 V .

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 2, page 5

TP 2 Correction num erique dun moteur ` a courant continu


Le but de ce TP est de mettre en place des correcteurs num eriques pour asservir la position dune maquette construite autour dun moteur a ` courant continu et dun codeur optique incr emental. Le TP comporte plusieurs cahiers des charges ` a satisfaire. Pour chacun des jeux de contraintes les phases ` a r ealiser sont les suivantes : 1. Synth` ese dun correcteur ` a laide du lieu des racines ; 2. Test du correcteur ` a laide du logiciel de simulation Simulink 3. Codage en langage C de la loi de commande 4. Test du correcteur sur la maquette 5. Etude et analyse des r esultats obtenus Cette d emarche est la m ethodologie classique de synth` ese et dimplantation sur un syst` eme r eel. Il est bien s ur inutile de passer dune etape ` a la suivante sans lavoir valid ee. Les correcteurs seront implant es sur un PC muni dune carte assurant linterface avec le banc moteur. Pour ce qui concerne le logiciel, les fonctions dentr eesortie sont fournies, ainsi que le programme assurant le cadencement de la commande. Seul le correcteur est ` a programmer.

1
1.1

Pr eparation
Mod elisation du syst` eme etudi e

Le syst` eme etudi e est un banc moteur de type HMC. Ce banc est compos e dun moteur ` a courant continu de faible puissance (< 20 W ) coupl e` a un r educteur qui est lui-m eme coupl e` a un volant dinertie. Le codeur incr emental qui fournit la mesure de la position est coupl e ` a larbre moteur. La grandeur de commande du syst` eme est la tension U dentr ee dun amplicateur ` a transistors qui est proportionnelle ` a la tension appliqu ee a ` linduit du moteur. La fonction de transfert th eorique, reliant lentr ee U du syst` eme ` a la mesure de position , s ecrit : G(s) = K = U s(1 + s) (1)

Les valeurs num eriques sont : K = 70 deg.V 1 et = 0, 047 s pour le banc ` a moteur couleur aluminium ; K = 63 deg.V 1 et = 0, 084 s pour le banc ` a moteur couleur verte ; Le syst` eme est pilot e ` a laide dun ordinateur r ealisant lasservissement num erique. Le CNA utilis e est mod elis e par un bloqueur dordre z ero B0 (s). En supposant que lon echantillonne de fa con synchrone la commande et la mesure, et que le gain du CNA est unitaire, la repr esentation du syst` eme en boucle ouverte est celle d ecrite par la gure 1.

Fig. 1 Syst` eme ` a commander. Le PC qui r ealise lasservissement temps r eel est egalement celui qui est utilis e pour d evelopper et compiler les logiciels. Cette machine poss` ede une carte convertisseur num erique/analogique pour lapplication des commandes ainsi quune carte compteur pour convertir les impulsions du codeur incr emental en position angulaire. Le syst` eme dexploitation utilis e est Xenomai (linux temps-r eel). Question : Donner la fonction de transfert G(z ) entre la commande U (z ) et la sortie (z ), pour une p eriode d echantillonnage Te quelconque. 5
Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 2, page 6

1.2

Algorithme de commande

On souhaite r ealiser la commande num erique de ce syst` eme. La majorit e du logiciel est d ej` a ecrite. La partie r ealisant la commande est globalement organis ee conform ement ` a la description de la gure 2.

Fig. 2 Organigramme du logiciel de commande. On supposera par la suite que le temps n ecessaire pour eectuer la mesure, le calcul, et lenvoi de la commande est n egligeable (tr` es petit devant la p eriode d echantillonnage). Le programme eectue des instructions en boucle innie. La boucle est organis ee en cinq etapes : 1. La mesure de la position est acquise au moyen dun codeur optique incr emental. Les fonctions assurant la lecture du compteur et la conversion en degr es sont impl ement ees. La variable mesure contient la mesure courante. 2. La variable consigne donne la consigne courante. Cette consigne est d enie par lutilisateur avant le lancement de lasservissement ( echelon ou rampe). 3. La partie ` a coder est le calcul de la commande (variable commande). On demande en pr eparation d ecrire lalgorithme dun correcteur num erique dordre n en supposant que lon conna t : les n + 1 coecients des polyn omes N (z 1 ) et D(z 1 ) (Num erateur et D enominateur de la fonction de transfert du correcteur exprim es en puissances de z 1 ), qui sont rang es dans des variables (de type tableau) b et a dans lordre des puissances croissantes de z 1 : N (z 1 ) = D(z 1 ) = b[0] + b[1]z 1 + . . . + b[n]z n a[0] + a[1]z 1 + . . . + a[n]z n

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 2, page 7

les n + 1 derni` eres mesures (dont la mesure courante) rang ees dans le tableau mes, de telle sorte que : mes[0] = (k ), mes[1] = (k 1), . . . les n + 1 derni` eres consignes rang ees dans le tableau cons, de telle sorte que : cons[0] = d (k ), cons[1] = d (k 1), . . . les n + 1 derni` eres commandes rang ees dans le tableau com, de telle sorte que : com[0] = u(k ), com[1] = u(k 1), . . . Lalgorithme doit calculer la commande u(k ) en fonction des donn ees, stocker cette commande dans la variable commande et mettre ` a jour les di erents el ements des tableaux. 4. La commande stock ee dans commande est ensuite envoy ee dans le CNA. 5. On attend enn le prochain top dhorloge avant de reboucler (fonctions de gestion de lhorloge existantes en biblioth` eque)

2
2.1

Manipulation
Connexion informatique

A la fen etre de login le nom dutilisateur est ensps et le mot de passe ulp. Ouvrir un terminal en cliquant lic one de la barre des t aches. Taper la commande ini_rst pour initialiser le TP. Cette commande cr ee un r epertoire nomm e rst contenant plusieurs chiers dont iofunctions.h (` a ne pas modier) et rst.c. Pour aller dans ce r epertoire, taper cd rst. Pour editer le chier rst.c, taper la commande nedit rst.c &. Ce chier contient le code du programme dasservissement. Lancer Matlab ` a partir de lic one du bureau ou en tapant matlab dans un terminal. Attention ! : Pour vous eviter de perdre du temps, n ecrasez pas vos sch emas et r esultats. Ils sont utilis es a ` plusieurs reprise tout au long du TP.

2.2

Calcul dun correcteur par transposition

1. A laide de rltool d eterminez un correcteur analogique dordre minimal tel que : Le comportement en boucle ferm ee soit du second ordre avec n = 25 rad.s1 et = 0, 7. Lerreur permanente vis ` a vis de lentr ee soit nulle. 2. Transposez ce correcteur en un correcteur num erique en utilisant lapproximation bilin eaire. La p eriode d echantillonnage est impos ee ` a 10 ms. Cette p eriode d echantillonnage est-elle susante pour garantir un bon comportment de lasservissement num erique ? Justiez. 3. Simuler avec Simulink le comportement du syst` eme analogique asservi avec votre correcteur num erique. Comparez les r esultats avec le comportement attendu. Quen pensez-vous ? 4. Ecrivez la loi de commande temporelle correspondant ` a ce correcteur 5. Impl ementer le correcteur en langage C. Seul le calcul de la commande doit etre programm e, le reste est d ej` a fait (la partie ` a compl eter est signal ee par un commentaire) (voir gure 3). Il vous est egalement demand e de r ealiser la saturation logicielle de la commande entre les valeurs -CNA_AMPLITUDE et CNA_AMPLITUDE qui sont les valeurs limites que peut transmettre le CNA. Pourquoi est-il important d ecrire ces saturations logicielles ? Que peut-il se passer si on ne sature pas correctement la commande ? V eriez egalement bien la p eriode d echantillonnage du syst` eme d enie en haut du chier par la macro #define SAMPLING_PERIOD et exprim ee en nano-secondes ! Pour compiler le programme rst.c, taper simplement make. 6. Tester le correcteur : lancer le programme dasservissement en tapant rst ;

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 2, page 8

a ` linvite, entrer le type de consigne souhait ee ( echelon ou rampe), lamplitude ou la pente voulue et la dur ee de lasservissement (apr` es cette dur ee les commandes ne sont plus envoy ees au syst` eme). La question du choix des coecients rst concerne une autre manipulation et na donc pas dimportance ici : tapez le choix 2. Tester le comportement du syst` eme pour di erentes valeurs d echelon et pour une rampe. 7. Commenter les r esultats obtenus. Quelles sont les caract eristiques probl ematiques de la r eponse indicielle ? Pourquoi nest-ce pas conforme ` a ce qui etait pr evu ? Quel type de perturbation (perturbation dentr ee, de sortie ou de mesure) est responsable de ce ph enom` ene ? Quelle est leur origine physique ?

2.3

Synth` ese directe en num erique

On veut r ealiser lasservissement du moteur selon le m eme cahier des charges que pr ec edemment : Le comportement en boucle ferm ee soit du second ordre avec n = 25 rad.s1 et = 0, 7. Lerreur permanente vis ` a vis de lentr ee soit nulle. En revanche, on propose de r ealiser la synth` ese du correcteur directement en num erique sans passer par une synth` ese analogique. La p eriode d echantillonnage choisie est toujours de 10 ms. 1. En utilisant la fonction c2d de Matlab et les param` etres ad equats, v eriez le calcul de G(z ) fait en pr eparation. 2. D eterminez un correcteur ` a laide de rltool. 3. Simuler avec Simulink le comportement du syst` eme analogique asservi avec votre correcteur num erique. Comparez les r esultats avec le comportement attendu et avec les r esultats obtenus avec la premi` ere synth` ese (par transposition). 4. Ecrivez la loi de commande temporelle correspondant ` a ce correcteur 5. Impl ementer le correcteur sur le syst` eme r eel. 6. Tester le correcteur pour di erentes valeurs d echelon et pour une rampe.

2.4

Correction ` a faible fr equence d echantillonnage

Pour des raisons de temps de calcul, il est parfois n ecessaire de diminuer la p eriode d echantillonnage. Pour cette partie nous prendrons Te = 100ms. 1. Reprenez le correcteur analogique synth etis e au d ebut du TP et transposez le en num erique avec la nouvelle p eriode d echantillonnage. Testez le avec Simulink sur le mod` ele du syst` eme. Que se passe-til ? Quelle r` egle nest plus respect ee ? 2. Faites maintenant une synth` ese directement en num erique avec la nouvelle p eriode d echantillonnage. O` u sont les p oles de la boucle ferm ee ? Simulez leet de ce correcteur ` a laide de Simulink. Observez le signal de sortie et le signal de commande. 3. Implantez ce correcteur sur le syst` eme r eel et testez-le (pensez ` a modier la p eriode d echantillonnage du syst` eme).

2.5

Am elioration du correcteur

La p eriode d echantillonnage est maintenant reprise ` a Te = 10ms. Lobjectif de cette partie est de rem edier au probl` eme apparu lors du test des correcteurs sur le syst` eme r eel : lerreur statique nest pas nulle. On consid erera en premi` ere approximation que les frottements secs ` a lorigine de lerreur statique peuvent etre mod elis es par une perturbation dentr ee constante. Synth etisez un nouveau correcteur directement en num erique v eriant le nouveau cahier des charges : Erreur statique vis-` a-vis de la consigne nulle Rejet des perturbations dentr ee dordre 0 D epassement de lordre de 20% Temps d etablissement ` a 5% inf erieur ` a 300 ms

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 2, page 9

Cette synth` ese est d elicate et il est utile de se r ef erer aux conseils de lutilisation du lieu dEvans vus en cours. On prendra notamment soin de ne pas positionner de p oles du correcteur dans la partie r eelle n egative an d eviter des commandes altern ees qui peuvent etre n efastes ` a haute fr equence d echantillonnage. On fera egalement attention ` a ne pas placer de z ero trop pr` es de 1. Enn, on notera que lorsquun syst` eme a 1 p ole r eel et 2 p oles complexes conjugu es, la conguration la plus rapide est obtenue lorsque les 3 p oles sont align es (m eme valeur r eelle). Pour faciliter la synth` ese vous pouvez r epondre aux questions daide suivantes : Un correcteur dordre 1 est-il susant ? Quel est lordre du syst` eme en boucle ferm ee ? Peut-on alors utiliser les abaques et les contraintes de rltool ? O` u faut-il placer les z eros du correcteur pour faire rentrer les branches dans le cercle unit e? O` u faut-il th eoriquement placer les p oles de la boucle ferm ee pour ne pas avoir de d epassement ? Pourquoi cela ne fonctionne-til pas ici ? Quelle est lorigine du d epassement ? Testez ce correcteur ` a laide de Simulink. V eriez notamment que les perturbations dentr ee dordre z ero sont correctement rejet ees et testez la r eponse ` a des rampes. Implantez ce correcteur et testez le comportement du syst` eme en r eponse ` a di erents echelons et en r eponse ` a des rampes. Commentez les r esultats obtenus.

2.6

Question bonus : correcteur ` a r eponse pile

On reprend Te = 0.1s et on fait la synth` ese directement en num erique. Le cahier des charges est le suivant : Erreur statique nulle Temps de convergence minimal O` u faut-il placer les p oles de la boucle ferm ee pour que la r eponse soit la plus rapide possible ? Essayez de positionner les p oles de cette fa con sans compenser les z eros du syst` eme. D eterminez ensuite la fonction de transfert de la boucle ferm ee. D eduisez-en l equation aux di erences qui relie entr ee et sortie et calculez les premi` eres valeurs de la sortie. En combien de pas d echantillonnage la sortie converge-telle vers la valeur d esir ee ? V eriez ` a laide de rltool. Testez ce correcteur sur la maquette. Attention ! : ce type de correcteur, appel e correcteur ` a r eponse pile, a un comportement tr` es violent et n ecessite un mod` ele pr ecis du proc ed e. Le test sera r ealis e avec prudence (amplitudes r eduites des echelons, temps dasservissement court) et sous la supervision des encadrants an de ne pas d egrader le mat eriel.

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 3, page 10

TP 3 Asservissement num erique de temp erature


Lobjectif de ce TP est de r ealiser un asservissement num erique de temp erature. Le syst` eme ` a r eguler est une maquette dun syst` eme thermique Feedback. Les particularit es de ce syst` eme sont : une constante de temps lente ; un retard d u au transport de lair.

Moyens

On dispose : dune maquette Feedback ; dun ordinateur compatible PC equip e du syst` eme dexploitation temps r eel (xenomai). Il poss` ede par ailleurs une carte dinterface qui comporte en entr ee un convertisseur analogique num erique et en sortie un convertisseur num erique analogique mod elis e par un bloqueur dordre 0. un programme r ealisant linterface graphique entre lutilisateur et le module dasservissement (temp) ; Matlab. Apr` es d emarrage du syst` eme, entrer le nom dutilisateur ensps et le mot de passe ulp. Ouvrir un terminal en cliquant lic one de la barre des t aches. Taper la commande ini_temp pour initialiser le TP. Cette commande cr ee un r epertoire nomm e temp contenant, entre autres, le chier temp.c. Pour aller dans ce r epertoire, taper cd temp. Pour editer le chier temp.c, taper la commande nedit temp.c &. Ce chier contient le code du programme dasservissement. Seul le calcul de la commande doit etre programm e, le reste est d ej` a fait (la partie ` a compl eter est signal ee par un commentaire) (voir gure 3). Pour compiler temp.c, taper simplement make.

Exp erimentation

La fonction de transfert du syst` eme lorsque louverture du clapet est ` a 35 degr es ou throttle sur 4 (suivant le mod` ele de maquette) et lorsque le capteur est plac e` a lextr emit e du conduit est la suivante (r esultat dune identication par analyse de r eponse indicielle) : G(s) = e0,18s (1 + 0, 25s)2 (2)

Dans ce qui suit, on suppose que le temps n ecessaire au calcul de la commande est n egligeable devant la p eriode d echantilonnage.

2.1

M ethode de synth` ese bas ee sur le correcteur continu

Pour cette premi` ere synth` ese, on d eterminera tout dabord un correcteur analogique qui sera ensuite transpos e en num erique. 1. Donnez la forme g en erale dun correcteur dordre 2. 2. Faire la synth` ese dun correcteur C (s) continu du second ordre tel que le syst` eme corrig e boucl e satisfasse au cahier des charges suivant : Erreur permanente nulle pour une consigne en echelon, Compensation des p oles dominants du syst` eme, Marge de phase de 45 deg. On pourra avantageusement utiliser la fonction bode de matlab. Cette fonction trace le diagramme de bode de la fonction de transfert G lorsquelle est appel ee par : bode(G) Elle retourne des tableaux de points pris sur les diagrammes lorsquelle est appel ee par : [ ampl, ph, w ] = bode(G) 10
Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 3, page 11

Fig. 3 Organigramme du logiciel de commande.

Il nest pas possible de d enir le retard dans les fonctions de transfert sous matlab 5.2. Le retard devra donc etre ajout e manuellement aux tableaux de valeurs obtenus par la fonction bode. Lors de la synth` ese du correcteur analogique vous devrez garder ` a lesprit quil doit ensuite etre transpos e en num erique. La p eriode d echantillonnage minimale est de 10 ms. 3. Appliquer la transformation bilin eaire pour passer de C (s) ` a C (z ) : s 2 z1 Te z + 1 (3)

avec Te , la p eriode d echantillonnage du correcteur num erique (fonction c2d de Matlab). On choisira Te susamment faible pour bien approcher le correcteur continu (pas moins de 10 ms). 4. Etudier en simulation le syst` eme analogique avec son correcteur num erique en utilisant Simulink. Utiliser le bloc transport delay de la biblioth` eque Simulink pour mod eliser le retard. 5. Programmer le correcteur obtenu dans temp.c ` a lemplacement pr evu ` a cet eet. Ne pas oublier de d enir la p eriode d echantillonnage en haut du programme ` a la ligne (#define SAMPLING_PERIOD). Compiler le module en tapant make. 6. Tester le correcteur en lan cant temp. Commenter les r esultats obtenus.

2.2

Synth` ese directe du correcteur num erique

On souhaite r ealiser une synth` ese directement en num erique. 1. Calculer la transmittance echantillonn ee G(z ) du syst` eme en boucle ouverte (commande c2d).

11

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

TP 3, page 12

2. Faire la synth` ese dun correcteur num erique du second ordre ` a laide du lieu des racines (fonction rltool de Matlab) qui respecte le cahier des charges suivant : Erreur permanente nulle pour une consigne en echelon, Compensation des p oles dominants du syst` eme, D epassement nul. 3. Simuler le correcteur num erique sur le syst` eme analogique. Ensuite, implanter le correcteur num erique sur le syst` eme r eel et mesurer les caract eristiques du syst` eme r eel corrig e.

12

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

Aide m emoire

Aide m emoire pour lutilisation de Matlab et Simulink

Utilisation g en erale de matlab

Il existe deux versions de Matlab en salle de TPs dautomatique que vous serez amen es ` a utiliser. Matlab 6.5 sur les machines sous environnement Windows et Matlab 5.2 pour les machines sous environnement Linux. Les fonctions disponibles sont sensiblement les m emes, mais lutilisation du logiciel di` ere.

1.1

Lancement

Sous windows : double cliquez sur lic one Matlab6.5 sur le bureau. Matlab ouvre alors plusieurs fen etres (ou une fen etre contenant plusieurs sous-fen etres). Les deux plus importantes sont la fen etre de commande (Command Window) et la fen etre de l editeur de script. Sous linux : cliquez sur lic one Matlab. Matlab d emarre dans un terminal qui devient la fen etre de commande, rep erable au prompt >>. Pour travailler avec des scripts ou des fonctions .m, vous avez besoin dun editeur de texte s epar e. Pour cela, cliquez sur lic one de nedit ou tapez nedit dans un terminal.

G en eralit es

Matlab est un logiciel de calcul matriciel. Il peut etre utilis e simplement comme une calculatrice pour tous les calculs scalaires et dispose de nombreuses fonctions de calcul matriciel (d eterminant, inverse, etc.). En automatique, en plus des fonctions de base de calcul, vous utiliserez des fonctions appartenant ` a la bo te ` a outils Control Toolbox et ` a la bo te ` a outil Simulink. Il existe 2 principales fa con dutiliser Matlab : en ligne de commande : lutilisateur tape des commandes dans la fen etre de commande (command Window pour matlab 6.5 sous Windows). Celles-ci sont directement execut ees par matlab. Une commande se termine par un retour chariot (entr ee). Il est possible dex ecuter plusieurs commandes successivement en les ecrivant sur la m eme ligne et en les s eparant par le caract` ere ;. Lorsquune commande se termine par le caract` ere ; elle est muette : le r esultat nest pas ach e` a l ecran. Le caract` ere % indique des commentaires. Tout ce qui se trouve apr` es ce caract` ere sur la m eme ligne nest pas interpret e par Matlab. Exemples : >> a = 2 % Affectation de 2 ` a la variable a a = 2 >> b=1; % Affectation de 1 ` a la variable b sans affichage >> a+b ans = 3 >> c = a + b; d = c + 1; >> d % permet dafficher le contenu de la variable d d = 4 Les variables cr e ees sont stock ees dans lespace de travail (workspace) et peuvent etre r eutilis ees ` a tout moment. En ligne de commande, les commandes tap ees pr ec edemment peuvent etre rappel ees en utilisant les ` eches vers le haut et vers le bas. 13
Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

Aide m emoire

par linterm ediaire de scripts ou de fonctions. Les commandes sont ecrites dans un chier texte de la m eme fa con quen ligne de commande. Le chier doit etre sauvegard e avec une extension .m pour signier quil sagit dun script Matlab. Pour ex ecuter ce script il sut de taper son nom (sans lextension .m) dans la fen etre de commande. Toutes les commandes du script sont alors ex ecut ees successivement. Attention, pour que les chiers .m puissent etre lanc es depuis matlab vous devez vous placer dans le r epertoire o` u se trouve le chier. Exemples : Fichier exemple.m ***************************************** a = 2 % Affectation de 2 ` a la variable a b=1; % Affectation de 1 ` a la variable b sans affichage a+b c = a + b; d = c + 1; d % permet dafficher le contenu de la variable d ****************************************** >> exemple a = 2 ans = 3 d = 4 Les variables cr e ees dans un script sont stock ees dans le workspace lors de lex ecution du script. Elles peuvent donc ensuite etre utilis ees en ligne de commande. An de garder simplement une trace de vos travaux, il est conseill e de travailler ` a laide de scripts. Matlab dispose dune aide en ligne permettant dobtenir les d etails dutilisation dune commande : param` etres dentr ee, arguments de sortie, etc. Par exemple, pour obtenir des informations sur la commande dinversion de matrice inv, il sut de taper >> help inv

2.1

Quelques fonctions math ematiques utiles


cos, sin, tan acos, atan, asin exponentielle : exp logarithme : Attention ! ! logarithme n ep erien : log, logarithme d ecimal : log10

Fonctions de la Control toolbox


Pour utiliser ces fonctions, il sut de les taper soit dans la fen etre de commande, soit dans un script. Voici la plupart des fonctions qui vous seront utiles en TP. s+2 cr eer une fonction de transfert : ex : G(s) = s2 +3s >> G = tf([1 2], [1 3 0]) z +0.5 cr eer une fonction de transfert num erique : ex : Gz (z ) = z 0.2 >> Gz = tf([1 0.5], [1 -0.2], Te) o` u Te est la valeur de la p eriode d echantillonnage. s+2) 5(s+2) cr eer une fonction de transfert par les p oles, z eros et gain : ex : G(s) = 5( s2 +3s = (s+3)s >> G = zpk([-2], [0 -3], 5) mettre une fonction de transfert G sous forme de p oles et z eros >> zpk(G) Transposer une fonction de transfert continue en num erique >> Gz = c2d(G, Te, method)

14

Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

Aide m emoire

o` u Te est la p eriode d echantillonnage et o` u method est la m ethode de transposition choisie (zoh, tustin, prewarp ou matched) Tracer la r eponse indicielle dun syst` eme donn e par sa fonction de transfert G >> step(G) Obtenir la carte des p oles et des z eros dun syst` eme >> pzmap(G) Diagramme de bode : >> bode(G) %trace les diagrammes de Bode de G >> bode(G, {w_min, w_max}) % trace les diagrammes entre les pulsations %w_min et w_max %par exemple >> bode(G, {0.1, 100}) %trace les diagrammes de Bode entre 0.1 et 100 rad/s >> [gain, phase, w] = bode(G) % Ne trace pas les courbes, mais rend trois tableaux : %le gain sans dimension (pas en d ecibels) et la phase (en degr es) %d etermin es aux pulsations w Diagramme de Nyquist : >> Nyquist(G) Trace le diagramme de Nyquist. Attention, les eventuels cercles ` a linni ne sont pas repr esent es. Il faut donc analyser la fonction de transfert pour pouvoir d eterminer avec certitude la stabilit e dune boucle ferm ee. Lieu des racines : >> rltool(G) Trace le lieu des racines de G, avec retour unitaire. Les p oles et z eros du syst` eme G sont repr esent es par des croix et cercles bleus. La position des p oles de la boucle ferm ee est repr esent ee par des carr es rouges. En cliquant sur ces carr es, il est possible de les d eplacer le long du lieu dEvans. Le gain ach e en haut de la fen etre est alors modi e simultan ement. rltool est un utilitaire permettant de r egler un correcteur par la m ethode du lieu des racines. Une fois le lieu des racines de G trac e, lutilisateur a de nombreux outils. Il est ainsi possible dajouter des p oles et des z eros sur la carte des p oles et z eros. Ces z eros et p oles sont aect es au correcteur. Ils peuvent etre d eplac es par des cliqu e - gliss e. Pour editer le correcteur, cliquer sur le bloc C rouge (ou K cyan selon la version) dans le sch ema bloc repr esent e en haut ` a droite On peut acher les abaques diso-amortissement et diso-pulsation sur la carte des p oles soit en cliquant grid on (version Linux), soit en cliquant avec le bouton droit de la souris et en choisissant acher la grille. le import : permet daecter des fonctions de transfert aux di erents el ements du mod` ele. Ces fonctions de transfert doivent avoir et e d enies dans le workspace. Attention, les blocs de gain doivent etre entr es sous la forme de fonction de transfert (par exemple, pour H = 5, il faut entrer H = tf([5], [1])) le export : permet dexporter un bloc vers le workspace (par exemple le correcteur) Analysis response to step command (ou cliquer sur le bouton step en bas ` a gauche) : trace la r eponse indicielle du syst` eme en boucle ferm ee pour le gain donn e. Clic droit dans la fen etre rltool (ou tools Add grid / boundary) : permet de d enir des contraintes pour le syst` eme boucl e : d epassement, temps d etablissement, etc. Attention : ces contraintes ne sont valables que si le syst` eme en BF est equivalent ` a un syst` eme du 2eme ordre.

Utilisation de Simulink

Simulink est un utilitaire de simulation permettant de repr esenter les syst` emes ` a partir de sch emas bloc. Pour lancer simulink, tapez 15
Florent Nageotte 2008-2009

Master MNE 1` ere Ann ee Automatique, 2008-2009

Aide m emoire

>> simulink dans la fen etre de commande. Lutilisation de Simulink est assez intuitive. Elle consiste ` a s electionner des blocs repr esentant des fonctions de transfert, des gains, etc. et ` a les glisser sur le sch ema de simulation. Les blocs sont reli es entre eux par des traits orient es trac es ` a laide de la souris. le new model : cr ee un nouveau mod` ele simulink Les fonctions de transfert continues se trouvent dans le menu Continuous ou Linear Les fonctions de transfert num eriques se trouvent dans le menu discrete ou discontinuous Les convertisseurs num eriques analogiques (BOZ) sont dans le menu discrete ou discontinuous Les gains sont dans le menu math operations ou Linear Les comparateurs sont dans le menu math operations ou Linear Les outils de mesure (scope) sont dans le menu sink Les sources ( echelons (step), rampes, etc.) sont dans le menu source Les retards ` a utiliser sont appel es transport delay et se trouvent (et cest une erreur !) dans le menu non linear ou Continuous Les saturations sont dans le menu non linear Les quanticateurs sont dans le menu non linear Remarques Il ny a pas de bloc CAN. Simulink d etermine la nature des signaux en fonction de la nature des blocs dans lesquels ils entrent. Il est n ecessaire pour les blocs de nature num erique de sp ecier la p eriode d echantillonnage en double cliquant dessus. Attention, Matlab nest pas d erang e par des p eriodes d echantillonnage dif erentes selon les blocs et ne vous avertira pas en cas derreur. Par d efaut, les echelons d emarrent ` a linstant t = 1s. Il est parfois utile de modier en t = 0. Une fois les blocs plac es sur le sch ema, vous pouvez les modier en double cliquant dessus. Par exemple, en cliquant sur un bloc fonction de transfert vous pouvez ajouter des p oles et des z eros, modier les gains, etc. Il est possible dutiliser dans ces blocs des variables d enies dans le workspace. Par exemple, si vous avez d eni >> K = 5 , alors en mettant K dans un bloc simulink, sa valeur sera 5 La simulation est ensuite lanc ee par simulationstart. Les r esultats de la simulation peuvent etre obtenus en double cliquant sur les scopes. Une fen etre souvre alors avec les trac es des signaux mesur es. Les param` etres de la simulation peuvent etre modi es en faisant simulation parameters. On peut notamment modier la dur ee de la simulation. Lorsque les courbes des scopes sont tronqu ees, il sut douvrir le bloc scope et daugmenter le param` etre Data history de longlet Settings.

16

Florent Nageotte 2008-2009

Vous aimerez peut-être aussi