Vous êtes sur la page 1sur 22

FIP 2me Anne

Automatique, 2012-2013

Travaux pratiques dautomatique FIP 2A

1 Prparation
Il est impratif de prparer chaque sance de travaux pratiques. On estime 1 heure le temps ncessaire
pour prparer un TP. Lessentiel du travail consiste lire et comprendre ce qui est demand et, le cas chant,
rechercher les informations qui pourront tre utiles pendant la sance. Quelques questions sont galement
explicitement poses pour la prparation du TP2 (section prparation).

2 Prsentation des sujets


1. Le TP 1 peut tre considr comme un TD sur machine (simulation sous Matlab et Simulink). Il servira
mettre en vidence leffet de lchantillonnage et de la quantification lors de la transposition de correcteurs
et dans limmunit aux bruits.
2. Le TP 2 porte sur lasservissement en position dune maquette moteur de faible puissance. Vous mettrez
en vidence la diffrence de comportement des correcteurs synthtiss par transposition et des correcteurs
synthtiss directement en numrique.
3. Le TP 3 porte sur lasservissement de temprature dune maquette pdagogique dun systme thermique.
Deux mthodes de synthse seront mises en oeuvre dans le cas trs courant en pratique dun systme
retard : synthse frquentielle continue puis transposition, et synthse numrique directe.

3 Droulement des TPs


Les TPs seront raliss en binmes et il y aura une rotation entre les sujets (se rapporter au planning des
rotations qui vous sera remis). En raison du nombre limit de maquettes le respect du planning est OBLIGA-
TOIRE.

4 Evaluation
Lvaluation des TPs dautomatique est faite en contrle continu et se fait sur la base
1. du travail effectu pendant chacunes des 3 sances de 4heures ;
2. des comptes-rendus de chaque TP qui doivent galement comporter les rponses aux questions thoriques
de la prparation.
En principe, deux tudiants dun mme binme ont la mme note. Cependant, si un dsquilibre important
apparat dans le travail fourni, rien ninterdit dattribuer des notes diffrentes.
Le travail attendu pour un trinme ventuel est bien sr plus important que pour un binme.

5 Conseils pour la rdaction des comptes-rendus


Lobjectif du compte-rendu est de montrer le travail qui a t ralis pendant la sance et de montrer lanalyse
et la comprhension des rsultats.
Par consquent le compte-rendu COMPORTERA :

ltude thorique ventuellement demande en prparation

1
FIP 2me Anne
Automatique, 2012-2013

le relev synthtique des rsultats obtenus accompagn de lgendes


les rponses aux questions poses dans lnonc
lanalyse des rsultats obtenus : est-ce ce qui tait attendu, pourquoi, comment amliorer les rsultats,
etc.
les explications thoriques et pratiques

Mais le compte-rendu NE CONTIENDRA PAS :

une recopie de lnonc et des questions poses


des descriptions des commandes matlab tapes
des dizaines de courbes non commentes et non lgendes
des rsultats non observs durant la sance et obtenus de sources non autorises (annales, autres binmes,
etc.)

2
FIP 2me Anne
Automatique, 2012-2013 TP 1

TP 1 Asservissement numrique dun systme continu

Lobjectif de ce TP est de mettre en vidence les effets de lchantillonnage et de la numrisation des cor-
recteurs continus. Ce TP seffectuera entirement en simulation avec Matlab et la bote outils Simulink.
Le systme tudi possde une seule sortie y et une seule entre u (il sagit de tensions, mesures en Volts).
Sa fonction de transfert, identifie au point de fonctionnement, scrit :

Y (s) 2, 3
G(s) = = ,
U (s) s(1 + 0, 1s)

o s dsigne la variable de Laplace.

1 Correction proportionnelle
1.1 Correcteur analogique
Cette 1re partie est un rappel de lutilisation de matlab pour les systmes continus. Vous ne devez pas y
passer plus dune demie heure
1. Dfinir la fonction de transfert du systme laide de la commande :
>>G=tf([2.3],[0.1 1 0])
et lancer lutilitaire de trac du lieu dEvans avec la commande :
>>rltool(G)
Les points rouges sur le lieu dEvans correspondent la position des ples du systme boucl pour la
valeur du gain indique dans lafficheur Gain. Ces ples peuvent tre dplacs le long du lieu dEvans. La
valeur du gain est alors ractualise.
2. Faire la synthse dun correcteur proportionnel analogique de sorte que le systme asservi ait un facteur
damortissement gal 0,707.
3. Simuler laide de rltool la rponse indicielle du systme asservi pour un chelon unitaire. Identifier les
lments caractristiques de la rponse confirmant le bon rglage du correcteur.
4. Lancer Simulink avec la commande :
>>simulink
Construire un modle Simulink du systme analogique en boucle ferme comprenant le correcteur propor-
tionnel dtermin. Pour cela, on recherchera dans les menus de Simulink les diffrents blocs ncessaires
(fonction de transfert continue, sommateur, gain, oscilloscope pour visualiser, etc.), que lon fera glisser
dans le modle. La fonction de transfert G(s) de mme que le gain dtermins prcdemment seront uti-
liss dans ce modle, Simulink partageant les variables de lenvironnement de Matlab (son Workspace en
anglais dans le logiciel).
5. Ce modle construit, retrouver la rponse indicielle du systme en boucle ferme pour un chelon unitaire.

1.2 Correcteur numrique


1. Crer un nouveau modle. Transformer lasservissement analogique en un asservissement numrique en
supposant que la chane directe intgre alors un bloqueur dordre zro et quun retard dune priode
dchantillonnage apparait pour modliser le temps de calcul de la commande.
2. Simuler la rponse indicielle du systme asservi pour diffrentes priodes dchantillonnage : 10, 25, 50, 100, 250
et 500 ms. Comparer ces rponses celle lasservissement analogique et commenter. Pour quelle priode
dchantillonnage le systme asservi devient-il instable. Pour quelles priodes le comportement continu
est-il bien approch ? Quelle rgle faut-il respecter ?
3. Nous faisons maintenant lhypothse que le systme asservi est soumis un bruit de mesure dans sa
boucle de retour. Ce bruit est sinusodal, de frquence 122 Hz et damplitude unit (Attention, dans
matlab, frequency signifie en fait pulsation). Comparer la rponse indicielle du systme asservi avec le

3
FIP 2me Anne
Automatique, 2012-2013 TP 1

correcteur analogique celle du systme asservi numriquement avec une priode dchantillonnage de
25 ms. Expliquer la diffrence de comportement face ce bruit. (Attention, si vous observez un compor-
tement erratique des signaux dans le cas analogique, ce peut tre le signe que la rsolution de calcul de
simulink est insuffisante. Il faut alors modifier les paramtres de simulation dans le menu simulation).
4. Refaire lexprience avec un bruit 150 Hz et commenter.
5. Ajouter un filtre analogique de Butterworth (commande butter ) dordre 2 lasservissement numrique
de manire rejeter correctement les bruits de mesure. Vrifier lefficacit du filtrage par un essai indiciel.

