10
TP 1 – Asservissement num´ erique d’un syst` eme continu L’objectif de ce TP est de mettre en ´ evidence les effets de l’´ echantillonnage et de la num´ erisation des cor- recteurs continus. Ce TP s’effectuera 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 s’agit de tensions, mesur´ ees en Volts). Sa fonction de transfert, identifi´ ee au point de fonctionnement, s’´ ecrit : G(s)= Y (s) U (s) = 2, 3 s(1 + 0, 1s) , o` u s esigne la variable de Laplace. 1 Correction proportionnelle 1.1 Correcteur analogique 1. D´ efinir la fonction de transfert du syst` eme ` a l’aide de la commande : >>G=tf([2.3],[0.1 1 0]) et lancer l’utilitaire de trac´ e du lieu d’Evans avec la commande : >>rltool(G) Les points rouges sur le lieu d’Evans correspondent ` a la position des pˆ oles du syst` eme boucl´ e pour la valeur du gain indiqu´ ee dans l’afficheur Gain. Ces pˆ oles peuvent ˆ etre d´ eplac´ es le long du lieu d’Evans. La valeur du gain est alors r´ eactualis´ ee. 2. Faire la synth` ese d’un correcteur proportionnel analogique de sorte que le syst` eme asservi ait un facteur d’amortissement ´ egal ` a 0,707. 3. Simuler ` a l’aide de rltool la r´ eponse indicielle du syst` eme asservi pour un ´ echelon unitaire. Identifier les ´ el´ ements caract´ eristiques de la r´ eponse confirmant 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 diff´ erents blocs ecessaires (fonction de transfert continue, sommateur, gain, oscilloscope pour visualiser, etc.), que l’on fera glisser dans la 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 l’environnement 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 l’asservissement analogique en un asservissement num´ erique en supposant que la chaˆ ıne directe int` egre alors un bloqueur d’ordre z´ ero et qu’un retard d’une 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 diff´ erentes p´ eriodes d’´ echantillonnage : 10, 25, 50, 100, 250 et 500 ms. Comparer ces r´ eponses ` a celle l’asservissement analogique et commenter. Indiquer pour quelle p´ eriode d’´ echantillonnage le syst` eme asservi devient instable. 3. Nous faisons maintenant l’hypoth` 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 d’amplitude 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 diff´ erence de comporte- ment face ` a ce bruit. 4. Refaire l’exp´ erience avec un bruit ` a 150 Hz et commenter. 5. Ajouter un filtre analogique de Butterworth d’ordre 2 ` a l’asservissement num´ erique de mani` ere ` a rejeter correctement les bruit de mesure. V´ erifier l’efficacit´ e du filtrage par un essai indiciel. Ecole Nationale Sup´ erieure de Physique de Strasbourg, 2` eme Ann´ ee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

Embed Size (px)

Citation preview

Page 1: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

TP 1 – Asservissement numerique d’un systeme continu

L’objectif de ce TP est de mettre en evidence les effets de l’echantillonnage et de la numerisation des cor-recteurs continus. Ce TP s’effectuera entierement en simulation avec Matlab et la boıte a outils Simulink.Le systeme etudie possede une seule sortie y et une seule entree u (il s’agit de tensions, mesurees enVolts). Sa fonction de transfert, identifiee au point de fonctionnement, s’ecrit :

G(s) =Y (s)

U(s)=

2, 3

s(1 + 0, 1s),

ou s designe la variable de Laplace.

1 Correction proportionnelle

1.1 Correcteur analogique

1. Definir la fonction de transfert du systeme a l’aide de la commande :

>>G=tf([2.3],[0.1 1 0])

et lancer l’utilitaire de trace du lieu d’Evans avec la commande :

>>rltool(G)

Les points rouges sur le lieu d’Evans correspondent a la position des poles du systeme boucle pourla valeur du gain indiquee dans l’afficheur Gain. Ces poles peuvent etre deplaces le long du lieud’Evans. La valeur du gain est alors reactualisee.

2. Faire la synthese d’un correcteur proportionnel analogique de sorte que le systeme asservi ait unfacteur d’amortissement egal a 0,707.

3. Simuler a l’aide de rltool la reponse indicielle du systeme asservi pour un echelon unitaire. Identifierles elements caracteristiques de la reponse confirmant le bon reglage du correcteur.

4. Lancer Simulink avec la commande :

>>simulink

Construire un modele Simulink du systeme analogique en boucle fermee comprenant le correcteurproportionnel determine. Pour cela, on recherchera dans les menus de Simulink les differents blocsnecessaires (fonction de transfert continue, sommateur, gain, oscilloscope pour visualiser, etc.), quel’on fera glisser dans la modele. La fonction de transfert G(s) de meme que le gain determinesprecedemment seront utilises dans ce modele, Simulink partageant les variables de l’environnementde Matlab (son Workspace en anglais dans le logiciel).

5. Ce modele construit, retrouver la reponse indicielle du systeme en boucle fermee pour un echelonunitaire.

1.2 Correcteur numerique

1. Creer un nouveau modele. Transformer l’asservissement analogique en un asservissement numeriqueen supposant que la chaıne directe integre alors un bloqueur d’ordre zero et qu’un retard d’uneperiode d’echantillonnage apparait pour modeliser le temps de calcul de la commande.

2. Simuler la reponse indicielle du systeme asservi pour differentes periodes d’echantillonnage : 10, 25, 50, 100, 250et 500 ms. Comparer ces reponses a celle l’asservissement analogique et commenter. Indiquer pourquelle periode d’echantillonnage le systeme asservi devient instable.

3. Nous faisons maintenant l’hypothese que le systeme asservi est soumis a un bruit de mesure danssa boucle de retour. Ce bruit est sinusoıdal, de frequence 122 Hz et d’amplitude unite. Comparerla reponse indicielle du systeme asservi avec le correcteur analogique a celle du systeme asservinumeriquement avec une periode d’echantillonnage de 25 ms. Expliquer le difference de comporte-ment face a ce bruit.

4. Refaire l’experience avec un bruit a 150 Hz et commenter.

5. Ajouter un filtre analogique de Butterworth d’ordre 2 a l’asservissement numerique de maniere arejeter correctement les bruit de mesure. Verifier l’efficacite du filtrage par un essai indiciel.

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 2: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

2 Rejet de perturbations

2.1 Rejet d’une perturbation d’entree

Le convertisseur numerique/analogique (CNA) a un offset de +0,2 V . Cet offset est equivalent a uneperturbation d’entree constante sur la commande.

1. Creer un nouveau modele. Simuler la reponse indicielle du systeme asservi avec le correcteurnumerique precedent et l’offset de 0,2 V .

On souhaite synthetiser un correcteur d’ordre reduit permettant de rejeter cette perturbation d’entree.La synthese 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 systemeboucle respecte le cahier des charges suivant :– erreur statique nulle en presence d’une perturbation d’entree constante ;– depassement inferieur a 15% ;– temps de reponse a 5% inferieur a 1 s.Pour cela on notera que dans l’utilitaire rltool, il est possible d’ajouter des poles et des zerosau correcteur (dans Tools → Edit compensator ou simplement en cliquant sur le bloc K). Il estegalement possible d’utiliser le bouton Add zero (fleche pointant un cercle) ou le bouton Add pole

(fleche pointant une croix) puis de cliquer a l’endroit du plan complexe ou on desire placer le zeroou le pole. Ces derniers peuvent etre deplaces par la suite en cliquant sur le bouton drag pole/zero(fleche seule) ; le lieu d’Evans est alors reactualise.

3. Appliquer la transformation bilineaire :

s →

2

Te

z − 1

z + 1

avec Te periode d’echantillonnage, pour passer du correcteur continu au correcteur numerique. Ceciest realise en utilisant la fonction c2d de Matlab. Pour bien approcher le correcteur continu, onchoisira Te suffisamment faible.

4. Simuler la reponse indicielle de l’asservissement numerique ainsi obtenu.

2.2 Effet de la quantification

Le convertisseur numerique/analogique (CNA) et le convertisseur analogique/numerique (CAN) intro-duisent respectivement une quantification de la commande et une quantification de la mesure de position.Nous faisons l’hypothese que le pas de quantification est de 0,5.

1. Simuler l’effet de la quantification au niveau de la commande sur la reponse indicielle du systemeavec le correcteur numerique precedent. Utiliser pour cela le bloc quantizer de la bibliotheque nonlineaire de Simulink.

2. Simuler l’effet de la quantification au niveau de la mesure (CAN) sur une reponse indicielle.

3. Expliquer pourquoi ces effets sont tres differents. Si la mesure de position est realisee avec un codeurincremental, calculer quelle devrait etre la resolution minimale de ce codeur pour que l’amplitudedu bruit de quantification soit inferieure a un 0,1 V .

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 3: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

TP 2 – Synthese d’un asservissement de

position par placement de pole

L’objectif de ce TP est de simuler l’asservissement de position des tetes de lecture/ecriture d’un disquedur. Afin de garantir un temps de reponse minimal on utilise un actionneur electromagnetique lineaireassocie a un ressort de rappel (voir figure 1). L’actionneur est constitue d’une bobine fixe et d’un noyau

ressort de rappel

tête de lecture/écriture

plateau du disque

actionneur linéaire électromagnétique

θ

θ max

bras

Fig. 1 – Schema du systeme de deplacement des tetes.

en materiau ferro-magnetique mobile en translation. Le passage d’un courant dans la bobine genere uneforce sur le noyau dont le sens depend du sens du courant.Lorsque la bobine n’est pas traversee par un courant, le bras se replie sous l’action du ressort vers uneposition dite ¡¡ de securite ¿¿, c’est-a-dire une position ou les tetes sont protegees et ne sont pas au-dessus de la surface du disque. Cette position correspond a θ = 0 sur la figure 1. D’autre part, une buteemecanique empeche le bras de se deplacer d’un angle superieur a θmax.

1 Modelisation du systeme

1. La commande appliquee au systeme est une tension u variant de -12 a 12 Volts. Cette tension estappliquee a la bobine de l’actionneur. Cette bobine a une resistance Rb = 0.5 Ω et une inductanceLb = 5 mH . La force exercee par cet actionneur sur le bras produit un couple γa qui est proportionnelau 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 valeurabsolue) qui peut traverser la bobine est de Imax = 3 A.

Determiner la fonction de transfert entre u et γa.

2. Le ressort a une raideur equivalente en torsion Kr = 1, 875 N.m.rad−1. Soit θr = −0, 0333 rad laposition angulaire de repli du bras en l’absence de courant dans la bobine et s’il n’y avait pas debutee 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 debattement utile du bras, c’est-a-dire le secteur angulaire ou la tete est au-dessus des pistesmagnetiques s’etend de θu1

= 0, 1 rad a θu2= 0, 9 rad.

Determiner la fonction de transfert entre γa et θ en supposant que le systeme est dans

sa plage de fonctionnement lineaire.

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 4: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

3. Calculer, en regime permanent, le courant necessaire pour maintenir le bras dans la

position θ =θu1

+θu2

2 .

2 Simulation du systeme

1. Un bloc simulant le systeme de deplacement du bras du disque dur a ete cree avec Simulink. Afind’acceder a ce bloc, il faut tout d’abord se placer dans le repertoire :

>>cd C:\ensps2a

Apres avoir lance Simulink, ouvrir le fichier C:\ensps2a\ddur.mdl. Ce bloc presente une entree, latension u, et deux sorties, les mesures du courant ib et de la position θ : la position θ est obtenuegrace a un codeur incremental qui compte le nombre d’impulsions correspondant au deplacementdu bras ; la valeur analogique du courant ib est fournie par un capteur a effet Hall.

Ce bloc contient un sous-systeme. On accede a son schema-bloc en double-cliquant dessus. Verifierque le modele de ce systeme correspond a celui qui a ete etabli dans la partie 1.

Le bloc contient egalement une fonction d’animation permettant de visualiser en temps reel l’evolutionde la position du bras. Cette animation se lance automatiquement a chaque nouvelle simulation.

2. Dans le menu Simulation choisir l’option Parameters. Regler les parametres de simulation demaniere a 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 a regler ces parametresde maniere a ce que tout le signal puisse etre affiche.

Simuler les reponses indicielles des sorties pour des echelons de 0,1, 0,2, 0,25 et 0,5 Volt. Commenter.

3 Realisation d’un asservissement de courant

1. On desire realiser un asservissement du courant circulant dans la bobine. Pour des raisons de coutde fabrication, on opte pour un asservissement analogique du courant. Justifier l’interet d’un telasservissement.

2. Soit B(s) la fonction de transfert entre u et ib :

B(s) =Ib(s)

U(s)=

1

5.10−3s + 0, 5(2)

Definir cette fonction de transfert a l’aide de la commande :

>>B=tf([1],[5e-3 0.5])

et lancer l’utilitaire de trace de lieu d’Evans :

>>rltool(B)

Les points rouges sur le lieu d’Evans correspondent a la position des poles du systeme boucle pourla valeur du gain donne dans le champs Gain. Ces poles peuvent egalement etre deplaces le long dulieu d’Evans, la valeur correspondante du gain est reactualisee.

Dans Tools->Edit compensator il est possible d’ajouter des poles et des zeros au correcteur. Il estegalement possible d’utiliser le bouton Add zero (fleche pointant un cercle) ou le bouton Add pole

(fleche pointant une croix) puis de cliquer a l’endroit du plan complexe ou on desire placer le zeroou le pole. Ces derniers peuvent etre deplaces par la suite en cliquant sur le bouton drag pole/zero(fleche seule), le lieu d’Evans est reactualise en temps reel.

3. A l’aide de rltool, faire la synthese d’un correcteur analogique comportant un integrateur et unzero a regler de maniere a avoir un temps de reponse a 5% de 1, 25 ms. Simuler la reponse indiciellepour un echelon de 0, 5 A. Faire un enregistrement du courant et de la grandeur de commande (latension). Conclure.

4 Asservissement numerique de la position

Dans cette partie, on conserve la boucle de courant telle qu’elle a ete determinee a la question precedente.D’autre part, afin que le courant ne puisse pas atteindre des valeurs prohibitives dans la bobine, on ajoute

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 5: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

Θ ∗ I∗b Disque durCi(s)

Ib(s)-+

U(s)BOZ

-+ Cp(z)Θ(z)R(z)

Fig. 2 – Asservissement numerique de position.

un bloc de saturation pour la consigne de courant (voir figure 2). La valeur superieure de cette saturationest 3 A et sa valeur inferieure est −3 A.

1. Determiner, en utilisant la fonction c2d, la fonction de transfert en boucle ouverte de l’asservisse-

ment de position, P (z) = Θ(z)R(z) , si la periode d’echantillonnage est de 1 ms.

2. Le correcteur utilise pour l’asservissement de position est du second ordre (2 poles et 2 zeros). Letemps necessaire au calcul de la commande est negligeable par rapport a la periode d’echantillonnage.La commande est donc appliquee au systeme quasiment en meme temps que la mesure est echantillonnee.

Synthetiser ce correcteur en utilisant rltool de maniere a annuler les poles complexes conjuguesdu systeme en respectant le cahier des charges suivant :– Erreur statique nulle.– Depassement nul.– Temps de reponse a 2% inferieur a 12 ms.

3. Simuler la reponse indicielle du systeme boucle pour des echelons de position de 0, 1 rad et 0, 5 rad.Faire l’enregistrement de la mesure et de la grandeur de commande. Expliquer le resultat obtenu.

4. Afin d’ameliorer la robustesse du systeme on decide d’ajouter un pole et un zero au correcteur. Lasynthese du correcteur est toujours faite en utilisant rltool mais cette fois, on evite de compenserla paire de poles complexes conjugues du systeme.

Synthetiser le correcteur en respectant le cahier des charges suivant :– Erreur statique nulle.– Depassement le plus faible possible.– Temps de reponse le plus rapide possible.

5. Simuler la reponse indicielle du systeme boucle pour des echelons 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 deplacement de 0 a 0, 8 rad avec une consigne qui a la forme donneepar la figure 3. Conclusion.

t

Θ ∗

0.8

0.01

Fig. 3 – Consigne de position.

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 6: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

TP 3 – Correction RST

Le but de ce TP est de mettre en place un correcteur RST pour asservir la position d’une maquetteconstruite autour d’un moteur a courant continu et d’un codeur optique incremental.Le TP se deroulera en 2 phases :

1. codage en langage C d’un correcteur RST d’ordre n ;

2. test de 2 correcteurs synthetises avec la methodologie RST en fonction de criteres de syntheseimposes.

Le correcteur sera implante sur un PC muni d’une carte assurant l’interface avec le banc moteur. Pource qui concerne le logiciel, les fonctions d’entree–sortie sont fournies, ainsi que le programme assurant lecadencement de la commande. Seul le correcteur est a programmer.

1 Preparation

1.1 Modelisation du systeme etudie

Le systeme etudie est un banc moteur de type HMC. Ce banc est compose d’un moteur a courant continude faible puissance (< 20 W ) couple a un reducteur qui est lui-meme couple a un volant d’inertie. Lecodeur incremental qui fournit la mesure de la position est couple a l’arbre moteur. La grandeur decommande du systeme est la tension U d’entree d’un amplificateur a transistors qui est proportionnellea la tension appliquee a l’induit du moteur.La fonction de transfert theorique, reliant l’entree U du systeme a la mesure de position Θ, s’ecrit :

G(s) =Θ

U=

K

s(1 + τs)(3)

Les valeurs numeriques 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 systeme est pilote a l’aide d’un ordinateur realisant l’asservissement numerique. Le CNA utilise estmodelise par un bloqueur d’ordre zero B0(s). En supposant que l’on echantillonne de facon synchronela commande et la mesure, et que le gain du CNA est unitaire, la representation du systeme en boucleouverte est celle decrite par la figure 4.

Fig. 4 – Systeme a commander.

Donner la fonction de transfert G(z) entre la commande U(z) et la sortie Θ(z), pour une perioded’echantillonnage Te quelconque.

1.2 Algorithme de commande RST

On souhaite realiser une commande RST decrite par la figure 5. Une grande partie du logiciel est dejaecrite. Le logiciel realisant la commande est globalement organise conformement a la description de lafigure 6.On supposera par la suite que le temps necessaire pour effectuer la mesure, le calcul, et l’envoi de lacommande est negligeable (tres petit devant la periode d’echantillonnage).Le programme effectue des instructions en boucle infinie. La boucle est organisee en cinq etapes :

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 7: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

Θ(z)Θd(z) 1

S(z− 1)+-T(z− 1) G(z− 1)

R(z− 1)

Fig. 5 – Commande RST.

1. La mesure de la position est acquise au moyen d’un codeur optique incremental. Les fonctionsassurant la lecture du compteur et la conversion en degres sont implementees. La variable mesure

contient la mesure courante.

2. La variable consigne donne la consigne courante. Cette consigne est mise a jour en fonction descommandes provenant de l’utilisateur.

3. La partie a coder est le calcul de la commande (variable commande) pour un correcteur RSTd’ordre n.

On demande en preparation d’ecrire l’algorithme de ce correcteur en supposant que l’on connaıt :– les n+1 coefficients des polynomes R(z−1), S(z−1) et T (z−1), qui sont ranges 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 dernieres mesures rangees dans le tableau mes, de telle sorte que :

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

– les n + 1 dernieres consignes rangees dans le tableau cons, de telle sorte que :

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

– les n + 1 precedentes commandes rangees 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 donnees puis stocker cette commandedans la variable commande.

4. La commande stockee dans commande est ensuite envoyee dans le CNA.

5. On attend enfin le prochain top d’horloge avant de reboucler (fonctions de gestion de l’horlogeexistantes en bibliotheque)

1.3 Calcul d’un correcteur RST

Calculer un correcteur RST tel que :– Le comportement en boucle fermee soit du second ordre avec ωn = 25 rad.s−1 et ζ = 0, 7 (ωd =

ωn

1 − ζ2).– L’erreur permanente vis a vis de l’entree soit nulle.La periode d’echantillonnage choisie est de 10 ms. On prendra soin de ne pas compenser le zero a partiereelle negative car cela introduirait une commande oscillante. On peut choisir de compenser ou non lespoles stables.La validite de G(z) pour une periode de 10 ms peut etre verifiee avec Matlab (sur une des machines enlibre-service) grace a la fonction c2d.Le calcul du correcteur RST implique entre autres la resolution d’une equation Diophantienne. Cetteequation se ramene a la resolution d’un systeme de n equations a n inconnues. On pourra avantageusementutiliser Matlab pour resoudre ce systeme.

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 8: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

Fig. 6 – Organigramme du logiciel de commande.

2 Manipulation

1. Simuler avec Simulink le systeme analogique asservi avec votre correcteur numerique RST.

2. Le PC qui realise l’asservissement temps reel est egalement celui qui est utilise pour developper etcompiler les logiciels. Cette machine possede une carte convertisseur numerique/analogique pourl’application des commandes ainsi qu’une carte compteur pour convertir les impulsions du codeurincremental en position angulaire. Le systeme d’exploitation utilise est rtlinux (real-time linux).

Pour demarrer le systeme rtlinux, appuyer sur la touche SHIFT lorsque le message LILO apparaıt.Attendre la fenetre de login. Entrer le nom d’utilisateur ensps et le mot de passe ulp. Ouvrir unterminal en cliquant l’icone de la barre des taches representant un terminal connecte a un serveur.

Taper la commande ini_rst pour initialiser le TP. Cette commande cree un repertoire nomme rstcontenant, entre autres, le fichier card_module.c. Pour aller dans ce repertoire, taper cd rst. Pourediter le fichier card_module.c, taper la commande nedit card_module.c &. Ce fichier contientle code du programme d’asservissement.

Implementer en C le correcteur RST. Seul le calcul de la commande doit etre programme, le resteest deja fait (la partie a completer est signalee 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 definir le type de consigne, l’amplitude, la duree et tester au moins un

echelon indiciel de 1 deg et de 5 deg.

4. Amelioration du correcteur RST.– Commenter les resultats obtenus. Pourquoi l’erreur statique n’est-elle pas nulle ?– Refaire la synthese d’un correcteur RST en imposant un integrateur dans S(z−1). Simuler ce

correcteur avec Simulink, puis le tester. Conclure.

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 9: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

TP 4 – Asservissement numerique de temperature

L’objectif de ce TP est de realiser un asservissement numerique de temperature. Le systeme a reguler estla maquette Feedback qui a deja ete utilisee lors d’un TP d’automatique de 1ere annee. Les particularitesde ce systeme sont :– une constante de temps lente ;– un retard du au transport de l’air.

1 Moyens

On dispose :– d’une maquette Feedback ;– d’un ordinateur compatible PC equipe du systeme d’exploitation temps reel (rtlinux). Il possede par

ailleurs une carte d’interface qui comporte en entree un convertisseur analogique numerique et en sortieun convertisseur numerique analogique modelise par un bloqueur d’ordre 0.

– un programme realisant l’interface graphique entre l’utilisateur et le module d’asservissement (temp) ;– Matlab sur une des machines en libre-service.Pour demarrer le systeme rtlinux, appuyer sur la touche SHIFT lorsque le message LILO apparaıt.Attendre la fenetre de login. Entrer le nom d’utilisateur ensps et le mot de passe ulp. Ouvrir un terminalen cliquant l’icone de la barre des taches representant un terminal connecte a un serveur.Taper la commande ini_temp pour initialiser le TP. Cette commande cree un repertoire nomme temp

contenant, entre autres, le fichier card_module.c. Pour aller dans ce repertoire, taper cd temp. Pourediter le fichier card_module.c, taper la commande nedit card_module.c &. Ce fichier contient le codedu programme d’asservissement. Seul le calcul de la commande doit etre programme, le reste est deja fait(la partie a completer est signalee par un commentaire) (voir figure 7).Pour compiler card_module.c, taper simplement make.

2 Experimentation

La fonction de transfert de ce systeme avec ouverture du clapet a 35 degres ou throttle sur 4 (suivant lemodele de maquette) et lorsque le capteur est place a l’extremite du conduit est la suivante (identifiee en1ere annee) :

G(s) =e−0,18s

(1 + 0, 25s)2(4)

Dans ce qui suit, on suppose que le temps necessaire au calcul de la commande est negligeable devant laperiode d’echantilonnage.

2.1 Methode de synthese basee sur le correcteur continu

1. A l’aide des outils logiciels (commande abs et angle de Matlab), faire la synthese d’un correcteurC(s) continu du second ordre (C(s) a 2 poles et 2 zeros) tel que le systeme corrige boucle satisfasseau cahier des charges suivant :– Erreur permanente nulle pour une consigne en echelon,– Compensation des poles dominants du systeme,– Marge de phase de 45 deg.Faire une synthese analogique a l’aide du diagramme de Bode.

2. Appliquer la transformation bilineaire pour passer de C(s) a C(z) :

s →

2

Te

z − 1

z + 1(5)

avec Te, la periode d’echantillonnage du correcteur numerique (fonction c2d de Matlab). On choisiraTe suffisamment faible pour bien approcher le correcteur continu (typiquement 10 ms).

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006

Page 10: 1 Correction proportionnelle - icube-avr.unistra.fricube-avr.unistra.fr/fr/images/a/a8/Tp2a1.pdf · TP 1 – Asservissement num´erique d’un syst`eme continu L’objectif de ce

