DÉPARTEMENT DE GÉNIE DE LA PRODUCTION AUTOMATISÉE GPA-783 ASSERVISSEMENT NUMERIQUE EN TEMPS REEL MANIPULATION #1 Acquisition de données et identification du procédé à commander par PASCAL BIGRAS RÉDIGÉ: Août 1999 REVISÉ: Hiver 2010 2 Introduction Le procédé qui sera commandé durant les laboratoires du cours d’asservissement numérique en temps réel est le vérin électrique illustré par la Figure 1. Le mouvement de la partie mobile de ce vérin est actionné par un moteur à courant continu qui est alimenté par un amplificateur de puissance dont la tension d’entrée peut varier entre –10 et +10 volts. Comme l’indique la Figure 1, la position de la partie mobile du vérin est mesurée par un encodeur incrémental. La Figure 2 montre l’environnement de travail du laboratoire. Elle indique entre autre que les entrées-sorties du procédé à commander (vérin) sont connectées à une carte d’acquisition qui est insérée à l’intérieur d’un ordinateur fonctionnant sous le système d’exploitation Windows. En effet, l’entrée de l’amplificateur de puissance est branchée au premier convertisseur numérique à analogique (N/A) de la carte d’acquisition tandis que l’encodeur incrémental est branché au décodeur de position de cette même carte. Ces signaux d’entrées-sorties sont accessibles par l’entremise du logiciel LABVIEW. Dans les manipulations qui suivront, ce logiciel sera utilisé pour programmer en temps réel, dans un langage graphique propre à LABVIEW, les systèmes de commande étudiés dans le cours. Description générale de la programmation dans LABVIEW Le logiciel LABVIEW est utilisé pour commander le vérin électrique en temps réel par l’entremise de la carte d’acquisition. La programmation de LABVIEW est réalisée grâce à un langage graphique de haut niveau. Pour faciliter la compréhension et éviter les piétinements inutiles, un programme de base permettant de lier les entrées-sorties du procédé à un environnement en temps réel dans LABVIEW vous ai fournis. Ce programme, illustré par la Figure 3, permet d’envoyer une tension à l’entrée de l’amplificateur, d’échantillonner la position et de calculer la vitesse pour un nombre d’échantillons et une période d’échantillonnage choisis. En plus de la fenêtre de programmation, LABVIEW fait toujours intervenir une fenêtre de contrôle. Cette fenêtre, illustrée par la Figure 4, permet non seulement de moduler certaines variables du programme au cours de son exécution, mais également d’en visualiser d’autres à l’aide d’outils de visualisation tels que des graphiques. Dans la fenêtre de contrôle de la Figure 4, un contrôle de type valeur numérique permet de moduler la tension envoyée au procédé tendis que les trois graphiques illustrent l’évolution de la position, de la vitesse et de la commande. 3 Interrupteur de positionnement manuel Connecteur Alimentation primaire Moteur à courant continu Réducteur de vitesse Amplificateur de puissance Cylindre Piston (partie mobile) Encodeur incrémental (mesure de position) Interrupteurs de fin de course Figure 1: Vérin électrique Dans la fenêtre de programmation de la Figure 3, on distingue un rectangle qui englobe toute la partie du programme qui doit être exécutée à chaque période d’échantillonnage. Ce rectangle représente une boucle de programmation de type « for ». En fait, deux de ces boucles sont imbriquées. La boucle interne est synchronisée sur une horloge de 1 milliseconde qui est représentée par l’icône métronome. Comme on peut le constater sur la Figure 3, il est très facile de modifier la période d’échantillonnage et le nombre de période d’échantillonnage de l’exécution. 4 Carte d'acquisition Ordinateur Connecteur Amplificateur de puissance Alimentation primaire Cylindre Figure 2 : Environnement du laboratoire de commande par ordinateur. 5 Figure 3 : Fenêtre de programmation dans LABVIEW 6 Figure 4 : Fenêtre de contrôle dans LABVIEW Identification du procédé Le moteur et l’amplificateur de puissance du vérin électrique, le frottement de coulomb, le convertisseur N/A, l’encodeur de position et la transformation du mouvement de rotation en mouvement de translation peuvent être modélisés par le schéma blocs suivant: 7 KN/A Vitesse(rad/s) Km Bo(s) m s + 1 Convertisseur N/A Frottement de coulomb Position(rad) 1 s Moteur CC R 2N Position(m) Tansformation du mouvement de rotation en translation T KENC Encodeur de position LABVIEW Carte d'acquisition Vérin Figure 5: Modèle du système. Dans ce schéma, Km est le gain statique du moteur combiné à celui de l’amplificateur de puissance, m est la constante de temps mécanique du moteur, KA/N = 215 LSB / 10 volts = 3276.8 LSB/volts est le gain du convertisseur A/N, KENC = 4*1000 impulsions / 2 rad = 636.6198 impulsions/rad est le gain de l’encodeur incrémental, R = 0.00508 m est le pas de la vise de transmission et N = 2 est le rapport du réducteur de vitesse également illustré sur la Figure 1. Au niveau du programme LABVIEW, des gains peuvent facilement être ajoutés pour permettre la mesure de la position en m, de la vitesse en m/s et de l’entrée du convertisseur N/A en volts. Ces gains ainsi que la dérivée numérique servant à calculer la vitesse sont illustrés par le schéma blocs suivant. M* KU KN/A Convertisseur N/A V* Km Bo(s) Vitesse(rad/s) m s + 1 Frottement de coulomb 1 s Moteur CC T KPOS KENC Encodeur de position LABVIEW Carte d'acquisition R 2N Position(m) Tansformation du mouvement de rotation en translation Dérivée numérique P* Position(rad) Vérin Figure 6 : Ajout des gains dans LABVIEW. 8 Dans le schéma de la Figure 6, les gains KU et KPOS sont donnés par les relations suivantes: KU K POS 1 (1.1) KN / A R 2NK ENC (1.3) Le système peut alors s’exprimer sous la forme équivalente suivante : M* K m s + 1 Bo(s) Convertisseur N/A Frottement de coulomb V* T Vitesse(m/s) 1 s Position(m) Moteur CC et Transformation du mouvement de rotation en translation ConvertisseurA/N P* T Encodeur de position Figure 7 : Système équivalent. Cette forme a l’avantage d’être simple à analyser. Elle sera par conséquent utilisée dans toutes les manipulations suivantes. Le système doit maintenant être identifié; c’est à dire que les paramètres inconnus tels le gain statique K = Km R/2//N, les seuils de la zone morte et la constante de temps m doivent être estimés à partir de mesure expérimentales. Pour identifier ces paramètres, plusieurs réponses à l’échelon seront utilisées en considérant la vitesse comme sortie du système. Dans ce cas, le bloqueur d’ordre zéro Bo(s) n’a pas d’effet puisque son entrée est un échelon. Le système prend donc la forme équivalante suivante. 9 M* K m s + 1 Vitesse(m/s) zone morte T V* Figure 8 : Système équivalant pour l'identification. La réponse à l’échelon du système illustré par suivante : 0 v(t ) (m m ) K 1 e t / m ( m m) K 1 e t / m la Figure 8 est donnée par la relation si m m m si si mm mm (1.4) où m est l’amplitude de l’échelon, m est le seuil positif de la zone morte et m est son seuil négatif. La constante de temps de ce système de premier ordre est alors facile à identifier. En effet, comme l’indique la Figure 9, la réponse à l’échelon lorsque m > m atteint 63% de sa valeur en régime permanent en un temps m. (m m ) K 0.63 (m m ) K m Figure 9 : Réponse à l'échelon lorsque m > m . t 10 En régime permanent, lorsque le temps tend vers l’infini, la réponse à l’échelon du système devient : 0 lim v(t ) (m m) K t ( m m) K si m m m si si mm mm (1.5) Pour trouver le seuil positif m il suffit alors de considérer plusieurs réponses à l’échelon en augmentant graduellement l’amplitude m jusqu’à ce que le moteur commence à bouger. Le seuil m est alors donné par l’amplitude m. Pour obtenir le seuil négatif m il suffit de faire la même opération mais en considérant la plage négative de m. Finalement, connaissant les paramètres m et m , le paramètre K peut facilement être obtenu à partir de la réponse à l’échelon illustré par la Figure 9. Manipulation Dans ce laboratoire, la manipulation consiste à utiliser le programme LABVIEW de façon à identifier le système. Les résultats des réponses aux échelons que vous obtiendrez seront automatiquement afficher dans la fenêtre de contrôle de LABVIEW. Avant chaque expérience, utilisez l’interrupteur de positionnement manuel de façon à évitez que la partie mobile du vérin soit trop près de ses limites. L’atteinte d’une de ces limites occasionnerait des résultats erronés. Il est également très important que LABVIEW soit le seul programme à être exécuté sur votre ordinateur durant vos expériences. Ces mesures permettront au programme LABVIEW de s’exécuter en temps réel. Identification de la zone morte Pour identifier les seuils négatif et positif de la zone morte, répétez plusieurs fois la réponse à l’échelon du système en partant d’un échelon d’une amplitude de 0 et en augmentant par pas de 0.1 volts jusqu'à ce que la partie mobile du vérin commence à bouger. À ce moment, l’amplitude de l’échelon qui a causé le mouvement est approximativement la valeur du seuil positif m . Faites la même chose pour déterminer le seuil négatif m mais en utilisant des pas de –0.1 volts. 11 Identification de la constante de temps Pour identifier la constante de temps, faites la réponse à un échelon de m = m + 1.00 volts du système. Utilisez le graphique de la réponse pour obtenir la constante de temps. Identification du gain statique K Pour identifier le gain statique K, considérez trois réponses à l’échelon : une de m = m + 2 volts une de m = m + 4 volts et l’autre de m = m + 6 volts. Pour chacune de ces réponses, affichez le graphique de la réponse en vitesse comme précédemment. Obtenez ensuite la valeur moyenne Vm en régime permanent. Calculez le gain K en utilisant la relation suivante déduite à partir de la réponse théorique de la Figure 9 : Vm K (m m ) Prenez comme gain statique du système la moyenne des valeurs de K que vous obtiendrez. Choix de la période d’échantillonnage Le programme que vous avez exécuté pour identifier le système utilise une période d’échantillonnage de T = 0.001 seconde. Justifiez ce choix en vous servant des résultats de l’identification que vous avez obtenus et des notions vues dans le cours. Pourrait-on choisir une période d’échantillonnage plus grande? Justifiez.