2 Rejet de perturbations
2.1 Rejet dune perturbation dentre
Le convertisseur numrique/analogique (CNA) a un offset dpendant de la temprature ambiante. Cet offset
peut-tre modlis comme une perturbation dentre constante sur la commande.
1. Crer un nouveau modle. Simuler la rponse indicielle du systme asservi avec le correcteur numrique
prcdent et un offset de 0,2 V .
On souhaite synthtiser un correcteur dordre rduit permettant de rejeter cette perturbation dentre. La
synthse sera faite par transposition dun correcteur continu.
2. A laide de rltool, calculer un correcteur analogique du second ordre (au plus) tel que le systme boucl
respecte le cahier des charges suivant :
erreur statique nulle malgr loffset du CNA ;
dpassement infrieur 15% ;
temps dtablissement 5% infrieur 1 s.
Pour cela on notera que dans lutilitaire rltool, il est possible dajouter des ples et des zros au correcteur
(dans Tools Edit compensator ou simplement en cliquant sur le bloc K). Il est galement possible
dutiliser le bouton Add zero (flche pointant un cercle) ou le bouton Add pole (flche pointant une croix)
puis de cliquer lendroit du plan complexe o on dsire placer le zro ou le ple. Ces derniers peuvent
tre dplacs par la suite en cliquant sur le bouton drag pole/zero (flche seule) ; le lieu dEvans est alors
ractualis.
3. Appliquer la transformation bilinaire :
2 z1
s
Te z + 1
o Te est la priode dchantillonnage, pour passer du correcteur continu au correcteur numrique. Ceci
est ralis en utilisant la fonction c2d de Matlab. Expliquez comment choisir la priode dchantillonnage.
4. Simuler la rponse indicielle de lasservissement numrique ainsi obtenu.

2.2 Effet de la quantification


Le convertisseur numrique/analogique (CNA) et le convertisseur analogique/numrique (CAN) introduisent
respectivement une quantification de la commande et une quantification de la mesure de position. Nous faisons
lhypothse que le pas de quantification est de 0,5.
1. Simuler leffet de la quantification au niveau de la commande sur la rponse indicielle du systme avec le
correcteur numrique prcdent. Utiliser pour cela le bloc quantizer de la bibliothque non linaire de
Simulink.
2. Simuler leffet de la quantification au niveau de la mesure (CAN) sur une rponse indicielle.
3. Expliquer pourquoi ces effets sont trs diffrents. Si la mesure de position est ralise avec un codeur
incrmental, calculer quelle devrait tre la rsolution minimale de ce codeur pour que lamplitude du bruit
de quantification soit infrieure un 0,1 V .

4
FIP 2me Anne
Automatique, 2012-2013 TP 2

TP 2 Correction numrique dun moteur courant continu

Le but de ce TP est de mettre en place des correcteurs numriques pour asservir la position dune maquette
construite autour dun moteur courant continu et dun codeur optique incrmental.
Le TP comporte plusieurs cahiers des charges satisfaire. Pour chacun des jeux de contraintes les phases
raliser sont les suivantes :
1. Synthse dun correcteur laide du lieu des racines ;
2. Test du correcteur 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 rsultats obtenus
Cette dmarche est la mthodologie classique de synthse et dimplantation sur un systme rel. Il est bien
sr inutile de passer dune tape la suivante sans lavoir valide.
Les correcteurs seront implants sur un PC muni dune carte assurant linterface avec le banc moteur.
Pour ce qui concerne le logiciel, les fonctions dentresortie sont fournies, ainsi que le programme assurant le
cadencement de la commande. Seul le correcteur est programmer.

1 Prparation
1.1 Modlisation du systme tudi
Le systme tudi est un banc moteur de type HMC. Ce banc est compos dun moteur courant continu
de faible puissance (< 20 W ) coupl un rducteur qui est lui-mme coupl un volant dinertie. Le codeur
incrmental qui fournit la mesure de la position est coupl larbre moteur. La grandeur de commande du
systme est la tension U dentre dun amplificateur transistors qui est proportionnelle la tension applique
linduit du moteur.
La fonction de transfert thorique, reliant lentre U du systme la mesure de position , scrit :
K
G(s) = = (1)
U s(1 + s)
Les valeurs numriques sont :
K = 70 deg.V 1 et = 0, 047 s pour le banc moteur couleur aluminium ;
K = 63 deg.V 1 et = 0, 084 s pour le banc moteur couleur verte ;
Le systme est pilot laide dun ordinateur ralisant lasservissement numrique. Le CNA utilis est mo-
dlis par un bloqueur dordre zro B0 (s). En supposant que lon chantillonne de faon synchrone la commande
et la mesure, et que le gain du CNA est unitaire, la reprsentation du systme en boucle ouverte est celle dcrite
par la figure 1.

Figure 1 Systme commander.

Le PC qui ralise lasservissement temps rel est galement celui qui est utilis pour dvelopper et compiler les
logiciels. Cette machine possde une carte convertisseur numrique/analogique pour lapplication des commandes
ainsi quune carte compteur pour convertir les impulsions du codeur incrmental en position angulaire. Le
systme dexploitation utilis est Xenomai (linux temps-rel).
Question : Donner la fonction de transfert G(z) entre la commande U (z) et la sortie (z), pour une priode
dchantillonnage Te quelconque.

5
FIP 2me Anne
Automatique, 2012-2013 TP 2

1.2 Algorithme de commande


On souhaite raliser la commande numrique de ce systme. La majorit du logiciel est dj crite. La partie
ralisant la commande est globalement organise conformment la description de la figure 2.

Figure 2 Organigramme du logiciel de commande.

On supposera par la suite que le temps ncessaire pour effectuer la mesure, le calcul, et lenvoi de la commande
est ngligeable (trs petit devant la priode dchantillonnage).
Le programme effectue des instructions en boucle infinie. La boucle est organise en cinq tapes :
1. La mesure de la position est acquise au moyen dun codeur optique incrmental. Les fonctions assurant la
lecture du compteur et la conversion en degrs sont implmentes. La variable mesure contient la mesure
courante.
2. La variable consigne donne la consigne courante. Cette consigne est dfinie par lutilisateur avant le
lancement de lasservissement (chelon ou rampe).
3. La partie coder est le calcul de la commande (variable commande).
On demande en prparation dcrire lalgorithme dun correcteur numrique dordre n en supposant
que lon connat :
les n + 1 coefficients des polynmes N (z 1 ) et D(z 1 ) (Numrateur et Dnominateur de la fonction
de transfert du correcteur exprims en puissances de z 1 ), qui sont rangs dans des variables (de type
tableau) b et a dans lordre des puissances croissantes de z 1 :

N (z 1 ) = b[0] + b[1]z 1 + . . . + b[n]z n


D(z 1 ) = a[0] + a[1]z 1 + . . . + a[n]z n

6
FIP 2me Anne
Automatique, 2012-2013 TP 2

les n + 1 dernires mesures (dont la mesure courante) ranges dans le tableau mes, de telle sorte que :

