FR 2701128 A1 19940805 FR 9400052 A 19940105 i "Procédé pour produire des grandeurs de guidage pour des régulations en boucle fermée de position dans des machines de commande numérique". Etat de la technique L'invention concerne un procédé de produc- tion d'une grandeur de guidage pour une régulation en boucle fermée de position dans une machine à commande numérique continue, dans lequel des valeurs de consi- gne de trajet sont définies par une commande numérique10 sous forme d'une suite de valeurs de commande discrè- tes en temps à des instants discrets de balayage (k), à partir desquels sont produites des valeurs de consi- gne de position discrètes au moyen d'un filtre, valeurs qui sont amenées à une régulation en boucle15 fermée de position comme grandeurs de guidage Des grandeurs de guidage pour boucles de régulation dans des machines à commande numérique sont produites de façon habituelle selon un procédé représenté sous forme de schéma par blocs A partir d'une mémoire20 d'une machine à commande numérique par exemple une mémoire vive aléatoire (RAM) ou une mémoire morte effaçable par voie électronique (EEPROM), une prépara- tion de séquence lit d'abord un ordre de route sous forme d'une séquence de commande numérique, qui con-25 tient en particulier des informations sur le type de marche et une nouvelle position de consigne et calcule à partir de là des grandeurs de trajet pour le mouve- ment entre deux valeurs de consigne de position Ce sont par exemple la longueur de la section de trajet ainsi que la vitesse et l'accélération L'information complète sur le mouvement est transmise à un interpo- lateur grossier, que l'on désigne dans la suite sim- plement comme un interpolateur Celui-ci subdivise le profil de vitesse transmis par la préparation de séquence selon un réseau interne de balayage en tron- çons A partir des tronçons, intégrés dans un intégra- teur intercalé, du profil de vitesse, une unité de transformation d'axe montée en aval détecte des valeurs de consigne de position pour les différents axes de machine, qui sont transmises à ceux-ci ensuite comme grandeurs de guidage de position L'interpola- tion grossière et la transformation d'axe sont des procédés à traiter par ordinateur et à cause de cela, une actualisation des valeurs de consigne de position amenées aux axes ou aux unités d'entraînement ne peut avoir lieu qu'avec un système à tranches de temps relativement grandes d'environ 10 ms de façon typique. Les boucles de régulation fermées de position existant dans les unités d'entraînement fonctionnent par contre sensiblement plus vite, ici on atteint des temps de cycle de moins de 2 ms A cause de cela, les valeurs de consigne de position provenant de la transformation d'axe sont encore soumises à une interpolation fine avant transmission à la régulation en boucle fermée de position des axes Son but est, en étant adaptée à la capacité de rendement de la régulation en boucle fer- mée de position, de produire respectivement un certain nombre de points d'appui intermédiaires entre deux va- leurs de consigne de position consécutives d'une gran- deur de guidage de position. Du côté du procédé ou de la machine on a pour la production des grandeurs de guidage l'exigence que le mouvement qui se produit finalement pendant une phase d'usinage consistant en une ou plusieurs séquen- ces de commande numérique se déroule de façon aussi unie que possible Par déroulement "uni" on entend dans ce cas que l'effet de secousse sur la machine qui se produit pendant un mouvement, effet qui résulte de la dérivée troisième du lieu en fonction du temps, présente aussi peu de points aigus que possible, ou en langage mathématique, que la fonction qui décrit l'effet de secousse puisse être différentiée si possi- ble partout en permanence Plus le déroulement du mou- vement a lieu de façon unie et sans à-coups plus on peut maintenir la trajet de consigne fidèle au con- tour, c'est-à-dire sans distorsions dues à des rebon- dissements En même temps les sollicitations mécani- ques de la machine sont réduites quand le mouvement se déroule de façon unie. Pour cette raison, le calcul des grandeurs de guidage de position a lieu de telle façon que l'évolution de la vitesse en phase d'accélération ou de freinage lors du mouvement de la machine pendant une séquence de travail soit linéaire en fonction du temps. Dans le cas le plus simple, une telle évolu- tion de la vitesse présente une forme trapézoïdale comme on l'a représentée à la figure 2 On a porté sur la figure 2 a) la marche avec secousse R, sur la figure 2 b) l'évolution de l'accélération a, sur la figure 2 c) l'évolution de la vitesse v, sur la figure 2 d, la position L respectivement en fonction du temps t, T désignant le temps de cycle de l'interpolateur L'évo- lution de l'accélération (figure partielle b) surve- nant sur la machine dans le cas d'une telle évolution de la vitesse a, alors, une forme rectangulaire, la marche avec secousse correspondante (figure partielle a) présente une forme d'impulsion 6. En fait, une grandeur de guidage présentant l'évolution représentée à la figure 2 délivre déjà en pratique des résultats entièrement utilisables Pour des applications de haute précision ainsi que pour des machines très chères, il est toutefois fondamentale- ment souhaitable de lisser davantage le déroulement du mouvement Ceci peut en principe arriver d'une manière simple alors que la production des grandeurs de trajet a lieu dans la préparation de la séquence de telle façon que l'accélération présente dans le cas d'une variation de la vitesse un parcours en forme de trapè- ze L'allure de la vitesse serait dans ce cas un tra- pèze avec des bords abattus en forme de parabole, la marche serait de forme rectangulaire La réalisation de cette solution simple bute cependant sur le fait que dans ce cas, le coût du calcul aussi bien pour déterminer de tels profils de vitesse que pour effec- tuer aussi leur interpolation augmenterait considéra- blement, ce par quoi le temps du cycle d'interpolation serait dans certains cas considérablement allongé. Une autre proposition connue pour lisser davantage les grandeurs de guidage, qui évite le pro- blème du temps de calcul qui existe en ce qui concerne l'interpolation consiste non pas à influencer la gran- deur d'entrée amenée à l'interpolateur mais à monter un filtre en aval de l'interpolateur, filtre qui lisse en plus la grandeur de guidage. Un procédé reposant sur cette deuxième dis- position est connu par le document EP 419 705 Selon ce document, on prévoit pour le lissage de la grandeur de guidage un filtre qui adoucit le parcours des gran- deurs de guidage se trouvant sous la forme des valeurs de consigne de la vitesse par convolution avec une fonction rectangulaire Le procédé proposé limite en fait les secousses qui surviennent à une hauteur maxi- male Fondamentalement, il est souhaitable d'avoir un lissage encore meilleur des grandeurs de guidage. On résout ce problème grâce au fait qu'une valeur de consigne de position est respectivement dérivée d'une suite de valeurs de consigne de trajet précédentes, qui sont pondérées de façon appropriée. Le procédé selon l'invention permet d'une manière avantageuse d'adapter les caractéristiques du mouve- ment de la machine qu'on veut à un processus indivi- duel, en modifiant des coefficients déterminés, au moyen desquels on peut influencer l'allure d'un mouve- ment. Le procédé proposé peut être facilement représenté sous la forme d'algorithme mathématique et peut être facilement mis en oeuvre dans un ordinateur. On va expliquer ci-après plus en détail un exemple de réalisation de l'invention à partir des dessins. Dessins La figure 1 montre un schéma par blocs d'une commande habituelle de machine à commande numérique. La figure 2 montre une caractéristique de grandeurs de guidage pour des commandes numériques. La figure 3 montre un profil de vitesse d'une séquence d'usinage avec le déroulement corres- pondant de la grandeur de guidage de position. La figure 4 est un schéma par blocs d'une partie d'une commande numérique. La figure 5 est un schéma par blocs de l'al- gorithme de réglage proposé. La figure 6 est un partage des coefficients de pondération. La figure 7 est un tableau qui sert à repré- senter la détermination de coefficients de pondéra- tion. La figure 8 montre un profil de vitesse appartenant à un trajet de consigne du déplacement selon la figure 7. Description L'idée de base du procédé proposé est de re- toucher les valeurs de consigne de trajet interpolées, de telle façon qu'une marche souhaitée de la machine est mise au point La figure 4 montre la mise en place d'un filtre à insérer pour la mise en oeuvre du procé- dé La structure est reproduite à la figure 5 Confor- mément à la structure numérique de la commande numéri- que, le filtre est un filtre numérique Un espace dis- cret de "Laplace" se trouve pour cette raison dans ce qui suit à la base de toutes les représentations ma- thématiques concernant le filtre Des introductions à la théorie correspondante se trouvent pratiquement dans tous les livres d'enseignement sur les systèmes de régulation numériques. Sur la figure 4, v(k) désigne la vitesse par rapport à l'instant k T de balayage (Par souci de sim- plification, la constante de temps de balayage T, con- ditionnée par le système, n'est plus dans ce qui suit accompagnée, au lieu de k T on posera par exemple uni- quement k) L(k) sera la position de consigne à l'instant k; L(k) sera la position de consigne modi- fiée à l'instant k; la référence 41 désigne un inté- grateur, la référence 42 désigne un organe de temps mort de n-iême ordre, la référence 43 un organe de temps mort de premier ordre et la référence 44 des facteurs de pondération La grandeur d'entrée dans l'interpolateur est le profil de vitesse V provenant de la préparation de la séquence, voir figure 1 Le signal de sortie interpolé v(K) est amené à une suite d'organes de temps mort de premier ordre 43 ainsi qu'à un intégrateur 41 A chaque organe de temps mort 43 est associé un élément proportionnel 44, dont les signaux de sortie sont rassemblés en un point additif 45. Le signal de sortie du point additif 45 est amené à un autre point additif 46, auquel est amené en outre par interpolation d'un organe de temps mort de n-ième ordre 42 le signal de sortie de l'intégrateur 41 A la sortie du point additif est appliquée une valeur de consigne de position modifiée L(k) Le filtre représenté à la figure 5 peut être facile- ment réalisé sous forme d'un programme pour une com- mande numérique quand les facteurs de pondération 44, qui déterminent l'action proprement dite du filtre, sont connus On va expliquer ci-après un procédé ser- vant à leur détermination. Le principe du procédé de filtrage proposé consiste à déterminer une valeur de consigne de posi- tion modifiée par une sommation appropriée d'un nombre fixe de valeurs de consigne de position délivrées par l'interpolateur. Chaque valeur de consigne de position utili- sée pour déterminer une valeur de consigne de position modifiée est pondérée par un coefficient, c'est-à-dire qu'elle est multipliée par un nombre compris entre O et 1, qui établit sa signification pour la détermina- tion de la valeur de consigne de position actuelle modifiée Dans une représentation mathématique une valeur de consigne de position modifiée se détermine en conséquence comme suit: n L(k) = E ci L(k- i) ( 1) i=o Dans cette formule, L(k) désigne des valeurs de consigne de position d'interpolateur, ci des coef- ficients de pondération, L(k) des valeurs de consigne de position modifiées, N est le nombre N des valeurs de consigne de position prises respectivement en considération, N détermine l'ordre du filtre Afin io qu'à l'état stationnaire, on a par exemple celui-ci quand on a une valeur de consigne qui ne varie pas dans le temps, on obtienne aussi effectivement une va- leur de consigne de position prédéfinie à la sortie du filtre, il faut que soit remplie pour les coefficients de pondération ci la condition auxiliaire suivante n E Ci = 1 i=o En remplissant cette condition auxiliaire, on peut choisir en principe librement les coefficients de pondération Comme justement les coefficients de pondération conditionnent l'effet de filtrage, on peut par leur choix approprié influencer la marche de la machine, en particulier on peut obtenir un lissage de l'allure du mouvement. Pour déterminer les coefficients de pondéra- tion, on doit d'abord déterminer l'ordre du filtre n et de cette façon combien de valeurs de consigne de position précédentes doivent entrer respectivement dans la détermination d'une valeur de consigne de position modifiée L(k) Plus l'ordre du filtre N est grand, c'est-à-dire plus on doit prendre en considéra- tion de valeurs de consigne de position lors de la formation d'une valeur de consigne de position modi- fiée, meilleur est l'effet de lissage, plus est long aussi le temps de calcul nécessaire Des ordres de filtre de N allant de 10 à 20 se sont révélés en pra- tique raisonnables Pour le choix, des coefficients de pondération, il s'est révélé avantageux de déterminer ceux-ci de telle façon que les valeurs moyennes d'une suite soient plus fortement pondérées par des valeurs de consigne de position entrant dans la détermination d'une valeur de consigne de position modifiée et que la pondération s'effectue de façon symétrique par rap- port au milieu On va expliquer ceci au moyen d'un exemple Supposons que l'on choisisse les coefficients de pondération pour un filtre d'ordre N = 6, il y a alors six coefficients de pondération cl à c 6 à choi- sir Le poids principal se trouve sur les deux coeffi- cients du milieu C 3 et C 4 quand on choisit par exemple les coefficients C 3 et C 4 avec une valeur de 0,3 Un choix symétrique des coefficients a lieu quand on choisit en outre pour les coefficients c 2 et C 4 une valeur de 0,15 et pour les coefficients cl et c 6 une valeur de 0,05 En choisissant de cette façon les coefficients cl à c 6, on remplit aussi la condition auxiliaire des coefficients selon laquelle la somme des coefficients doit être égale à 1. On a représenté à la figure 6 graphiquement la répartition des coefficients indiquée ci-dessus On a porté la valeur c du coefficient de pondération en fonction de sa position N dans la suite Par exemple on-a représenté sur la figure 6 encore une autre cour- be possible de répartition pour le choix du coeffi- cient de pondération, la ligne 61 Il va de soi que d'autres répartitions sont également possibles. Une autre possibilité de déterminer les coefficients de pondération consiste à déterminer ceux-ci de façon graphique On a représenté cela à partir de la figure 7 Selon ce procédé, on représente d'abord par la voie du dessin une trajectoire servant d'objectif pour l'allure de la grandeur de trajet de la boucle de régulation lors du passage entre deux valeurs de consigne de trajet, dont le passage est de forme brusque ou rectangulaire sans filtrage En règle générale, c'est l'accélération du trajet, voir par exemple la figure 2 b De préférence, il s'agit dans le cas de la fonction de transition prédéfinie d'une courbe symétrique par rapport à un centre ou un point d'inflexion On représente un parcours de courbe x(k) compris entre les valeurs en ordonnées de O à 1 en fonction du réseau k de l'interpolateur. A partir du dessin, on obtient alors les coefficients de pondération respectivement sous la forme d'accroissement en ordonnées de la trajectoire entre deux points de balayage consécutifs, par exemple on obtient dans le cas de l'exemple de la figure 7, le coefficient de pondération c 1 à partir de la différen- ce x 2-x: des valeurs en ordonnées aux instants de balayage k 1 et k 2, le coefficient de pondération c 2 à partir de la différence x 3-x 2 des valeurs en ordonnées aux instants de balayage k 3 et k 2. Une réalisation d'un filtre qui satisfasse d'une façon simple à l'équation ( 1) avec le coeffi- cient de pondération ci obtenu, pour obtenir des valeurs modifiées de consigne de position L(k), n'est d'ailleurs pas possible La raison de cela tient à ce que les valeurs de consigne de position L(k) à l'inté- rieur d'une séquence à commande numérique sont respec- tivement rapportées à la valeur finale de la séquence à commande numérique précédente Leur évolution est de ce fait discontinue aux changements de séquences de commande numérique, comme on l'a représenté à la figu- il re 3 b De cette façon, on arrive à avoir des erreurs de trajet en particulier aux changements de séquence de commande numérique si l'on détectait la valeur de consigne de position respectivement actuelle de façon continue selon l'équation ( 1) à partir d'une suite des valeurs de consigne de position pondérées précédentes, un certain nombre de valeur de consigne de trajet de la séquence de commande numérique I se transforment dans l'exemple de la figure 3 b en la première valeur modifiée de consigne de position et de cette façon conduirait à une considérable distorsion de la valeur de consigne de position à déterminer. On contourne cette difficulté en faisant passer la formation nécessaire à la détermination des valeurs modifiées de consigne de position L(k) d'une somme de valeurs pondérées de consigne de position selon l'équation ( 1) à la formation d'une somme de vitesses pondérées de trajet. Pour déterminer les facteurs de pondération bi du filtre selon la figure 5, on représente pour cette raison les valeurs modifiées de consigne de position L(k) selon l'équation ( 1) en fonction de la vitesse de trajet correspondant à chaque valeur de consigne entrant dans le calcul de la valeur de consigne, comme suit L(k) = cn L(k-n) + cn-i (L(k-n) + v(k-(n-1))) + c 1 (L(k-n) + v (k-(n-1) + v(k-1)) ( 2) + c (L(k-n) + v(k-(n-1)) + + v (k-1) + v(k) Par transformation on peut tirer de cela la relation suivante pour une position de consigne modi- fiée L(k) n-1 i n-1 L(k) = L(k-n) + E (E c) v(k-i) = E b v(k-i) + L(k-n) ( 3) i= O j= O i= O Les coefficients bi qui entrent ici en jeu sont alors les facteurs de pondération pour le filtre selon la figure 5 La formation d'une valeur de consigne de position modifiée L(k) repose de cette façon sur n-i valeurs de vitesse de trajet v(k-i) aux instants précédents de balayage ainsi que sur respec- tivement une valeur de position précédente L(k-n). Cette dernière se trouve par rapport à sa valeur de consigne de position modifiée déterminante L(k) le plus en arrière dans le passé et sert de valeur de départ A partir de la représentation de l'équation ( 3), on obtient la structure du filtre selon la figure Le filtre présente en particulier un cheminement du signal via l'intégrateur 41 et l'organe 42 de temps mort pour former une valeur de position L(k-n), ainsi que n-l cheminements de signal pour former les valeurs de vitesse Il y a lieu de noter que la somme des coefficients de pondération bi ne remplit pas une con- dition E b = l. i l La figure 8 montre l'effet du filtre selon la figure 5 On a porté la vitesse du mouvement en fonction du temps k On a désigné par la référence 81 l'évolution de la vitesse de trajet sans filtrage et par 82 l'évolution d'une vitesse de trajet avec fil- trage Cette dernière présente par rapport à la pre- mière des "coins" arrondis. R E V E N D I C A T I O N S 1) Procédé de production d'une grandeur de guidage pour une régulation en boucle fermée de posi- tion dans une machine à commande numérique continue, dans lequel des valeurs de consigne de trajet sont définies par une commande numérique sous forme d'une suite de valeurs de commande discrètes en temps à des instants discrets de balayage (k), à partir desquels sont produites des valeurs de consigne de position discrètes au moyen d'un filtre, valeurs qui sont ame- nées à une régulation en boucle fermée de position comme grandeurs de guidage, procédé caractérisé en ce qu'une valeur de consigne position L (k) est respec- tivement dérivée d'une suite de valeurs de consigne de trajet précédentes (L(k-n), v(k-i)), qui sont pon- dérées de façon appropriée. 2) Procédé selon la revendication 1, caractérisé en ce que n-1 parmi N valeurs de consigne de trajet utilisées à la formation d'une valeur de consigne de position L(k) sont des valeurs de vitesse de trajet v(k) et une valeur de consigne de trajet est une valeur de consigne de position L(k-n). 3) Procédé selon la revendication 1 ou 2, caractérisé en ce que la pondération des valeurs de consigne de trajet à lieu par multiplication par des facteurs de pondération (bi). 4) Procédé pour déterminer des facteurs de pondération selon la revendication 3, caractérisé en ce que l'on choisit d'abord des coefficients de pondé- ration (Ci) servent à la pondération d'une suite de n valeurs de consigne de position consécutives (L(k-i) avec i = 0,, n), la somme des N valeurs de consigne consécutives (L(k-i)) délivre une valeur de consi- gne position modifiée (L(k)) et ensuite la repré- sentation de la valeur de consigne de position modi- fiée (L(k)) est transformée en une somme formée à par- tir d'une valeur de consigne de position pondérée, prise à l'instant de balayage k-n et de vitesses de trajet (v(n-i)) pondérées avec des coefficients modi- fiés, prises aux instants de balayage (n-i avec i = 0, i n-1), les coefficients modifiés ( E cj) étant j=o les facteurs de pondération (bi). ) Procédé selon l'une des revendications précédentes, caractérisé en ce que chaque facteur de pondération (bi) dépend des coefficients de pondéra- tion (ci) par la relation n-1 i L = L(k-n) + E b v(k-i) avec b = C c. k ii= O = 6) Procédé selon l'une des revendications précédentes, caractérisé en ce que les coefficients de pondération (ci) sont choisis de telle façon que lors du filtrage d'une suite de valeurs de consigne de tra- jet (a(k), v(k), L(k)), qui présente une allure en forme de sauts ou de rampes avec des points de rebroussement non constants, cette suite se transforme en un parcours ayant la forme d'une fonction symétri- que pouvant être partout constamment différentiée. 7) Procédé selon la revendication 4, carac- térisé en ce que les coefficients de pondération (ci) sont choisis de telle façon que lors du filtrage d'une suite de valeurs de consigne de trajet (a(k), v(k), L(k)), qui présente une allure en forme de sauts ou de rampes avec des points de rebroussement non constants, celle-ci se transforme en un parcours ayant la forme d'une fonction sin 2. 8) Procédé selon l'une des revendications précédentes, caractérisé en ce que les coefficients de pondération ci sont déterminés graphiquement à partir d'une trajectoire prédéfinie pour la transition entre deux valeurs de consigne de trajet consécutives, tan- dis qu'on détecte un coefficient ci à partir de la croissance de la trajectoire entre deux valeurs de fonction x 1, x 2 appartenant à des instants de balayage consécutifs (k, (k+l)). 9) Procédé selon une des revendications pré- cédentes, caractérisé en ce que l'on a pour les coef- ficients de pondération (ci) l'équation n C 1. i=o