Fig. 7 – Organigramme du logiciel de commande.

3. Etudier en simulation le systeme analogique avec son correcteur numerique en utilisant Simulink.Utiliser le bloc ”transport delay” de la bibliotheque Simulink pour modeliser le retard.

4. Programmer le correcteur obtenu dans card_module.c a l’emplacement prevu a cet effet. Ne pasoublier de definir la periode d’echantillonnage (#define SAMPLING_PERIOD). Compiler le moduleen tapant make.

5. Tester le correcteur en lancant temp. Commenter.

2.2 Synthese directe du correcteur numerique

1. Calculer la transmittance echantillonnee G(z) du systeme en boucle ouverte (commande c2d).

2. Faire la synthese d’un correcteur numerique du second ordre (2 poles et 2 zeros) avec le lieu desracines (fonction rltool de Matlab) qui respecte le cahier des charges suivant :– Erreur permanente nulle pour une consigne en echelon,– Compensation des poles dominants du systeme,– Depassement nul.

3. Simuler le correcteur numerique sur le systeme analogique. Ensuite, implanter le correcteur numeriquesur le systeme reel et mesurer les caracteristiques du systeme reel corrige.

Ecole Nationale Superieure de Physique de Strasbourg, 2eme Annee L. Cuvillon, S. Lecler, B. Maurin et L. Ott – 2005-2006