mes[0] = (k), mes[1] = (k 1), . . .

les n + 1 dernires consignes ranges dans le tableau cons, de telle sorte que :

cons[0] = d (k), cons[1] = d (k 1), . . .

les n + 1 dernires commandes ranges 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 donnes, stocker cette commande dans la
variable commande et mettre jour les diffrents lments des tableaux.
4. La commande stocke dans commande est ensuite envoye dans le CNA.
5. On attend enfin le prochain top dhorloge avant de reboucler (fonctions de gestion de lhorloge existantes
en bibliothque)

2 Manipulation
2.1 Connexion informatique
A la fentre de login le nom dutilisateur est ensps et le mot de passe ulp. Ouvrir un terminal en cliquant
licne de la barre des tches.
Taper la commande ini_rst pour initialiser le TP. Cette commande cre un rpertoire nomm rst contenant
plusieurs fichiers dont iofunctions.h ( ne pas modifier) et rst.c. Pour aller dans ce rpertoire, taper cd rst.
Pour diter le fichier rst.c, taper la commande nedit rst.c &. Ce fichier contient le code du programme
dasservissement.
Lancer Matlab partir de licne du bureau ou en tapant matlab dans un terminal.
Attention ! : Pour vous viter de perdre du temps, ncrasez pas vos schmas et rsultats. Ils sont utiliss
plusieurs reprise tout au long du TP.

2.2 Calcul dun correcteur par transposition


1. A laide de rltool dterminez un correcteur analogique dordre minimal tel que :
Le comportement en boucle ferme soit du second ordre avec n = 25 rad.s1 et = 0, 7.
Lerreur permanente vis vis de lentre soit nulle.
2. Transposez ce correcteur en un correcteur numrique en utilisant lapproximation bilinaire. La priode
dchantillonnage est impose 10 ms. Cette priode dchantillonnage est-elle suffisante pour garantir
un bon comportement de lasservissement numrique ? Justifiez.
3. Simuler avec Simulink le comportement du systme analogique asservi avec votre correcteur numrique.
Comparez les rsultats avec le comportement attendu. Comment expliquez vous les diffrences observes ?
4. Ecrivez la loi de commande temporelle correspondant ce correcteur
5. Implmenter le correcteur en langage C. Seul le calcul de la commande doit tre programm, le reste est dj
fait (la partie complter est signale par un commentaire) (voir figure 3). Il vous est galement demand
de raliser 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 dcrire ces saturations
logicielles ? Que peut-il se passer si on ne sature pas correctement la commande ? Vrifiez galement bien la
priode dchantillonnage du systme dfinie en haut du fichier par la macro #define SAMPLING_PERIOD
et exprime en nano-secondes !
Pour compiler le programme rst.c, taper simplement make.
6. Tester le correcteur :
lancer le programme dasservissement en tapant rst ;

7
FIP 2me Anne
Automatique, 2012-2013 TP 2

linvite, entrer le type de consigne souhaite (chelon ou rampe), lamplitude ou la pente voulue et
la dure de lasservissement (aprs cette dure les commandes ne sont plus envoyes au systme). La
question du choix des coefficients rst concerne une autre manipulation et na donc pas dimportance
ici : tapez le choix 2.
Tester le comportement du systme pour diffrentes valeurs dchelon et pour une rampe.
7. Commenter les rsultats obtenus. Quelles sont les caractristiques problmatiques de la rponse indicielle ?
Pourquoi nest-ce pas conforme ce qui tait prvu ? Quel type de perturbation (perturbation dentre,
de sortie ou de mesure) est responsable de ce phnomne ? Quelle est leur origine physique ?

2.3 Synthse directe en numrique


On veut raliser lasservissement du moteur selon le mme cahier des charges que prcdemment :
Le comportement en boucle ferme soit du second ordre avec n = 25 rad.s1 et = 0, 7.
Lerreur permanente vis vis de lentre soit nulle.
En revanche, on propose de raliser la synthse du correcteur directement en numrique sans passer par une
synthse analogique.
La priode dchantillonnage choisie est toujours de 10 ms.
1. En utilisant la fonction c2d de Matlab et les paramtres adquats, vrifiez le calcul de G(z) fait en
prparation.
2. Dterminez un correcteur laide de rltool.
Attention ! rltool est bugg pour les systmes numriques. Lorsque vous cliquez sur les ples de la boucle
ferme, rltool affiche sous la fentre lamortissement et la pulsation naturelle correspondants la position
des ples. Les valeurs sont justes mais deviennent erronnes ds que vous dplacez la souris. Dautre part
les contraintes de pulsation sont fausses et ne doivent donc pas tre utilises.
3. Simuler avec Simulink le comportement du systme analogique asservi avec votre correcteur numrique.
Comparez les rsultats avec le comportement attendu et avec les rsultats obtenus avec la premire synthse
(par transposition).
4. Ecrivez la loi de commande temporelle correspondant ce correcteur
5. Implmenter le correcteur sur le systme rel.
6. Tester le correcteur pour diffrentes valeurs dchelon et pour une rampe.

2.4 Correction faible frquence dchantillonnage


Pour des raisons de temps de calcul, il est parfois ncessaire de daugmenter la priode dchantillonnage.
Pour cette partie nous prendrons Te = 100ms.
1. Reprenez le correcteur analogique synthtis au dbut du TP et transposez le en numrique avec la nouvelle
priode dchantillonnage. Testez le avec Simulink sur le modle du systme. Que se passe-til ? Quelle
rgle nest plus respecte ?
2. Faites maintenant une synthse directement en numrique avec la nouvelle priode dchantillonnage. O
sont les ples de la boucle ferme ? Simulez leffet de ce correcteur laide de Simulink. Observez le signal
de sortie et le signal de commande.
3. Implantez ce correcteur sur le systme rel et testez-le (pensez modifier la priode dchantillonnage du
systme).

2.5 Amlioration du correcteur


La priode dchantillonnage est maintenant reprise Te = 10ms. Lobjectif de cette partie est de remdier
au problme apparu lors du test des correcteurs sur le systme rel : lerreur statique nest pas nulle. On
considrera en premire approximation que les frottements secs lorigine de lerreur statique peuvent tre
modliss par une perturbation dentre constante.
Synthtisez un nouveau correcteur directement en numrique vrifiant le nouveau cahier des charges :
Erreur statique vis--vis de la consigne nulle

8
FIP 2me Anne
Automatique, 2012-2013 TP 2

Rejet des perturbations dentre dordre 0


