Brevet FR2688610A1 — publié le 19930917

DISPOSffiF DE COMPTAGE-DECOMPrAGE. La présente invention concerne les dispositifs de comptage-décomptage. Les compteurs/décompteurs sont généralement utilisés en robotique et parfois en métrologie. lls interviennent dans les systèmes permettant de repérer la position de mobiles divers. Ainsi sont-ils présents, par exemple, dans les boucles d'asservissement destinées à commander le positionnement d'axes-moteurs. Afin de corriger la position d'un objet, l'information donnant la position réelle dudit objet est comparée à une consigne extérieure. L'objet à commander est relié à un codeur de position qui délivre deux signaux en quadrature. Ces signaux sont envoyés dans un compteur/décompteur dont la fonction est de fournir une information de position en code binaire. Cette information est l'adresse absolue de l'objet. Cette adresse absolue ne peut pas être échantillonnée à tout instant: elle n'est définie que dans certaines fenêtres temporelles et en dehors de ces fenêtres elle peut être erronée. il est connu de l'homme de l'art que le compteur/décompteur doit alors être équipé d'un registre de sortie commandé en synchronisme avec les signaux issus du codeur de position. L'invention ne présente pas ces inconvénients. L'un des objets de l'invention est un dispositif de comptage/décomptage destiné à fournir une adresse absolue en code binaire, ladite adresse permettant de déduire la position d'un objet à partir de signaux issus d'un codeur de position non absolu relié audit objet, caractérisé en ce qu'il comprend des moyens destinés à générer une adresse partielle constituée des bits de plus faible poids de ladite adresse exprimée en code binaire réfléchi ou tout autre code équivalent. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture d'un mode de réalisation préférentiel, fait avec référence aux figures ciannexées dans lesquelles: - la figure 1 représente le schéma synoptique d'un asservissement de position utilisant un compteur/décompteur selon l'art antérieur, - la figure 2A représente le schéma synoptique d'un compteur/décompteur selon un mode de réalisation préférentiel de l'invention, - la figure 2B représente un ensemble de circuits logiques entrant dans la réalisation du compteur-décompteur selon l'invention, - la figure 3 représente le chronogramme du compteur/décompteur décrit en figure 2, - la figure 4 représente la courbe de détermination, par extrapolation linéaire, des adresses absolues dans le cas ou le compteur/décompteur ne fournit qu'une adresse partielle, - la figure 5 représente, de façon symbolique, un algorithme de détermination de l'adresse absolue dans le cas où le compteur/décompteur ne fournit qu'une adresse partielle, - la figure 6 représente le schéma synoptique de l'asservissement de position utilisant un dispositif compteur/décompteur selon un mode de réalisation préférentiel de l'invention, - la figure 7A représente le diagramme des états internes d'un compteurdécompteur cyclique à cinq états, - la figure 7B représente les signaux d'entrée, l'état interne correspondant et les signaux de sortie du compteur cyclique à cinq états, - la figure 8 représente le schéma synoptique de l'asservissement de position utilisant un compteur/décompteur suivant un second mode de réalisation de l'invention. Sur toutes les figures, les mêmes repères désignent les mêmes éléments. Les asservissements décrits par les figures 1, 6 et 8 sont, pour l'essentiel, réalisés à l'aide d'un microprocesseur. Ainsi, chacun des dispositifs situés dans la zone 100 desdites figures est-il la représentation symbolique d'une opération de l'algorithme d'asservissement. La figure 1 représente le schéma synoptique d'un asservissement de position utilisant un compteur/décompteur selon l'art antérieur. L'objet à commander est, par exemple, un axe-moteur. Un codeur 1 recueille la position de l'axe-moteur A du moteur M. De façon générale, ce codeur est un codeur non absolu qui délivre deux signaux S1 et S2 en quadrature. Pour reconstituer une information donnant la position absolue de l'axemoteur, on est alors amené à utiliser un compteur/décompteur 2. Le compteur/décompteur 2 est composé de deux dispositifs : un premier dispositif 21 qui contient les circuits permettant d'obtenir, en code binaire, la position de l'axemoteur A à partir des signaux en quadrature S1 et S2 et un second dispositif 22 représentant le registre de sortie commandé en synchronisme avec les signaux S1 et S2. Le signal S21 issu du dispositif 21 est un nombre entier exprimé en code binaire. Ce nombre entier est défini avec ambiguïté au moment de la propagation des retenues, soit lors d'un accroissement de sa valeur quand le nombre binaire comporte au moins une succession de n 1| contigus, soit lors d'une diminution de sa valeur quand le nombre binaire comporte au moins une succession de "0" contigus. Le signal S21 n'est donc pas disponible en lecture et il nécessaire d'introduire une logique séquentielle afin de pallier cet inconvénient. C'est à cette fin qu'est introduit le registre de sortie 22. L'élément de câblage K comporte souvent autant de conducteurs que de bits nécessaires pour coder la position absolue de l'axe moteur. Dans tous les cas il permet d'envoyer au micro-processeur la totalité de l'information de position absolue de l'axe moteur disponible à la sortie du registre 22. Cette information est comparée à la consigne de position C à l'aide du soustracteur 4. L'écart F issu du soustracteur 4 est envoyé dans le filtre de stabilité 8. il est connu de l'homme de l'art qu'une avance de phase est nécessaire afin de stabiliser la boucle. Ce filtre y pourvoie. Le dispositif 5 est constitué d'un convertisseur numérique-analogique suivi d'un amplificateur qui alimente le moteur en puissance. Le circuit regroupant en cascade tous les éléments qui viennent d'être décrits tend à faire décroître l'écart F quand ledit moteur agit. Si la position absolue codée en binaire s'exprime à l'aide de N bits, l'élément de câblage K doit compter N fils afin de transmettre l'information en une seule fois ou bien N/n fils afin de transmettre l'information en n fois. La figure 2A représente le schéma synoptique d'un compteur/décompteur selon le mode de réalisation préférentiel de l'invention. il a été dit précédemment que les compteurs/décompteurs selon l'art antérieur doivent comprendre un registre de sortie 22 commandé en synchronisme avec les signaux issus du codeur de position. L'invention ne présente pas cet inconvénient car le code binaire utilisé change d'un seul bit d'une combinaison à l'autre. En effet, selon l'invention, la position absolue de l'axe-moteur est codée selon le code binaire réfléchi ou selon tout autre code équivalent. Cela permet donc non seulement de supprimer le registre de sortie 22, mais aussi de prendre en compte à chaque instant le signal de sortie du compteur-décompteur sans avoir à attendre une fenêtre temporelle. Pour mémoire, le tableau ci-dessous rappelle l'évolution du code binaire réfléchi ou code de Gray quand celui-ci est défini, par exemple, sur trois bits b2, bl, bO : b2 bl bO O O o O O t O t 1 O 1 O 1 1 O 1 t 1 1 O 1 1 O O On voit que ce code suit une évolution telle qu'il y a changement d'un seul bit d'une combinaison à l'autre. Le compteur/décompteur de la figure 2A fournit, suivant un mode préférentiel de l'invention, une adresse partielle de 3 bits: g2, gl, gO, car, comme on le verra plus loin, il n'est pas nécessaire de transmettre toute l'adresse absolue mais seulement ses bits de plus faible poids. Les deux signaux S1 et S2 issus du codeur de position sont ici notés kO, pour S1, et gO, pour S2. Un dispositif D reçoit les deux signaux kO et gO et délivre les signaux kl et gl. De même, un second dispositif D reçoit les deux signaux kl et gl et délivre les signaux k2 et g2 (k2 n'est pas utilisé). Les circuits contenus dans les dispositifs D sont des circuits logiques combinés de façon que les différents signaux gi et ki (i = 0, 1, 2) soient reliés comme suit: gi=g(i g (i = gi + g(i - t) o (k(i - t) &commat; ki) ki=g(i - t) o ki + g(i - t) o (k(i - t) e' gi) Dans les expressions ci-dessus g i représente le complément logique de g i. Les différentes opérations représentées symboliquement par les signes " + ", et " tt sont les fonctions connues de l'homme de l'art sous les noms respectifs "et", "ou" et "ou exclusif'. Les circuits logiques permettant de générer les signaux gi et ki à partir des signaux g (i - 1) et k (i - 1) sont représentés en figure 2B. il s'agit d'une combinaison de circuits logiques élémentaires 30 de type NAND ou NON ET. I1 est connu de l'homme de l'art que d'autres circuits élémentaires que les circuits NAND permettraient d'arriver au même résultat. Selon le mode de réalisation décrit, les deux dispositifs D permettent de générer une adresse partielle de 3 bits. De façon générale, P - 1 dispositifs D permettent de générer une adresse partielle de P bits. La figure 3 représente le chronogramme du compteur/décompteur décrit en figure 2A. Les courbes décrivant les signaux gi et ki (i = 0, 1, 2) en fonction du temps ne présentent aucune erreur dans leur évolution. Lors d'un changement d'état un seul chiffre binaire commute et le nombre entier codé en binaire est connu sans ambiguïté. Selon l'invention, il n'est pas nécessaire que le compteur-décompteur génère une adresse absolue pour créer l'information donnant la position de l'axemoteur. Une adresse partielle suffit sous réserve de reconstituer l'adresse absolue. La figure 4 représente le principe de calcul d'un algorithme permettant de reconstituer l'adresse absolue par extrapolation linéaire. Cet algorithme est le plus simple démontrant la faisabilité de la restitution de l'adresse absolue à partir de ses bits de plus faible poids. Son principe est basé sur le fait que si l'on connaît le reste de la division modulo Q d'une grandeur X à chaque instant et si l'on connaît les deux premières adresses absolues X1 et X2, on peut en déduire les adresses absolues suivantes. Q représente la quantification de l'adresse partielle : pour 3 bits Q = 2 =8. Sur la courbe de la figure 4 l'adresse Xj (j = 1, 2, 3) est l'adresse absolue qui doit être fournie à l'instant Tj. Les instants T1, T2, T3 sont tels que T3 -T2 = T2 - T1 = T. X'3 est l'extrapolation linéaire de X1 et X2. n vient donc: X'3-X2 =X2-Xt. Soit: X'3 =2X2-Xt. L'erreur E correspondant à l'écart entre l'adresse X3 à fournir et l'adresse X'3 obtenue par extrapolation linéaire est: E = X3-X'3 Soit: E=X3-2X2 + X1 Si E est inférieur à Q/2, alors: E = (x3modQ-2X2 + X1) mod Q Soit E = (x3- 2 X2 + X1) mod Q avec x3 = X3 mod Q, x3 représentant la mesure des bits de plus faible poids. Y max étant l'accélération maximale de la grandeur X, l'erreur maximale E max que l'on peut avoir est: E max = ymaxx AT2. I1 faut donc Q ) 2x ymaxx AT2. Dans ce cas, l'adresse X3 fournie s'écrit donc: X3 = 2X2 -X1 + (x3 -2X2 + X1) mod Q. Les calculs décrits ci-dessus sont réalisés à l'aide d'un microprocesseur. Selon le mode de réalisation préférentiel choisi, ces calculs sont effectués par le microprocesseur calculant l'erreur de position de l'axe-moteur à commander. En plus de la fonction d'extrapolation et de reconstruction de l'adresse absolue, l'algorithme selon l'invention permet de contrôler la vraissemblance des données. L'erreur E est alors comparée à une valeur de vraissemblance EV. La valeur EV est choisie petite devant E max. Si l'erreur E est inférieure ou égale à EV, l'algorithme se poursuit sans détour. Sinon la valeur de l'erreur E est forcée à zéro, permettant ainsi la suppression des échantillons aberrants. La figure 5 représente, de façon symbolique, un autre algorithme permettant la reconstruction de l'adresse absolue. Cet algorithme est symboliquement représenté par le dispositif 200. A l'intérieur de ce dispositif symbolique, chaque opération mathématique est représentée par un dispositif symbolique élémentaire. Chacune de ces opérations élémentaires est connue de l'homme de l'art. On se contente de la rappeler pour effectuer une description complète de l'algorithme. L'adresse partielle AP, constituée par les bits de plus faible poids de l'adresse absolue, est envoyée dans le dispositif symbolique 200 et l'adresse absolue X est récupérée en sortie dudit dispositif. Les différents dispositifs symboliques élémentaires (201, 202, 203, 204, 205, 206, 207) sont combinés de façon que les adresses AP et X soient reliées comme suit: avec = pizza 1 - z-1 et, comme cela est connu de l'homme de l'art, z = eiC9T oe étant la pulsation, au sens de t'analyse de Fourrier, du signal associé à l'adresse partielle AP et T = F étant la fréquence d'échantillonnage du signal associé à F l'adresse partielle AP, ledit échantillonnage étant symbolisé par l'interrupteur 201 et le maintien de la valeur de l'échantillon étant assuré jusqu'à l'arrivée de l'échantillon suivant par le dispositif 202. Le multiplicateur 204, de facteur multiplicatif a, détermine le filtre passe-bas pour l'adresse absolue X, alors que le multiplicateur 205, de facteur multiplicatif b, donne la constante de temps du filtre passe-bas de la vitesse. Les dispositifs 206 symbolisent l'opération 2 = ,, c'est-à-dire l'addition de la valeur de chaque échantillon nouveau, présent à l'entrée du dispositif, à la valeur qu'avait sa sortie au moment de l'arrivée de cet échantillon. Enfin le dispositif 203 symbolise la différence effectuée entre les signaux provenant respectivement du second dispositif 206 et du dispositif 202, alors que le dispositif 207 symbolise la somme effectuée sur les deux signaux provenant respectivement du dispositif 202 et du premier dispositif 206. Cet algorithme permet la modélisation et l'identification de la vitesse par moyennage exponentiel. il faut noter qu'il amoindrit l'effet des échantillons entachés d'erreur à l'aide du filtrage qu'il opère sur lesdits échantillons. Selon le mode de réalisation préférentiel, on reconstitue une adresse absolue complète de N bits à partir d'une adresse partielle de 3 bits issue du compteur-décompteur. L'information donnée par une adresse partielle de 2 bits est insuffisante car on ne peut lever l'ambiguïté sur la position de l'axe-moteur pour certaines valeurs précises de la vitesse. Pour plus de sécurité, en particulier en présence de bruit important sur le signal de position de l'axe-moteur, on peut être amené à augmenter la redondance de l'adresse partielle en augmentant son nombre de bits, par exemple en passant à 4 bits ou plus. Mais 3 bits suffisent en général, en l'absence de bruit important, pour reconstituer une adresse absolue quelconque complète avec un minimum de redondance. Quel que soit l'algorithme de reconstruction de l'adresse absolue, l'initialisation des adresses absolues est faite à l'aide d'un senseur extérieur. Elle est faite, comme cela est connu de l'homme de l'art, à l'aide d'une butée de position connue, ladite position étant relevée à vitesse nulle. La figure 6 représente le schéma synoptique d'un asservissement de position utilisant un dispositif compteur/décompteur selon le mode de réalisation préférentiel de l'invention. Le codeur 1 recueille la position de l'axe-moteur A et délivre les deux signaux S1 et S2 en quadrature. L'information issue du compteur/décompteur 23 est codée en code de Gray à l'aide, par exemple, de 3 bits. Dans ces conditions, l'élément de câblage K est constitué de 3 fils reliés au microprocesseur 100. ll a été dit précédemment que 3 bits permettent de reconstituer une adresse absolue de N bits. Selon le mode de réalisation préférentiel de l'invention N = 24. C'est donc un avantage de l'invention que de pouvoir transmettre en une seule fois et à n'importe quel instant l'information permettant de reconstituer l'adresse absolue à l'aide, par exemple, de 3 fils au lieu de 24. L'élément de câblage K envoie l'adresse partielle codée en code de Gray APG, constituée préférentiellement des 3 bits gO, gl, g2, sur le dispositif 24, qui convertit ladite adresse partielle en une adresse partielle exprimée en binaire AP. Le dispositif 24 est connu de l'homme de l'art et n'est donc pas décrit. L'algorithme 200 de reconstruction permet alors de générer l'adresse absolue de position qui, comparée à la consigne C, donne l'écart de position F. Les dispositifs 8 et 5 sont les mêmes que ceux décrits en relation avec la figure 1. Dans les algorithmes d'extrapolation et de reconstruction d'adresse absolue décrits précédemment la vitesse est calculée soit sur les deux échantillons connus précédant immédiatement le nouvel échantillon dont on veut extrapoler l'adresse comme cela est décrit en référence à la figure 4, soit à partir de tous les échantillons précédents avec un moyennage de type exponentiel comme cela est utilisé dans l'extrapolation de l'adresse décrite en référence à la figure 5. La vitesse peut aussi être calculée à partir de l'échantillon précédant immédiatement le nouvel échantillon, dont on veut extrapoler l'adresse, et d'un échantillon beaucoup plus ancien de façon à rendre l'imprécision de la vitesse moins sensible à l'imprécision de l'adresse des deux échantillons servant à la déterminer. Tout autre méthode combinant les adresses d'échantillons plus anciens à l'adresse du dernier échantillon connu pour obtenir une valeur de la vitesse est utilisable dans le dispositif suivant l'invention. Et il faut noter que la précision avec laquelle est connue ladite vitesse est plus importante que l'égalité de ladite vitesse à la vitesse réelle de l'objet au temps où elle est calculée, l'erreur systématique introduite sur ladite vitesse pouvant toujours être évaluée, majorée et prise en compte dans les limites de fonctionnement de l'algorithme. Si l'on reprend les équations écrites dans le cas de l'extrapolation linéaire la plus simple décrite en référence à la figure 4, il vient en y introduisant la vitesse V: X'3 = X2 + VxT E = X3-X2-VxT L'incertitude absolue sur l'erreur E que l'on note hE est: A = X3 + AX2 + A (VXT) Les valeurs des X étant quantifiées, les erreurs sur X3 et X2 sont donc égales à un pas de quantification que l'on prend comme unité, soit: AX3 = AX2 = t Pour restituer l'adresse X3 sans ambiguïté il faut avoir: Q > 2 (E max + AE), soit Q > 2 ( max x T2 + AX3 + AX2 + A (VxT) A (VxT) = VxAT + TxAV ~ TxAV, car la période d'échantillonnage est très précise : elle est fournie par l'horloge de référence de temps de tout le dispositif, qui peut être une horloge à quartz. Il vient donc: Q > 2 (AX3 + AX2) + 2 (ymax x T2 + T x AV). Avec les valeurs maximales de AX2 et AX3 il vient: Q > 4+2 (max x T2 + T x AV) Avec une vitesse calculée de façon à limiter son imprécision provenant de l'imprécision des adresses absolues précédentes, et avec une accélération restant faible ou avec un échantillonnage à fréquence élevée, donc avec T petit, la quantité 2 ( max x T2 + T x AV) peut être maintenue bien inférieure à 1, si bien que pour pouvoir extrapoler sans ambiguïté l'adresse X3 il suffit de prendre Q > 5. Au lieu d'utiliser un compteur binaire on peut alors utiliser un compteur cyclique, dit en anneau. La valeur la plus faible utilisable étant Q = 5, on peut utiliser un compteur cyclique à cinq états. La figure 7A représente le diagramme des états internes ainsi que la table de fonctionnement d'un compteur-décompteur à cinq états. L'occurence d'un front de l'un des deux signaux S1 ou S2 provenant du codeur entraîne suivant l'état de l'autre signal une progression de l'état interne dudit codeur-décodeur dans le sens positif ou dans le sens négatif comme cela apparaît sur ladite table de fonctionnement. La figure 7B représente pour deux signaux S1 et S2 provenant du codeur (t) entrant dans le compteur-décompteur 25, l'état interne EI correspondant dudit compteur-décompteur et les signaux de sortie dans le cas où l'on utilise un élément de câblage K à cinq conducteurs CO, C1, C2, C3, et C4 pour transmettre les cinq positions élémentaires de l'adresse partielle vers le microprocesseur. Ce choix est judicieux quand on veut à la fois vitesse et précision dans le positionnement d'un objet : par exemple un axe-moteur à mouvement rapide doté d'un codeur dont la graduation présente un grand nombre de marques par tour. La durée de transmission de l'adresse partielle vers le microprocesseur gérant la position de l'axe-moteur est alors minimisée. Les cinq signaux sO, sl, s2, s3, et s4 portés respectivement par les conducteurs CO, C1, C2, C3 et C4 représentent chacun I'état du compteur 25 portant la même référence (0, l, 2, 3, 4). Pour avoir la possibilité, comme dans le cas du code de Gray, de pouvoir échantillonner t'adresse venant du compteur-décompteur à tout instant, les signaux si (i = 0, 1, 2, 3, 4) sont prolongés légèrement au-delà du temps de changement d'état du compteur-décompteur de façon à ne jamais avoir un niveau 0 sur les cinq conducteurs simultanément ; on peut convenir, en cas de présence simultanée de deux signaux si au niveau 1, de choisir celui qui correspond au premier état rencontré dans le sens positif des changements d'état du compteur-décompteur. Ainsi 0 prime-t-il sur 1, 1 sur 2, 2 sur 3, 3 sur 4 et 4 sur 0. Dans ces conditions, comme dans le cas du code de Gray l'erreur est au plus d'un pas de quantification du codeur. La figure 8 représente le schéma synoptique d'un asservissement de position utilisant un dispositif compteur-décompteur selon un second mode de réalisation de l'invention. Ce dispositif ne diffère du précédent que par le compteurdécompteur. Un compteur-décompteur cyclique 25 du même type que celui décrit précédemment (cf. figures 7A et 7B) est utilisé. Un dispositif 26 permet de convertir en adresse partielle AP exprimée en code binaire l'adresse partielle APC générée par le compteur-décompteur. Ce dispositif est connu de l'homme de l'art et il est inutile de le décrire dans la présente demande. Le reste de la description est identique à ce qui a été décrit en figure 6. REVENDICATIONS 1. Dispositif de comptage-décomptage destiné à fournir une adresse absolue (X) de N bits en code binaire, ladite adresse permettant de déduire la position d'un objet à partir de deux signaux (S1, S2) issus d'un codeur de position non absolu (1) relié audit objet, caractérisé en ce qu'il comprend des moyens (23, 25) destinés à générer une première adresse partielle(APG, APC) exprimée dans un code différent du code binaire et limitée aux bits de plus faible poids de l'adresse absolue et un microprocesseur (100) relié auxdits moyens et permettant de transformer ladite première adresse partielle en ladite adresse absolue (X). 2. Dispositif selon la revendication 1, caractérisé en ce que le microprocesseur (100) comprend des premiers moyens (24, 26) destinés à convertir la première adresse partielle (APG, APC) en une deuxième adresse partielle (AP) exprimée en code binaire et des seconds moyens (200) permettant de reconstituer l'adresse absolue (X) à partir de la deuxième adresse partielle (AP) à l'aide d'un algorithme de reconstruction. 3. Dispositif selon la revendication 2, caractérisé en ce que les moyens (23) destinés à générer une première adresse partielle (APG) comprennent P - 1 sous-ensembles (D), le sous-ensemble de rang i (i = 1, 2, ..., P -1) générant deux signaux (gi, ki) à partir des deux signaux issus du sous-ensemble de rang i-t qui le précède, l'un (gi) des deux signaux générés par le sous-ensemble de rang i constituant le bit de rang i de ladite première adresse partielle exprimée en code binaire réfléchi, le sous-ensemble de rang 1 ayant pour signal d'entrée les deux signaux (S1, S2) issus du codeur de position. 4. Dispositif selon la revendication 2, caractérisé en ce que les moyens (25) destinés à générer une première adresse partielle (APC) comprennent un compteur-cyclique à au moins cinq états. 5. Dispositif selon l'une quelconque des revendications 2 à 4, caractérisé en ce que l'algorithme de reconstruction de l'adresse absolue (X) est un algorithme d'extrapolation linéaire. 6. Dispositif selon l'une quelconque des revendications 2 à 4, caractérisé en ce que l'algorithme de reconstruction de l'adresse absolue X à partir de l'adresse partielle AP est un algorithme de modélisation et d'identification de la vitesse de l'objet par moyennage exponentiel tel que: x = b x # +a x r AP 1 + b x " +a x r 1 avec # = = 1 - z-1 etZ = eiO)T o > étant la pulsation, au sens de l'analyse de Fourier, du signal associé à l'adresse partielle AP, et T = 1, F étant la fréquence d'échantillonnage du signal associé à F l'adresse partielle AP. 7. Dispositif selon la revendication 5, caractérisé en ce que l'algorithme de reconstruction comprend un algorithme permettant de contrôler la vraissemblance des données brutes représentant la mesure des bits de plus faible poids de l'adresse absolue.