Documente Academic
Documente Profesional
Documente Cultură
L’objectif de ce TP est de mettre en évidence les effets de l’échantillonnage et de la numérisation des cor-
recteurs continus. Ce TP s’effectuera entièrement en simulation avec Matlab et la boı̂te à outils Simulink.
Le système étudié possède une seule sortie y et une seule entrée u (il s’agit de tensions, mesurées en
Volts). Sa fonction de transfert, identifiée au point de fonctionnement, s’écrit :
Y (s) 2, 3
G(s) = = ,
U (s) s(1 + 0, 1s)
où s désigne la variable de Laplace.
1 Correction proportionnelle
1.1 Correcteur analogique
1. Définir la fonction de transfert du système à l’aide de la commande :
>>G=tf([2.3],[0.1 1 0])
et lancer l’utilitaire de tracé du lieu d’Evans avec la commande :
>>rltool(G)
Les points rouges sur le lieu d’Evans correspondent à la position des pôles du système bouclé pour
la valeur du gain indiquée dans l’afficheur Gain. Ces pôles peuvent être déplacés le long du lieu
d’Evans. La valeur du gain est alors réactualisée.
2. Faire la synthèse d’un correcteur proportionnel analogique de sorte que le système asservi ait un
facteur d’amortissement égal à 0,707.
3. Simuler à l’aide de rltool la réponse indicielle du système asservi pour un échelon unitaire. Identifier
les éléments caractéristiques de la réponse confirmant le bon réglage du correcteur.
4. Lancer Simulink avec la commande :
>>simulink
Construire un modèle Simulink du système analogique en boucle fermée comprenant le correcteur
proportionnel déterminé. Pour cela, on recherchera dans les menus de Simulink les différents blocs
nécessaires (fonction de transfert continue, sommateur, gain, oscilloscope pour visualiser, etc.), que
l’on fera glisser dans la modèle. La fonction de transfert G(s) de même que le gain déterminés
précédemment seront utilisés dans ce modèle, Simulink partageant les variables de l’environnement
de Matlab (son Workspace en anglais dans le logiciel).
5. Ce modèle construit, retrouver la réponse indicielle du système en boucle fermée pour un échelon
unitaire.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
2 Rejet de perturbations
2.1 Rejet d’une perturbation d’entrée
Le convertisseur numérique/analogique (CNA) a un offset de +0,2 V . Cet offset est équivalent à une
perturbation d’entrée constante sur la commande.
1. Créer un nouveau modèle. Simuler la réponse indicielle du système asservi avec le correcteur
numérique précédent et l’offset de 0,2 V .
On souhaite synthétiser un correcteur d’ordre réduit permettant de rejeter cette perturbation d’entrée.
La synthèse sera faite par transposition d’un correcteur continu.
2. A l’aide de rltool, calculer un correcteur analogique du second ordre (au plus) tel que le système
bouclé respecte le cahier des charges suivant :
– erreur statique nulle en présence d’une perturbation d’entrée constante ;
– dépassement inférieur à 15% ;
– temps de réponse à 5% inférieur à 1 s.
Pour cela on notera que dans l’utilitaire rltool, il est possible d’ajouter des pôles et des zéros
au correcteur (dans Tools → Edit compensator ou simplement en cliquant sur le bloc K). Il est
également possible d’utiliser le bouton Add zero (flèche pointant un cercle) ou le bouton Add pole
(flèche pointant une croix) puis de cliquer à l’endroit du plan complexe où on désire placer le zéro
ou le pôle. Ces derniers peuvent être déplacés par la suite en cliquant sur le bouton drag pole/zero
(flèche seule) ; le lieu d’Evans est alors réactualisé.
3. Appliquer la transformation bilinéaire :
2 z−1
s→
Te z + 1
avec Te période d’échantillonnage, pour passer du correcteur continu au correcteur numérique. Ceci
est réalisé en utilisant la fonction c2d de Matlab. Pour bien approcher le correcteur continu, on
choisira Te suffisamment faible.
4. Simuler la réponse indicielle de l’asservissement numérique ainsi obtenu.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
TP 2 – Synthèse d’un asservissement de
position par placement de pôle
L’objectif de ce TP est de simuler l’asservissement de position des têtes de lecture/écriture d’un disque
dur. Afin de garantir un temps de réponse minimal on utilise un actionneur électromagnétique linéaire
associé à un ressort de rappel (voir figure 1). L’actionneur est constitué d’une bobine fixe et d’un noyau
θ
θ max
ressort de rappel
bras
tête de lecture/écriture
plateau du disque
en matériau ferro-magnétique mobile en translation. Le passage d’un courant dans la bobine génère une
force sur le noyau dont le sens dépend du sens du courant.
Lorsque la bobine n’est pas traversée par un courant, le bras se replie sous l’action du ressort vers une
position dite ¡¡ de sécurité ¿¿, c’est-à-dire une position où les têtes sont protégées et ne sont pas au-
dessus de la surface du disque. Cette position correspond à θ = 0 sur la figure 1. D’autre part, une butée
mécanique empêche le bras de se déplacer d’un angle supérieur à θmax .
1 Modélisation du système
1. La commande appliquée au système est une tension u variant de -12 à 12 Volts. Cette tension est
appliquée à la bobine de l’actionneur. Cette bobine a une résistance Rb = 0.5 Ω et une inductance
Lb = 5 mH. La force exercée par cet actionneur sur le bras produit un couple γa qui est proportionnel
au courant ib qui traverse la bobine :
γa = Ki ib (1)
avec Ki = 2 N.m.A−1 . A cause de limitations technologiques, le courant maximum (en valeur
absolue) qui peut traverser la bobine est de Imax = 3 A.
Déterminer la fonction de transfert entre u et γa .
2. Le ressort a une raideur équivalente en torsion Kr = 1, 875 N.m.rad−1 . Soit θr = −0, 0333 rad la
position angulaire de repli du bras en l’absence de courant dans la bobine et s’il n’y avait pas de
butée en θ = 0. L’inertie J du bras est de 5, 10−5 kg.m2 et le coefficient de frottement visqueux fv
de l’axe du bras est de 0, 0004 N.m.rad−1 .s−1 ).
Le débattement utile du bras, c’est-à-dire le secteur angulaire où la tête est au-dessus des pistes
magnétiques s’étend de θu1 = 0, 1 rad à θu2 = 0, 9 rad.
Déterminer la fonction de transfert entre γa et θ en supposant que le système est dans
sa plage de fonctionnement linéaire.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
3. Calculer, en régime permanent, le courant nécessaire pour maintenir le bras dans la
θ +θ
position θ = u1 2 u2 .
2 Simulation du système
1. Un bloc simulant le système de déplacement du bras du disque dur a été créé avec Simulink. Afin
d’accéder à ce bloc, il faut tout d’abord se placer dans le répertoire :
>>cd C:\ensps2a
Après avoir lancé Simulink, ouvrir le fichier C:\ensps2a\ddur.mdl. Ce bloc présente une entrée, la
tension u, et deux sorties, les mesures du courant ib et de la position θ : la position θ est obtenue
grâce à un codeur incrémental qui compte le nombre d’impulsions correspondant au déplacement
du bras ; la valeur analogique du courant ib est fournie par un capteur à effet Hall.
Ce bloc contient un sous-système. On accède à son schéma-bloc en double-cliquant dessus. Vérifier
que le modèle de ce système correspond à celui qui a été établi dans la partie 1.
Le bloc contient également une fonction d’animation permettant de visualiser en temps réel l’évolution
de la position du bras. Cette animation se lance automatiquement à chaque nouvelle simulation.
2. Dans le menu Simulation choisir l’option Parameters. Régler les paramètres de simulation de
manière à avoir un horizon de simulation de 1 seconde et un pas de simulation de 0, 1 ms.
Pour visualiser les sorties, on utilisera un oscilloscope virtuel (Scope). Veiller à régler ces paramètres
de manière à ce que tout le signal puisse être affiché.
Simuler les réponses indicielles des sorties pour des échelons de 0,1, 0,2, 0,25 et 0,5 Volt. Commenter.
Ib (s) 1
B(s) = = (2)
U (s) 5.10−3 s + 0, 5
Définir cette fonction de transfert à l’aide de la commande :
>>B=tf([1],[5e-3 0.5])
et lancer l’utilitaire de tracé de lieu d’Evans :
>>rltool(B)
Les points rouges sur le lieu d’Evans correspondent à la position des pôles du système bouclé pour
la valeur du gain donné dans le champs Gain. Ces pôles peuvent également être déplacés le long du
lieu d’Evans, la valeur correspondante du gain est réactualisée.
Dans Tools->Edit compensator il est possible d’ajouter des pôles et des zéros au correcteur. Il est
également possible d’utiliser le bouton Add zero (flèche pointant un cercle) ou le bouton Add pole
(flèche pointant une croix) puis de cliquer à l’endroit du plan complexe où on désire placer le zéro
ou le pôle. Ces derniers peuvent être déplacés par la suite en cliquant sur le bouton drag pole/zero
(flèche seule), le lieu d’Evans est réactualisé en temps réel.
3. A l’aide de rltool, faire la synthèse d’un correcteur analogique comportant un intégrateur et un
zéro à régler de manière à avoir un temps de réponse à 5% de 1, 25 ms. Simuler la réponse indicielle
pour un échelon de 0, 5 A. Faire un enregistrement du courant et de la grandeur de commande (la
tension). Conclure.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
∗
Θ +- R(z) Ib∗ U(s) Θ(z)
Cp(z) BOZ + Ci(s) Disque dur
- Ib(s)
un bloc de saturation pour la consigne de courant (voir figure 2). La valeur supérieure de cette saturation
est 3 A et sa valeur inférieure est −3 A.
1. Déterminer, en utilisant la fonction c2d, la fonction de transfert en boucle ouverte de l’asservisse-
Θ(z)
ment de position, P (z) = R(z) , si la période d’échantillonnage est de 1 ms.
2. Le correcteur utilisé pour l’asservissement de position est du second ordre (2 pôles et 2 zéros). Le
temps nécessaire au calcul de la commande est négligeable par rapport à la période d’échantillonnage.
La commande est donc appliquée au système quasiment en même temps que la mesure est échantillonnée.
Synthétiser ce correcteur en utilisant rltool de manière à annuler les pôles complexes conjugués
du système en respectant le cahier des charges suivant :
– Erreur statique nulle.
– Dépassement nul.
– Temps de réponse à 2% inférieur à 12 ms.
3. Simuler la réponse indicielle du système bouclé pour des échelons de position de 0, 1 rad et 0, 5 rad.
Faire l’enregistrement de la mesure et de la grandeur de commande. Expliquer le résultat obtenu.
4. Afin d’améliorer la robustesse du système on décide d’ajouter un pôle et un zéro au correcteur. La
synthèse du correcteur est toujours faite en utilisant rltool mais cette fois, on évite de compenser
la paire de pôles complexes conjugués du système.
Synthétiser le correcteur en respectant le cahier des charges suivant :
– Erreur statique nulle.
– Dépassement le plus faible possible.
– Temps de réponse le plus rapide possible.
5. Simuler la réponse indicielle du système bouclé pour des échelons de position de 0, 1 rad, 0, 5 rad
et 0, 8 rad. Faire l’enregistrement de la mesure et de la grandeur de commande. Commenter.
6. Refaire une simulation pour un déplacement de 0 à 0, 8 rad avec une consigne qui a la forme donnée
par la figure 3. Conclusion.
∗
Θ
0.8
0.01 t
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
TP 3 – Correction RST
Le but de ce TP est de mettre en place un correcteur RST pour asservir la position d’une maquette
construite autour d’un moteur à courant continu et d’un codeur optique incrémental.
Le TP se déroulera en 2 phases :
1. codage en langage C d’un correcteur RST d’ordre n ;
2. test de 2 correcteurs synthétisés avec la méthodologie RST en fonction de critères de synthèse
imposés.
Le correcteur sera implanté sur un PC muni d’une carte assurant l’interface avec le banc moteur. Pour
ce qui concerne le logiciel, les fonctions d’entrée–sortie sont fournies, ainsi que le programme assurant le
cadencement de la commande. Seul le correcteur est à programmer.
1 Préparation
1.1 Modélisation du système étudié
Le système étudié est un banc moteur de type HMC. Ce banc est composé d’un moteur à courant continu
de faible puissance (< 20 W ) couplé à un réducteur qui est lui-même couplé à un volant d’inertie. Le
codeur incrémental qui fournit la mesure de la position est couplé à l’arbre moteur. La grandeur de
commande du système est la tension U d’entrée d’un amplificateur à transistors qui est proportionnelle
à la tension appliquée à l’induit du moteur.
La fonction de transfert théorique, reliant l’entrée U du système à la mesure de position Θ, s’écrit :
Θ K
G(s) = = (3)
U s(1 + τ s)
Donner la fonction de transfert G(z) entre la commande U (z) et la sortie Θ(z), pour une période
d’échantillonnage Te quelconque.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
Θd (z) 1 Θ(z)
T (z − 1) +- G (z − 1)
S (z − 1)
R (z − 1)
1. La mesure de la position est acquise au moyen d’un codeur optique incrémental. Les fonctions
assurant la lecture du compteur et la conversion en degrés sont implémentées. La variable mesure
contient la mesure courante.
2. La variable consigne donne la consigne courante. Cette consigne est mise à jour en fonction des
commandes provenant de l’utilisateur.
3. La partie à coder est le calcul de la commande (variable commande) pour un correcteur RST
d’ordre n.
On demande en préparation d’écrire l’algorithme de ce correcteur en supposant que l’on connaı̂t :
– les n + 1 coefficients des polynômes R(z −1 ), S(z −1 ) et T (z −1), qui sont rangés dans des variables
(de type tableau) r, s et t dans l’ordre des puissances croissantes de z −1 :
R(z −1 ) = r[0] + r[1]z −1 + . . . + r[n]z −n
S(z −1 ) = s[0] + s[1]z −1 + . . . + s[n]z −n
T (z −1 ) = t[0] + t[1]z −1 + . . . + t[n]z −n
– les n + 1 dernières mesures rangées dans le tableau mes, de telle sorte que :
mes[0] = θ(k), mes[1] = θ(k − 1), . . .
– les n + 1 dernières consignes rangées dans le tableau cons, de telle sorte que :
cons[0] = θd (k), cons[1] = θd (k − 1), . . .
– les n + 1 précédentes commandes rangées dans le tableau com, de telle sorte que :
com[0] = u(k), com[1] = u(k − 1), . . .
L’algorithme doit calculer la commande u(k) en fonction des données puis stocker cette commande
dans la variable commande.
4. La commande stockée dans commande est ensuite envoyée dans le CNA.
5. On attend enfin le prochain top d’horloge avant de reboucler (fonctions de gestion de l’horloge
existantes en bibliothèque)
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
Fig. 6 – Organigramme du logiciel de commande.
2 Manipulation
1. Simuler avec Simulink le système analogique asservi avec votre correcteur numérique RST.
2. Le PC qui réalise l’asservissement temps réel est également celui qui est utilisé pour développer et
compiler les logiciels. Cette machine possède une carte convertisseur numérique/analogique pour
l’application des commandes ainsi qu’une carte compteur pour convertir les impulsions du codeur
incrémental en position angulaire. Le système d’exploitation utilisé est rtlinux (real-time linux).
Pour démarrer le système rtlinux, appuyer sur la touche SHIFT lorsque le message LILO apparaı̂t.
Attendre la fenêtre de login. Entrer le nom d’utilisateur ensps et le mot de passe ulp. Ouvrir un
terminal en cliquant l’icône de la barre des tâches représentant un terminal connecté à un serveur.
Taper la commande ini_rst pour initialiser le TP. Cette commande crée un répertoire nommé rst
contenant, entre autres, le fichier card_module.c. Pour aller dans ce répertoire, taper cd rst. Pour
éditer le fichier card_module.c, taper la commande nedit card_module.c &. Ce fichier contient
le code du programme d’asservissement.
Implementer en C le correcteur RST. Seul le calcul de la commande doit être programmé, le reste
est déjà fait (la partie à compléter est signalée par un commentaire) (voir figure 6).
Pour compiler card_module.c, taper simplement make.
3. Tester le correcteur RST :
– lancer le programme d’asservissement en tapant rst ;
– entrer les coefficients et définir le type de consigne, l’amplitude, la durée et tester au moins un
échelon indiciel de 1 deg et de 5 deg.
4. Amélioration du correcteur RST.
– Commenter les résultats obtenus. Pourquoi l’erreur statique n’est-elle pas nulle ?
– Refaire la synthèse d’un correcteur RST en imposant un intégrateur dans S(z −1 ). Simuler ce
correcteur avec Simulink, puis le tester. Conclure.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
TP 4 – Asservissement numérique de température
1 Moyens
On dispose :
– d’une maquette Feedback ;
– d’un ordinateur compatible PC équipé du système d’exploitation temps réel (rtlinux). Il possède par
ailleurs une carte d’interface qui comporte en entrée un convertisseur analogique numérique et en sortie
un convertisseur numérique analogique modélisé par un bloqueur d’ordre 0.
– un programme réalisant l’interface graphique entre l’utilisateur et le module d’asservissement (temp) ;
– Matlab sur une des machines en libre-service.
Pour démarrer le système rtlinux, appuyer sur la touche SHIFT lorsque le message LILO apparaı̂t.
Attendre la fenêtre de login. Entrer le nom d’utilisateur ensps et le mot de passe ulp. Ouvrir un terminal
en cliquant l’icône de la barre des tâches représentant un terminal connecté à un serveur.
Taper la commande ini_temp pour initialiser le TP. Cette commande crée un répertoire nommé temp
contenant, entre autres, le fichier card_module.c. Pour aller dans ce répertoire, taper cd temp. Pour
éditer le fichier card_module.c, taper la commande nedit card_module.c &. Ce fichier contient le code
du programme d’asservissement. Seul le calcul de la commande doit être programmé, le reste est déjà fait
(la partie à compléter est signalée par un commentaire) (voir figure 7).
Pour compiler card_module.c, taper simplement make.
2 Expérimentation
La fonction de transfert de ce système avec ouverture du clapet à 35 degrés ou throttle sur 4 (suivant le
modèle de maquette) et lorsque le capteur est placé à l’extrémité du conduit est la suivante (identifiée en
1ère année) :
e−0,18s
G(s) = (4)
(1 + 0, 25s)2
Dans ce qui suit, on suppose que le temps nécessaire au calcul de la commande est négligeable devant la
période d’échantilonnage.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006
Fig. 7 – Organigramme du logiciel de commande.
3. Etudier en simulation le système analogique avec son correcteur numérique en utilisant Simulink.
Utiliser le bloc ”transport delay” de la bibliothèque Simulink pour modéliser le retard.
4. Programmer le correcteur obtenu dans card_module.c à l’emplacement prévu à cet effet. Ne pas
oublier de définir la période d’échantillonnage (#define SAMPLING_PERIOD). Compiler le module
en tapant make.
5. Tester le correcteur en lançant temp. Commenter.
Ecole Nationale Supérieure de Physique de Strasbourg, 2ème Année L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006