Dpassement de lordre de 20%
Temps dtablissement 5% infrieur 300 ms
Cette synthse est dlicate et il est utile de se rfrer aux conseils de lutilisation du lieu dEvans vus en
cours. On prendra notamment soin de ne pas positionner de ples du correcteur dans la partie relle nga-
tive afin dviter des commandes alternes qui peuvent tre nfastes haute frquence dchantillonnage.
On fera galement attention ne pas placer de zro trop prs de 1. Enfin, on notera que lorsquun systme
a 1 ple rel et 2 ples complexes conjugus, la configuration la plus rapide est obtenue lorsque les 3 ples
sont aligns (mme valeur relle).
Pour faciliter la synthse vous pouvez rpondre aux questions daide suivantes :
Un correcteur dordre 1 est-il suffisant ?
Quel est lordre du systme en boucle ferme ? Peut-on alors utiliser les abaques et les contraintes de
rltool ?
O faut-il placer les zros du correcteur pour faire rentrer les branches dans le cercle unit ?
O faut-il thoriquement placer les ples de la boucle ferme pour ne pas avoir de dpassement ?
Pourquoi cela ne fonctionne-til pas ici ? Quelle est lorigine du dpassement ?
Testez ce correcteur laide de Simulink. Vrifiez notamment que les perturbations dentre dordre zro
sont correctement rejetes et testez la rponse des rampes.
Implantez ce correcteur et testez le comportement du systme en rponse diffrents chelons et en rponse
des rampes.
Commentez les rsultats obtenus.

2.6 Question bonus : correcteur rponse pile


On reprend Te = 0.1s et on fait la synthse directement en numrique. Le cahier des charges est le suivant :
Erreur statique nulle
Temps de convergence minimal
O faut-il placer les ples de la boucle ferme pour que la rponse soit la plus rapide possible ? Essayez
de positionner les ples de cette faon sans compenser les zros du systme.
Dterminez ensuite la fonction de transfert de la boucle ferme. Dduisez-en lquation aux diffrences qui
relie entre et sortie et calculez les premires valeurs de la sortie. En combien de pas dchantillonnage la
sortie converge-telle vers la valeur dsire ? Vrifiez laide de rltool.
Testez ce correcteur sur la maquette. Attention ! : ce type de correcteur, appel correcteur rponse pile,
a un comportement trs violent et ncessite un modle prcis du procd. Le test sera ralis avec prudence
(amplitudes rduites des chelons, temps dasservissement court) et sous la supervision des encadrants afin
de ne pas dgrader le matriel.

9
FIP 2me Anne
Automatique, 2012-2013 TP 3

TP 3 Asservissement numrique de temprature

Lobjectif de ce TP est de raliser un asservissement numrique de temprature. Le systme rguler est


une maquette dun systme thermique Feedback. Les particularits de ce systme sont :
une constante de temps lente ;
un retard d au transport de lair.

1 Moyens
On dispose :
dune maquette Feedback ;
dun ordinateur compatible PC quip du systme dexploitation temps rel (xenomai). Il possde par
ailleurs une carte dinterface qui comporte en entre un convertisseur analogique numrique et en sortie
un convertisseur numrique analogique modlis par un bloqueur dordre 0.
un programme ralisant linterface graphique entre lutilisateur et le module dasservissement (temp) ;
Matlab.
Aprs dmarrage du systme, entrer le nom dutilisateur ensps et le mot de passe ulp. Ouvrir un terminal
en cliquant licne de la barre des tches.
Taper la commande ini_temp pour initialiser le TP. Cette commande cre un rpertoire nomm temp
contenant, entre autres, le fichier temp.c. Pour aller dans ce rpertoire, taper cd temp. Pour diter le fichier
temp.c, taper la commande nedit temp.c &. Ce fichier contient le code du programme dasservissement. Seul
le calcul de la commande doit tre programm, le reste est dj fait (la partie complter est signale par un
commentaire) (voir figure 3).
Pour compiler temp.c, taper simplement make.

2 Exprimentation
La fonction de transfert du systme lorsque louverture du clapet est 35 degrs ou throttle sur 4 (suivant
le modle de maquette) et lorsque le capteur est plac lextrmit du conduit est la suivante (rsultat dune
identification par analyse de rponse indicielle) :

e0,18s
G(s) = (2)
(1 + 0, 25s)2

Dans ce qui suit, on suppose que le temps ncessaire au calcul de la commande est ngligeable devant la
priode dchantilonnage.

2.1 Mthode de synthse base sur le correcteur continu


Pour cette premire synthse, on dterminera tout dabord un correcteur analogique qui sera ensuite trans-
pos en numrique.
1. Donnez la forme gnrale dun correcteur dordre 2.
2. Faire la synthse dun correcteur C(s) continu du second ordre tel que le systme corrig boucl satisfasse
au cahier des charges suivant :
Erreur permanente nulle pour une consigne en chelon,
Compensation des ples dominants du systme,
Marge de phase de 45 deg.
On pourra avantageusement utiliser la fonction bode de matlab. Cette fonction trace le diagramme de
bode dune fonction de transfert F lorsquelle est appele par :
bode(F)
Elle retourne des tableaux de points pris sur les diagrammes lorsquelle est appele par :
[ ampl, ph, w ] = bode(F)

10
FIP 2me Anne
Automatique, 2012-2013 TP 3

Figure 3 Organigramme du logiciel de commande.

