GPA-783 Acquisition de données et identification du procédé à

publicité
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
2N
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
2N
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
2NK 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
mm
mm
(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
mm
mm
(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.
Téléchargement