FR 2662827 A1 19911206 FR 9106822 A 19910605 i La présente invention porte sur un procédé permettant d'analyser efficacement un système à plu- sieurs corps, de type holonome, non holonome, ou non holonome par morceaux,qui exige de définir la topolo- gie d'un type général de système à plusieurs corps et de générer des équations symboliques représentatives des équations de mouvement du système à plusieurs corps de type général Le procédé comprend en outre l'introduction de valeurs numériques définissant un système à plusieurs corps de type spécifique dans le cadre du type général, la simulation du fonctionnement du système à plusieurs corps, et l'obtention des ré- sultats de la simulation Le procédé comprend le con- trôle et l'indication du caractère acceptable de res- trictions physiques et imposées par le système, rela- tivement aux valeurs numériques qui ont été introdui- tes. L'invention décrit un procédé pour l'analyse d'un système mécanique contenant des éléments mécani- ques mutuellement liés, qui comprend les opérations consistant à définir la topologie de base du système mécanique, à sélectionner un référentiel fixe au point de vue inertiel pour le système mécanique, à spécifier les contraintes du système mécanique et à générer des équations symboliques de mouvement pour le système soumis aux contraintes, pour n'importe quel système dynamique de type holonome, non holonome et non holo- nome par morceaux, à partir des contraintes spécifiées pour le système. Un autre aspect de l'invention procure un appareil pour l'analyse d'un système mécanique compor- tant des éléments mécaniques mutuellement liés, qui comprend un préprocesseur, des moyens d'entrée de données pour l'introduction de la topologie et des contraintes du système mécanique dans le pré-proces- seur, et des moyens associés au pré-processeur pour formuler des équations symboliques de mouvement pour n'importe quel système holonome, non holonome et non holonome par morceaux, faisant l'objet de contraintes, sur la base de la topologie et des contraintes qui ont été introduites. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre de modes de réalisation, donnés à titre d'exemples non limitatifs La suite de la description se réfère aux dessins annexés dans les- quels: La figure l A est une représentation d'un système mécanique à plusieurs corps qui est analysé conformément à l'invention. La figure 1 B est une représentation du sys- tème mécanique à plusieurs corps de la figure l A dans un état disjoint. La figure 2 est un schéma synoptique du sys- tème de l'invention. La figure 3 est un schéma synoptique de la fonction de pré-processeur dans le système décrit. La figure 4 est un diagramme d'une visuali- sation d'un exemple de topologie en arbre que produit le pré-processeur. La figure 5 est un schéma synoptique des fonctions qu'accomplit le module de données de système de l'invention. La figure 6 est un schéma synoptique des fonctions qu'accomplit le post-processeur de l'inven- tion. La figure 7 est une représentation d'un autre système mécanique à plusieurs corps qui est ana- lysé par l'invention. Le système décrit ici permet d'effectuer une analyse de mouvements et de forces dans des systèmes mécaniques constitués par des corps rigides liés mu- tuellement, tels que des machines, des robots, des véhicules et des engins spatiaux Le système qui est décrit ici utile le procédé de Kane pour formuler les équations qui régissent les mouvements de systèmes mécaniques et les forces agissantes, comme décrit dans l'ouvrage "Dynamics: Theory and Applications", Thomas R Kane et David A Levinson, McGraw-Hill Book Company Copyright 1985 (auquel on se référera ci-après sous l'appellation "Kane"). Le procédé de Kane est associé aux techni- ques algébriques symboliques qui sont utilisées en informatique pour générer une description de simula- tion spécifique pour un système à plusieurs corps donné On pourra se référer au document: "Symbol Manipulation Computer Program Generating Equations Of Motion Of Mechanical System", Yi-Chung Chang, Ph D. Dissertation, Stanford University Library, 1989. On peut toujours disjoindre un système méca- nique à plusieurs corps en rompant des liaisons entre deux des corps dans le système, de façon que ce der- nier présente une topologie ouverte ou en "arbre" La figure SA représente un système mécanique à plusieurs corps dans lequel des éléments ou des corps apparte- nant au système mécanique sont joints à des points de pivotement Il et 12 La figure 1 B représente le même système disjoint aux points de pivotement 11 et 12 Il est possible d'avoir plus d'un "arbre" dans un système quelconque On peut introduire des degrés de liberté entre deux éléments ou corps adjacents quelconques dans le système, en spécifiant des coordonnées généra- lisées et des vitesses généralisées, en ce qui concer- ne la position et le mouvement relatifs entre ces deux corps Le nombre total de coordonnées généralisées est égal à celui des vitesses généralisées Le système est donc holonome On décrira ci-après les formulations exigées pour la simulation d'un système à plusieurs corps de type holonome Si le système a été disjoint comme représenté sur la figure 1, dans le but d'obte- nir une topologie en "arbre", on peut imposer des con- traintes aux positions ou aux mouvements relatifs entre deux corps quelconques dans le système qui ont été séparés pendant le processus de disjonction, pour recréer la liaison Lorsqu'on effectue ceci, les vi- tesses généralisées ne sont plus indépendantes et par conséquent le système devient non holonome On décrira également ci-après les formulations pour la simulation d'un système à plusieurs corps de type non holonome. En outre, en imposant différents jeux de contraintes à un système décrit par une topologie en "arbre", on peut décrire un système à plusieurs corps par morceaux, et les formulations slappliquant à un tel système sont également envisagées ci-après L'invention qui est décrire ici permet d'effectuer trois types de simula- tion, en fonction des degrés de liberté, de type holo- nome et/ou non holonome, du système à plusieurs corps. Ces simulations comprennent une simulation cinémati- que, une simulation cinématique inverse et une simula- tion dynamique, qui sont également envisagées ci-après de façon plus détaillée Une fonction de contrôle d'énergie est incorporée pour procurer un niveau de confiance élevé dans les résultats numériques qui sont obtenus par ces diverses simulations Cette fonction de contrôle sera également décrite ci-après de façon plus détaillée Un système à plusieurs corps ayant une topologie en "arbre" contient p corps rigides Bi, (i = 1,, p), que l'on définira comme étant reliés à un corps défini précédemment ou à une référence inertielle N Comme on le voit sur la figure 1 B, on peut utiliser B pour représenter la référence iner- tielle N Par conséquent, N ou B est toujours la racine de la topologie en arbre On peut définir l'ar- bre par un tableau j(i) de dimension p, et j(i) est l'index du corps auquel le corps Bl est relié Par exemple, le tableau j(i) du système à plusieurs corps de la figure 1 B est la suivant, lorsque les éléments du système à plusieurs corps sont désignés comme le montre la figure 1 B. i 1 2 3 4 5 6 7 8 j O 1 2 3 2 5 6 6 Bl a une masse mi et une somme de dyades d'inertie centrale égale à Ii On peut spécifier la configuration et le mouvement de Bl par rapport à B. par un nombre égal de coordonnées généralisées qr et de vitesses généralisées ur Après avoir spécifié qr et ur pour tous les B, avec i allant de 1 à p, on a un nombre total de qr' et donc de ur, qui est égal à n On dit alors que le système mécanique possède n degrés de liberté On désigne par Bt et BJ les centres de masse de Bl et B On désigne par (n 1, N 2, N 3) et (vil, v 32, v 33) deux jeux de vecteurs unitaires orthogonaux fixés dans Bl et B, et ces deux jeux coincident avec (ni, N 2, N 3), qui est un jeu de vecteurs unitaires orthogonaux fixés dans N (ou C). L'existence de ces vecteurs sera permise lorsque tous les qr seront égaux à zéro On note que lorsque j est égal à zéro, B* est un point fixé dans B 0, et les vec- teurs unitaires N fixés dans Bl et Bj sont égaux aux vecteurs unitaires fixés dans N Si on désigne en outre par Bl et B deux points qui coïncident mutuel- lement de façon instantanée et qui sont respectivement fixés de façon instantanée sur Bl et B, la configura- tion et le mouvement de Bl par rapport à B sont don- nés par les grandeurs, suivantes, en fonction de q r et u r PJJ est un vecteur de position allant de B* à B dans des bases B. J J J pll est un vecteur de position allant de B à B* dans des bases B. J 1 i J Ci est un vecteur de cosinus directeur allant de (vi, v 2, v 3) à (nl, n I, N 3) i' Vrel est la vitesse relative entre Bl et Bj, qui est égale à Vi Vj dans des bases B jol est la vitesse angulaire de Bl par rap- port à B dans des bases B J i Si jest égal à zéro, B n'est pas nécessai- o rement fixé de façon instantanée dans N, et sa vitesse est donnée par: V, qui est la vitesse de B dans des bases o N ou dans le référentiel. En outre, la relation entre ur et qr (c'est-à-dire la dérivée de qr), est donnée par l'expression suivante, faisant intervenir les matrices Yr et Z: rs r n ur t Yrs + Z (r = 1, n s= 1 l Il y a îi forces Fik (k = 1,, îi) qui agissent sur le corps Bl au point P et couples T agissant sur le corps Bi Ces quantités sont définies de la façon suivante: Fik est une force exprimée dans des bases B. ou des bases N pik est un vecteur de position allant de B* pik Ti est un couple exprimé dans des bases B. 1- ou N. La cinématique fait intervenir la position, l'orientation, la vitesse partielle, la vitesse angu- laire partielle, l'accélération et l'accélération an- gulaire de chaque élément ou corps, ainsi que les expressions des dérivées par rapport au temps de qri dans les termes ur et qr (r = 1,,n) Ces quantités liées à un corps B sont obtenues en faisant la somme i des quantités pour B et des quantités "relatives" entre Bl et Bj, en suivant l'ordre de la topologie en "arbre" de la racine vers les branches Les relations suivantes sont applicables: Matrice de cosinus directeurs de (n 1, N 2, oi n 3) à (n 1, N 2, N 3): ci = Oc J ici ( 1) Position de B*: i p = pi + oci pjj + oci pii ( 2) Vitesse angulaire partielle du corps B: o ci C = J+ i (r=l,,n) ( 3) r r Wr dans des bases B; Ut = i W t + t bases Bi, sans contribution de 6 r. Accélération angulaire totale: n T + " i Jr * Ur r=l dans des bases B :1 ( 8) ( 9) ( 10) ( 11) ( 12) ( 13) Accélération de B*: Si j O o ai = (a')N + ici (a J)L +Wl x ( x P 33 JJ) + O j j x PP J+) i x ( i x pii) +xp id + 2 i x Vrel + d (Vrel) ( 14) dt (ai)N dans des bases N, ou des bases Bi; N d()rel est la dérivée par rapport au temps de Vrel dt( dans des bases Bi, sans contribution de 6 r, qui est la dérivée de ur par rapport au temps. Accélération totale: i=a i r n a T a + L Vir *r ( 15) r= 1 dans des bases N. Si j = O o: ai Nd o ';ii) dt (V ) + x( 1 x P) iel d (rel) + i x pii + 22 i rx V tel( l ( 16) qr s'exprime en fonction de ur et qr en utilisant: lW rsl =Yrsl ( 17) { Xr}= lWrsl {Z ( 18) et n qr 7 rs +s Xr ( 19) s=i On peut écrire les équations dynamiques sous la forme suivante: lMrsl {Ur} = R ( 20) Dans ce qui précède, lMrsl est une matrice de dimensions N x n, { r} est une matrice de dimen- sions N x 1 contenant 6 r, qui est la dérivée de ur par rapport au temps, et { Rr J est une matrice de dimen- sions N x 1 On utilise pour construire M et R les quantités cinématiques auxquelles on vient de faire référence. M est la matrice de masse du système. vi i i i i M = m g Vl ( & On détermine tout d'abord la force résultan- te F et le moment résultant T par rapport au centre de masse de toutes les forces agissant sur chaque corps Bi, en utilisant: ui ik Fi = Fik ( 23) k=l dans des bases N ou des bases Bi, Ti = T + Pik x F ( 24) k= 1 dans des bases N ou des bases B On construit ensuite le couple d'inertie, sans contribution de la part de 6 r, de chaque corps B. T = Ii Xi + Cui (i wi) ( 25) I dans des bases B. Ii est la somme des dyades d'inertie de B. (équation ( 22)); i est donné par l'équation ( 12), wi est donné par l'équation ( 12), i west donné par l'équation ( 5) On obtient Rr par la relation Vli R = V r (mi a) + F i) i=l + r * '(T + T)l ( 27) dans laquelle Vr est donné par l'équation ( 6) ou ( 9) r M est la masse du corps B. i 1 i a est donné par l'équation ( 4) ou ( 16) F est donné par l'équation ( 23) i w r est donné par l'équation ( 3) r Ti est donné par l'équation ( 24) T* est donné est par l'équation ( 25) On appelle force b contrainte sur le corps B. la force résultante et le moment résultant par rapport à un point, fixé dans B ou B (le corps auquel B est relié d'après la topologie en "arbre"), que B doit J exercer sur Bi, en plus des forces et des couples actifs donnés, pour produire les solutions de mouve- ment pour le système Le problème est posé de la façon suivante Si les mouvements du système, toutes les forces et les couples actifs, un corps Bij et un point Pl fixé soit sur B soit sur Bj, et exprimé par un c i J vecteur de position P allant de B* ou de B* vers le c 1 l point intéressant dans la base fixée du corps, sont tous donnés, il reste à trouver Fci, c'est-à-dire la for- ce de contrainte que B exerce sur B dans ces bases ou références, et Tci c'est-à-dire le couple de contraite que B exerce sur B dans ces bases ou références. Pour résoudre ce problème, on accomplit les procédures suivantes: 1 On détermine tous les corps, comprenant Bi, qui sont sur les branches de l'arbre de Bi Il y a lors un nombre total de NTR corps dont les numéros sont enregistrés dans le tableau ITR (k), avec k = 1,,NTR. NTR 2 Fi = Z (ma T-F)ITR(k) ( 30) c k=l dans des bases N, avec les notations suivantes: l'index ITR(k) s'applique à m, a T et F; m ITR(k) est la masse du corps Bl TR(k) a Test obtenu par l'équation ( 15); FITR(k) est obtenu par l'équation ( 23), résolue dans des bases N. i o J- 3 Si P est fixé sur Bi, la quantité Pc, c ' c c'est-à-dire la position de pi est: c o i i o i Op = p + C ( 28) c c dans des bases N, P étant donné par l'équation ( 2), tandis que Ci est donné par l'équation ( 1), ou bien si P est fixé sur Bj, on a: cj Opi = pi + C P ( 29) c c ( 29) c c 4 On détermine T* pour tous les corps spé- cifiés dans le tableau ITR(k): (T*)i = IZT + Xi x (Il J) ( 31) dans des bases Bi, avec les notations suivantes: I est la somme des diades d'inertie, donnée par l'équation ( 24), i T est donné par l'équation ( 13) ; i wi est donné par l'équation ( 5). NTR T = T-T+(P-i P) x (ma T-F)lTR(k) C k=l c T ITR(k) ( 32) dans des bases N, avec les notations suivantes: l'index ITR(k) s'applique à T*, T, P, m, T' ' a T et F (T)ITR(k) est donné par l'équation ( 31) TITR(k) est donné par l'équation ( 24) PITR(k) est donné par l'équation ( 2). Une fois qu'on a défini un système à plu- sieurs corps ayant une topologie en "arbre", on peut imposer des contraintes au système, pour produire un système à plusieurs corps ayant des contraintes de configuration ou de mouvement On définit de la façon suivante des contraintes de configuration et de mouve- ment Il faut noter que ces deux types de contraintes concernent des contraintes s'appliquant à la configu- ration relative ou au mouvement relatif entre deux corps On envisagera ultérieurement un type de con- trainte plus général que l'on peut utiliser pour res- treindre des mouvements d'un système On définit une contrainte de configuration par les quantités suivan- tes. Deux corps Bl et B. Deux vecteurs de position apparaissant comme des vecters G H vecteurs P i Pk respectivement dans des bases B et B P est le vecteur de position de B jus- k H qu'à un point G, et Pk est le vecteur de position de B* jusqu'à un point H Ces deux vecteurs sont des fonctions de qr et de t, ou des constantes. Un vecteur unitaire b fixé dans Bl ou Bk 1 exprimé dans des bases Bl ou Bk. Des constantes. Une fonction du temps f V définie par la relation suivante: f A (NPG _ NPH b ( 33) dans laquelle f T est ou peut être une constante; P et P sont des positions respectives de G et H dans N. On peut définir une contrainte de mouvement par les quantité suivantes: Deux corps Bl et Bk i k G H G Deux vecteurs de position P, P P va de Bt à un point G, et on peut le décomposer en deux compo- santes P' Get Pi, qui sont respectivement expri- mées dans des bases B et des bases Bii Bi est un corps dans le système autre que Bi. p G = p +G ( 34) p ii De façon similaire: H H H =k kk ( 35) Un vecteur unitaire b dans des bases d'un corps sélectionné, par exemple des bases Bi. Des composantes constantes. Une fonction du temps f T' définie par la relation: f T (V V) b ( 36) dans laquelle VG et VH sont des vitesses des points respectifs G et H, en supposant qu'ils sont fixés de façon instantanée respectivement dans B. et Bk- On peut spécifier une contrainte générale en définissant des coefficients A (r = 1,,n) et B, r sous la forme de fonctions du temps et de qr de l'équation de contrainte non holonome suivante: n- z Ar Ur + B = O ( 37) r=l Lorsqu'on impose toutes les contraintes pré- cédentes, qui s'élèvent à m équations de contrainte, le système possède p degrés de liberté, avec: p = N m ( 38) Le calcul cinématique précédent a pour but de générer une équation de contrainte de la forme don- née par l'équation ( 37) pour chacune des contraintes de configuration ou de mouvement et, par des différen- tiations, de générer l'équation de contrainte associée pour r, afin de générer des quantités D telles que: n rl Ar 6 r + D = O ( 39) r= la quantité D pouvant s'exprimer de la façon suivante: n D( 40 u) D = r 1 rr U r r( 40) En combinant ces équations pour toutes les contraintes, on peut mettre sous un format matriciel les équations de contrainte globales: lAerl {Ur + {Be} = O ( 41) lAerl { 6 r} + {De = O ( 42) Dans les équations ( 41) et ( 42), lAerl est une matrice de dimensions m x n, {ur} et Pur} sont des matrices de dimensions N x 1, contenant ur et r, et lBel et lDel sont des matrices de dimensions m x 1 Les con- traintes de configuration sont exprimées de façon explicite en fonction de qr et de t, pour faciliter la détermination d'un ensemble de qr et t satisfaisant ces équations de contrainte de configuration. N G o i G ( 3 Np G = p+ ci p Gi ( 43 Np H = pk + ock H ( 44) aepi k avec P, P donnés par l'équation ( 2), Ci o Ck donnés par l'équation ( 1). On applique ensuite l'équation ( 3) pour for- mer des équations de contrainte de configuration, exprimées explicitement en fonction de qr et t: g (qrt) = O ( 45) On détermine ensuite des équations de con- trainte de mouvement associées, sous la forme des équations ( 37) et ( 39) : VG =V+Xi i p G + ld (p G)J ( 46) r r i dt r dans des bases N ou des bases B i Vr est donné par l'équation ( 6) ou ( 9), oi est donné par l'équation ( 3), id G ld(Pi)lr est la r-ième vitesse partielle de id G G dti P) qui est la dérivée par rapport au temps de Pl dans la référence Bl dans des bases Bi (équation ( 19), etc). VG = Vt + Gt i d ( 47) dans des bases N ou des bases B i V est donné par l'équation ( 7), t i ctest donné par l'équation ( 4), id G ld(PG)lt est le reste de vitesse de dt(Pi) H k k H lkd H v = V + &r x Pk + Ldt(P)Ir ( 48) r =r r k xt et ( 44). GV H b Np G Np H B = b Vt Vt b x (Np Np H)l d t tt dt (T) ( 55) D = b la G a H 2 W b x (VG V) b x (PG _ p H) wb x (w b x (Np G-Np H))l d 2 dt 2 (f T) ( 56) Ces équations sont les équations de con- trainte sous la forme des équations ( 37) et ( 39). On décrira ci-après comment on obtient un jeu de valeurs de qr et t qui satisfait toutes les contraintes de configuration Si on désigne par L le nombre total de contraintes de configuration, on peut combiner toutes les contraintes de configuration pour obtenir: ge(qrt) = O (e = 1,,L) ( 57) lAerl {ur + Be = O (r = 1,,n) ( 58) Pour montrer l'utilisation de la méthode de Newton- Raphson pour résoudre le système d'équations non li- néaires correspondant aux équations ( 57), on suppose que les L premiers qr sont des inconnues dont on doit déterminer les valeurs, tandis que les qr restants sont des quantités connues fixées On obtient la ma- trice suivante: D Ier' l=-d J (e,r = 1,,L) r {lAerl'lYrslL premières colonnes ( 59) dans laquelle lYrsl est une matrice de dimensions n x N qui est définie dans la relation relative à la solution pour ur donnée précédemment Avec les équa- tions ( 57), ( 59) et une hypothèse initiale concernant la valeur de qr (r = 1,,n), on peut trouver la so- lution relative à qr (r = 1,,L) par la méthode de Newton-Raphson. Le calcul des équations de contrainte de mouvement est le suivant: G i i G V = V +oi Jx p G ( 60) r r r dans des bases N ou des bases B. i i Vi est donné par l'équation ( 6) ou ( 9), r i Cr est donné par l'équation ( 3), G p G est donné par l'équation ( 2) dans des bases Bi, et v G ji o Gi p G ( 61) Vt = Vt + t x ( 61) H Vk +(>k p H ( 62) Vr = Vr +Cor x p H ( 62) r r r VH = Vk +cuk x p H ( 63) Vt = V t t x VG =i + x p G ( 64) avec Vi dans des bases N ou des Bi, Viest donné par l'équation ( 8), Xi est donné par l'équation ( 5), et H = k + k x p H V = V +W x P ( 65) G Nd G a = (V) = ai + Cg i PG + d(p G + ii ji G d i +d (PG)l+" x p G +dt x PG. ii ( 66) avec ai dans des bases N ou des bases Bi, Nd G -d(VG) est la dérivée par rapport au temps dt de V, qui est la vitesse de G, en supposant G fixé de façon instantanée, dans Bl ou dans N, ii a est donné par l'équation ( 14) ou ( 16) ui W ii sont donnés par l'équation ( 5), G G P Pii sont donnéspar l'équation ( 34), d (p Gi) sont des dérivées par rapport au tesi temps de P dans des bases B. i I temps de i i dt (p G dt ii) sont des dérivées par rapport au P dans des bases Bii, i est donn par l'quation ( 12), et z( est donné par l'équation ( 12), et H Nd H a = dt (V) k k k x H kd a +W x l x + H (P) kk H kkd p H k p H + C x Pkk + dt (Pkk)l x z x P ( 67) A = b lVG VH ( 68) b est donné par l'équation ( 36), Vr est donné par l'équation ( 60), r VH est donné par l'équation ( 62), r B = b l V V H f T ( 69) D =b la G a H b x VG V v H) -d ( 70) dt (f T) a, a sont donnés par les équations ( 66) et ( 67), b 6 b est donné par l'équation ( 5), G v H V, V sont donnés par les équations ( 64) et ( 65). Du fait que A et B sont donnés dans ce cas r sous la forme de fonctions de qr et t, il suffit dans le cas de la contrainte générale de déterminer D par la relation: nd D = N d (Ar) u ur dt () ( 71) r=lt r dans laquelle d N D Ar Ar -t (A r) = 51 équations d'après l'équation ( 20), avec la contribu- tion de Ae et des équations ( 41) et ( 44), sous la e forme IMI { 6} = JR} + lAl T ( 74) lAl {u J + {B i = O ( 75) lAI l + {D = O ( 76) Dans les équations ( 74), ( 75) et ( 76), M est une matrice de dimensions N x n, R est une matrice de dimensions N x 1, X est une matrice de dimensions m xl, A est une matrice de dimensions m x n, et B et D sont des matrices de dimensions m x 1 Il faut noter à nouveau que N représente les degrés de liberté holono- mes du système mécanique, et que m est le nombre total de contraintes imposées au système Le nombre de degrés de liberté non holonomes p est donc: p = n-m, comme le montre l'équation ( 38). Pour simplifier les explications, on suppose que les P premiers ur, désignés par ui, sont choisis de façon à être des vitesses généralisées indépendan- tes, et que les m ur restants, sont désignés par u D et sont des vitesses généralisées dépendantes On peut donc décomposer la matrice A en deux parties, AI et AD, et on peut écrire les équations ( 75) et ( 76) sous la forme suivante: lA 1 AD 1 Ou}+ {BJ = O ( 77) fu lAI AD 1u + Dj = O ( 78) De façon similaire, on peut décomposer M et R, et on peut réécrire l'équation ( 74) de la façon suivante: T M T+ {") ( 79) On peut poser le problème de la façon sui- vante Si M, R, A, B, D et u I sont donnés, on peut déterminer u D, 1 I (à intégrer), 6 D (à utiliser seule- ment pour calculer des accélérations), et A L'explication qui suit de la résolution de ce problème mathématique sera diviséeen deux catégo- ries La première catégorie concerne un cas dynamique, c'est-à-dire un cas dans lequel p n'est pas égal à zéro La seconde catégorie concerne un cas cinémati- que, dans lequel p est égal à zéro Dans le cas dyna- mique dans lequel p n'est pas égal à zéro, on cons- truit de la façon suivante les matrices pour Ac, Bc et D c A = 1 A ( 80) c D I -1 Bc = -AD B ( 81) D =-A D ( 82) àAD A est une matrice de dimensionsm x p et B et D sont c C C des matrices de dimensions m x 1 On obtient ensuite u D par la relation: {u D 3 = lAl 1 { u I +Bi} ( 83) On construit de la façon suivante les matrices pour M (p x p) et R (p x 1): C C M+ M +M A + (MDA) AT M A c I ID c (MID A c D Ac ( 84) c I + Ac RD -(MID + Ac MD) D ( 85) CC C D I On détermine ensuite 6 i par la relation: I ûA} = lMel {R O R ( 86) On détermine D par la relation: UDJ = lA%l t J} + {De ( 87) On détermine par la relation: j AJ= A-T L-RD + (MID + MDA) + MD)( 88) D.} ID + M-D + (MZD On note que l'équation ( 86) représente les équations dynamiques du système non holonome. Dans la catégorie cinématique, dans laquelle p est égal à zéro, A est une matrice de dimensions N x n, et tous les ur sont des variables dépendantes. On détermine u et par les relations: 1-1 { us = -A -B ( 89) 3 = -A D ( 90) On détermine A par la relation: A= AT l-R + M l ( 91) Tous les r ne seront pas intégrés, mais seront utili- sés seulement pour obtenir l'information d'accéléra- tion. Les forces de contrainte pour un système non holonome correspondent à deux types de forces ou de couples Le premier type comprend la force qui est nécessaire pour maintenir chaque contrainte imposée au système à topologie en "arbre" décrit précédemment. Ces forces sont liées aux multiplicateurs de Lagrange. Le second type de force de contrainte est la force ou le couple de contrainte qui existe entre deux corps adjacents dans la topologie en "arbre" On doit cepen- dant modifier ces forces et ces couples pour inclure la contribution du premier type de forces ou de cou- ples de contrainte Dans le cas d'une force de con- trainte résultant des équations de contrainte, aucun calcul supplémentaire n'est nécessaire Il ne s'agit que de la manière selon laquelle le multiplicateur de Lagrange, obtenu par les équations ( 88) ou ( 91), est interprété sous la forme de forces d'interaction entre les deux corps dont le mouvement relatif est soumis à des contraintes par l'intermédiaire des équations de contrainte Cette interprétation physique est possible seulement pour des contraintes de configuration et de mouvement, mais n'est pas possible pour une contrainte générale. Pour une contrainte de configuration, on peut interpréter le multiplicateur de Lagrange À de la manière suivante: si b est fixé dans Bi, A est le nombre correspondant à la mesure de la force que Bk exerce sur Bl au point H, dans la direction b Si au contraire b est fixé dans Bk, À est le nombre corres- pondant à la mesure de la force que Bk exerce sur Bl au point G, dans la direction b Pour une contrainte de mouvement, le multiplicateur de Lagrange est inter- prété comme étant le nombre correspondant à la mesure de la force que Bk exerce sur Bl au point G dans la * direction b, et À est interprété comme étant le nom- bre correspondant à la mesure de la force que Bl exer- ce sur Bk au point G dans la direction b. Les procédures de résolution indiquées pré- cédemment pour des forces de contrainte sont valides, à l'exception du fait qu'il est nécessaire de modifier F et T avant d'appliquer les équations ( 30) et ( 32). i i Cette modification a pour but de tenir compte de la contribution du multiplicateur de Lagrange À Comme indiqué précédemment, l'évaluation de la force de con- trainte entre B et B n'est pas possible si le systè- me à plusieurs corps qui est analysé contient des con- traintes générales Chaque contrainte de configuration doit donc être modifiée de la façon suivante: Si b est fixé dans B: F 4 F + À b ( 92) 1 i Fk Fk b ( 93) T T + ( P H_-P) x (Ab) ( 94) i Tk Tk + Pk x ( Xb) ( 95) Si best fixé dans Bk: F F + A b ( 96) i 1. Fk Fk b ( 97) Ti T + P? x ( b) ( 98) ik i N) x (-À (i Tk Tk + ( NP G_pk) x (-b) ( 99) k k( 9 Pour chaque contrainte de mouvement, il est nécessaire d'effectuer les modifications suivantes Fi P Fi + X b ( 100) Fk Fk À b ( 101) T A T + P x (À b) ( 102) i Tké T + p H x( -b) ( 103) On a présenté jusqu'à ce point trois maniè- d'imposer des contraintes à un système mécanique à plusieurs corps ayant une topologie en "arbre", pour obtenir un système à plusieurs corps non holonome, d'un type simple On peut définir un système à plu- sieurs corps par morceaux, en imposant tour à tour une partie ou un "sousensemble" des contraintes totales au système ayant la topologie en "arbre", et en éta- blissant ainsi np systèmes non holonomes différents. Du fait que ces systèmes non holonomes sont établis par l'application de sous-ensembles différents d'équa- tions de contrainte au même système à topologie en "arbre", on utilise l'appellation "système à plusieurs corps par morceaux" pour désigner l'ensemble de ces systèmes différents On peut regrouper cet ensemble de systèmes dans un seul programme de simulation, pour l'analyse Si on a déjà déterminé des caractéristiques cinématiques et dynamiques pour le système à plusieurs corps à topologie en "arbre", et si on a construit Ar, B ou D pour chaque contrainte (respectivement de con- figuration, de mouvement ou générale), il suffit alors de rassembler un sous-ensemble de matrices Ar, B et D conformément auxquelles des contraintes doivent être imposées, et de former les matrices lAerl, Be} et {De}, définies dans les équations ( 41) et ( 42), pour l'intervalle ou "morceau" de temps non holonome con- sidéré On peut ensuite appliquer les équations de résolution ( 74) à ( 91) à n'importe quel morceau non holonome. Deux éléments d'information supplémentaires sont nécessaires pour effectuer la simulation d'un système mécanique à plusieurs corps par morceaux Le premier élément est la manière selon laquelle le sys- tème d'analyse peut déterminer le morceau à simuler au moment présent Ceci fait intervenir la détermination du morceau initial à utiliser, et les critères pour passer d'un morceau à un autre Le second élément d'information nécessaire est l'action que le système d'analyse doit accomplir à cette transition, si la configuration ou le mouvement du système juste avant la transition ne satisfait pas les contraintes de con- figuration ou de mouvement après le passage au nouveau morceau pour la simulation Dans le système de simula- tion, ces deux éléments d'information sont fournis par la personne qui modélise le système mécanique. La fonction de contrôle d'énergie est mise en oeuvre de la façon suivante: On définit Gr 1 Qr S, Z, Kz et Ko de la façon suivante: Gr = X lvr Fi + 03 Ii (r=l,,n) ( 104) r 1 = 1 r Vr est donné par les équations ( 6) ou ( 9) Fi est donné par l'équation ( 23), Cr est donné par l'équation ( 3), Ti est donné par l'équation ( 24) 0 si m = O 3 m ( 'y 1Ar* si m O O ( 105) A est donné par l'équation ( 41) sr X est donné par l'équation ( 88) ou ( 91) P i N d i i Nd i S = J lmi V t (Vt) + ( t)l i= 1 ( 106) m est la masse du corps B. V est donné par les équations ( 8) ou ( 11), Nd i d(Vt) est la dérivée par rapport au temps, dans N, de Vi donné par les équations ( 7) ou ( 10), i W i est donné par l'équation ( 5), Ii est la somme des dyades d'inertie de Bi, donnée par l'équation ( 22), Nd i dt( t) est la dérivée par rapport au temps, i dans N, de Co t, donné par l'équation ( 4), n Z = _ (Gr + Qr) U r + S ( 107) r= 1 K 2 = {U T EMl {ur ( 108) ur est la vitesse généralisée, M est la matrice de masse holonome, don- née par l'équation ( 21), 1 Ai i+,i I i Ko mi Vt-Vt +"Jt-It- tl ( 109) i=l mi est la masse du corps Bi, Vt est donné par les équations ( 7) ou ( 10), Ii est la somme des dyades d'inertie de Bi, Wt est donné par l'équation ( 14). La fonction de contrôle d'énergie E est définie de la façon suivante: E = Z + K 2 Ko ( 110) Dans l'équation ( 110), Z est l'intégrale de Z qui est donnée par l'équation ( 107) L'intégration de Z doit s'accompagner del'intégration de Or (r=l, r ,n-m) et de qr (r=l,,n) Si E ne reste pas cons- tant, les résultats de la simulation sont incorrects. Si E reste constant, ceci ne garantit pas la validité de la simulation, mais on considère qu'il s'agit d'une présomption de validité. La simulation cinématique indique qu'on n'a pas introduit de coordonnées généralisées qr ou de vitesses généralisées ur dans la définition du système mécanique à plusieurs corps à topologie en "arbre" En d'autres termes, N = zéro Dans ce cas, seul Z dans l'équation ( 107) sera intégré dans la fonction de con- trôle d'énergie par ordinateur, E Il faut noter que les quantités dans l'équation ( 108) et la sommation n qui est définie par (Gr + Qr) ur dans l'équation r=î ( 107) sont égales à zéro De plus, du fait que V = i Vt, la fonction de contrôle d'énergie E qui est défi- nie par l'équation ( 110) devient: i Nd i i i Nd i E =| Lmi v (Vi) + O I d (d)l dt L= 1 1 i P ii _ 2 lmi Vi v + i À Oil ( 112) L= 1 La simulation cinématique inverse indique que le nombre total de q r qui sont introduits dans le système mécanique à topologie en "arbre", est égal au nombre total de contraintes En d'autres termes, N = m. Le système a donc zéro degré de liberté, c'est-à-dire que p est égal à zéro Dans un tel cas, seuls r (r = 1,,n), qui est fourni par l'équation ( 16) et Z qui est fourni par l'équation ( 107) seront intégrés. ur et (r = 1,,n) sont obtenus en utilisant res- pectivement les équations ( 89) et ( 90), et \ r est obtenu par l'équation ( 91) Les mouvements des corps sont obtenus par les équations ( 1), ( 2), ( 5), ( 8), ( 11), ( 13), et ( 15) à chaque pas temporel, et les quantités Fi et T (i = 1 v,p) seront calculées en utilisant les équations ( 23) et ( 24), et les équations ( 92) à ( 103), pour faciliter l'évaluation des forces de contrainte, comme décrit précédemment. La simulation dynamique d'un système mécani- que à plusieurs corps signifie qu'après avoir imposé des contraintes, s'il y en a, le système à plusieurs corps a un nombre de degrés de liberté différent de zéro, c'est-à-dire que p = N m est supérieur à zéro. On peut diviser la simulation dynamique en deux caté- gories: ( 1) un système à topologie en "arbre" (m = 0); et ( 2) un système à plusieurs corps avec des contrain- tes (m différent de zéro). Dans les deux cas, la quantité qr indiquée dans l'équation ( 19) et la quantité Z indiquée dans l'équation ( 107) seront intégrées Les mouvements des corps sont calculés en utilisant les équations ( 1), ( 2), ( 5), ( 8), ( 11), ( 13) et ( 18) à chaque pas tempo- rel En plus de ces calculs, on calculera également les quantités suivantes Dans le cas d'un système à topologie en "arbre" (m = zéro), on résoudra l'équa- tion ( 20) vis-à-vis de , et on intégrera ûr pour obtenir ur (r = 1,,n) On calcule F et Ti (i = 1, p) en utilisant les équations ( 23) et ( 24) à cha- que pas temporel d'impression, pour faciliter l'éva- luation des forces de contrainte que l'on a examinées précédemment Dans le cas d'un système avec des con- traintes (m n'est pas égal à zéro), la quantité I donnée par l'équation ( 86) est intégrée pour obtenir u I* La quantité u D qui est donnée par l'équation ( 83), la quantité D qui est donnée par l'équation ( 87) et la quantité À qui est donnée par l'équation ( 88), seront également évaluées à chaque pas temporel d'im- pression De plus, les quantité Fi et Ti (i = 1, P) seront calculées par l'utilisation des équations ( 23), ( 24) et des équations ( 92) à ( 103), pour faciliter l'évaluation des forces de contrainte que l'on a envi- sagée précédemment. Comme on peut le voir sur la figure 2, la mise en oeuvre de ce système commence par une opéra- tion d'entrée d'information qui est effectuée par un modéliseur, que l'on définit comme étant une personne ayant un niveau de compétence relativement élevé dans le domaine des caractéristiques et de l'analyse de systèmes mécaniques Les opérations d'entrée d'infor- mation sont effectuées au moyen d'un clavier ou d'un autre dispositif d'entrée 14, et l'information qui est introduite est appliquée à un préprocesseur 13 La sortie du pré-processeur est connectée à un générateur symbolique 15 qui agit à la manière d'un transforma- teur pour générer une nouvelle information Le généra- teur symbolique génère certains fichiers qui apparais- sent sous la forme de codes source et de documentation pour la simulation, 16 Le signal de sortie du module 16 de la figure 2 est transmis par des supports tels que des disques, des bandes et des documents imprimés, à un éditeur de texte et compilateur, 17 D'autres informations d'entrée peuvent être introduites par le même clavier 14 ou un autre, et par le modéliseur ou un utilisateur qui est familiarisé avec les systèmes mécaniques spécifiques qui sont analysés, mais qui n'a pas nécessairement le niveau élevé de connaissance des systèmes mécaniques que possède le modéliseur Il faut noter que l'information de sortie, sur un support, que fournit le module de code source de simulation 16, est autonome et portable, et peut être utilisée sur place ou ailleurs par un utilisateur ou un modéliseur, de la manière désirée et commode L'information de sortie de l'éditeur de texte et compilateur 17 est transmise à un module de données de système 18, en compagnie de l'information d'entrée d'utilisateur qui provient du clavier 14 Le module de données de système accepte des symboles, des conditions initiales et des paramè- tres temporels pour la simulation Des fichiers qui sont générés par le module de système sont fournis en entrée au simulateur 19 Les fichiers sont fournis au code exécutable 20 pour la simulation, de façon à réa- liser la simulation réelle d'un système mécanique à plusieurs corps Les données de résultat de simulation sont transmises à un post-processeur 21, qui est con- necté au clavier d'entrée d'information d'utilisateur 14 et au module de données de système 18 Le post- processeur offre à un utilisateur la possibilité de manipuler des données de résultat de simulation, pour générer des fichiers contenant des quantités sélec- tionnées, dans un format spécifié par l'utilisateur, en 22, des données xy pour une opération de tracé, en 23, et des résultats de simulation animée en 24 Les fichiers, les tracés et l'animation, portant respecti- vement les références 22, 23 et 24, peuvent être vi- sualisés conformément aux exigences de l'utilisateur. Par commodité, l'invention a été mise en oeuvre jus- qu'à présent en utilisant des informations d'entrée en langage C pour le générateur symbolique 15, et des informations en langage Fortran en sortie de ce géné- rateur On peut utiliser d'autres langages, bien que le meilleur mode connu à présent soit celui qui est décrit. Il est nécessaire de définir plusieurs ter- mes pour faciliter la compréhension de cet exposé Un symbole est défini comme étant une chaîne de caractè- res contenant au plus 20 caractères, dans ce mode de réalisation, et commençant par un caractère de l'alpha- bet ou par une valeur numérique Toute chaîne commen- çant par T est une chaîne réservée pour un symbole. Une fonction temporelle est une fonction du temps seu- lement, et le nom d'une fonction temporelle commence par les caractères TT, suivis par au plus 15 caractè- res Une fonction Q est une fonction du temps, des coordonnées généralisées qi et de la position ou de l'orientation de corps Le nom d'une fonction Q com- mence par TQ, suivis par au plus 15 caractères Une fonction de capteur est une fonction du temps, des coordonnées généralisées qi, de la vitesse généralisée ui, de la position ou de l'orientation de corps, de la vitesse ou des vitesses angulaires de corps, ou d'au- tres quantités de capteurs qui sont définies On uti- lise une fonction de capteur pour spécifier des quan- tités cinématiques exigées pour la détermination des forces de commande Le nom d'une fonction de capteur commence par les caractères TS, suivis par au plus 15 caractères Une fonction de force est une fonction du temps, des coordonnées généralisées qi et des vitesses généralisées ui On utilise une fonction de force pour calculer des forces ou des couples qui sont appliqués au système à plusieurs corps pendant la simulation Le nom d'une fonction de force commence par TF, suivis par au plus 15 caractères Une fonction définie par l'utilisateur est une fonction quelconque parmi une fonction temporelle, une fonction Q, une fonction de capteur ou une fonction de force, que l'on peut dési- gner comme étant une fonction définie par l'utilisa- teur si elle n'est pas définie de façon explicite dans le pré-processeur 13 D ou DD sont ajoutés à la fin de la chaîne d'une fonction définie par l'utilisateur, pour désigner les dérivées première ou seconde de la fonction par rapport au temps. Le système reçoit des données d'entrée en un format symbolique ou numérique, à partir d'un clavier ou terminal 14, ou à partir de fichiers de données qui ont créés précédemment Les données d'entrée se divi- sent en quatre catégories: ( 1) des données de défini- tion de système à plusieurs corps; ( 2) des données de simulation; ( 3) des données de forme de corps; et ( 4) des expressions pour le posttraitement Un système à plusieurs corps comprend des corps, des joints, des contraintes, des organes d'entraînement, des forces, des capteurs et une information par morceau Toute cette information n'est pas applicable à chaque systè- me mécanique à plusieurs corps La figure 1, décrite précédemment, est un exemple d'un système à plusieurs corps qui est analysé par le système et le procédé d'analyse décrits ici Comme décrit précédemment, un modéliseur peut tout d'abord disjoindre le système à plusieurs corps, pour définir des corps tels que le système ait une topologie en "arbre" Le modéliseur introduit ultérieurement la "boucle" ou les contrain- tes de mouvement Lorsque le système est dans la topo- logie en "arbre" disjointe, il doit être amené dans une configuration de référence (tous les qi égaux à zéro), et les trois vecteurs unitaires orthogonaux fixés au corps, sur chaque corps, doivent être définis de façon que dans la configuration de référence, tou- tes les bases coincident les unes avec les autres Au moment de la définition, un corps doit être relié à un autre corps par un joint Le système procure une bibliothèque de joints, comprenant les types de joints suivants: équerre; libre (joint à 6 de liberté); cylindre; plan; prismatique; révolution; vis; sphéri- que; universel et défini par l'utilisateur Pour défi- nir un corps, un utilisateur doit fournir l'informa- tion suivante: nom du corps; masse; inertie; corps situé du côté intérieur (nom du corps ou de la réfé- rence à plusieurs corps défini précédemment); joint; relation intérieur joint (vecteur de position allant du centre de masse du corps intérieur jusqu'au joint dans des bases du corps intérieur; trois symboles); relation joint-corps (vecteur de position allant du joint au centre de masse du corps dans des bases du corps, trois symboles) Un modéliseur peut introduire la contrainte pour définir une topologie en "boucle", et pour imposer des contraintes de mouvement au sys- tème Il y a cinq types de contraintes: position; vitesse; engrenage; came; et défini par l'utilisateur. Pour définir une contrainte autre que la contrainte définie par l'utilisateur, ce dernier doit fournir l'information suivante: nom; type; nom du premier corps; nom du second corps et paramètres Comme men- tionné précédemment, le modéliseur doit avoir suffi- samment de connaissances pour savoir comment les vi- tesses généralisées holonomes doivent être définies pour le système d'analyse qui est décrit Le modéli- seur doit fournir le nom de la contrainte, le type de la contrainte et les fonctions de qt. On utilise un organe d'entraînement pour décrire l'historique temporel d'une vitesse générali- sée qui est associée au joint Un modéliseur doit donc être familiarisé avec la façon selon laquelle des vitesses généralisées sont définies et commandées pour un joint Un modéliseur fournira l'information suivan- te pour un organe d'entraînement: nom; nom du joint; nombre de degrés de liberté; et fonction Le système permet de disposer d'une bibliothèque de types de force Six types de force sont actuellement inclus dans la bibliothèque Par exemple, une force de com- mande exige le nom du premier corps, le nom du second corps, le vecteur de position allant du centre de masse du premier corps à un point intermédiaire, dans des bases du premier corps, et par conséquent le point d'application dans des bases du second corps (six sym- boles), le vecteur de position allant du centre de masse du second corps à un point intermédiaire dans des bases du second corps, et par conséquent le point d'application dans des bases du premier corps (six symboles), le nom de la fonction de force et la direc- tion de la force sur le second corps, dans des bases du premier corps ou du second corps (trois symboles). Pour définir une force, un utilisateur spécifiera le nom de la force, le type de force, et les paramètres tels que ceux indiqués ici pour la force de commande. Le but d'un capteur est de procurer des quantités cinématiques, avec une échelle définie, qui sont nécessaire pour l'évaluation du couple et de la force de commande Ces quantités comprennent la posi- tion et la vitesse entre deux points fixés sur deux corps différents, et l'orientation et la vitesse angu- laire entre les deux corps Des paramètres fournis par le modéliseur pour le calcul de ces quantités sont nécessaires pour chaque type de capteur On envisage un capteur de translation et un capteur de rotation. Pour spécifier un capteur, un modéliseur doit fournir le nom du capteur, le type du capteur, le nom du pre- mier corps, le nom du second corps et les paramètres du capteur. Comme on l'a envisagé précédemment, pour spécifier un système par morceaux, un modéliseur doit fournir un nombre total de "morceaux" dans le système. Pour chaque morceau, le système demande au modéliseur de fournir un sous-ensemble de contraintes qui sont définies dans le système à plusieurs corps Les critè- res pour la transition entre ces morceaux et ceux con- cernant la façon d'effectuer la transition, seront fournis par le processeur symbolique, pour générer des expressions pour des variables et des paramètres né- cessaires pour les transitions. Les données de simulation comprennent des paramètres de résolution numérique, des sous-program- mes et des conditions initiales qui sont définis par l'utilisateur, et des paramètres temporels Des procé- dés de résolution de type numérique sont nécessaires pour résoudre des équations linéaires, des équations différentielles ordinaires et des équations algébri- ques non linéaires, à partir de contraintes géométri- ques Les paramètres nécessaires qu'un modéliseur doit spécifier pour des équations différentielles ordinai- res comprennent la taille de pas d'intégration mini- male, une tolérance, une taille de pas fixée ou une taille de pas variable Des paramètres pour des équa- tions algébriques non linéaires comprennent le nombre maximal d'itérations et la tolérance sur ce nombre. Dans la définition de données pour un système à plu- sieurs corps, un modéliseur peut spécifier les noms des fonctions, au lieu des fonctions explicites, pour décrire des contraintes, des organes d'entraînement, des forces et des capteurs Ces fonctions sont ensuite calculées pendant la simulation, par l'appel d'un sous-programme défini par le modéliseur Ce sous-pro- gramme est généré par le générateur symbolique 15, et toutes les fonctions sont fixées à zéro Un modéliseur doit modifier ce sous- programme pour mettre en oeuvre les fonctions Enfin, un utilisateur ou un modéliseur devra spécifier des conditions initiales pour q et u. L'utilisateur aura à sa disposition un système de ré- solution d'équations, pour vérifier que les q initiaux qui ont été spécifiés satisfont les contraintes géomé- triques ou de boucle qui sont définies dans les don- nées du système à plusieurs corps L'instant initial, l'instant final et la taille de pas d'impression pour la simulation sont également spécifiés par un utilisa- teur Dans le but de pré-visualiser un système à plu- sieurs corps avant la simulation, et d'animer le mouvement simulé, après simulation, un utilisateur doit définir une forme géométrique pour chaque corps. L'utilisateur fournira la forme dans un fichier de données L'origine de chaque corps se trouve au centre de masse, et les bases de référentiels suivent celle qui est utilisée dans la configuration de référence, au moment de la définition du système à plusieurs corps Pour la commodité de l'utilisateur, le système procure une bibliothèque de formes géométriques sim- ples, comprenant des éléments du type parallélépipède, sphère, cylindre, cône, etc. Pour le post-traitement des résultats de données de simulation, un utilisateur peut effectuer des opérations mathématiques sur les résultats avant leur tracé A titre d'exemple, des instructions appli- quées au post-processeur 21 permettent d'obtenir des valeurs de position, de vitesse, d'accélération, des quantités vectorielles et des quantités relatives aux contraintes, etc. L'information que génère le système qui est décrit comprend des données de définition de système à plusieurs corps On a fourni des explications suffi- santes concernant toutes les données Le pré-proces- seur 13 peut également lire ces données à la demande du modéliseur On présentera une explication supplé- mentaire concernant la façon selon laquelle sont défi- nies des coordonnées généralisées q et des vitesses généralisées u Il faut noter que si tous les q sont fixés égaux à zéro, le système à plusieurs corps pré- sente la configuration de référence qui est utilisée pour définir lesystème Une information d'entrée est également spécifiée au module de données de système 18 Cette information d'entrée contient une liste de symboles dont les valeurs doivent être attribuées, et une liste de noms de fonctions qui sont définies par l'utilisateur De plus, l'information d'entrée qui est appliquée au générateur symbolique 15 est définie. Certains sous-programmes qui font partie des program- mes du système sont incorporés dans le but de trouver la position et l'orientation de chaque corps pour un instant donné et un paramètre q donné, pour calculer la somme des carrés des résidus de chaque contrainte géométrique pour un instant donné et un paramètre q donné, pour calculer le gradient de la somme des car- rés des résidus de chaque contrainte géométrique, par rapport à des paramètres q sélectionnés par l'utilisa- teur, pour un instant donné et un paramètre q donné, et pour calculer des fonctions définies par l'utilisa- teur, liées à la position et à l'orientation du corps ainsi qu'à des contraintes géométriques Les fichiers de données d'entrée 19 de la figure 2 comprennent des valeurs numériques pour tous les symboles, les para- mètres de résolution numérique, les conditions initia- les pour la simulation et les paramètres temporels, une table de correspondance entre des symboles définis par programme et des symboles spécifiés par l'utilisa- teur, une topologie du système à plusieurs corps avant l'application de contraintes, et un numéro d'identifi- cation fourni par l'utilisateur, dans le but d'identi- fier les cas de simulation Les résultats de simula- tion qui sont obtenus par le code exécutable pour la simulation, 20, comprennent des coordonnées générali- sées q, des vitesses généralisées u, des dérivées de u par rapport au temps, des multiplicateurs de Lagrange, une position de centre de masse, une vitesse et une accélération de chaque corps, une orientation, une vitesse angulaire et une accélération angulaire de chaque corps, la somme de toutes les forces actives sur chaque corps, comprenant la contribution des mul- tiplicateurs de Lagrange, et des fonctions définies par l'utilisateur Les fichiers de données 22 compren- nent l'historique temporel de quantités spécifiées par l'utilisateur Un fichier de données pour l'animation est incorporé, en compagnie d'une représentation gra- phique du système à plusieurs corps, pour permettre à * un utilisateur de visualiser le système avant la simu- lation, et de visualiser la manière selon laquelle la configuration du système change lorsque les valeurs de q sont changées En outre, ceci aide l'utilisateur à sélectionner des valeurs de q, à titre d'hypothèse initiale, pour la résolution des équations de con- trainte de type géométrique Des moyens graphiques incorporés au postprocesseur 21 sont utilisés pour la visualisation. Le système lui-même contrôle toutes les don- nées de modéliseur et d'utilisateur qui sont introdui- tes dans le système Les symboles qui sont introduits dans le préprocesseur 13 sont contrôlés pour vérifier le respect des conventions Cette vérification porte sur des mots qui sont réservés pour des symboles, sur le double usage de noms pour les éléments du système à plusieurs corps, sur la convention concernant les noms de fonctions, et sur toutes les conventions décrites ici pour les éléments du système à plusieurs corps. Les nombres qui sont introduits dans le pré-processeur 13 et les valeurs numériques pour des symboles qu'un modéliseur ou un utilisateur introduit dans le module de données de système, sont contrôlés conformément aux règles suivantes: 1 La masse du corps doit être supérieure ou égale à zéro. 2 Les moments d'inertie du corps doivent être supérieurs ou égaux à zéro. 3 La somme de deux moments d'inertie quel- conques d'un corps doit être supérieure ou égale au troisième. 4 Des moments d'inertie croisés doivent satisfaire des exigences de possibilités physiques. La norme d'un vecteur de direction doit être égale à un. 6 Toutes les restrictions concernant des paramètres d'un élément du système à plusieurs corps qui sont décrits ici doivent être respectées. 7 Des constantes de rappel de ressorts et des constantes d'amortissement doivent être supérieu- res ou égales à zéro. 8 Des contraintes et des organes d'entraî- nement doivent être mutuellement indépendants. 9 Des conditions initiales doivent satis- faire une contrainte géométrique, une contrainte de mouvement et une contrainte d'organe de mouvement. On a défini précédemment des informations d'entrée, et on a établi précédemment une description de la manière selon laquelle l'information est trans- formée pendant qu'elle est traitée par le système On va maintenant présenter une description concernant les ordres ou les possibilités dont on dispose dans chaque module de système, pour permettre à un modéliseur ou un utilisateur de définir un système à plusieurs corps et de surveiller l'exécution du logiciel du système, pour atteindre les buts de la simulation Comme décrit précédemment, le système contient cinq modules fonc- tionnels: le pré-processeur 13; le générateur symbo- lique 15; le module de données de système 18; des modules de simulation 19 et 20; et le post-processeur 21 Une procédure caractéristique qu'un modéliseur peut utiliser pour mettre en oeuvre les fonctions du système comprend les opérations suivantes 1 Appeler le pré-processeur 13. 2 Définir des corps et des joints. 3 Définir des contraintes. 4 Définir des organes d'entraînement. Définir le système par morceaux. 6 Définir des capteurs et des forces. 7 Sauvegarder l'information d'entrée, et demander au système de générer des fichiers d'entrée pour le générateur symbolique 15. 8 Faire fonctionner le générateur symboli- que 15 pour établir des formats symboliques des équa- tions de mouvement du système mécanique. Le modéliseur ou un utilisateur sélectionne ensuite le processus qui suivra la séquence suivante: 1 Modification de sous-programmes définis par le modéliseur. 2 Calcul de codes de simulation et de con- traintes de position dans l'éditeur de texte et compi- lateur 17. 3 Appel du module de données de système 18. 4 Définition des formes des corps ou des éléments du système mécanique. 5 Introduction des valeurs numériques pour les symboles et appel des moyens de contrôle de don- nées, pour contrôler les valeurs numériques. 6 Pré-visualisation du système. 7 Introduction des valeurs initiales pour q et contrôle de la configuration. 8 Résolution des équations donnant les va- leurs initiales de q compatibles avec des contraintes géométriques. 9 Introduction de valeurs initiales pour le paramètre indépendant u, et contrôle de la singularité. Introduction de paramètres de résolution numérique et de paramètres temporels de simulation. 11 Sauvegarde des formes des corps et émis- sion d'une demande adressée au système pour qu'il génère un fichier de données d'entrée pour la simula- tion dynamique et le post-processeur 21. 12 Exécution des sous-programmes de simula- tion. 13 Appel du post-processeur 21. 14 Introduction d'un nom de fichier. introduction d'expressions pour des quan- tités intéressantes du système mécanique. 16 Représentation graphique des quantités intéressantes ( 23) et sauvegarde des données dans le fichier ( 22). 17 Ajout des points intéressants du système mécanique pour l'animation ( 24). 18 Sélection des corps du système mécanique pour l'animation, et introduction des paramètres d'animation. 19 Animation des résultats de simulation et/ ou génération d'un fichier de données d'animation. On va maintenant entreprendre une descrip- tion détaillée des divers éléments du système Le pré- processeur 13 permet à un modéliseur de définir un système à plusieurs corps et de générer ensuite un code Fortran (dans ce mode de réalisation), pour le contrôle des données dans le module de données de sys- tème 18, ainsi qu'un fichier de données pour le géné- rateur symbolique 15, sur la base de l'information qui est introduite par le modéliseur Le fichier d'entrée qui est généré peut également être lu par le pré- processeur à un moment ultérieur, pour faire l'objet d'une modification ultérieure La figure 3 représente la structure de commande du préprocesseur, à titre de représentation générale des possibilités du pré- processeur La fonction FICHIER concerne six sous- fonctions La première sous-fonction NOUVEAU rejette le modèle courant qui se trouve dans le pré-proces- seur, s'il y en a un, et elle ouvre un NOUVEAU fichier spécifié par le modéliseur, pour construire un nouveau modèle La sous-fonction INCLUSION annexe au modèle courant, s'il y en a un, le modèle qui provient d'un fichier spécifié par le modéliseur La sous-fonction SAUVEGARDE sauvegarde des données de système à plu- sieurs corps qui ont été introduites par le modéli- seur Les sous-fonctions SAUVEGARDE et GENERATION per- mettent au modéliseur de manipuler des données de sys- tème à plusieurs corps définies par le modéliseur, concernant des coordonnées et des vitesses générali- sées, des symboles qui nécessitent l'attribution de valeurs, et d'autres informations d'entrée pour le générateur symbolique 15 La sous-fonction REPERTOIRE visualise tous les fichiers dans le répertoire de tra- vail courant du pré-processeur. La fonction EDITION permet la sélection d'un élément du système mécanique, avant l'appel de l'une des cinq sous-fonctions qui sont représentées sur la figure 3 La sous-fonction CREATION permet la création d'un élément sélectionné La sous-fonction MODIFICATION permet d'introduire un changement dans des symboles et des valeurs de paramètres d'un élément défini précé- demment La sous-fonction SUPPRESSION permet de sup- primer un élément défini précédemment La sous- fonction COPIE permet de transférer l'un des paramè- tres d'élément vers un autre La sous-fonction OBSER- VATION permet l'examen visuel de tous les articles définis de l'élément sélectionné. La fonction ASSISTANCE fournit des messages d'assistance associés à une fonction ou une sous- fonction sélectionnée. La fonction ELEMENT offre un choix compre- nant tous les aspects disponibles pour définir un sys- tème mécanique à plusieurs corps Sept de ces aspects sont représentés rattachés à la fonction ELEMENT sur la figure 3. La fonction ASSEMBLAGE permet d'effectuer un contrôle de la définition du système mécanique à plu- sieurs corps, et elle génère les coordonnées générali- sées q et les vitesses généralisées u La sous-fonc- tion ARBRE DE CONTROLE permet la construction d'un tableau de topologie en "arbre" pour le modèle défini. La sous-fonction DEFINITION DE Q U permet l'attribu- tion de q et u à chaque joint à la suite de modifica- tions des corps et des joints La sous-fonction LISTE DE Q U, permet la visualisation de la définition de q et u dans le cas o aucune modification n'a été effec- tuée après la dernière sous-fonction DEFINITION DE Q. U La sous-fonction SYMBOLES EN DOUBLE fournit une liste de tous les symboles qui ont été utilisés plus d'une fois dans la définition du système, et elle fournit une liste des éléments du système mécanique dans lesquels ces symboles ont été utilisés La sous- fonction PRESENTATION DE SYMBOLES fournit une liste de tous les symboles qui ont été utilisés dans la défini- tion du système mécanique La sous-fonction RESUME visualise le nombre total d'articles qui ont été défi- nis pour chaque élément du système à plusieurs corps. Si la définition de q et u est à jour, cette sous- fonction visualise ensuite le nombre total de q et les degrés de liberté du système à plusieurs corps. La fonction VISUALISATION procure un choix pour la visualisation d'arrière-plan du système La sous-fonction ARBRE DES CORPS fournit la topologie en "arbre" du système, comprenant les noms des joints La figure 4 représente un exemple de la topologie en "arbre" Si un nom de joint apparaît dans une défini- tion d'un corps, mais n'a pas été défini comme étant un élément de type joint, un astérisque sera placé devant le nom du joint Le symbole N représente tou- jours un référentiel inertiel L'aspect "chaîne" du système est indiqué dans la direction horizontale et l'aspect "branche" est indiqué dans la direction ver- ticale de la figure 4. Le but du générateur symbolique 15 est de lire le fichier de données qui est généré par le pré- processeur 13, et de générer un fichier de liste symboles/fonctions, deux sous-programmes utilisés par le module de données de système 18, et un programme de simulation en langage FORTRAN. Le but du module de données de système 18 est de procurer aux modéliseurs et aux utilisateurs des moyens permettant d'introduire des valeurs numéri- ques de symboles, des conditions initiales et des paramètres temporels pour la simulation Un contrôle pour la détection de valeurs numériques physiquement impossibles sera effectué, comme décrit précédemment. Les conditions initiales seront également contrôlées pour vérifier si les contraintes géométriques et de mouvement sont satisfaites, et à la demande des modé- liseurs ou des utilisateurs, des solutions des équa- tions de contrainte seront fournies pour les condi- tions initiales des coordonnées et des vitesses géné- ralisées qui sont sélectionnées par le modéliseur ou l'utilisateur Une singularité cinématique sera égale- ment détectée, et le système sélectionnera automati- quement des vitesses généralisées indépendantes pour résoudre le problème Le système permet à un modéli- seur ou un utilisateur de créer des formes de corps et de visualiser graphiquement des corps sélectionnés La position et l'orientation de chacun de ces corps sé- lectionnés peuvent être changées conformément à des valeurs de coordonnées généralisées qui sont intro- duites par le modéliseur ou l'utilisateur Il' est pos- sible de changer les valeurs de coordonnées générali- sées par le clavier 14 de la figure 2, ou par d'autres moyens, s'ils sont disponibles Tous les calculs con- cernant la position du corps, l'orientation du corps et des équations de contrainte sont effectués dans ce mode de réalisation en utilisant des codes FORTRAN qui sont générés par le générateur symbolique 15 Les codes FORTRAN doivent donc être modifiés, si des fonc- tions cinématiques du temps déterminées doivent être actualisées, et ces codes doivent ensuite être compi- lés Le code objet compilé peut ensuite être enchaîné au module de données de système 18 Selon une varian- te, un modéliseur ou un utilisateur peut enchaîner ces codes objet en FORTRAN pour construire un code exécu- table autonome qui peut ensuite être mis en oeuvre par le module de données de système 18 Ceci exige que le générateur symbolique 15 génère un programme principal en FORTRAN, au lieu de simples sous-programmes. Le module de données de système 18 fonction- ne de la manière suivante Un FICHIER de fonction con- tient cinq sous-fonctions, comme représenté sur la figure 5 La sousfonction OUVERTURE ouvre un fichier qui est créé par le générateur symbolique 15 et qui contient tous les symboles et les fonctions d'utilisa- teur que l'on utilise pour définir le système mécani- que à plusieurs corps En outre, le fichier de données de simulation généré précédemment peut être ouvert si cette condition est spécifiée, et le fichier de formes de corps qui a été généré précédemment peut être ou- vert, si cette condition est spécifiée La sous-fonc- tion SAUVEGARDE DE FORME sauvegarde dans un fichier la forme de corps définie au moment présent La sous- fonction SAUVEGARDE DE DONNEES DE SIMULATION sauvegar- de les données de simulation définies au moment pré- sent, qui comprennent des valeurs de symboles, des paramètres et des conditions initiales Ce fichier est utilisé à titre d'information d'entrée pour le pro- gramme de simulation La sous-fonction REPERTOIRE visualise tous les fichiers avec une extension de fi- chier d'entrée/sortie de données de système dans le répertoire courant La sous-fonction SORTIE permet au modéliseur ou à l'utilisateur de sortir du module de données de système, avec une confirmation concernant les données qui ne sont pas sauvegardées. La fonction SYMBOLE permet au modéliseur ou à l'utilisateur d'introduire ou de modifier des va- leurs numériques de tous les symboles listés, d'une manière similaire à l'édition sur écran L'explication de chaque symbole peut être présentée sur l'écran, à la demande de l'utilisateur. La fonction CONTROLE DE SYMBOLE permet de contrôler toutes les valeurs numériques introduites, en appelant le sous-programme de contrôle de données qui est généré par le pré-processeur 13, comme men- tionné précédemment. La fonction OBJET permet la création d'objets pour définir la forme d'un corps d'un système mécani- que On utilise la forme d'un corps dans un but de visualisation, et on peut l'utiliser pour une anima- tion ultérieure de résultats de simulation. La fonction PARAMETRE permet à un modéliseur ou un utilisateur d'introduire ou de modifier des paramètres liés à la précision de solutions numériques et aux conditions temporelles de simulation. La fonction CONDITIONS INITIALES permet l'entrée ou la modification de conditions initiales pour q et u, d'une manière similaire à l'édition sur écran. La sous-fonction GEOMETRIE permet le calcul de résidus d'équations de contrainte géométrique, et la modification des valeurs de paramètres q dépendants, sélectionnés par l'utilisateur, qui satisfont les con- traintes géométriques, si l'utilisateur le demande. La sous-fonction MOUVEMENT permet le calcul des résidus d'équations de contrainte de mouvement et la modification des valeurs de paramètres u dépendants, sélectionnés par l'utilisateur, qui satisfont les con- traintes de mouvement, à la demande de l'utilisateur. La fonction VISUALISATION contient cinq sous-fonctions, comme on le voit sur la figure 5. La sous-fonction GROUPE permet la sélection des corps à visualiser dans le système mécanique. La sous-fonction OBSERVATION permet de chan- ger la direction d'observation du groupe. La sous-fonction DESSIN permet de dessiner sur l'écran le corps sélectionné, conformément aux conditions initiales des paramètres q. La sous-fonction ZOOM permet à l'utilisateur ou au modéliseur de définir une partie d'une scène qui doit être agrandie. La sous-fonction DEPLACEMENT permet à un modéliseur ou un utilisateur de sélectionner une coor- donnée généralisée, et de déplacer le système mécani- que conformément à un incrément donné de la valeur du paramètre q sélectionné, à la demande de l'utilisateur, au moyen d'une souris ou du clavier Cette sous-fonc- tion permet en outre à un utilisateur de changer les conditions initiales pour les remplacer par les va- leurs courantes. La code de simulation que génère le généra- teur symbolique 15 et les données de simulation que génère le module de données de système 18 sont néces- saires pour la simulation Un modéliseur ou un utili- sateur doit suivre la procédure suivante pour la simu- lation. 1 Modifier le sous-programme qui est généré par le générateur symbolique 15, concernant les forces et/ou les couples. 2 Compiler et enchaîner le code de simula- * tion pour générer un code exécutable. 3 Exécuter le code exécutable. Le post-processeur 21 a pour but de permet- tre à un modéliseur ou un utilisateur de manipuler des données de résultat de simulation, de générer des fi- chiers de données contenant des quantités sélection- nées, dans un format spécifié de l'utilisateur, de représenter graphiquement des données x-y, et d'animer les résultats de simulation Les fonctions du post- processeur sont représentées sur la figure 6 des des- sins La fonction FICHIER concerne cinq sous-fonctions, comme on le voit dans le dessin La sous-fonction OUVERTURE permet l'ouverture d'un fichier de résultats de simulation La sous-fonction UTILISATION active un fichier ouvert précédemment La sous-fonction FERME- TURE ferme un fichier ouvert précédemment La sous- fonction REPERTOIRE visualise tous les fichiers avec des extensions liées au post-processeur La sous- fonction SORTIE permet au processus de quitter le post-processeur La sousfonction ASSISTANCE présente des messages d'assistance qui sont associés à des par- ties sélectionnées du processus. La fonction INFORMATION concerne sept sous- fonctions La sous-fonction FICHIER permet la visuali- sation des noms des fichiers qui ont été ouverts, et elle marque le fichier qui est en cours d'utilisation. La sous-fonction EN-TETE visualise l'en-tête qui est défini dans le fichier de résultats de simulation actif La sous-fonction TOPOLOGIE visualise la topolo- gie du système mécanique à plusieurs corps, d'une manière identique à celle décrite précédemment pour le pré-processeur 13 La sous-fonction ENTREE visualise la définition du système à plusieurs corps La sous- fonction Q ET U visualise la définition des coordon- nées généralisées et des vitesses généralisées La sous-fonction FONCTIONS D'UTILISATEUR donne la liste de tous les noms des fonctions définies par l'utilisa- teur La sous-fonction SIMULATION présente les valeurs numériques des symboles et des paramètres de simula- tion. La fonction DONNEES concerne quatre sous- fonctions La sous-fonction EXPRESSION permet à des modéliseurs et des utilisateurs de définir leurs pro- pres variables, vectorielles ou scalaires La sous- fonction EXTERNE permet au modéliseur ou à l'utilisa- teur de définir les variables par la lecture de va- leurs dans un fichier externe La sous-fonction PRESENTATION permet la visualisation de valeurs numé- riques d'une variable dans une gamme de référentiels qui est définie par le modéliseur ou l'utilisateur La sous-fonction REPERTOIRE permet la visualisation de toutes les variables définies par le modéliseur ou l'utilisateur, et de leurs définitions. La fonction TRACE concerne sept sous-fonc- tions La sous-fonction COURBE permet à l'utilisateur de définir des courbes à tracer, par édition à l'écran. La sous-fonction FENETRE permet au processeur de sé- lectionner une fenêtre pour couvrir toutes les données et d'étaler cette fenêtre pour qu'elle soit aussi grande que possible L'utilisateur peut également définir une fenêtre et un nombre de divisions en x et/ou y La sous-fonction QUADRILLAGE permet à un mo- déliseur ou un utilisateur de faire apparaître et dis- paraître des lignes de quadrillage La sous-fonction TITRE permet à un modéliseur ou un utiliseur de spéci- fier un titre Les sous-fonctions MARQUAGE X et MARQUAGE Y permettent à l'utilisateur de spécifier un marquage La sous-fonction DESSIN dessine les courbes définies sur un écran de visualisation. La fonction ECRITURE contient deux sous- fonctions La sous-fonction ASCII permet à des modéli- seurs ou des utilisateurs d'écrire des historiques temporels d'une variable sélectionnée, en un format ASCII spécifié La sous-fonction REDEMARRAGE permet la génération d'un fichier d'entrée pour la simulation, à un instant de redémarrage qui est spécifié par un modéliseur ou un utilisateur. La fonction ANIMATION qui est représentée sur la figure 6 concerne trois sous-fonctions La sous-fonction SELECTION DE CORPS/MARQUEUR permet à un modéliseur ou un utilisateur de sélectionner des corps ou des marqueurs à inclure dans l'animation La sous- fonction SELECTION DE REFERENTIEL permet à un modéli- seur ou un utilisateur de sélectionner une gamme de référentiels, ainsi que les référentiels à sauter pen- dant l'animation La sous-fonction DEMARRAGE D'ANIMA- TION fait démarrer l'animation sur un écran de visua- lisation. La validation qu'effectue le système décrit ici permet de déterminer si les calculs du système ont été effectués avec succès Le système présente certai- nes limites de performances, qui sont indiquées ci- après La complexité et la taille du système mécanique à plusieurs corps qui peut être traité dépendent de l'espace de mémoire disponible Dans le mode de réali- sation préféré qui est décrit ici, et conformément au meilleur mode connu, le système est limité à cinquante corps ou éléments de système mécanique, à cent coor- données généralisées (degrés de liberté holonomes), à cent contraintes et organes d'entraînement, à cent fonctions définies par l'utilisateur, et à six-cents symboles Ces normes constituent un objectif de com- plexité, et elles ne représentent pas nécessairement les contraintes qui sont dues à la taille de mémoire d'un système informatique particulier. Des données d'entrée provenant de modéli- seurs et d'utilisateurs par l'intermédiaire du pré- processeur 13, du module de données de système 18 et du post-processeur 21, sont contrôlées en ce qui con- cerne des conflits de conventions, des configurations ou des propriétés physiquement impossibles, et un dé- passement de taille du système mécanique à plusieurs corps qui est défini Le logiciel qui a été développé pour mettre en oeuvre le système d'analyse qui est décrit ici est portable sur n'importe quel système informatique qui fonctionne avec un système d'exploi- tation UNIX, un compilateur C standard, et un program- me de gestion/bibliothèque pour PHIGS (ou X-WINDOW). Comme mentionné précédemment, le programme de simula- tion qui est généré est portable sur site ou hors site pour n'importe quel système d'analyse décrit ici dis- posant d'un compilateur FORTRAN-77 de type standard. A titre d'exemple du fonctionnement du sys- tème d'analyse qui est décrit, on va considérer la figure 7 des dessins La figure 7 montre une structure appelée "Bras de Stanford" qui comprend six éléments ou corps désignés par B 1, B 2, B 3, B 4, B 5 et B 6 On peut faire tourner Bl dans un référentiel newtonien N, autour d'un axe vertical N 2 qui est fixé à la fois dans N et B 1, et Bl supporte B 2, qu'on peut faire tourner par rapport à Bl autour d'un axe horizontal qui est fixé à la fois dans Bl et B 2 B 3 est supporté par B 2, et peut accomplir un mouvement de translation par rapport à B 2, tout en supportant B 4, qu'on peut faire tourner par rapport à B 3, autour d'un axe qui est fixé à la fois dans B 3 et B 4 B 5 est monté sur B 4 et B 6 est monté sur B 5 d'une manière telle que chacun d'eux puisse tourner par rapport au corps qui le sup- porte, autour d'un axe qui est fixé à la fois dans le corps qui supporte l'autre et dans le corps supporté. Pour exécuter le programme FORTRAN pour le Bras de Stanford, un modéliseur a tout d'abord besoin de générer un code exécutable, et ensuite de créer un fichier de données contenant l'information ou les ins- tructions suivantes: 1 Une description de l'exécution (en une ligne). 2 Les valeurs numériques des paramètres suivants (dimensions du système qui présentent un intérêt): Li, L 2, L 3, L 4, L 5, L 6, MA, IA 1, IA 2, IB 1, IB 2, IB 3, MC, IC 1, IC 2, MD, ID 1, ID 2, ME, IE 1, IE 2, MF, IF 1, IF 2, IF 3, G, K 3 Les valeurs initiales de Q 1, Q 2, Q 3, Q 4, Q 5,Q 6 4 Les valeurs initiales de Ul, U 2, U 3, U 4, U 5, U 6 Le choix du procédé d'intégration: 1: Pas temporel fixe. 2: Pas temporel variable. 6 L'instant initial et l'instant final de la simulation. 7 Le pas temporel d'intégration. 8 k: les résultats seront imprimés tous les k pas temporels d'intégration. Exemple 1 (dans le module de données de système): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 1 1 1 1 1 0 5 O 1 1 PARAMETRES DE SYSTEME (codes de simulation/ écho de l'information d'entrée, dans un but de docu- mentation): L 1 O 100000 D+ 00 L 2 O 100000 D+ 00 L 3 0 700000 D+ 00 L 4 -0 100000 D+ 00 L 5 O OOOOOOD-01 L 6 0 140000 D+ 00 MA O 900000 D+ 01 IA 1 O 100000 D-01 IA 2 0 200000 D-01 MB 0 600000 D+ 01 IB 1 0 600000 D-01 IB 2 O 100000 D-01 IB 3 0 500000 D-01 MC 0 500000 D+ 01 I Ci 0 400000 D+ 00 IC 2 0 100000 D-01 MD 0 100000 D+ 01 ID 1 0 500000 D-03 ID 2 0 100000 D-02 ME 0 600000 D+ 00 I El 0 500000 D-03 IE 2 0 200000 D-03 MF O 500000 D+ 00 IF 1 0 100000 D-02 IF 2 O 200000 D-02 IF 3 0 300000 D-02 G O 981000 D+ 01 K O 000000 D+ 00 CONDITION INITIALE: Q 1 = 0. Q 2 = 0. Q 3 = 0. Q 4 = 0. Q 5 = 0. Q 6 = 0. U 1 = 0. U 2 = 0. U 3 = 0. U 4 = 0. U 5 = 0. U 6 = 0. INTEGRATION AVEC PAS TEMPOREL VARIABLE (écho d'instructions): INSTANT INITIAL = 0. INSTANT FINAL = 5,00000 PAS TEMPOREL D'INTEGRATION = 0 100000 SECONDE RESULTAT IMPRIME TOUS LES K PAS; k = 1 (TOUS LES 0 1 SECONDE ICI) SELECTIONS DE SORTIE: DESCRIPTION DU SYSTEME POSITION DU CENTRE DE MASSE EN COORDONNEES GLOBALES ORIENTATION DE CHAQUE CORPS EN COORDONNEES GLOBALES VITESSE DU CENTRE DE MASSE EN COORDONNEES GLOBALES VITESSE ANGULAIRE DE CHAQUE CORPS EN COOR- DONNEES LOCALES ACCELERATION EN COORDONNEES GLOBALES ACCELERATION ANGULAIRE EN COORDONNEES LOCALES CONTROLE DE SIMULATION FORCE ACTIVE EN COORDONNEES GLOBALES ET COUPLE EN COORDONNEES LOCALES HISTORIQUE TEMPOREL DE Q HISTORIQUE TEMPOREL DE U HISTORIQUE TEMPOREL DE UD FICHIER D'ANIMATION, INFORMATION TOPOLOGIQUE FICHIER D'ENTREE D'UTILISATEUR NUMERIQUE D'ORIGINE Il va de soi que de nombreuses modifications peuvent être apportées au dispositif et au procédé décrits et représentés, sans sortir du cadre de l'in- vention. REVENDICATIONS 1 Procédé pour analyser efficacement un système à plusieurs corps de type holonome, non holo- nome ou non holonome par morceaux, caractérisé en ce qu'il comprend les étapes suivantes: on définit la topologie d'un type général de système à plusieurs corps; on génère des équations symboliques représenta- tives des équations de mouvement du système à plu- sieurs corps de type général; on introduit des valeurs numériques définissant un système à plusieurs corps spécifique dans le cadre du type général; on simule le fonctionne le système à plusieurs corps; on détermine les résultats de la simulation; et on contrôle des restrictions physiques et imposées par le système, concernant les valeurs numériques introduites, et on indique si ces restrictions sont acceptables. 2 Procédé selon la revendication 1, carac- térisé en ce que l'étape de définition de la topologie comprend l'étape qui consiste à définir la topologie en boucle ouverte de base. 3 Procédé selon la revendication 1, carac- térisé en ce que l'étape de définition de la topologie comprend l'étape qui consiste à définir une topologie à structure en arbre. 4 Procédé selon la revendication 1, carac- térisé en ce que l'étape de définition de la topologie comprend l'étape qui consiste à définir des contrain- tes qui définissent une topologie à boucle fermée et des restrictions non holonomes. 5 Procédé selon la revendication 4, carac- térisé en ce que l'étape de définition de contraintes comprend l'étape qui consiste à définir des combinai- sons d'équations de contraintes qui s'appliquent à différents moments, pour définir un système dynamique non holonome par morceaux. 6 Procédé selon la revendication 1, carac- térisé en ce qu'il comprend l'étape de détermination de conditions initiales appropriées pour le système. 7 Procédé selon la revendication 1, carac- térisé en ce qu'il comprend l'étape qui consiste à manipuler les résultats de simulation pour obtenir diverses quantités de système présentant un intérêt. 8 Procédé selon la revendication 1, carac- térisé en ce qu'il comprend l'étape qui consiste à enregistrer l'historique temporel des résultats de simulation. 9 Procédé selon la revendication 7, carac- térisé en ce qu'il comprend l'étape qui consiste à enregistrer l'historique temporel des quantités de système qui présentent un intérêt. Procédé selon la revendication 1, carac- térisé en ce qu'il comprend l'étape qui consiste à tracer en un format bidimensionnel les résultats de simulation qui sont obtenus, pour visualiser ainsi globalement une grande quantité d'information. 11 Procédé selon la revendication 1, carac- térisé en ce qu'il comprend l'étape qui consiste à animer les mouvements du système à plusieurs corps, pour fournir ainsi une information visuelle intuitive. 12 Procédé selon la revendication 1, carac- térisé en ce que l'étape qui consiste à simuler le fonctionnement du système, comprend l'étape qui con- siste à résoudre des équations différentielles ordi- naires, et à étudier les résultats d'intégration cor- respondant aux solutions de ces équations, pour déter- miner l'exactitude et le caractère correct de l'inté- gration de la formulation d'équations symboliques. 13 Procédé d'analyse d'un système mécanique contenant des éléments mécaniques liés les uns aux autres, caractérisé en ce qu'il comprend les étapes suivantes: on définit la topologie de base du système mécanique; on sélectionne pour le système mécanique un référentiel fixé de façon inertielle, on spécifie les contraintes du système mécanique, et on génère des équations symboliques pour le mouvement du système avec contraintes, pour n'importe quel système holonome, non holonome et dynamique non holonome par morceaux, à partir des contraintes qui ont été spécifiées pour le système. 14 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend l'étape suivante: on fixe l'historique temporel d'une vitesse généralisée associée à un joint entre des éléments dans le système mécanique. 15 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend l'étape qui consiste à définir les types de forces qui agissent sur les élé- ments mécaniques. 16 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend l'étape qui consiste à définir des quantités cinématiques scalaires pour l'évaluation des forces et des couples du système. 17 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend l'étape qui consiste à contrôler et à indiquer le caractère acceptable et correct des équations symboliques générées, en prenant en considération les conventions et restrictions du système. 18 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend l'étape qui consiste à créer un code exécutable autonome, assurant le carac- tère portable pour l'exécution différée, sur site et hors site. 19 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend les étapes suivantes: on introduit des valeurs numériques pour des symboles et des conditions initiales, de façon à obtenir des équations de mouvement spécifiques pour le système; et on résout les équations de mouvement spécifiques pour le système, pour déterminer des résultats de simula- tion concernant la position et l'orientation des corps, ainsi que des équations de contraintes. Procédé selon la revendication 19, ca- ractérisé en ce qu'il l'étape qui consiste à manipuler les résultats de simulation pour obtenir des quantités de système prédéterminées qui présentent un intérêt. 21 Procédé selon la revendication 19, ca- ractérisé en ce qu'il comprend l'étape qui consiste à enregistrer l'historique temporel des résultats de simulation. 22 Procédé selon la revendication 20, ca- ractérisé en ce qu'il comprend l'étape qui consiste à enregistrer l'historique temporel des quantités de système qui présentent un intérêt. 23 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend l'étape qui consiste à représenter graphiquement les résultats de simulation en un format bidimensionnel, pour procurer ainsi une visualisation d'ensemble de grandes quantités d'in- formation. 24 Procédé selon la revendication 13, ca- ractérisé en ce qu'il comprend l'étape qui consiste à animer les mouvements du système mécanique, pour obte- nir ainsi une information visuelle intuitive. 25 Appareil pour l'analyse d'un système mécanique contenant des éléments mécaniques (B 1-B 8) reliés les uns aux autres, caractérisé en ce qu'il comprend: un pré-processeur ( 13); des moyens d'entrée de données ( 14) pour introduire dans le pré-processeur ( 13) la topologie et des contraintes du système méca- nique; et des moyens ( 15) connectés au pré-processeur ( 13) pour formuler des équations de mouvement symboli- ques pour n'importe quel système mécanique à contrain- tes, de type holonome, non holonome et non holonome par morceaux, sur la base de la topologie et des con- traintes qui ont été introduites. 26 Appareil selon la revendication 25, ca- ractérisé en ce qu'il comprend: des moyens ( 14) des- tinés à l'introduction de valeurs numériques de sym- boles et de conditions initiales dans les équations de mouvement; et des moyens qui sont destinés à fournir des solutions des équations de mouvement, avec les valeurs numériques et les conditions initiales intm - duites, pour obtenir des résultats de simulation four- nissant des simulations de la position et de l'orien- tation des éléments mécaniques, ainsi que des équa- tions de contraintes. 27 Appareil selon la revendication 26, ca- ractérisé en ce qu'il comprend des moyens ( 21) qui sont destinés à manipuler les résultats de simulation, permettant ainsi d'obtenir des quantités de système prédéterminées qui présentent un intérêt. 28 Appareil selon la revendication 26, ca- ractérisé en ce qu'il comprend des moyens ( 23) qui sont destinés à représenter graphiquement les résul- tats de simulation, en format bidimensionnel. 29 Appareil selon la revendication 26, ca- ractérisé en ce qu'il comprend des moyens ( 24) qui sont destinés à animer les mouvements des éléments mécaniques. Appareil selon la revendication 25, ca- ractérisé en ce qu'il comprend des moyens qui sont destinés à valider la topologie et les contraintes du système mécanique, sur la base des conventions du sys- tème et des possibilités physiques. 31 Appareil selon la revendication 26, ca- ractérisé en ce qu'il comprend des moyens destinés à valider des valeurs numériques de symboles et des con- ditions initiales, en prenant en considération des conventions de système et des possibilités physiques.