Il nest pas possible de dfinir le retard dans les fonctions de transfert sous matlab 5.2. Le retard devra
donc tre ajout "manuellement" aux tableaux de valeurs obtenus par la fonction bode.
Lors de la synthse du correcteur analogique vous devrez garder lesprit quil doit ensuite tre transpos
en numrique. La priode dchantillonnage minimale est de 10 ms.
3. Appliquer la transformation bilinaire pour passer de C(s) C(z) :
2 z1
s (3)
Te z + 1
avec Te , la priode dchantillonnage du correcteur numrique (fonction c2d de Matlab). On choisira Te
suffisamment faible pour bien approcher le correcteur continu (pas moins de 10 ms).
4. Etudier en simulation le systme analogique avec son correcteur numrique en utilisant Simulink. Utiliser
le bloc "transport delay" de la bibliothque Simulink pour modliser le retard.
5. Programmer le correcteur obtenu dans temp.c lemplacement prvu cet effet. Ne pas oublier de dfinir
la priode dchantillonnage en haut du programme la ligne (#define SAMPLING_PERIOD). Compiler le
module en tapant make.
6. Tester le correcteur en lanant temp. Commenter les rsultats obtenus.

2.2 Synthse directe du correcteur numrique


On souhaite raliser une synthse directement en numrique.
1. Calculer la transmittance chantillonne G(z) du systme en boucle ouverte (commande c2d).

11
FIP 2me Anne
Automatique, 2012-2013 TP 3

2. Faire la synthse dun correcteur numrique du second ordre laide du lieu des racines (fonction rltool
de Matlab) qui respecte le cahier des charges suivant :
Erreur permanente nulle pour une consigne en chelon,
Compensation des ples dominants du systme,
Dpassement nul.
3. Simuler le correcteur numrique sur le systme analogique. Ensuite, implanter le correcteur numrique sur
le systme rel et mesurer les caractristiques du systme rel corrig.

12
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 13

TP 4 Asservissement dun bras flexible

Lobjectif de ce TP est de raliser lasservissement numrique de la position angulaire dun bras qui est reli
un ensemble moto-rducteur via une liaison flexible. Ce systme simule par exemple le comportement dun bras
robotique entran par un actionneur comportant un rducteur harmonic drive rput pour son importante
flexibilit en torsion.

1 Description de la manipulation
1.1 La maquette rotflex

Figure 4 Schma de la maquette rotflex de Quanser consulting.

Le systme tudi est dcrit par la figure 4. La grandeur de commande Um est une tension de faible puissance
envoye un amplificateur de gain 1. La sortie de lamplificateur est une source de tension connecte au bobinage
dinduit dun moteur courant continu. Ce moteur entrane la rotation dune plateforme travers un rducteur
mcanique train dengrenages. La position angulaire de la plateforme par rapport la base donc par rapport
au sol est note . Sur la figure, la flche donne le sens positif de rotation. La plateforme entrane un bras
en rotation suivant le mme axe que la sortie du rducteur par lintermdiaire de 2 ressorts. Un potentiomtre
permet de mesurer la dviation du bras due lallongement des ressorts par rapport la position de repos. La
position angulaire du bras par rapport la base est donc la somme du dplacement angulaire de la plateforme
et de .

13
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 14

1.2 Le systme dspace


La maquette rotflex est commande par une carte dspace. Il sagit dune carte au format PCI insre dans
un ordinateur hte. Cette carte est relie un bornier regroupant toutes les connectiques de ses interfaces :
convertisseurs numriques-analogiques, convertisseurs analogiques-numriques, compteurs, entres et sorties bi-
naires TTL. La carte dspace est une carte-mre miniature comprenant entre autres un processeur PowerPC, de
la RAM et de la mmoire flash. Ce processeur fait tourner un systme dexploitation embarqu temps-rel de
manire totalement asynchrone de lordinateur hte qui tourne sous windows et nest donc pas temps-rel.
La carte dspace est couple un logiciel qui permet de visualiser en quasi temps-rel tous les signaux
sur lordinateur hte et qui donne la possibilit de changer des paramtres comme des gains ou la consigne
en cours dasservissement au moyen dune interface graphique conviviale. De plus, ce logiciel est coupl
matlab/simulink. Il permet de dcrire la structure dasservissement de manire trs intuitive grce la palette
doutils graphiques de simulink. En outre, le passage de la description graphique au code dasservissement se
fait automatiquement par la pression dun seul bouton de linterface. Cette conversion comprend 3 phases : la
conversion du schma-bloc en code C, la compilation croise de ce code source pour le processeur PowerPC de
la carte dspace et finalement le tlchargement et le lancement du code objet sur le systme embarqu de la
carte dspace. Le systme dspace est donc particulirement adapt au prototypage rapide de lois de commande
grce la simplification extrme du passage de la simulation lexprience.

2 Modlisation du systme (travail prliminaire)


Cette partie requiert un travail prliminaire la sance de TP. Elle vise comprendre la modlisation du
systme.

2.1 Modlisation de lamplification


La sortie dun des convertisseurs numrique-analogique de la carte dspace (modlis par un bloqueur dordre
zro) est connecte un amplificteur de puissance externe (voir figure 5). Cet ampli a un gain statique de 1

Figure 5 Amplificateur.

et une bande passante qui dpasse largement les frquences les plus hautes requises pour asservir le systme
rotflex. Cest pourquoi on ngligera son effet dans la suite. Sa fonction de transfert approche est simplement 1.

2.2 Modlisation du moto-rducteur


Celui-ci est constitu dun moteur courant continu reli un rducteur de rapport de rduction 1/70. La
sortie du rducteur entrane la plateforme du systme rotflex. Lautre extrmit de larbre moteur entrane un
codeur incrmental. Celui ci fournit des signaux carrs au format TTL qui sont relis une entre compteur de

14
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 15

la carte dspace. Le comptage des priodes des signaux carrs permet de mesurer le dplacement angulaire de
larbre moteur. En effet, il y a 1024 priodes par tour de moteur.
La tension Um de linduit du moteur est commande par une des sorties DAC (Digital to analog converter)
de linterface dspace via lamplificateur de puissance de gain 1.
On peut dmontrer quun groupe moteur+rducteur peut tre modlis par un moteur quivalent. Nous
allons donc ici simplifier le problme en considrant que lassociation moteur+rducteur peut tre simplement
modlise par un moteur quivalent dont les caractristiques sont supposes connues (donnes pendant le TP).
On rappelle ici les quations dun moteur courant continu :
Equation lectrique : Um Em = Rm Im + Lm Im
Equations de couplage lectro-mcaniques : m = Km Im et Em = Km
Equation mcanique : m r = fm + Jm
avec Um , Im et Em respectivement la tension dinduit, le courant dinduit et la force contre-lectromotrice ;
Rm et Lm respectivement la rsistance et linductance de linduit ; , , et m respectivement la position,
la vitesse, lacclration angulaire et le couple du rotor ; Km , fm et Jm respectivement la constante de couple,
le coefficient de frottement visqueux et linertie du rotor coupl la plateforme. La grandeur r est le couple
rsistant provoqu par le bras reli la plateforme.
1. Donnez le schma-bloc du moteur en considrant que Um est lentre principale, r une entre de pertur-
bation, et la sortie.

2.3 Modlisation du bras flexible


Soient Kr , Jr et fr respectivement la raideur quivalente en torsion des ressorts, linertie du bras et le
coefficient de frottement visqueux. En appliquant le principe fondamental de la dynamique au bras, on peut
crire que r = Jr et Jr = Kr ( ) + fr ( ).

1. Donnez le schma-bloc dcrivant le comportement du bras avec pour entre et pour sortie .
2. En dduire le schma-bloc total du systme ayant pour entre Um et pour sortie . Faites bien apparatre
le lien entre r et .
3. Simplifiez le schma bloc prcdent afin de pouvoir exprimer facilement la fonction de transfert en boucle
ouverte (s)/Um (s).

3 Commande proportionnelle
3.1 Initialisation de lenvironnement
Allez dans le rpertoire Mes Documents/Rotflex. Slectionner et copier le rpertoire Original. Collez ce
rpertoire dans Mes Documents et donnez lui un nom nom1-nom2 o nom1 et nom2 sont les 2 noms de famille de
votre binme.

3.2 Vido dinitiation


Allez dans le rpertoire Mes Documents/Rotflex. Lancez la vido rotflex.mpg. Notez en particulier com-
ment ouvrir un modle simulink depuis lenvironnement dspace, comment compiler un schma-bloc et comment
passer du mode dition au mode animation. La vido dcrit pas pas les tapes demandes dans les sections
3.3 et 3.4.

3.3 Test en boucle ouverte


Allez dans le rpertoire Mes Documents/nom1-nom2/Proportionnel (Attention : veillez bien travailler
dans votre rpertoire et non dans le rpertoire original). Double-cliquez sur licne dexprimentation dspace
TP_ROTFLEX.cdx. Suivez la procdure dcrite dans la vido pour ouvrir le schma-bloc simulink correspondant
cette exprience (Attention : dans longlet File selector, veillez slectionner le mme rpertoire que celui
de lexprience dspace courante, savoir Mes Documents/nom1-nom2/Proportionnel). Glissez le fichier simu-
link rotflex.mdl depuis le File selector jusqu la ligne Simulink comme indiqu dans la vido. Saisissez

15
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 16

dans matlab la commande Te=0.01 pour prciser la priode dchantillonnage de lasservissement numrique
(Frquence = 100Hz). Compilez le schma-bloc. Repassez dans lenvironnement dspace.

Attention : En cas de mauvaise manipulation le bras peut se dplacer trs rapidement. Veillez
dgager tout obstacle dans le primtre de dplacement du bras. Ne mettez pas votre visage
hauteur du bras. En cas de problme, vous avez la possibilit dappuyer sur le bouton Arrt de
linterface dspace. Par dfaut, aprs la compilation, le systme est en mode Arrt. Lorsque vous
appuyez sur Marche, soyez prt immdiatement appuyer sur Arrt en cas de problme.

Mettez lamplificateur sous tension (bouton marche/arrt larrire du boitier). Passez en mode Animation
sous dspace. Appuyez sur le bouton Marche. Le bras devrait faire des aller-retours avec une amplitude de 45
maximum.
Des curseurs permettent de rgler lamplitude et la frquence du signal carr fourni par le gnrateur de
signaux (voir schma-bloc simulink). Modifiez lgrement ces deux grandeurs et observez leffet sur le systme.
Appuyez sur Arrt avant de passer la suite.

3.4 Asservissement proportionnel


Modifiez le schma simulink pour raliser un asservissement proportionnel de la position du bras. Rglez le
gain 1. Compilez le schma-bloc. (Si les bibliothques dlments Simulink napparaissent pas lcran, allez
dans le menu View et slectionnez Library browser.)
Dans lenvironnement dspace, rajoutez un curseur pour rgler le gain (vous pouvez copier puis coller un
curseur existant). Pour associer une variable ce curseur, il faut aller dans lditeur de variable (onglet
Variable browser ct de File selector). A partir de Model Root, parcourez larborescence des variables
jusqu trouver celle qui correspond au gain du correcteur. Faites glisser cette variable vers le curseur pour faire
lassociation. Double-cliquez sur le curseur pour rgler la valeur par dfaut (1) et la plage de variation (de 0
5).
Appuyez sur Marche et modifiez le rglage du gain. Concluez quant aux performances de ce correcteur.

4 Placement de ple avec commande en tension


tant donnes les pitres performances du correcteur proportionnel, dans cette partie nous allons mettre en
uvre une stratgie de commande plus labore base sur le placement de ples.

4.1 Calcul du modle chantillonn de la boucle ouverte


Fermez matlab et dspace. Allez dans le rpertoire Mes Documents/nom1-nom2/Commande_tension. Lancez
TP_ROTFLEX.cdx. Ouvrez rotflex.mdl depuis lenvironnement dspace.
Depuis le Workspace Matlab allez dans le rpertoire Mes Documents/nom1-nom2/Simulation. Lancez le
script init_const.m pour initialiser les valeurs de toutes les grandeurs du modle. Dfinissez dans Matlab la
fonction de transfert de la boucle ouverte (s)/Um (s) que vous avez obtenue en prparation en utilisant les
paramtres crs dans Matlab (Km, Jm, ...) (vous pouvez dfinir plusieurs fonctions de transfert partielles et
ensuite les combiner. Par exemple, la commande F = feedback(G, H) cre la fonction de transfert F qui est
la rtroaction de G par H).
Montrez que la fonction de transfert peut tre approche par :

58.7108(s + 339.9)
(s)/Um (s) = . (4)
s(s + 22.8)(s2 + 20.47s + 514.8)

Vous pourrez utiliser la fonction zpk pour afficher les ples et zros de la fonction de transfert. Justifiez la
validit de lapproximation.
En dduire la fonction de transfert chantillonne entre U (z) et (z), respectivement lentre du convertisseur
numrique analogique et la mesure de position chantillonne. On utilisera pour cela la fonction c2d de matlab.
Quels sont les arguments utiliser ? Expliquez pourquoi.

16
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 17

4.2 Synthse du correcteur


Importez cette dernire fonction de transfert sous rltool et faites une synthse numrique directe qui
respecte le cahier des charges suivant :
Correcteur dordre 2,
Erreur statique nulle par rapport la consigne,
Systme le plus rapide possible,
Sans dpassement.
Exportez le correcteur dans lenvironnement matlab. Toujours dans le rpertoire Simulation, ouvrez le
modle simulink simu_bo.mdl (open simu_bo). Ajouter votre correcteur (on utilisera un bloc LTI : ouvrez ce
bloc et saisissez le nom du correcteur export par rltool ("C")). Simulez et validez la synthse.

4.3 Exprience
Dans le workspace Matlab retournez dans le rpertoire Mes Documents/nom1-nom2/Commande_tension. D-
finissez Te = 0.01. Slectionnez la fentre dcrivant le modle simulink pour dspace. Faites Edit->Update diagram
dans la fentre simulink. Ignorez le message derreur. Ceci permet de ractualiser la valeur de C dans le bloc
LTI pour quil corresponde au correcteur que vous avez export depuis rltool. Compilez.
Expliquez comment le compilateur obtient la loi de commande temporelle du correcteur partir de la
fonction de transfert numrique en z.
Il est possible de sauvegarder les donnes exprimentales au moyen de dspace. Cliquez sur le bouton Settings
de la fentre dspace (si le bouton nest pas visible allez dans le menu
view->control bars->Capture->Settings Window).
Slectionnez longlet Acquisition. Slectionnez Autosave. Choisir le rpertoire (le vtre) et le nom du fichier
de sauvegarde.
Passez en mode Animation. Appuyez sur Marche. Lors de lexprience, les donnes sont stockes en temps-
rel sur le disque dur. Il est possible ensuite de charger dans matlab les donnes ainsi sauvegardes au moyen de
la commande load nom_du_fichier. On peut ensuite accder aux diffrents champs de la manire suivante :
nom_du_fichier.X.Data : instants dchantillonnage en seconde.
nom_du_fichier.Y.Name : noms des lments de la structure.
nom_du_fichier.Y(n).Data : permet daccder aux donnes dont la description correspond la nime
ligne de la commande prcdente.
Il est donc possible dafficher les rsultats de lexprience grce la commande plot de matlab.
1. Quelles sont les amliorations apportes par cette commande par rapport la commande proportionnelle ?
2. Est ce que lerreur statique est conforme la simulation ? Expliquez. Vous pourrez notamment observer
le signal de commande pour comprendre.
3. Crez une perturbation en modifiant manuellement lorientation de la tige aprs convergence (vous pren-
drez garde dabord diminuer la frquence des crneaux de consigne). Comment se comporte le systme
par rapport une perturbation ? Expliquez. Vous pourrez galement observer le signal de commande.

5 Placement de ple avec commande en vitesse


Afin de palier le dfaut principal de lasservissement prcdent, nous allons rajouter une boucle interne de
vitesse. Celle-ci sera imbrique dans la boucle de position. Le correcteur de la boucle de position gnrera donc
une commande de vitesse et non plus une commande de tension.

5.1 Rglage du PI de la boucle de vitesse


Lasservissement imbriqu de la vitesse est ralis au moyen dun correcteur PI numrique. Ce PI sera
rgl exprimentalement.
Donnez la forme dun PI numrique obtenu par la transposition bilinaire dun PI analogique. Ecrivez la
fonction de transfert de sorte faire apparatre un gain proportionnel et un gain intgral.

17
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 18

Fermez matlab et dspace. Allez dans le rpertoire Mes Documents/nom1-nom2/Boucle_vitesse. Dfinissez


la priode dchantillonnage Te = 0.01s. Lancez TP_ROTFLEX.cdx. Ouvrez rotflex.mdl depuis lenvironnement
dspace. Asservir la vitesse theta_dot laide du correcteur de la figure 6. Compilez. Dans lenvironnement
dspace, rajoutez 2 curseurs que vous associez gain_prop et gain_int.

Figure 6 Correcteur PI de la boucle de vitesse.

Rglez les plages de variations des 2 curseurs de 0 10. Rglez la valeur initiale des curseurs 0, 5 et 0 pour
respectivement le gain proportionnel et intgral. Rglez manuellement les 2 gains en mode Animation jusqu
obtention dun comportement satisfaisant. Essayez dobserver leffet de chacun des gains et jugez de la difficult
de rgler laveugle un correcteur pourtant simple.

5.2 Rglage du correcteur de la boucle de position


Fermez matlab et dspace. Allez dans le rpertoire Mes Documents/nom1-nom2/Commande_vitesse. Lancez
TP_ROTFLEX.cdx. Ouvrez rotflex.mdl depuis lenvironnement dspace. Dans cette partie les gains du correcteurs
PI de la boucle de vitesse sont imposs : 1.5 pour le gain proportionnel et 10 pour le gain intgral.
Allez dans le rpertoire Mes Documents/nom1-nom2/Simulation. Lancez le script comp_bv.m. Il permet de
calculer automatiquement le modle chantillonn de la boucle ouverte entre la consigne de la boucle de vitesse
et la position angulaire du bras . La transmittance ainsi gnre sappelle H_simple dans matlab :

(z)
Hsimple (z) = (5)
(z)

Observez la fonction de transfert obtenue et synthtisez un correcteur par placement de ple sous rltool
en respectant le cahier des charges suivant :
Correcteur dordre 5,
Erreur statique nulle par rapport la consigne,
Temps de rponse court,
Rponse indicielle sans dpassement.
Pour simplifier la synthse, compensez tous les ples et zros du procd que vous pouvez compenser sans
crer de problmes (instabilit, commande alterne) (principe du correcteur parfait).
Exportez le correcteur dans lespace de travail. Lancez Simulink et ouvrez le modle simu_bo. Simulez leffet
de votre correcteur. Noubliez pas que vous avez ralis une boucle interne de vitesse ! !
Retournez dans le rpertoire Mes Documents/nom1-nom2/Commande_vitesse. Faites Update diagram dans
le schma simulink de lasservissement dspace. Compilez. Testez.
1. Le comportement est-il conforme ce qui tait attendu ? En pratique la commande envoye au procd
est sature entre 10 et +10V . Simulez leffet de cette saturation sur le modle simu_bo. Modifiez votre
correcteur pour limiter leffet de la saturation.
2. Que pensez-vous de leffet intgral de la commande synthtise ?
3. Testez leffet dune perturbation de sortie. Conclure quant la rjection des perturbations.

18
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire

Aide mmoire pour lutilisation de Matlab et Simulink

1 Utilisation gnrale de matlab


Il existe deux versions de Matlab en salle de TPs dautomatique que vous serez amens 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 mmes, mais lutilisation du logiciel diffre.

1.1 Lancement
Sous windows : double cliquez sur licne Matlab6.5 sur le bureau. Matlab ouvre alors plusieurs fentres
(ou une fentre contenant plusieurs sous-fentres). Les deux plus importantes sont la fentre de commande
("Command Window") et la fentre de lditeur de script.

Sous linux : cliquez sur licne Matlab. Matlab dmarre dans un terminal qui devient la fentre de commande,
reprable au prompt >>. Pour travailler avec des scripts ou des fonctions ".m", vous avez besoin dun diteur
de texte spar. Pour cela, cliquez sur licne de nedit ou tapez nedit dans un terminal.

2 Gnralits
Matlab est un logiciel de calcul matriciel. Il peut tre utilis simplement comme une calculatrice pour tous
les calculs scalaires et dispose de nombreuses fonctions de calcul matriciel (dterminant, inverse, etc.). En
automatique, en plus des fonctions de base de calcul, vous utiliserez des fonctions appartenant la bote outils
"Control Toolbox" et la bote outil "Simulink".
Il existe 2 principales faon dutiliser Matlab :
en ligne de commande : lutilisateur tape des commandes dans la fentre de commande ("command
Window" pour matlab 6.5 sous Windows). Celles-ci sont directement executes par matlab. Une commande
se termine par un retour chariot ("entre"). Il est possible dexcuter plusieurs commandes successivement
en les crivant sur la mme ligne et en les sparant par le caractre " ;". Lorsquune commande se termine
par le caractre " ;" elle est muette : le rsultat nest pas affich lcran. Le caractre % indique des
commentaires. Tout ce qui se trouve aprs ce caractre sur la mme ligne nest pas interpret par Matlab.
Exemples :
>> a = 2 % Affectation de 2 la variable a
a =
2
>> b=1; % Affectation de 1 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 cres sont stockes dans lespace de travail (workspace) et peuvent tre rutilises tout
moment.
En ligne de commande, les commandes tapes prcdemment peuvent tre rappeles en utilisant les flches
vers le haut et vers le bas.

19
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire

par lintermdiaire de scripts ou de fonctions. Les commandes sont crites dans un fichier texte de la mme
faon quen ligne de commande. Le fichier doit tre sauvegard avec une extension ".m" pour signifier quil
sagit dun script Matlab. Pour excuter ce script il suffit de taper son nom (sans lextension ".m") dans
la fentre de commande. Toutes les commandes du script sont alors excutes successivement. Attention,
pour que les fichiers ".m" puissent tre lancs depuis matlab vous devez vous placer dans le rpertoire o
se trouve le fichier.
Exemples :
Fichier exemple.m *****************************************
a = 2 % Affectation de 2 la variable a
b=1; % Affectation de 1 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 cres dans un script sont stockes dans le workspace lors de lexcution du script. Elles
peuvent donc ensuite tre utilises en ligne de commande.
Afin de garder simplement une trace de vos travaux, il est conseill de travailler laide de scripts.
Matlab dispose dune aide en ligne permettant dobtenir les dtails dutilisation dune commande : paramtres
dentre, arguments de sortie, etc. Par exemple, pour obtenir des informations sur la commande dinversion de
matrice "inv", il suffit de taper
>> help inv

2.1 Quelques fonctions mathmatiques utiles


cos, sin, tan
acos, atan, asin
exponentielle : exp
logarithme : Attention ! ! logarithme nprien : log, logarithme dcimal : log10

3 Fonctions de la "Control toolbox"


Pour utiliser ces fonctions, il suffit de les taper soit dans la fentre de commande, soit dans un script.
Voici la plupart des fonctions qui vous seront utiles en TP.
crer une fonction de transfert : ex : G(s) = s2s+2 +3s
>> G = tf([1 2], [1 3 0])
z+0.5
crer une fonction de transfert numrique : ex : Gz(z) = z0.2
>> Gz = tf([1 0.5], [1 -0.2], Te)
o Te est la valeur de la priode dchantillonnage.
crer une fonction de transfert par les ples, zros et gain : ex : G(s) = 5(s+2) 5(s+2)
s2 +3s = (s+3)s
>> G = zpk([-2], [0 -3], 5)
mettre une fonction de transfert G sous forme de ples et zros
>> zpk(G)
Transposer une fonction de transfert continue en numrique
>> Gz = c2d(G, Te, method)

20
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire

o Te est la priode dchantillonnage et o method est la mthode de transposition choisie (zoh, tustin,
prewarp ou matched)
Tracer la rponse indicielle dun systme donn par sa fonction de transfert G
>> step(G)
Obtenir la carte des ples et des zros dun systme
>> 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 dcibels) et la phase (en degrs)
%dtermins aux pulsations w
Diagramme de Nyquist :
>> Nyquist(G)

Trace le diagramme de Nyquist. Attention, les ventuels cercles linfini ne sont pas reprsents. Il faut
donc analyser la fonction de transfert pour pouvoir dterminer avec certitude la stabilit dune boucle
ferme.
Lieu des racines :
>> rltool(G)
Trace le lieu des racines de G, avec retour unitaire. Les ples et zros du systme G sont reprsents par
des croix et cercles bleus. La position des ples de la boucle ferme est reprsente par des carrs rouges.
En cliquant sur ces carrs, il est possible de les dplacer le long du lieu dEvans. Le gain affich en haut
de la fentre est alors modifi simultanment.
rltool est un utilitaire permettant de rgler un correcteur par la mthode du lieu des racines. Une fois
le lieu des racines de G trac, lutilisateur a de nombreux outils.
Il est ainsi possible dajouter des ples et des zros sur la carte des ples et zros. Ces zros et ples sont
affects au correcteur. Ils peuvent tre dplacs par des "cliqu - gliss".
Pour diter le correcteur, cliquer sur le bloc C rouge (ou K cyan selon la version) dans le schma bloc
reprsent en haut droite
On peut afficher les abaques diso-amortissement et diso-pulsation sur la carte des ples soit en cliquant
"grid on" (version Linux), soit en cliquant avec le bouton droit de la souris et en choisissant afficher la
grille.
file import : permet daffecter des fonctions de transfert aux diffrents lments du modle. Ces
fonctions de transfert doivent avoir t dfinies dans le workspace. Attention, les blocs de gain doivent
tre entrs sous la forme de fonction de transfert (par exemple, pour H = 5, il faut entrer H = tf([5],
[1]))
file 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 gauche) : trace la
rponse indicielle du systme en boucle ferme pour le gain donn.
Clic droit dans la fentre rltool (ou tools Add grid / boundary) : permet de dfinir des contraintes
pour le systme boucl : dpassement, temps dtablissement, etc. Attention : ces contraintes ne sont
valables que si le systme en BF est quivalent un systme du 2eme ordre.

