Brevet FR2130294A1 — publié le 19721103

i 2130294 10 15 20 25 35 L'invention concerne un procédé et un dispositif d'interpolation circulaire pouvant générer les fonctions sinus et cosinus utilisables notamment pour engendrer des signaux de directive amenant une machine-outil à commande numérique à décrire un cercle. On sait que des solutions de l'équation différentielle d'un cercle peuvent être produites par des approximations à différence finie d'une intégrale. Cela aboutit à une technique connue sous le nom de méthode de "différences en série" qui est une application de l'équation différentielle suivante (établie par intégration d'Euler) : (1) X. „\ x+1 Yi+y 0 -6 1-é' Condition initiale 30 où (X) et (Y) sont les éléments de la "position" définissant le vecteur à l'instant (i) caractérisé par l'indice» La constante («S) détermine la vitesse angulaire qui, pour («$« 1), est approximativement égale au nombre de radians de rotation par itération. Lorsque (6) est une puissance de deux, ces équations peuvent être facilement traitées par un analyseur différentiel numérique série ou D.D.A. On peut démontrer que cette technique donne lieu à des erreurs dynamiques (erreur de tron-cage) qui amènent le système à produire une fonction approximativement elliptique dont l'écart par rapport au rayon voulu, tel que défini par la condition initiale, est, dans le pire des cas, (2) I'- £11 = 1/2 . «5 . R O où (£ ) est l'erreur maximale et (R ) est le rayon initial. o Un autre procédé connu de production de fonction sinusox-dale-cosinusoïdale, appelé technique de "différences en parallèle", aboutit à une famille similaire d'équations différentielles, données par l'expression : (3) /Y \ ■' i+1 £ -çf condition initiale 40 où les définitions des variables sont les mêmes que précédemment. Là encore, si («5) est une puissance de deux, ces équations peu- 72 09070 2 2130294 vent être facilement traitées par un D.D.A. La différence en parallèle présente une caractéristique d'erreur quelque peu différente en ce sens que le rayon augmente selon une fonction exponentielle à partir du rayon initial Cela tient au fait 5 que les valeurs propres de la matrice caractéristique sont d'une grandeur supérieure à l'unité. On peut démontrer que, pour des petites valeurs ((6), le rayon augmente de (Ae) environ à chaque itération, avec : (4) Ae = l/2«52Ro 10 et l'erreur cumulée est (5) e = 1/2 *52R o At où (t/At) est le nombre total d'itérations. D'après la définition de (*S), il est visible qu'après un radian de rotation, l'erreur produire par la technique des différences en parallèle 15 commence à dépasser l'erreur maximale produite par la technique des différences en série. Cela suppose évidemment que («5) a la même valeur dans les deux techniques. Il est manifeste, dans l'une et l'autre de ces techniques, qu'une réduction de («5) aboutit à une réduction de l'erreur. Dans 20 une application en temps réel, telle qu'une interpolation pour une machine-outil ou une machine à dessiner, (At) est la période entre itérations. A l'aide de cette définition, la vitesse angulaire peut être définie comme suit : ce) 25 Dans une application en temps réel, (to) est en général la variable indépendante et on a donc, pour les erreurs produites par les systèmes en série et en parallèle : (7) Erreur^maX^ en série = 1/2 (i) At (8) Erreur en parallèle = 1/2 w At R 30 (après un radian) Par conséquent, si (où) est sépcifié, la seule manière d'accroître la précision consiste à réduire (At). Dans nombre d'applications, la fréquence d'itérations requise (1/At) atteindrait un niveau inadmissible. L'un des buts du système proposé est de 35 réduire la fréquence d'itérations requise pour une vitesse angulaire et des exigences de précision données. En outre, cela doit être réalisé avec un minimum absolu de surcroit de complexité du système. L'invention a notamment pour but de fournir un procédé et 40 des moyens pour la rotation d'un vecteur de condition initiale à 72 09070 3 2130294 une vitesse et dans un sens prédéterminés (signe de vitesse). Un autre but de l'invention est de fournir un procédé et des moyens du genre en question, permettant une réduction de la fréquence d'itérations requise pour obtenir des exigences don-5 nées de précision et de vitesse angulaire. Un autre but encore de l'invention est de fournir un procédé et des moyens pour effectuer une interpolation circulaire dans un système de commande de machine-outil, avec une plus grande précision que dans les systèmes utilisés à ce jour. 10 Un autre but de l'invention est de fournir un système nou veau et utile d'interpolation circulaire. Ces buts de l'invention sont atteints, ainsi que d'autres, par un procédé et des moyens pour résoudre les équations : X. . = X. - «5(1/2 «5 X - Y. ) X , Y donnés 1 • ^ X 3L 1 O O 15 Y±+1 = Y± - «5(1/2 é Y± - X±) où Xq , Yq sont des points de départ Xi , Y^ sont les points atteints après une première itération X±+i , Y^+^ sont les points atteints à l'itération suivante 6 est le nombre de radians de rotation par itération. 20 Dans ce but, l'invention propose notamment un dispositif pour la production itérative de points situés sur un cercle dont le rayon est déterminé par des conditions initiales comprenant les coordonnées X et Y d'un point de départ dudit cercle et le nombre de radians par itération voulu représenté par 72 09070 4 2130294 auquel le contenu des cinquièmes moyens de mémorisation et le contenu des premiers moyens de mémorisation sont appliqués en vue de leur addition, pour former une somme ; des moyens pour appliquer la valeur contenue dans les troisièmes moyens de mémo-5 risation et la valeur contenue dans le premier additionneur- soustracteur aux premiers moyens multiplicateurs, pour former un troisième produit ; des moyens pour appliquer la valeur contenue dans les troisièmes moyens de mémorisation et la valeur contenue dans le deuxième additionneur-soustracteur aux deuxièmes moyens 10 multiplicateurs pour former un quatrième produit ; des moyens pour transférer le troisième produit contenu dans les premiers moyens multiplicateurs vers les quatrièmes moyens de mémorisation ; des moyens pour transférer le quatrième produit contenu dans les deuxièmes moyens de multiplication vers les cinquièmes 15 moyens de mémorisation ; des moyens pour appliquer le troisième produit contenu dans les premiers moyens de mémorisation et la valeur contenue dans les quatrièmes moyens de mémorisation au premier additionneur-soustracteur en vue de leur addition, afin de produire une valeur qui est la coordonnée X du point suivant 20 sur le périmètre du cercle voulu ; des moyens pour appliquer la valeur contenue dans les deuxièmes moyens de mémorisation et la valeur contenue dans les cinquièmes moyens de mémorisation au deuxième additionneur-soustracteur en vue de leur soustraction, pour produire une valeur qui est la coordonnée Y du point 25 suivant sur le périmètre du cercle voulu ; et des moyens pour introduire les valeurs de coordonnées X et Y, produites par le premier et le deuxième additionneurs-soustracteurs respectivement, dans les premiers et dans les deuxièmes moyens de mémorisation, afin de déterminer le lieu du point suivant sur le péri-30 mètre du cercle voulu. L'invention sera mieux comprise à la lecture de la description qui suit, donnée en référence aux dessins annexés, dans lesquels : La fig. 1 est un schéma par blocs d'un générateur de sinus-35 cosinus selon l'invention. La fig. 2 est un schéma par blocs de circuits complémentaires nécessaires dans le système de la fig. 1 . La fig. 3 est un schéma par blocs montrant comment cette forme de réalisation de l'invention peut être utilisée dans un 40 système de commande numérique pour une machine-outil. 72 09070 5 2130294 5 Afin de mieux faire comprendre le mode de fonctionnement du système, il convient de décrire brièvement sa structure mathématique. Pour une rotation idéale, il est souhaitable d'appliquer l'équation différentielle suivante . où (©) est exactement la rotation par itération. Cette famille d'équations, bien que précise, n'est pas applicable à un générateur de fonctions à différences finies. La raison en est que les coefficients contenus dans la matrice sont en général des nombres rationnels. On peut démontrer, dans l'analyse des erreurs, que la précision des coefficients de cette matrice revêt une importance décisive dans la réduction des erreurs dynamiques. La mise au point d'un système précis dépend donc de l'utilisation de coefficients à précision finie, aussi voisins que possible des coefficients de l'équation (9) pour une certaine valeur de ©. On y parvient de la manière suivante, en posant (10) 0 = sin © ce qui donne, par substitution : On met cela à profit en supposant que (6) est la variable indépendante et en la représentant dans le système par un mot à précision finie. Cela se ramène à choisir la valeur effective (©) assez voisine de la valeur (©) désirée pour que ($) puisse être représenté exactement par une longueur de mot finie. On notera que pour une petite valeur de ié), ces valeurs (©) et («S) sont approximativement égales. Néanmoins, cette approximation n'a aucune influence sur la variation du rayon dans le temps. Ainsi, deux coefficients de la matrice de rotation sont représentés exactement par des mots finis. A ce point, le terme . radical n'est pas sous une forme pratique, car même s'il était calculé exactement, il devrait être tronqué à une certaine précision finie ; en conséquence, le radical est développé selon le théorème de Newton, ce qui donne : (9) (11) 72 09070 6 2130294 (12) (1-sz52)1/2 = 1-1/2«S2 - l/8«54 - 1/I6iz56 - 5/128rf8 . . . On notera que chaque terme de ce développement peut être représenté par une longueur de mot finie (du fait queftf) est un mot fini). On notera également que si tous les termes contenant ( 15 (13) Y „-(2N+l)v -(4N+3)Y 0—(6N+4) „-Nv i+1 ~ *i ~ * *3,-2 X±-2 X±+Z Y± +1 . Y - 2"l2N+1)ïi - 2- 1 1 ^ JL O-N ou (6 = 2 Dans ce cas, l'erreur après un radian de rotation est : (14) e = 5/128(57 R O 20 Dans le cas le plus général, un D.D.A. sera construit avec C6) n'étant pas une puissance de deux. Après avoir choisi une longueur de mot pour («6 ), à savoir moins que la précision maximale du système, l'un ou plusieurs des termes de l'équation (12) peuvent être représentés exactement par un mot de précision 25 totale du système. On considérera par exemple un système à 32 bits de précision, (tf>) étant représenté par 16 bits. Dans un tel cas, le second terme de l'équation (12) peut être représenté en précision totale du système (32 bits). Dans cet exemple, les variables (x) et (y) seraient aussi repré-30 sentées en précision totale du système. Cela impose une limite définitive au nombre de termes additionnels qui peuvent être introduits. La raison en est que, selon l'exposant de (6), il est atteint un point auquel les termes additionnels deviennent trop petits pour être ajoutés au premier terme de l'équation 35 (12) (unité) dans un mot de 32 bits. Mais cependant des termes additionnels de l'équation (12) peuvent être introduits si l'exposant de («5) est suffisamment petit pour permettre une addition dans les limites de la longueur de mot définie, ce qui augmente encore les précisions. 72 09070 7 2130294 Il est ici d'une importance majeure de constater le fait que des précisions très élevées peuvent être atteintes au moyen d'un D.D.A., en introduisant en outre l'un ou plusieurs des termes de l'équation (9) (ceux qui contiennent 6). On notera en 5 outre que les coefficients de l'équation (9) se prêtent particulièrement au traitement par une machine binaire. On notera également que, comme le montre l'équation (13), une amélioration considérable de la précision d'un système qui fait usage de D.D.A. en série classiques résulte du fait que quatre des termes 10 de l'équation 02) peuvent être appliqués en utilisant un D.D.A. qui ne nécessite que des décalages et des additions. On peut démontrer que les erreurs dynamiques produites par un système de ces équations (11) et (12) peuvent être déterminées approximativement par le produit du premier terme 15 non utilisé de l'équation (12) et de C-R0 Par exemple, si l'on ne retient que le premier terme de. l'équation (12) contenant («S), l'erreur après un radian de rotation est de : 20 (15) e = 1/8*5 3R o qui, comme on le voit, est beaucoup plus petite que les erreurs produites par les systèmes en série ou en parallèle classiques pour la même valeur de («5). Pour faciliter la comparaison, on considérera la substitution de (ou) à (é), ce qui donne, après 25 un radian : (16) e = 1/8 w3At3 R o On notera que dans tous les cas : (17) - wAt 1 (© = u)At) Maintenant, si l'on utilise «5 dans les équations (13) à la 30 place de 2~^ et si l'on tronque les équations en supprimant tous les termes à l'exception des deux premiers et du dernier, on obtient les équations différentielles suivantes : ( Xi+1 = X± - é (l/2rfX± - Y± ) x0» Y0 donnés (18) } 35 lYi+l * Yi " * (1/2 Il est visible que ces équations peuvent être résolues par un D.D.a. classique, sauf en ce qui concerne l'introduction d'un terme additionnel. En effet, le premier terme de l'équation (12) contenant (*5) a été introduit . La précision peut 72 09070 8 2130294 être encore augmentée en introduisant des termes additionnels de l'équation (12) de manière analogue ; mais, pour simplifier les explications, un seul terme a été introduit. Ce sont les équations qui seront résolues par la forme préférée de réali-5 sation de l'invention représentée sur la fig. 1. La fig. 1 des dessins, à laquelle on se référera maintenant, représente un schéma par blocs d'un mode de réalisation de l'invention. Les différents circuits du mode de réalisation de l'invention sont activés en séquence, en réponse à des si-10 gnaux de sortie d'un circuit de commande et de synchronisation 10. Ce circuit de commande et de synchronisation peut être constitué par un jeu quelconque approprié de compteurs, activés en réponse à des circuits d'horloge, ces compteurs produisant une séquence d'impulsions de T1 à T17. 15 Les données de X et Y qui indiquent le lieu ou le point à partir duquel la courbe désirée doit être produite sont fournies par une source 12 de données X et une source 14 de données Y . A l'instant Tl, deux registres à décalage, respectivement 16 et 18, sont mis en mesure de recevoir des mots de données XA, YA, 20 provenant respectivement de la source de données X et de la sources de données Y. A titre d'exemple, ce peut être des mots de 32 bits. Le bit dans la position la plus significative est un bit de signe. Le bit dans la position immédiatement suivante est le bit le plus significatif ou de poids maximum du mot. L'a-25 gencement des registres a donc été représenté en conséquence. Un autre registre à décalage 20,à 32 bits, peut recevoir un mot de données de 32 bits en provenance de la source 22 de données é à l'instant T2. Le registre à décalage 20 est déca- lable vers la droite lorsque cela est nécessaire. La sortie de 30 ce registre comprend le bit de signe et les 15 bits les moins significatifs de l'entrée, le moins significatif de ceux-ci étant toujours zéro. «S est représenté sour la forme RADIANS 32 6' - ""iNTERATION x 2 ' avec la condition imposée suivante : 2(32+16) é ' = et VX 2♦ Y2 " o o 35 A l'instant T3, le contenu des registres 16 et 18 est décalé vers la gauche, à raison d'un bit à la fois, jusqu'à ce qu'un "1" apparaisse dans la position du 31ème bit (bit le plus significatif) de l'un ou l'autre des registres. Le circuit prévu à 72 09070 9 2130294 cette fin est représenté sur la fig. 2. Après quoi, à l'apparition du front avant de l'impulsion T4, les deux registres sont décalés d'un bit vers la droite. Ainsi est éliminé le risque de dépassement. Lorsque cela se produit, le nombre total résultant 5 de décalages est compté par le circuit représenté sur la fig. 2 et est mémorisé à titre de constante de normalisation K. Un compteur 90, représenté sur la fig. 2, est positionné de manière à indiquer le compte K peu après T4 et avant T5. A l'instant T5, d'après le circuit qui est représenté sur 10 la fig. 2, des impulsions de décalage sont appliquées au registre 20 afin de décaler le contenu de celui-ci vers la droite dans une mesure égale au compte de normalisation. Les opérations précédentes constituent la phase de "mise en place". A ce moment, la première itération peut commencer. 15 Au temps T6, des portes 24, 26, 28 et 30 sont validées pour transférer à leur sortie les nombres appliqués à leur entrée. Les portes 24 reçoivent la sortie du registre à décalage 18 et introduisent celle-ci dans un circuit additionneur/soustracteur 32. Les portes 26 reçoivent la sortie du registre à 20 décalage 16 et l'introduisent dans un circuit multiplicateur 34. Les portes 28 reçoivent la sortie du registre à décalage 16 pour l'introduire dans un deuxième circuit additionneur/ soustracteur 36. Les portes 30 reçoivent la sortie du registre à décalage 18 et introduisent celle-ci dans un deuxième circuit 25 multiplicateur 38. Les circuits multiplicateurs sont des multiplicateurs de 16 x 32 et produisent une sortie à 32 bits munie d'un signe (les 32 bits les plus significatifs de 48). La seconde entrée des deux multiplicateurs 34 et 38 est 30 constituée par le bit de signe et les 15 bits les moins significatifs de la valeur è qui est contenue dans le registre à décalage 20. A l'instant T7, les deux multiplicateurs multiplient leurs deux entrées et, à l'instant T8,les produits résultants sont transférés dans deux registres à décalage respectifs 40 35 et 42, qui sont positionnés de manière à recevoir les sorties des multiplicateurs. A l'instant T9, des instructions sont données aux registres à décalage 40 et 42 pour qu'ils décalent leur contenu de (1+16-K) bits vers la droite. Le dispositif prévu à cette fin est re-40 présenté sur la fig. 2. Il comprend les portes ET 44 et 46 dont 72 09070 10 2130294 les sorties sont respectivement connectées aux registres à décalage 40 et 42. L'une des entrées de ces portes ET est constituée par le signal d'impulsion T9. L'autre entrée est constituée par des impulsions de décalage, à raison de (1+16-K) impulsions. 5 Lorsque le décalage est achevé, à l'instant T10, des ins tructions sont données à l'additionneur 32 pour qu'il soustraie la sortie du registre à décalage, qui est appliquée à l'une de ses entrées, de la sortie des portes 24 qui a été appliquée à sa seconde entrée. A l'instant T10 également, l'additionneur/ 10 soustracteur 36 reçoit des instructions pour ajouter la sortie du registre à décalage 42 au nombre reçu des portes 28. A ce moment, le registre de l'additionneur/soustracteur 32 contient -2K («5 /2 X± - et le registre de 1'additionneur/soustracteur 36 contient 15 2K («5 /2 Y± + Xi) . Lorsque survient Tll, les portes 48, 50, 52 et 54 sont validées. Les portes 48, qui sont connectées à la sortie du registre à décalage 16 et dont les sorties sont à leur tour connectées à l'entrée de 1'additionneur/soustracteur 32, trans-jO fèrent le contenu du registre à décalage 16 vers l'une des entrées de l'additionneur/soustracteur. Les portes 50, qui sont connectées à la sortie de 1 * additionneur/soustracteur 32-, appliquent leur sortie à l'une des entrées du multiplicateur 34. Les portes 52, dont les entrées sont connectées au regis-25 tre à décalage 18 et dont les sorties sont connectées à l'une des entrées de 1'additionneur/soustracteur 36, introduisent le contenu du registre à décalage dans 1'additionneur/soustracteur 36. Les portes 54, dont les entrées sont connectées aux sorties de 1 * additionneur/soustracteur 36, introduisent son contenu 30 dans le multiplicateur 38. A l'instant T12, les multiplicateurs 34 et 38 multiplient leurs entrées qui sont constituées respectivement par les sorties des additionneurs/soustracteurs 32 et 36 et du registre à décalage 20 contenant 6 . 35 A l'instant T13, les sorties des multiplicateurs sont ré introduites dans les registres à décalage 40 et 42 respectifs. A l'instant T14, une porte ET 56 ou 58 laisse passer des impulsions de décalage vers les registres respectifs 40, 42,pour amener ceux-ci à décaler leur contenu de (16-K) bits vers la 40 droite. 72 09070 ii 2130294 A l'instant T15, les circuits additionneurs/soustracteurs 32 et 36 reçoivent des instructions, respectivement pour additionner leurs entrées,constituées par les sorties respectives des registres à décalage 40 et 42, à leurs autres entrées, et les 5 soustraire de ces autres entrées, constituées par les contenus à ce moment des registres à décalage 16 et 18. A ce moment, la sortie du circuit additionneur/soustracteur 32 est : 2K [X±-ri («5 / 2Xi-Yi)] et celle du circuit additionneur/soustracteur 36 est : 10 2K [Yj-rf ié / 2Yi-Xi)] . A l'instant T17, les registres à décalage 16 et 18 sont chargés avec les sorties des additionneurs/soustracteurs, lesquelles sont respectivement égales à X^+^ et > et les registres 40 et 42 contiennent les incréments correspondants, \ K 15 le tout étant à l'échelle 2 . A cet instant, pour l'itération suivante, les circuits de commande et de chronologie répètent les sorties de rythme T6 à T17, étant donné que le système est déjà chargé. Cela aboutit à la production de x^+2 Yî+2 * Cette séquence d'impulsions de rythme T6 à T17 est répétée 20 pour autant d'itérations qu'il en faut pour obtenir une courbe ayant le nombre voulu de radians. A ce moment, elle est interrompue . La longueur de mot et l'échelle indiquées ci-dessus ne sont que des exemples et ne doivent pas être considérées comme limi-25 tant la portée de l'invention. La fig. 2, à laquelle on se référera maintenant, représente les circuits destinés à effectuer la normalisation des contenus des registres 16 et 18. Les positions de bit le plus significatif des registres à décalage sont connectées respectivement 30 aux entrées d'une porte NX 60 dont la sortie est appliquée à une porte ET 62. Deux autres entrées nécessaires pour cette porte ET sont constituées par des impulsions en provenance de la source 64 d'impulsions de décalage, et par un signal T3 issu du circuit 10 de commande et de synchronisation. En présence de ces en-35 trées, la porte ET 62 permet l'application d'impulsions de décalage à un compteur de normalisation 66 et aux registres 16 et 18. Ce compteur compte le nombre d'impulsions de décalage qui sont appliquées à ce moment aux registres à décalage respectifs 16 et 18. Lorsqu'apparaît un "1" dans la position de bit le plus 72 09070 12 2130294 significatif de l'un ou l'autre des registres, la sortie de la porte NI 60 passe au niveau inférieur et la porte ET 62 est bloquée, ne laissant donc plus passer les impulsions de décalage. Le compteur de normalisation 66 a donc compté le nombre 5 d'impulsions de décalage introduites dans le registre à décalage. A l'instant T4, le compte de ce compteur est diminué de 1, ce qui a pour effet de laisser le compteur avec la valeur de la constante de normalisation K. La sortie donnant le contenu du compteur de normalisation 10 66 est appliquée à un circuit soustracteur 68 dont la seconde entrée est constituée par la valeur binaire 16. A l'instant T9, le soustracteur est activé et produit une sortie 16-K qui est appliquée à un comparateur 70. A l'instant T9, un flip-flop 76 est positionné et une porte ET 72 est validée par ces sorties, 15 de sorte que les impulsions de décalage issues de la source 64 sont appliquées à un compteur 74. La sortie indiquant le contenu du compteur est appliquée au comparateur 70, pour être comparée avec le résultat de la soustraction 16-K. Lorsque ces deux valeurs sont égales, le comparateur produit un signal de sortie 20 qui remet en l'état initial le compteur et le flip-flop 76, d'où il résulte que la porte ET 72 n'est plus en mesure de laisser passer des impulsions de décalage vers le compteur. La sortie du comparateur 70 est également appliquée à un flip-flop à bascule 76, l'amenant à prendre son état Q, dans 25 lequel il excite un circuit monostable 78. Le monostable a une période de retardement égale à l'intervalle entre deux impulsions de décalage. Sa sortie amène un flip-flop 80 à prendre son état Q dans lequel il active un autre monostable 82. La sortie du monostable 82 remet en l'état initial le flip-flop 80. La 30 sortie Q du flip-flop 80 est appliquée à une porte ET 84. L'autre entrée de la porte ET 84 est constituée par des impulsions de décalage en provenance de la source 64. Pour comprendre comment fonctionne le circuit décrit pour produire 1 + 16 — K impulsions de décalage pour les registres 35 40 et 42, on notera qu 72 09070 13 2130294 pour permettre l'application d'une impulsion de décalage de plus aux registres à décalage. A ce moment, le flip-flop 80 est remis en l'état initial, d'où il résulte que la porte ET 84, qui fournit les impulsions de décalage aux registres 40 et 42, 5 est bloquée. Le monostable 82 introduit un retard suffisant pour assurer l'achèvement de l'impulsion T9 et, à ce moment, le flip-flop 80 est activé, ce qui met la porte ET 84 en mesure de laisser passer de nouveau des impulsions de décalage. A l'instant T14, il est nécessaire de décaler les contenus 10 des registres 40 et 42 de 16-K impulsions de décalage vers la droite. A l'instant T14, une porte ET 86 est validée par la sortie Q du flip-flop 76, pour laisser passer des impulsions de décalage vers le compteur 74. Au moment où le comparateur 70 délivre une sortie, le flip-flop à bascule 76 est amené dans 15 son état Q. La sortie Q du flip-flop à bascule court-circuite le monostable 78 et remet en l'état initial le flip-flop 80, pour interrompre l'application d'impulsions de décalage aux re« gistres 40 et 42. Ainsi, 16-K impulsions de décalage seulement ont été appliquées aux registres 40 et 42. 20 La manière par laquelle le registre à décalage 20 est décalé de K impulsions vers la droite est également illustrée par la fig. 2. A l'instant T4, un monostable 67 est activé, en réponse à cette impulsion T4, pour valider une porte 69 afin de transférer le contenu K dans un compteur régressif 90. Ce 25 transfert intervient avant T5. Des impulsions de décalage en provenance de la source 64 sont appliquées à une porte N0N-ET 88. Cette porte N0N-ET est validée, en présence d'une impulsion T5, pour appliquer les impulsions de décalage au compteur régressif 90. La présence de l'impulsion T5 positionne également un 30 flip-flop 92. La sortie Q du flip-flop 92 valide une porte ET 94. L'autre entrée de la porte ET est constituée par des impulsions de décalage en provenance de la source 64. La sortie de la porte ET est appliquée au registre à décalage 20, ce qui provoque un décalage de celui-ci vers la droite. Lorsque le 35 compteur de contenu K est revenu à (O), il renet en l'état initial le flip-flop 82, si bien que la porte N0N-ET 94 n'est plus en mesure de transférer des impulsions de décalage vers le registre à décalage 24. On notera que, s'il y a lieu de changer le sens de rota-40 tion, il suffira d'inverser le signe de si. Les sorties et 72 09070 14 2130294 Y±+1 indiquent les lieux des points sur la courbe voulue. On peut utiliser le montage représenté sur la fig. 3 pour adapter le dispositif de l'invention en vue de son utilisation dans un système de commande numérique d'une machine-outil. Dans 5 ce montage, il est prévu des registres à décalage et des soustracteurs pour assurer une transition entre les données à haute précision produites par le générateur de sinus-cosinus et des données de moindre précision exigées par les servo-moteurs de mise en position d'un système de commande numérique de machine-10 outil. Cela est réalisé de manière à produire, pour les servomoteurs, des sorties par incréments qui, additionnés, donnent les valeurs et ^Yi+i^ arrondies. Pour une commande numérique de machine-outil en un mode circulaire, les entrées des registres à décalage 16 et 18 sont 15 respectivement les valeurs I et J qui ont initialement la même précision que dans la boucle d'asservissement. Ce sont les valeurs introduites dans des systèmes pour indiquer le rayon de la courbe voulue. L'entrée é est simplement le nombre de vitesse d'avance multiplié par une constante. En effet, le nombre de 20 vitesse d'avance est généralement donné en unités (radians/mn). Il est simplement mis à l'échelle en radians par itération et est donc fonction de At. On notera également que (At) est généralement fixé dans une application telle que celle-ci, en particulier lorsque le système est associé à une calculatrice. 25 La machine-outil à commande numérique, à laquelle la pré sente invention est appliquée, est mise en fonctionnement jusqu'à ce que son outil de coupe soit amené à l'endroit de la pièce à usiner où doit s'effectuer la coupe selon la courbe voulue. Puis-# au moment du décodage du mot de code ordinairement employé dans 30 ces systèmes pour indiquer qu'il y a lieu de découper une courbe, les registres à décalage 16, 18 et 20 sont chargés respectivement avec les données I, J et «6 et le circuit 10 de commande et de synchronisation est activé. Le montage représenté sur la fig. 1 fonctionne selon le mode décrit, jusqu'à l'instant T16. L'ins-35 tant T16 est un temps de retard et il est subdivisé en trois intervalles, Au temps Tl6a., un registre à décalage 100 est mis en mesure de recevoir le contenu du registre à décalage 16. Un registre à décalage 102 est mis en mesure de recevoir le contenu de 1'additionneur/soustracteur 32. Un registre à décalage 104 est 40 mis en mesure de recevoir le contenu du registre à décalage 18. 72 09070 15 2130294 Un registre à décalage 106 est mis en mesure de recevoir le contenu de 1'additionneur/soustracteur 36. Les contenus des additionneurs/soustracteurs sont respectivement et ^ou et Les contenus des registres à décalage 16 et 18 5 sont respectivement 1^ et . A un instant T161d, les contenus des registres à décalage 100, 102, 104 et 106 respectivement sont décalés de K bits vers la droite. Cela est effectué par une comparaison du contenu du compteur K ou de normalisation 66 avec le contenu d'un compteur 10 110 qui compte jusqu'au moment où un comparateur 108 indique que le contenu du compteur 110 est égal à celui du compteur K 66. A ce moment, la sortie du comparateur remet en l'état initial le compteur, ainsi qu'un flip-flop 112. Le flip-flop 112 avait été positionné à l'arrivée de l'impulsion T161d, de manière 15 à valider une porte ET 114 pour l'application d'impulsions de décalage, non seulement au compteur 110, mais aussi aux registres à décalage 100, 102, 1G4 et 106. Lorsque le compteur 110 contient un compte égal a celui de la normalisation, l'alimentation en impulsions de décalage est interrompue. Ainsi, ces 20 registres ont été décalés de K bits vers la droite pour compenser la sortie du multiplicateur K ou de normalisation précédemment appliquée au contenu des registres à décalage 16 et 18 et des additionneurs-soustracteurs 34, 38. A l'instant T16_ç, deux soustracteurs, respectivement 116 et 25 118, sont activés pour soustraire le contenu du registre à décalage 100 du contenu du registre à décalage 102 et le contenu du registre à décalage 104 de celui du registre à décalage 106. Les sorties des soustracteurs constituent les sorties par incréments qui sont appliquées aux servo-moteurs de positionnement 30 de façon en soi connue, afin de les mettre en action de sorte que la machine-outil décrive un arc. Des points de fin de' course séparés sont normalement prévus, ces points pouvant être normalisés par "K" et comparés avec les contenus des registres à décalage 16 et 18 pour indiquer le moment où l'opération de 35 découpage de l'arc est achevée. Il a donc été décrit et représenté un modèle nouveau et utile de générateur de sinus-cosinus ou générateur de courbe. On peut avoir une idée de l'amélioration de précision qu'apporte l'invention par rapport au système D.D.A. classique, en consi-40 dérant le tableau suivant qui indique l'erreur de troncage après 72 09070 16 2130294 un radian pour les deux systèmes . COMPARAISON DE L'ERREUR DE TRONCAGE - 10 RAYON \1 X2 + Y2 7 10 106 ÎO5 - 1 ( 104 ' i RADIANS/ITER. (6 15xl0~6 I5xl0~5 15X10"4 ] 15xlO~3 DDA CLASSIQUE (en parallèle) 75. 75. 75. 75. SYSTEME DE LA fig. 1 .42xlO—^ .42xlO~6 .42xlO~4 .42xlO~2 Erreur après un radian On notera que certaines erreurs dans le système de la fig. 1 sont inférieures au pouvoir de résolution du système (avec normalisation ). 72 09070 17 2130294 —REVENDICATIONS— 1. Dispositif pour la production itérative de points situés sur un cercle dont le rayon est déterminé par des conditions initiales comprenant les coordonnées X et Y d'un point de départ dudit cercle et le nombre de radians par itération voulu repré— 5 senté par caractérisé par le fait qu'il comprend : des premiers moyens pour mémoriser la valeur X ; des deuxièmes moyens pour mémoriser la valeur Y ; des troisièmes moyens pour mémoriser la valeur i ; des premiers moyens multiplicateurs, auxquels les contenus des premiers moyens et des troisièmes moyens de mémori-10 sation sont appliqués pour former un premier produit ; des deuxièmes moyens multiplicateurs, auxquels les contenus des deuxièmes moyens de mémorisation et des troisièmes moyens de mémorisation sont appliqués pour former un deuxième produit ; des quatrièmes moyens pour mémoriser le premier produit formé par les premiers 15 moyens multiplicateurs ; des cinquièmes moyens pour mémoriser le deuxième produit formé par les deuxièmes moyens multiplicateurs ; un premier additionneur-soustracteur auquel le contenu des quatrièmes moyens de mémorisation et le contenu des deuxièmes moyens de mémorisation sont appliqués en vue de leur soustraction, pour 20 produire une différence ; un deuxième additionneur-soustracteur auquel le contenu des cinquièmes moyens de mémorisation et le contenu des premiers moyens de mémorisation sont appliqués en vue de leur addition, pour former une somme ; des moyens pour appliqua: la valeur contenue dans les troisièmes moyens de mémorisation et 2 5 la valeur contenue dans le premier additionneur-soustracteur aux premiers moyens multiplicateurs, pour former un troisième produit; des moyens pour appliquer la valeur contenue dans les troisièmes moyens de mémorisation et la valeur contenue dans le deuxième additionneur-soustracteur aux deuxièmes moyens multiplicateurs pour 30 former un quatrième produit ; des moyens pour transférer le troisième produit contenu dans les premiers moyens multiplicateurs vers les quatrièmes moyens de mémorisation ; des moyens pour transférer le quatrième produit contenu dans les deuxièmes moyens de multiplication vers les cinquièmes moyens de mémorisation ; des moyens 3 5 pour appliquer le troisième produit contenu dans les premiers moyens de mémorisation et la valeur contenue dans les quatrièmes moyens de mémorisation au premier additionneur-soustracteur en vue de leur addition, afin de produire une valeur qui est la coordonnée X du point suivant sur le périmètre du cercle voulu ; des 72 09070 18 2130294 moyens pour appliquer la valeur contenue dans les deuxièmes moyens de mémorisation et la valeur contenue dans les cinquièmes moyens de mémorisation au deuxième additionneur-soustracteur en vue de leur soustraction, pour produire une valeur qui est la coordonnée Y du 5 point suivant sur le périmètre du cercle voulu ; et des moyens pour introduire les valeurs de coordonnées X et Y, produites par le premier et le deuxième additionneurs-soustracteurs respectivement, dans les premiers et dans les deuxièmes moyens de mémorisation, afin de déterminer le lieu du point suivant sur le périmètre du 10 cercle voulu. 2. Dispositif selon la revendication 1, caractérisé par le fait que les premiers aux cinquièmes moyens de mémorisation comprennent chacun un registre à décalage et par le fait qu'il est prévu des moyens pour décaler les valeurs X et Y contenues dans le 15 premier et dans le second registres à décalage dans un premier sens, d'un nombre de positions de chiffre qui convient pour normaliser ces valeurs, moins une position de chiffre, afin de produire une valeur K ; des moyens pour décaler la valeur dans le troisième registre à décalage, un nombre dépositions de chiffre égal 20 à K, dans un sens opposé au premier sens ; des moyens pour décaler le premier et le second produits «SX et ^Y dans le quatrième et le cinquième registres à décalage dans un sens opposé au premier sens, un nombre de positions de chiffre égal à (1 + 16 - K) ; et des moyens pour décaler le troisième et le quatrième produits dans le 25 quatrième et le cinquième registres à décalage, dans un sens opposé au premier sens, un nombre de positions de chiffre égal à (16 - K). 3. Dispositif selon la revendication 1 ou 2, caractérisé par le fait que les premiers et les deuxièmes moyens multiplicateurs comprennent des moyens pour ne former, en tant que produit, qu'un 30 nombre prédéterminé des bits les plus significatifs de leurs produits. 4. Dispositif selon la revendication 1, 2 ou 3, caractérisé par le fait qu'il est prévu des moyens pour soustraire les valeurs X et Y contenues respectivement dans les premiers et les deuxièmes 35 moyens de mémorisation des valeurs de coordonnées X et Y respectivement produites par le premier et le deuxième additionneurs-soustracteurs, afin de former des valeurs représentatives d'incréments de mouvement pour décrire un cercle. 5. Procédé pour la production itérative de points se situant 40 sur la périphérie d'un cercle, à partir d'une information de 72 09070 19 2130294 conditions initiales se composant des coordonnées X et Y du départ du cercle voulu et d'une valeur qui est égale au nombre de 32 radians par itération («S) multiplié par 2 , $ étant inférieur à 1,0, caractérisé en ce qu'on mémorise les valeurs X, Y et |j' res-5 pectivement dans des premiers, des deuxièmes et des troisièmes moyens de mémorisation ; on multiplie les valeurs contenues dans les premiers et les troisièmes moyens de mémorisation pour former un premier produit ; on multiplie les valeurs contenues dans les deuxièmes et les troisièmes moyens de mémorisation pour former un 10 deuxième produit ; on mémorise le premier et le deuxième produit, respectivement dans des quatrièmes et des cinquièmes moyens de mémorisation ; on soustrait le produit contenu dans les quatrièmes moyens de mémorisation de la valeur contenue dans les deuxièmes moyens de mémorisation pour former une première différence ; on 15 ajoute la valeur contenue dans les premiers moyens de mémorisation au produit contenu dans les cinquièmes moyens de mémorisation pour former une première somme ; on multiplie la première différence par la valeur contenue dans les troisièmes moyens de mémorisation pour former un troisième produit ; on multiplie la première somme 20 par la valeur contenue dans les troisièmes moyens pour former un quatrième produit ; on mémorise le troisième et le quatrième produits, respectivement dans les quatrièmes et les cinquièmes moyens de mémorisation ; on ajoute la valeur contenue dans les premiers moyens de mémorisation au troisième produit contenu dans 25 les quatrièmes moyens de mémorisation pour former la coordonnée X du point suivant sur le cercle ; on soustrait, de la valeur contenue dans les deuxièmes moyens de mémorisation, le produit contenu dans les cinquièmes moyens de mémorisation, pour former la coordonnée Y du point suivant sur le cercle ; et on mémorise les 30 valeurs des coordonnées X et Y du point suivant sur le cercle, respectivement dans les premiers et les deuxièmes moyens de mémorisation en vue de l'itération suivante. 6. Procédé selon la revendication 5, caractérisé par le fait qu'il comprend en outre les opérations consistant à normaliser 35 les valeurs X et Y contenues dans les premiers et les deuxièmes moyens de mémorisation, les valeurs X et Y étant multipliées par 2N, N étant une valeur de normalisation ; à réduire d'une position de chiffre la normalisation des valeurs X et Y contenues dans les premiers et les deuxièmes moyens de mémorisation, afin de réduire 40 leur multiplication à une valeur 2N~1 égale à 2K ; à multiplier 72 09070 20 2130294 la valeur 4> contenue dans les troisièmes moyens de mémorisation k par 2 ; à multiplier le premier et le deuxième produits contenus respectivement dans les quatrièmes et les cinquièmes moyens de — ( 1. + 3.6K ) mémorisation par 2 ; et à multiplier le troisième et le 5 quatrième produits contenus dans les quatrièmes et les cinquièmes , - • .. ~-(16—K) moyens de mémorisation par 2 7. Procédé selon la revendication 6, caractérisé par le fait qu'il comprend en outre les opérations consistant à mémoriser les valeurs de X, Y et les coordonnées X et Y du point suivant 10 sur le cercle, respectivement dans des sixièmes, des septièmes, des huitièmes et des neuvièmes moyens de mémorisation ; à multiplier les valeurs contenues respectivement dans les sixièmes, les septièmes, les huitièmes et les neuvièmes moyens de mémorisation —K par 2 ; à soustraire l'une de l'autre les valeurs contenues dans 15 les sixièmes et les huitièmes moyens de mémorisation ; et à soustraire l'une de l'autre les valeurs contenues dans les septièmes et les neuvièmes moyens de mémorisation, pour produire des incréments de commande de mouvement circulaire. 8. Procédé selon la revendication 5, 6 ou 7, caractérisé par 20 le fait que chacune des opérations de multiplication comprend la suppression d'un nombre prédéterminé de bits parmi les moins signi ficatifs dans le produit. 9. Application du dispositif ou du procédé, suivant l'une quelconque des revendications précédentes à la commande numérique 25 des machines-outils 10. Interpolateur circulaire pour un système de commande de machine-outil, caractérisé par le fait qu'il comprend en combinaison : une calculatrice électronique numérique, programmée de manière à produire par itération des points qui se situent sur un 30 cercle dont le rayon est déterminé à partir de conditions initiales reçues, comprenant des signaux de position d'un point de départ sur ledit cercle (Xq, Yq), en produisant itérativement des signaux de sortie + en réponse à des signaux mémorisés Yi, (é), les relations entre les signaux de sortie 35 et les signaux mémorisés (^» Yi, $) étant définies par les expres sions suivantes : X. i = X. — é (1/2 é X. - Y.) Yi+i = Yi - é d/2 Y± + X.) où é est le nombre de radians de rotation par itération et X., Y. * i' i 40 sont les signaux de position après i itérations ; et un ensemble 72 09070 21 2130294 soustracteur monté de manière à recevoir les signaux de sortie (Xi+^, Y^+^) et les signaux mémorisés (X^, Y^) et à engendrer, en réponse à ces signaux, des incréments de commande de mouvement (/\X,/\Y) pour le système de commande de la machine-outil, ces 5 signaux de commande de mouvement (/\X.Ay) étant liés aux signaux de sortie (X. , Y. .) et aux signaux mémorisés (X., Y.) par les x+1' i+l 3 i' i r relations suivantes :