Sujet TP SA Pendule

Embed Size (px)

Citation preview

  • TP de syste`mes asservis

    Pendule inverse

    PolytechTours Departement Productique

    2ie`me annee

    Dans un premier temps, lobjectif de ce TP est de realiser un bon as-servissement de position cest a` dire precis et rapide du chariot du pendule.Ensuite, un correcteur a` retour detat vous est propose pour commanderle chariot afin de maintenir inverse le pendule du chariot. Ce chariot estcommande par un moteur a` courant continu couple a` un reducteur.

    1 Presentation materielle et logicielle

    On dispose dune mesure de la position du chariot par un encodeur reliea` une carte dacquisition. Un autre encodeur permet de mesurer langle dupendule. Pour commander le moteur, la carte comprend une sortie analo-gique. Celle-ci est reliee a` un ampli de puissance qui delivre la tension decommande au moteur. Verifier les branchements et identifier chaque element.

    Le schema en figure 1 represente un schema du materiel utilise.

    CNA

    ampli de puissance

    chariotCAN

    PC : consigne calcul de

    commande

    carte d'acquisition (encodeur)sortie analogique de la carte

    positioncommande moteur

    Fig. 1 Schema du cablage du pendule

    La carte dacquisition est pilotable par un ensemble de logiciels dontWincon 3.2 serveur est le point dentree. Pour realiser vos essais, vous ou-vrirez ce logiciel puis le fichier position.wcl pour faire lasservissement deposition puis le fichier pendule inverse.wcl pour maintenir le pendule in-verse. Ces fichiers souvrent a` partir du menu Model de Wincon server. Ces

    1

  • fichiers se trouvent dans C:\TPSA. De preference, copier ce repertoire survotre compte. Sil ne vous semble pas conforme, vous pouvez telecharger cedossier compresse sur le serveur http://auto.polytech.univ-tours.fr/.Vous pouvez visualiser ce que fait cet asservissement et le modifier en lou-vrant dans simulink. Si vous le modifiez, dans simulink, il faut executer lins-truction Build qui se trouve dans le menuWincon. A la fin de la compilation,vous pouvez appuyer sur le bouton START deWincon Serveur. Pendant quelasservissement se fait, vous pouvez visualiser un scope (bouton visualiser).La figure 2 explique lutilite des boutons du logiciel. La figure 3 representele mode`le simulink fourni. On peut reperer quil sagit dune boucle fermeeavec un gain de 2.

    ouvrir modle position.wcl

    visualise le modle sous simulinksi le modle est modifi, faire Build dans

    le menu wincon de simulink

    dmarre l'asservissement

    choisir de visualiser le scope

    Fig. 2 Explication des boutons de Wincon Serveur 3.2

    erreur Quanser ConsultingMQ3 ENC

    sortie du systeme

    0.001

    gain capteur

    Quanser ConsultingMQ3 DAC

    entree du systeme

    consigne Scope

    2

    Gain

    Commande0

    Mesure

    Sortie

    Fig. 3 Mode`le simulink de lasservissement en BF (fourni)

    Ce scope nest pas tre`s pratique pour etudier les courbes. Nous allonsrecuperer les valeurs de ce qui est represente pour les retracer sous Mat-lab. Depuis la fenetre du scope, choisir les variables contenues dans le scope

    2

  • (menu Files Variables...). Puis, au moment opportun (apre`s un echelonpositif bien centre), choisir denregistrer les variables dans lespace de tra-vail de Matlab (menu File Save Save To Workspace). Ensuite, dansMaltab, vous pouvez demander a` tracer les courbes en tapant linstructionplot(plot_time,[position_Scope_0_ position_Scope_1_ position_Scope_2_]Cette instruction longue a ete enregistree dans un programme Matlab, tra-cer. Il suffit donc de taper tracer pour obtenir la figure souhaitee.

    La figure 4 montre certaines etapes de ce travail.

    0 1 2 3 4 5 62

    1

    0

    1

    2

    3

    4

    5

    Fig. 4 Quelques etapes pour recuperer les variables dans Matlab et lacourbe obtenue par linstruction plot(...)

    2 Asservissement de position du chariot

    Dans cette premie`re partie, nous ne considerons que le chariot com-mande en translation par le moteur. On va chercher a` realiser un asservisse-ment de position du chariot en appliquant la bonne commande au moteur.Pour cela, la demarche proposee contient 3 etapes : identification, recherchedu meilleur correcteur proportionnel puis application dun correcteur pluselabore (avance de phase ou PID).

    2.1 Identification

    Lentree du syste`me est la tension U aux bornes du moteur. La sortie estla position recuperee par la carte dacquisition. Proposer plusieurs methodesdidentification et appliquer une au moins de ces methodes pour trouverune estimation de la fonction de transfert du syste`me que lon appelera

    3

  • T (p). Tester par simulation sur Matlab et simulink que le comportement dusyste`me identifie simule ressemble au comportement du syste`me reel.

    2.2 Correcteur Proportionnel

    Realiser un asservissement avec un correcteur proportionnel et donnerune valeur de gain qui donne le temps de reponse a` 95% le plus court. (Onchoisira des echelons damplitude 1).

    2.3 Correcteur

    En simulation dabord, puis sur la maquette, inserer un correcteur avancede phase pour ameliorer le compromis rapidite precision. On souhaite diviserainsi le temps de reponse precedent par 2. Verifier que la commande restedans des plages de valeurs raisonnables. On pourra utiliser la simulationinteractive dun correcteur avance de phase avec Sysquake.

    3 Retour detat pour le pendule inverse

    3.1 Mode`le du syste`me en BO

    Cette fois, nous considerons le syste`me compose du chariot et du pen-dule. Ce dernier sera considere en haut avec un petit angle par rapport a` laverticale. Les equations mecaniques de ce syste`me sont :

    (mp +mc)x+mplp cos()mp2lp sin() = Fmplp cos()xmplp sin()+mpl2p mpglp sin() = 0

    La linearisation de ces equations en considerant petit donnent la representation

    detat suivante : Le vecteur detat est : X =[x x

    ]T. Les equations

    detat sont :

    X =

    0 0 1 00 0 0 10 mpgmc 0 00 (mc+mp)gmclp 0 0

    .X +

    001mc 1mclp

    .FEnfin la sortie peut etre consideree comme le couple position du chariot etangle du pendule soit :

    Y =

    [1 0 0 00 1 0 0

    ].X

    ou` : F est la force appliquee au chariot

    4

  • mp est la masse du pendule mc est la masse du chariot g = est lacceleration due a` lattraction terrestre lp est la demi-longueur du pendule

    La force F est liee a` la tension aux bornes du moteur et a` sa vitesse selonla relation :

    F =KmKgRr

    V (KmKgRr

    )2x

    On en deduit la representation detat du syste`me en considerant la tensionV comme entree et avec lapplication numerique :

    X =

    0 0 1 00 0 0 10 4.5 16.8 00 46.9 55.3 0

    .X +

    003.812.4

    .V

    3.2 Principe de la commande par retour detat

    En supposant connu letat du syste`me, cest a` dire le vecteur X =[x x

    ]T, on va realiser une commande par retour detat. Cela si-

    gnifie que la commande appliquee au moteur sera :

    V = (g1(x xc) + g2x+ g3+ g4

    ou` xc est la position de consigne. La matrice Abf de la representation detaten BF sera Abf = A B.G. Pour obtenir le correcteur, une methode diteLQR pour Linear Quadratic Regulator cherche le vecteur G pour minimiserun crite`re

    J =(x.Q.x+ r.V 2)dt

    Pour calculer ce correcteur, on choisira

    Q =

    0.25 0 0 00 2 0 00 0 0 00 0 0 0

    r = 0.0003Ce qui revient a` minimiser le crite`re J =

    (0.25x2 + 22 + 0.0003V 2)dt.

    Ce crite`re penalise plus un ecart dangle quun ecart de position. Il penaliseegalement une tension trop grande envoyee au moteur. Pour obtenir le cor-recteur a` mettre en place on peut utiliser la commande matlab suivante :lqr(A,B,Q,r).

    5

  • 3.3 Tester le correcteur en simulation et sur la maquette

    Tester le correcteur calcule avec la methode precedente sur Matlab / Si-mulink avec le fichier simu pendule inverse.mdl. Donner une interpretationaux courbes obtenues pour la position du chariot et langle du pendule lors-quun echelon est applique a` la consigne de position.

    Si la reponse en simulation est satisfaisante, on peut appliquer le correc-teur sur la maquette reelle en utilisant le fichier pendule inverse.wcl a` ouvriravec Wincon server et a` modifier dans simulink. Vous choisirez en consigneun pulse de 10 cm avec une periode de 40s.

    Avant dappuyer sur le bouton START, il faut maintenir le pendule enequilibre en position haute. Cest tre`s important car cest au moment de lap-pui sur START que la reference de langle nul est realisee. Il faut egalementIMPERATIVEMENT se tenir pret a` appuyer sur STOP (le bouton STARTse transforme en STOP une fois appuye) si le syste`me diverge car il y a unrisque dendommager les pignons en plastique de larbre moteur.

    Si vous narrivez pas a` trouver le bon correcteur, demander a` lenseignantqui vous en fournira un pour realiser un essai. Tracer les reponses en angle eten position et faire le rapprochement avec les courbes obtenues en simulation.Linterpretation des courbes correspond-elle bien a` ce que vous observez ?

    6