4 Utilisation de Simulink
Simulink est un utilitaire de simulation permettant de reprsenter les systmes partir de schmas bloc.
Pour lancer simulink, tapez

21
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire

>> simulink
dans la fentre de commande.
Lutilisation de Simulink est assez intuitive. Elle consiste slectionner des blocs reprsentant des fonctions
de transfert, des gains, etc. et les glisser sur le schma de simulation. Les blocs sont relis entre eux par des
traits orients tracs laide de la souris.
file new model : cre un nouveau modle simulink
Les fonctions de transfert continues se trouvent dans le menu "Continuous" ou "Linear"
Les fonctions de transfert numriques se trouvent dans le menu "discrete" ou "discontinuous"
Les convertisseurs numriques 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 (chelons (step), rampes, etc.) sont dans le menu "source"
Les retards utiliser sont appels "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 quantificateurs sont dans le menu "non linear"
Remarques
Il ny a pas de bloc "CAN". Simulink dtermine la nature des signaux en fonction de la nature des
blocs dans lesquels ils entrent. Il est ncessaire pour les blocs de nature "numrique" de spcifier la
priode dchantillonnage en double cliquant dessus. Attention, Matlab nest pas drang par des priodes
dchantillonnage difrentes selon les blocs et ne vous avertira pas en cas derreur.
Par dfaut, les chelons dmarrent linstant t = 1s. Il est parfois utile de modifier en t = 0.
Une fois les blocs placs sur le schma, vous pouvez les modifier en double cliquant dessus. Par exemple, en
cliquant sur un bloc fonction de transfert vous pouvez ajouter des ples et des zros, modifier les gains, etc.
Il est possible dutiliser dans ces blocs des variables dfinies dans le workspace. Par exemple, si vous avez
dfini
>> K = 5
alors en mettant K dans un bloc simulink, sa valeur sera 5
La simulation est ensuite lance par simulationstart. Les rsultats de la simulation peuvent tre obtenus
en double cliquant sur les scopes. Une fentre souvre alors avec les tracs des signaux mesurs.
Les paramtres de la simulation peuvent tre modifis en faisant simulation parameters. On peut notam-
ment modifier la dure de la simulation. Lorsque les courbes des "scopes" sont tronques, il suffit douvrir le
bloc "scope" et daugmenter le paramtre "Data history" de longlet "Settings".

5 Dangers
Les versions de Matlab disponibles en salle de TP comportent plusieurs erreurs, bugs ou difficults quil
convient de connatre. Parmi celles-ci vous rencontrerez les suivantes :
Dans simulink, rltool et les fonctions de la control toolbox, ce qui est appel frequency correspond des
pulsations
Pour les simulations de systmes continus, il est important dutiliser une rsolution de calcul suffisante.
Lorsque les signaux observs semblent bruits (bruit de rsolution numrique des quations diffrentielles
rgissant les systmes analogiques), les paramtres de simulation peuvent tre modifis dans le menu
simulation simulation parameters, puis dans longlet "solver".
les blocs retard ("transport delay") se trouvent dans ceratines versions dans les bibliothques "non linear".
Il sagit dune erreur car les retards sont des systmes linaires.
Sur les versions 5.2 de matlab sous linux, laffichage des amortissements et pulsations propres par rltool
est bugg pour les systmes numriques. Lorsquon clique sur les ples de la BF, laffichage est juste mais
il devient faux ds que lon dplace la souris. De plus les contraintes de pulsations pour les systmes
numriques sont fausses et ne doivent donc pas tre utilises.

22