FR 2919940 A1 20090213 FR 0705731 A 20070806 CervVal3.frd.doc 1 SIMULATION DE L'ÉVOLUTION D'UN MILIEU MIXTE PAR TRAITEMENT ASYNCHRONE ET CHAOTIQUE, EN PARTICULIER POUR BASSIN D'ESSAIS VIRTUEL. L'invention concerne la simulation (ou modélisation) informatique de l'évolution temporelle de milieux objets de phénomènes physiques, comme par exemple des milieux liquides, gazeux, solides, particulaires et analogues. Le fascicule brevet WO 2005/081141 a introduit une nouvelle technique de simulation par agents chaotiques asynchrones, qui a été ensuite développée dans WO 2006/003271. Cette nouvelle technique conserve cependant des limites, notamment du fait qu'elle ne permet pas de traiter ensemble certains types d'interaction, tout du moins en restant convergente. Cela sera décrit en détail plus loin. La présente invention vient améliorer la situation. Elle porte sur un dispositif de simulation du monde réel, en particulier pour une interaction fluide-corps. Ce dispositif est propre à être implanté dans un ordinateur agencé pour supporter un environnement multi-tâches de programmation, avec un gestionnaire de simulation, capable de travailler en mode chaotique asynchrone par séquences répétitives sur des éléments de simulation distincts. Un tel élément de simulation peut travailler avec au moins une donnée d'espace/temps, dite point de structure, avec au moins une donnée de propriété, définissant un état courant du point de structure, ainsi qu'avec la désignation d'au moins une fonction, applicable pour modifier cet état courant. Selon un aspect de l'invention, le gestionnaire de simulation comprend une première section de simulation, agencée pour simuler un milieu fluide, et une seconde section de simulation, agencée pour simuler un ou des corps sensiblement solides, en présence du milieu fluide ; les deux sections de simulation sont; couplées ; et le gestionnaire de simulation est agencé de façon à maintenir une périodicité générale d'activation des éléments de simulation qui diffère selon les phénomènes physiques simulés, dans l'une et l'autre des deux sections de simulation. Dans un application particulière, la première section de simulation sert à simuler la mer, et la seconde section de simulation sert à simuler un ou des corps flottant et/ou plongeant au moins partiellement dans la mer, ce qui permet de réaliser un bassin d'essais virtuel. Sur un autre plan, la première section de simulation peut être agencée pour simuler un milieu fluide par des points de structure dynamiques, tandis que la seconde section de simulation peut être agencée pour simuler un ou des corps sensiblement solides, en présence du milieu fluide, par des points de structure permanents. Selon un autre aspect de l'invention, le gestionnaire de simulation comprend en outre des éléments de simulation dits duaux, capables à la fois de posséder des points de structure permanents et de définir d'eux-mêmes des points de structure dynamiques, et munis de la désignation d'une fonction agencée pour influencer à la fois au moins un point de structure d CervVal3.frd.doc 2 permanent et au moins un point de structure dynamique, ces éléments de simulation duaux servant à coupler les deux sections de simulation. Selon un autre aspect encore de l'invention, l'une au moins des sections de simulation comporte un ou des éléments de simulation dont une fonction travaille sur une propriété définie comme une grandeur dérivée, et le dispositif comporte en outre au moins un élément de simulation intégrateur, capable de calculer une grandeur intégrale de la grandeur dérivée contenue dans un autre élément de simulation, et de stocker cette grandeur intégrale en tant que propriété dans cet autre élément de simulation. Selon un mode de réalisation, l'environnement multi-tâches de programmation est apte à travailler par objets activables. Certains au moins des éléments de simulation sont alors définis comme des objets activab les. On peut choisir que tous les éléments de simulation soient définis comme des objets activables. Le gestionnaire de simulation est alors agencé pour travailler par séquences sur une sélection parmi les objets activables, dont chacun est activé au plus une fois lors de chaque séquence, selon un ordre variant de façon au moins partiellement aléatoire d'une séquence à l'autre. On peut alors avoir tout ou partie des caractéristiques suivantes : les objets activables comprennent un ou des objets d'interaction contenant chacun la désignation d'au moins un point de structure permanent et d'au moins une fonction applicable à ce point de structure permanent. tous les éléments de simulation sont définis comme des objets activables ou des objets d'état, contenant chacun au moins une donnée d'espace et/ou de temps et/ou au moins une donnée de propriété, définissant chacun un point de structure permanent, et un état courant de celui-ci. les objets activables comprennent des objets dits d'énaction aptes à définir des entités autonomes spatio-temporelles représentatives chacune d'un phénomène physique et capables d'interagir, en cas d'activation, avec des points de structure dynamiques, appartenant à des objets d'état distincts ou incorporés à l'objet d'énaction. les objets activables opèrent selon une suite répétitive d'opérations : action-perceptiondécision-action-perception-décision, et ainsi de suite, en ce qu'une séquence comporte trois opérations consécutives dans cette suite. une séquence commence par la perception pour un objet d'interaction, ou par l'action pour un objet d'énaction. Dans l'application particulière au bassin d'essais virtuel, on peut en outre avoir tout ou partie des caractéristiques suivantes : la première section de simulation (SS1) comporte des éléments de simulation pour une partie au moins des phénomènes suivants : groupe de vagues, déferlement, interactions CervVal3.frd.doc 3 groupe/groupe, interactions groupe/déferlement, interactions groupe/vent, interactions groupe/courant, et interactions groupe/profondeur la seconde section de simulation (SS2) comporte des éléments de simulation pour des caractéristiques mécaniques entre différents segments d'un corps. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels : - la figure 1 est un organigramme d'un exemple d'un dispositif selon WO 2005/081141, - la figure 2 est un organigramme d'un exemple d'un dispositif selon WO 2006/003271, - la figure 3 est un organigramme d'un exemple d'un dispositif selon la présente invention, - la figure 4 est une illustration spatiale des rôles respectifs des agents, - la figure 5 est un exemple simplifié d'agents pour la simulation d'un bassin d'essais virtuel, - la figure 6 est une illustration schématique du découpage d'un flexible flottant en tronçons, et - la figure 7 est une illustration schématique des interactions entre un tronçon avec la mer, et entre un tronçon et le tronçon adjacent. Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. En outre, la description détaillée est augmentée d'une annexe 1 de formules. Cette Annexe est mise à part dans un but de clarification, et pour faciliter les renvois. Elle fait partie intégrante de la description. Simulation en général La Demanderesse a promu une nouvelle technique de simulation, par agents chaotiques asynchrones, qui a été introduite dans WO 2005/081141. Ce l'on appelle ici "agent" est un élément de la simulation, au sens de brique élémentaire de la simulation. Cette nouvelle technique s'oppose aux techniques de simulation classiques, qui sont synchrones. Par exemple, si l'on considère deux phénomènes régis par les équations : y' = dy/dt = f(y) y' = dy/dt = g(y) la simulation classique opère une fusion des deux équations en un système (synchrone), par exemple y' = f(y) + g(y) qui se résoudra par les méthodes classiques en écrivant (schéma d'Euler) y(t+dt) = y(t) + f(y(t))*dt + g(y(t))*dt Par "synchrone", on entend que tous les événements qui se déroulent dans l'intervalle de temps dt sont simultanés. Cette supposition est théoriquement exacte au niveau des équations formelles : comme dt est nul ( tend vers 0 ), deux événements ayant lieu pendant le même intervalle de temps dt ont forcément lieu au même instant. En pratique, il s'introduit un biais lors de la résolution numérique de ces équations, car le dt se transforme en un Dt non nul, ce qui peut nécessiter de prendre des précautions particulières. o(1 CervVal3.frd.doc 4 Là où une méthode numérique classique est appliquée dans l'espace, l'espace est divisé en mailles dans lesquelles on calcule des flux, et le temps en intervalles de durées faibles, non nulles. Un exemple montrera bien ce biais, dans le cas où plusieurs phénomènes "non-linéaires" interagissent. On considère deux réactions chimiques A + x ->B et A + y ->C, qui sont en concurrence, à partir du même réactif A. On suppose que ces deux réactions ont la même cinétique, et que celle-ci est constante, c'est-à-dire que chaque réaction consomme 1 unité de A par seconde, si elle intervient, ce qui donne B ou C. On considère maintenant une troisième réaction A + z -> C, qui a une cinétique proportionnelleä c'est-à-dire par exemple qu'elle consomme la moitié du réactif A disponible, à condition que le milieu soit plus dense en C qu'en B. La technique de simulation synchrone conduit à ce que, puisque B et C ont le même comportement, la concentration en C ne dépassera jamais celle de B, et par conséquent la réaction 3 ne s'activera jamais. Ainsi, si la concentration initiale est de 10 unités de A, au bout de 5 secondes, le milieu contiendra 5 B et 5 C. La réalité est pourtant différente; elle n'est pas synchrone. L'une des deux réactions agira avant l'autre. Dans les faits, il est probable que au cours du temps, la concentration en C dépassera à un moment donné (par accident) celle de B. La réaction A + z -> C agira alors rapidement et maintiendra ce déséquilibre, ce que la technique de simulation synchrone est impuissante à prévoir. La nouvelle technique selon WO 2005/081141 ne considère pas les effets de f et g comme synchrones. Elle calcule séparément les contributions de f et g, en respectant les causalités : si g agit après f, alors g agit sur le monde tel que l'a laissé f. On peut donc écrire : y(t+dtl) = y(t) + f(y(t)) * dtl y(t+dt l +dt2) = y(t+dtl) + g(y(t+dtl)) * dt2 Si l'on prend dt = dtl+dt2, ces deux lignes ne se combinent pas comme dans la méthode classique puisque cela donnera y(t+dt) = y(t) + f(y(t)) * dt + g(y(t+dtl )) * dt Il a été démontré que la simulation par agents chaotiques asynchrones selon WO 2005/081141 est convergente vers une solution correcte dans de nombreux cas. En particulier, elle converge toujours vers une solution correcte pour les phénomènes régis par des équations différentielles du 1 er ordre. La simulation par agents chaotiques asynchrones a connu des approches successives. Elles diffèrent par les classes d'agents utilisés, qui elles-mêmes dépendent des phénomènes à simuler. Le fonctionnement chaotique asynchrone permet que les différents phénomènes soient simulés de manière indépendante par les différents agents. L'approche par agents dl'entité (dite aussi "agents-entité") CervVal3.frd.doc Cette première approche considère au moins deux éléments de l'environnement. Chaque élément de l'environnement est représenté informatiquement par un agent- entité, avec - d'une part des données qui décrivent ses paramètres de cet agent-entité, et - d'autre part des données ou méthodes représentant les règles régissant l'évolution conjointe des paramètres de cet agent-entité et des paramètres d'autres agents-entité présents dans l'environnement. (le ou les autres éléments de l'environnement). Un agent d'entité peut représenter un élément du monde réel : molécule, particule d'eau, personnage, par exemple, avec ses règles d'évolution. D'une certaine façon, un agent entité est à la fois le sujet et l'objet de la simulation. Dans le cadre de la simulation par agents chaotiques asynchrones, chaque agent entité va suivre un cycle perception/décision/action conforme au tableau Al ci-après. TABLEAU Al Id Etape Détail de l'étape A 11 Perception perception des autres agents-entité qui entourent l'agent entité considéré (autrement dit, perception de l'environnement) A 12 Décision décision de l'attitude à adopter d'après les règles de fonctionnement propres à l'agent-entité considéré A 13 Action modification des paramètres de l'agent entité considéré, et/ou des paramètres d'autres agents. On comprendra que les agents entité permettent de construire un programme de simulation d'une manière simple, conceptuellement. D'autre part cette construction est modulaire, dans la mesure où un programme de simulation est la réunion de plusieurs agents, c'est à dire de plusieurs petits programmes de simulation. Par contre, la multiplication du nombre d'agents peut devenir très vite explosive. Dans le cadre d'une simulation chimique par exemple, simuler individuellement le comportement de chaque molécule est inenvisageable en pratique, actuellement du moins. De plus la modularité de cette méthode a ses limites. En effet la prise en compte d'un nouveau phénomène par le simulateur (par exemple la prise en compte d'une nouvelle réaction chimique, ou de transferts thermiques non traités jusque là) nécessite de : identifier ceux des agents-entités qui sont concernés par ce nouveau phénomène, et ré-écrire, au moins partiellement, chacun des agents-entités concernés par ce nouveau phénomène. L'approche par agents d'interaction (ou agents-interaction ) Cette approche est l'un des éléments illustrés dans WO 2005/081141. aC CervVal3.frd.doc 6 La figure 1 illustre une technique de simulation chaotique asynchrone selon WO 2005/081141 (tirée de sa propre figure 1). Elle peut être mise en oeuvre sur une station informatique comportant une unité centrale de traitement 10 et un système d'exploitation 11. Ils servent de base à un environnement de simulation 2, qui peut être l'environnement oRis décrit notamment dans le document "Systèmes multi-agents", pages 499 à 524, RSTI - TSI, 21/2002. L'environnement 2 permet la programmation par objets activés, par exemple en langage C++ ou Java. L'environnement multi-tâches oRis est couplé à un compilateur 22 (ici nommé "compilateur de programmation objet"). Par ailleurs, l'environnement oRis peut-être couplé à un traducteur 21 en langage C++ (ici nommé "interpréteur de programmation objet") afin d'améliorer son efficacité par compilation. Cet interpréteur 21 peut même être adapté de manière à constituer un compilateur en ligne dans lequel le code exécuté est un code compilé en ligne et modifiable de façon dynamique. Un tel environnement multi-tâches, constituant une évolution d'oRis, est connu sous le nom ARéVi. L'ensemble fournit un environnement de simulation multitâches 23, sur lequel s'appuie la simulation. L'unité centrale 10 est munie d'une carte graphique performante (non représentée), qui permet de concrétiser la simulation sur une visualisation 19. Une simulation particulière est réalisée par un simulateur général 3, qui comprend d'abord un gestionnaire de simulation 30, muni d'un ou plusieurs séquenceurs 31. Selon WO 2005/081141, les éléments de la simulation comprennent des agents d'interaction 50 et des objets d'état 40, qui seront appelés ici agents-entité ou objets-entité, sur lesquels on reviendra. Ainsi, le monde est d'une part découpé en phénomènes, tels que réactions chimiques, ou propagation d'ondes, et d'autre part découpé en morceaux, ou compartiments. Il faut alors distinguer : d'une part la modélisation de l'environnement, avec sa structuration informatique, qui est un objet passif de la simulation, et - d'autre part des agents et de leurs règles de fonctionnement qui sont les véritables acteurs de la simulation, et que l'on appelle agents d'interaction. Là où la technique par agents d'interaction s'applique à un phénomène réparti dans l'espace, il n'est pas impératif que les agents d'interaction soient localisés dans l'espace ; mais l'espace reste alors divisé en compartiments, représentés par des objets entité. Un agent d'interaction possède le même cycle général "perception/décision/action" que les agents-entité décrits plus haut. Par contre, le cycle "perception/décision/action" ne s'applique plus à des interactions entre agents-entité (perception des autres agents-entité, décision et actions sur les autres agents-entités). Chaque agent-interaction va maintenant interagir avec l'environnement (perception de l'environnement, décision, action sur l'environnement). On peut donc considérer que la représentation informatique de l'environnement lui-même est "inerte", puisque cette représentation informatique ne dispose pas d'outils ou méthodes d'action. Ces outils ou méthodes d'action sont en principe localisés dans les agents-interaction. Ceci est résumé dans le tableau Il ci-après. e( CervVal3.frd.doc TABLEAU I1 Id Etape Détail de l'étape I11 Perception perception des données qui représentent l'environnement ("objets entités") 112 Décision décision de l'attitude à adopter d'après les règles de fonctionnement propres à l'agentinteraction considéré I13 Action modification des données de l'environnement et/ou des paramètres de l'agent-interaction considéré. Dans l'exemple d'une simulation de phénomènes chimiques (non spatialisée), l'environnement est représenté par une liste de concentrations pour chaque type de réactif en présence. Les agents représentent les réactions chimiques. Leurs cycles perception/décision/action deviennent alors: lecture des concentrations des produits par un agent, calcul en fonctions des paramètres cinétiques internes de l'agent, modification des concentrations des produits de l'environnement. Il peut s'y ajouter une modification des paramètres cinétiques propres de l'agent considéré, par exemple si l'environnement indique la présence d'un catalyseur pour la réaction dont l'agent considéré a la charge. La représentation spatiale dans l'approche agent interaction est obtenue par la structuration de l'environnement en différents compartiments (appelés réacteurs dans le cadre de simulations chimiques). Chaque compartiment est situé dans l'espace et héberge une liste de paramètres (de concentrations dans l'exemple de la chimie). Chaque compartiment héberge également un ou plusieurs agents d'interaction intra-compartiment (non spatialisés). Enfin, à l'interface entre les compartiments se trouvent des agents interaction inter-compartiment (spatialisés), dont la particularité est qu'ils peuvent agir sur plusieurs compartiments à la fois. Un agent d'interaction intra-compartiment perçoit l'environnement spécifique à son compartiment (celui qui le concerne à cet instant), calcule ses actions, et agit en modifiant les paramètres de l'environnement de son compartiment. Dans le cas de la chimie, cela sera : lecture des concentrations de mon compartiment, calcul, modification des concentrations de mon compartiment). Un agent d'interaction inter-compartiment perçoit les environnements spécifiques à un groupe de compartiments, calcule ses actions, et agit en modifiant les paramètres de l'environnement de son groupe de compartiments (le groupe de compartiments qui le concerne à cet instant). Dans le cas de la chimie, ils seront en charge des phénomènes de diffusion ou de transport. Par exemple: lecture des concentrations [A]1 et [A]2 dans deux compartiments voisins, calcul de la différence [A]1û [A]2, écriture des nouvelles concentrations [A]Inouveau = [A]1 - c * ([A]1 - [A]2), [A]2nouveau = [A]2+ c * ([A]1 - [A]2) 7 01/ CervVal3.frd.doc 8 On accède ainsi à un meilleur découpage des fonctions du simulateur, du point de vue du travail de modélisation. Chaque agent est responsable d'une spécialité. Ainsi dans le cas d'un milieu qui mêle des phénomènes chimiques et des phénomènes thermiques, certains agents ne s'occuperont que de chimie, d'autres que de thermique. L'addition de nouveaux phénomènes (par exemple dispersion de chaleur sur les paroi du tube) n'impacte pas la programmation des agents existants. Ainsi, la structuration de l'environnement (le modèle du monde) peut être explicitement décrite au moment de l'écriture d'un programme de simulation, par le programmeur. C'est lui qui décide initialement du nombre de concentrations à surveiller, du nombre de compartiments, ... Les agents sont tous liés, au départ, à une part de l'environnement (quelques concentrations dans quelques compartiments, par exemple). Ensuite, ces liaisons ne peuvent être modifiées que par un opérateur, par un programme explicitement écrit pour modifier les liaisons. Il a été constaté que cette liaison créée a priori (en quelque sorte, programmée en dur ) entre chaque agent et sa part de l'environnement était parfois cause d'une rigidité excessive. La demanderesse a alors conçu une nouvelle approche, que l'on considérera maintenant. L'approche par agents dl'énaction (ou agents énaction ) Dans WO 2006/003271, on fait intervenir des agents d'énaction ( objets d'énaction selon la terminologie de WO 2006/003271). La figure 2 illustre une technique de simulation chaotique asynchrone selon WO 2006/003271 (sa propre figure 5). Elle diffère de la figure 1 en ce que les agents d'interaction sont remplacés par des agents d'énaction 60 ("objets d'énaction" dans la terminologie de WO 2006/003271). L'approche par agent-énaction conserve certaines des propriétés des agents décrits plus haut : - le monde reste découpé en phénomènes. - les agents qui représentent ces phénomènes n'interagissent pas directement entre eux, mais seulement via leurs interactions avec l'environnement. -l'environnement n'est pas un acteur du monde, mais une simple description. La différence est que la structuration de l'environnement n'est pas explicitement donnée une fois pour toutes par le programmeur, mais peut être construite dynamiquement par un ou des agentsénaction . Par conséquent, là où une technique par agents d'énaction s'applique à des phénomènes qui se déroulent dans l'espace, il n'est plus nécessaire de diviser l'espace en morceaux ou mailles. Les grandeurs ne sont calculées que là où les agents le jugent nécessaire (aux points de mesure). Dans les autres endroits de l'espace, là où il n'y a pas de point de mesure, les grandeurs à calculer ne sont tout simplement même pas connues (même pas approximativement). Chaque point de mesure ne représente que lui-même (le cas échéant, une zone l'entourant). Mais on ne peut pas appeler cela une maille, puisqu'il n'y a pas de maillage recouvrant tout l'espace. A contrario, il pourrait y avoir deux points de mesure au même endroit. CervVal3.frd.doc 9 Chaque agent-énaction suit un cycle du type de celui du tableau El ci-après. TABLEAU E 1 Id Etape Détail de l'étape El 1 Action 1 création de points de structure dans l'environnement E12 Action 2 action(s) sur les points de structures présents dans l'environnement, en fonction des paramètres internes de l'agent-énaction considéré. L'action peut porter sur les points de structure déjà créés par cet agent- énaction en El 1 ou sur ceux déjà créés par un ou d'autre(s) agent(s)- énaction (à leur propre étape El 1) E13 Perception Lecture des paramètres des points de structures de l'agent-énaction considéré (tels que déjà créés par lui à la première étape E11 d'un cycle), E14 Décision avec, si nécessaire, mise à jour des paramètres internes de l'agent- énaction considéré, en fonction des paramètres ainsi lus en E13. Dans WO 2006/003271, les points de structure sont appelés médiateurs d'interaction , car les agents-énaction n'interagissent entre eux que via leurs actions sur ces points. Domaines d'application Chacune des approches multi-agents décrites ci-dessus a des applications privilégiées. L'approche par agents d'interaction convient aux réactions chimiques, avec ou sans spatialisation. Elle s'applique très bien aussi à la modélisation de structures mécaniques. L'approche avec agents d'énaction convient particulièrement bien pour la modélisation océanographique de la mer, par exemple. Mais elle est plutôt inadaptée pour la modélisation d'une interaction gravitationnelle entre plusieurs corps. Ainsi, des problèmes peuvent se posent lors de la simulation de situations plus complexes, impliquant plusieurs éléments de natures différentes. C'est le cas par exemple pour la simulation d'une structure flexible (dite tuyau ) flottant sur la mer. C'est une étape nécessaire pour simuler un bassin de carène virtuel, ou plus simplement un bassin d'essai virtuel , où de nombreuses structures mécaniques flottent sur et/ou dans l'eau. Une telle simulation ne peut en effet se faire ni uniquement avec des agents d'interaction, ni uniquement avec des agents d'énaction. Il en résulte l'impossibilité de simuler par exemple un bassin d'essai virtuel par la technique des agents chaotiques asynchrones. Et c'est dommage, au vu des impressionnantes capacités de cette technique en modélisation océanographique de la mer. De plus, dans certaines applications mécaniques, dont le bassin d'essai virtuel, il faut prendre en compte des équations différentielles du second ordre. Cela pose problème également : en effet, CervVal3.frd. doc 10 avec la technique des agents chaotiques asynchrones, la convergence n'est pas assurée pour des équations différentielles du second ordre. La Demanderesse s'est efforcée de trouver néanmoins des solutions, dans le cadre de ses travaux sur le bassin d'essai virtuel. La figure 3 illustre une technique de simulation chaotique asynchrone selon la présente invention. Comme pour la figure 1, les éléments de la simulation comportent un groupe d'agents d'interaction 50 et un groupe 40 d'agents d'état et/ou d'objets d'état 40 (également dénommés ici agents-entité ou objets-entité). Comme pour la figure 2, les éléments de la simulation comportent un groupe d'agents d'énaction 60. Enfin, il s'y ajoute des agents spéciaux, bi-fonctionnels, dits ici "agents duaux", chargés d'assurer un lien entre des agents d'interaction 50 et des agents d'énaction 60, par l'intermédiaire de points de structure dynamiques, comme on le verra. L'une des idées de base qui ont conduit à la solution consiste à distinguer deux catégories de "points de structure". Ces catégories ont en commun le fait qu'un point de structure contient : des données qui définissent un point de l'espace temps, et - des données définissant une ou plusieurs propriétés de ce point de l'espace-temps. L'espace-temps n'est pas nécessairement l'espace réel à 3 dimensions. Il peut être confiné à un domaine d'espace beaucoup plus petit, comme par exemple l'intérieur d'un tube à essais en chimie. Un point de structure permanent est attaché de manière permanente à un élément physique présent dans l'espace, comme par exemple le tronçon de tube dont il sera question ci-après. Il en découle que le point de structure permanent est attaché de manière permanente à un ou plusieurs agents chargés de traiter l'élément physique concerné. Ceci est définiinitialement à la programmation. En général, un point de structure permanent n'est pas fixe dans l'espace. Les données qui le définissent dans l'espace temps vont donc varier. Par exemple, le tronçon de tube dont il sera question ci-après bouge. Le qualificatif permanent signifie que le point de structure reste présent, avec la même signification ou attache physique, tout au long de la simulation. Des exceptions peuvent exister à cette permanence, par exemple si l'élément physique auquel le point de structure est attaché vient à disparaître, et, bien entendu, si un opérateur humain force la disparition du point de structure. A l'inverse, un point de structure dynamique n'a aucune attache physique localisée. Les données qui le définissent dans l'espace temps peuvent donc être modifiées par les agents sans contrainte physique, à l'intérieur du domaine de la simulation, en fonction des besoins de la simulation et de sa visualisation. La création d'un point de structure dynamique consiste donc en principe à fabriquer un multiplet supplémentaire de structure { données d'espace temps, données de propriété(s)}. Toutefois, il est fréquent qu'un point de structure dynamique ne serve qu'une fois, et soit écrasé ensuite (à la séquence suivante) par une autre point de structure dynamique. a CervVal3.frd.doc 11 Les mots "points de structures" signifient aussi que les données constitutives des points de structure permanents ont une construction générale semblable à celle des points de structure dynamiques. Agents d'interaction et points de structure permanents Aux points de structure permanents, tels qu définis plus haut, sont associés en principe des agents d'interaction (ou un autre agent non-énactif). Un tel agent non-énactif opère selon le cycle "perception/décision/action".Dans le cas d'un agent d'interaction, ce cycle est celui du tableau 12 ci-après. TABLEAU 12 Id Etape Détail de l'étape 121 Perception lecture de l'environnement (i.e. de points de structure permanents) 122 Décision Calcul en fonction des points de structure permanents et de mes paramètres internes 123 Action modification de l'environnement (i.e. de points de structure permanents). Perception et action se font sur des points de structures liés explicitement (dès la création de l'agent) à l'agent. Agents d'énaction et points de structure permanents Un agent d'énaction suit un cycle du type défini dans le tableau E2. TABLEAU E2 Id Etape Détail de l'étape E2 1 Action-A création de nouveaux points de structure dans l'environnement E22 Action-B modification des points de structure qui sont dans la zone d'influence de l'agent considéré, en fonction des paramètres internes de l'agent- énaction considéré. L'action peut porter sur les points de structure déjà créés par cet agent-énaction en E21 ou sur ceux déjà créés par un ou d'autre(s) agent(s)-énaction (à leur propre étape E21), ou les points de structure permanents, seuls vus par les agents d'interaction. E23 Perception lecture des paramètres des points de structures de l'agent-énaction considéré (tels que créés à la première étape E21 du cycle) E24 Décision mise à jour des paramètres internes de l'agent-énaction considéré, en fonction des paramètres ainsi lus, c'est-à-dire de l'évolution (entre les étapes E21 et E23 de ce cycle) des points de structure de l'agent considéré Le cycle du tableau E2 est assez proche de celui du tableau El, à ceci près que, dans le tableau E2, l'agent d'énaction pourra également agir sur un point de structure permanent, qui est accessible aussi aux agents d'interaction. CervVal3.frd.doc 12 Par ailleurs, on peut définir une zone d'influence autour d'un agent d'énaction, implicitement ou explicitement. Agents bi-fonctionnels ou agents duaux Par ailleurs, il est souhaitable de prévoir une "liaison" entre les agents d'interaction et les agents d'énaction. Cela sert par exemple à placer des points de structure dynamiques, en correspondance des points de structure permanents. Cela peut se faire en ajoutant des agents bi-fonctionnels, que l'on appellera ici "agents duaux", et qui marient des caractéristiques des agents d'interaction avec des caractéristiques des agents d'énaction. Dans le cas général, un agent dual pourra donc suivre le cycle indiqué dans le tableau D2 ci-après, dont la colonne "dualité" fait référence aux étapes des tableaux I2 et E2 donnés plus haut. TABLEAU D2 Id Etape Détail de l'étape "Dualité" D21 Action-A Création de points de structure = E21 (énaction) D22 Action-B En fonction de "mes" paramètres internes = 123 (interaction) (ceux de l'agent dual considéré), modification des points de structure auxquels je suis lié explicitement (comportement interactif) et des points de structure qui sont dans ma + E22 (énaction) zone d'influence (comportement énactif) D23 Perception Lecl:ure des points de structure auxquels je = 121 (interaction) suis lié explicitement (comportement interactif) et de ceux que j'ai créés (comportement + E23 (énaction) énac tif) D24 Décision modification de mes paramètres internes = 122 (interaction) en fonction de mes points de structure + E24 (énaction) permanents et/ou dynamiques. Un agent dual peut donc avoir la structure d'objet désignée dans le tableau D3. TABLEAU D3 -structure objet d'un agent dual Id Contenus Remarques D30 Liste de points de structure dynamiques o( CervVal3.frd.doc 13 D31 Coordonnées d'un point de structure dynamique répété pour chaque point de Variables définissant ses propriétés structure dynamique D32 Liste de points de structure permanents Liste, ou bien codé en dur D33 Coordonnées d'un point de structure permanent répété pour chaque point de Variables définissant ses propriétés structure permanent D34 Noms des variables définissant les paramètres internes Liste, ou bien codé en dur de l'agent dual D35 Valeurs des variables définissant les paramètres internes de l'agent dual D36 Désignations de fonctions utiles pour modifier les paramètres internes de l'agent dual en fonction des points de structure permanents et/ou dynamiques D37 Zone d'influence de l'agent dual Cette structure n'est qu'un exemple, susceptible de nombreuses variantes. Par exemple, une même liste peut recenser les points de structure dynamiques et permanents. L'usage de motifs de nommage ("design patterns") peut faire que ces listes peuvent être reconstruites automatiquement, sans devoir être stockées. Sur un autre plan, on peut stocker non pas des désignations de fonctions, mais leur expression, en y intégrant les noms des variables concernées dans l'objet agent-dual, auquel cas on peut se passer de lister certaines au moins de ces variables. Par ailleurs, comme on l'a déjà vu, les coordonnées d'espace/temps d'un point de structure (ou plusieurs), ainsi que tout ou partie de ses propriétés peuvent être stockées séparément, dans un objet d'état, ou même encore dans un autre agent ou objet. Avec un ou des agents duaux, la description informatique de l'environnement peut alors être partagée entre un groupe d'agents d'interaction et un groupe d'agents d'énaction. On peut remplacer certains au moins des agents duaux par des fonctionnalités équivalentes, qui peuvent alors être logées au moins partiellement dans des agents déjà existants. Cela est indiqué sur la figure 4, qui illustre une structure générique de modélisation possédant tous les apports de la présente demande de brevet. Sur cette figure 4, l'environnement comprend des points de structure dynamiques PSD10 à PSD15, ainsi que des points de structure permanents PSP10 à PSP12. Des agents d'interaction 50A et 50B interagissent avec les points de structure permanents PSP10 à PSP12, comme représenté. Des agents d'énaction 60A à 60C interagissent avec les points de structure dynamiques PSD l 0 à PSD15, comme représenté. Un agent dual 70A interagit avec les points de structure dynamiques PSD 14 et PSD15, ainsi qu'avec le point de structure permanent PSP10, assurant ainsi une passerelle entre le sous-environnement du haut (les PSD), simulé par des agents d'énaction, et le sous-environnement du bas (les PSP), simulé par des agents d'interaction. CervVal3.frd.doc 14 Si nécessaire, un agent d'inertie 80A interagit avec l'un des points de structure dynamiques, ici PSD Il, pour convertir par exemple une vitesse fournie par une fonction d'un agent d'énaction en position. De même, si nécessaire, un agent d'inertie 80B interagit avec l'un des points de structure permanents, ici PSP 12, pour convertir par exemple une vitesse fournie par une fonction d'un agent d'interaction en position. Il est rappelé, par exemple en mécanique, que les équations différentielles du second ordre en position sont de préférence converties en équations du premier ordre en vitesse, pour être traitées de manière convergente par la technique des agents chaotiques asynchrones. Une première section de simulation SS I peut être définie autour des agents 60A à 60C et 80A. Une seconde section de simulation SS2 peut être définie autour des agents 5OAet 50B ainsi que et 80B. Un ou des agents duaux tels que 70A sont entre les deux. Les points de structure sont représentés séparément pour la clarté du dessin, mais ils pourront se trouver au même endroit de l'espace, entre points de structure permanents et points de structure dynamiques, deux à deux au moins. Les points de structure peuvent être définis à l'intérieur même des agents. Mais il sera souvent plus commode de les distinguer des agents. Dans ce cas, un point de structure peut être défini comme un objet d'état, ou objet entité, contenant les coordonnées d'espace/temps du point de structure, avec au moins une donnée de propriété, définissant un état courant du point de structure. L'agent comprend alors un pointeur vers le point de structure, et la désignation d'au moins une fonction, applicable pour modifier l'état courant du point de structure. Toutefois, des partages différents sont envisageables. Par exemple, si une propriété d'un point de structure n'est traitée que par un agent, alors elle peut être stockée dans cet agent, même si le point de structure est stocké séparément dans un objet d'état. Par ailleurs, le fait qu'un agent comprend la "désignation d'au moins une fonction" doit être compris au sens large : il peut s'agir d'une chaîne de caractères formant appel d'une fonction déjà existante, d'un segment de code de programme qui définit une fonction, ou encore d'un pointeur vers un endroit où se trouve un tel code, par exemple. Il faut comprendre que les points de structure permanents ne sont pas nécessairement fixes dans l'espace. Ils sont simplement attachés de façon permanente à des points d'un structure, par exemple tri-dimensionnelle. Par contre, un point de structure dynamique n'est pas attaché à une structure, et il peut être placé à un endroit quelconque, conformément au code de programme prévu à cet effet dans l'agent d'énaction qui le gère. Dans bon nombre d'applications, les points de structure dynamiques sont renouvelés à chaque cycle ou séquence d'activation chaotique asynchrone des agents, en fonction des besoins de coïncidence ou voisinage entre eux et des points de structure permanents. o( CervVal3.frd.doc Remarques pratiques L'environnement est alors initialement configuré de façon explicite par le programmeur, qui va créer un certain nombre de points de structures ayant chacun des paramètres (par exemple des tronçons de flexibles dont les paramètres seront leurs positions, orientations, vitesses, ...). Les agents énaction, en cours de simulation, compléteront cette structuration en y ajoutant leurs propres points de structures, dynamiques (médiateurs d'interaction). Pour le reste, chaque agent fonctionne alors comme il en a l'habitude sur l'environnement, indépendamment de ce que font les autres. Dans le cas de l'agent énaction, l'agent n'est lié initialement à aucun point de structure (d'ailleurs initialement ces points de structure n'existent même pas; c'est à lui et aux autres agents d'énaction de les créer). Il est par contre implicitement lié à des points de structure, soit parce que c'est lui qui les a créés, soit: parce qu'ils se trouvent dans sa zone de contrôle (ou zone d'influence). Il convient de noter ici que les points de structures auxquels est lié un agent énaction varient constamment. De leur côté, les agents duaux sont liés à la fois explicitement à des points de structure préexistants, et à des points de structure qu'ils ont eux-mêmes créés. Ils ont donc un comportement à la fois interaction et énactif. L'homme du métier comprendra que les agents duaux forment interface entre le monde des agents énactifs et le monde des agents interactifs. L'un des éléments de la démarche qui a abouti aux agents duaux a été la constatation que l'on pouvait donner aux agents d'énaction une séquence d'étapes compatible avec celle des agents d'interaction, à savoir : -action/perception/décision, pour le cycle d'un agent d'énaction, perception/décision/action, pour le cycle d'un agent d'interaction. On observe que l'étape formant le début de cycle n'est pas la même dans les deux cas : "action" pour le cycle d'un agent d'énaction, et "perception" pour le cycle d'un agent d'interaction. Mais la Demanderesse a observé aussi que, dans la simulation par agents chaotiques asynchrones, le résultat obtenu ne dépend pratiquement pas (du moins statistiquement) de l'étape choisie comme début de cycle. Cette observation a constitué une autre des étapes vers la conception des agents duaux, en permettant de : faire cohabiter les agents d'interaction et les agents d'énaction dans une même simulation par agents chaotiques asynchrones, et - marier leur deux cycles respectifs pour construire le nouveau type d'agents que sont les agents duaux, là aussi sans compromettre la simulation par agents chaotiques asynchrones. Ce qui précède permet par exemple de "coupler" une simulation de la mer, par agents d'énaction, et une ou plusieurs simulations, par agents d'interaction, de structures mécaniques (comme un tuyau flottant par exemple). Les agents duaux réalisent le couplage au niveau de points de structure prédéfinis, tandis que d'autres peuvent être créés dynamiquement. 15 d CervVal3.frd.doc 16 C'est là une "brique" pour la construction de la simulation du bassin d'essai virtuel. Agents d'inertie Reste le problème lié aux équations différentielles du second ordre, qui régissent les mouvements du tuyau en fonction des efforts qui lui sont appliqués. La Demanderesse a résolu cet autre problème. Bien que l'approche de la Demanderesse ait été pratique, il sera plus clair ici de passer d'abord par une description formelle. Il s'agit de traiter des phénomènes faisant intervenir la dérivée seconde et la dérivée première d'une grandeur y, à savoir : d2y/dt2 = f(y), et dy/dt = g(y) La solution proposée est la suivante : entretenir deux données contenues dans l'environnement et communes à tous les agents, à savoir y"(t) = valeur courante de f(y) y'(t) = valeur courante de g(y) Limiter le rôle des agents existants au calcul de la dérivée première, c'est-à-dire y,(t +dt) = y'(t) + y"(t) * dt prévoir un agent supplémentaire (ici, un agent inertie ), chargé de calculer les nouvelles valeurs intégrées de la grandeur y, à partir de cette dérivée première et de la valeur intégrale précédente, à savoir le calcul de l'opération y(t+dt) = y(t) + y'(t ) * dt L'application pure et simple des techniques décrites dans WO 2005/081141 et WO 2006/003271 aurait voulu que des agents calculent les opérations : dy/dt (t +dt) = dy/dt (t ) + y' *dt y(t+dt) = y(t) + y'(t )*dt On observera que l'approche ici proposée est sensiblement différente. II convient ici de bien comprendre que : ù le fait de séparer l'agent inertie des autres implique qu'il agira lui aussi de façon chaotique et asynchrone par rapport aux autres agents. On ne connaît pas a priori la valeur du y'(t ) qu'il utilisera, ù Les agents n'étant pas tenus d'utiliser la même fréquence (ou période dt), l'inertie peut se calculer à une fréquence différente de celle utilisée pour les phénomènes physiques traités. Par cette mise à part de l'inertie, par rapport aux phénomènes de base régissant les interactions, on assure que la technique de simulation par agents chaotiques asynchrones fonctionne (demeure convergente) malgré la présence de phénomènes faisant intervenir une dérivée seconde. L'agent d'inertie peut être considéré comme une variété particulière d'agent d'interaction. d CervVal3.frd.doc Application particulière L'invention s'applique notamment à ce que l'on appellera ici un bassin virtuel d'essais aquatiques, en bref uri bassin virtuel d'essais. Un tel dispositif comprend un simulateur de milieu aquatique au mois partiellement délimité (un fond), où se manifestent des régimes de houle, ces régimes pouvant être réguliers ou irréguliers. Il s'y ajoute une ou des structures simulées, mécaniques ou autres. Le but est de prendre en compte les phénomènes résultant des interactions entre la mer, le vent, le fond, les structures, notamment. Un tel bassin d'essai virtuel permet, pour un coût réduit, de tester la viabilité et le comportement d'une structure donnée dans des conditions de mers quelconques. Les conditions de mers sont précisées par la donnée d'un modèle océanographique et de ses paramètres. Il est ainsi possible de reproduire les états de mer d'une zone quelconque (par exemple le golfe de Guinée) dans des conditions quelconques, quels que soient par exemple le vent, ou encore la grandeur Hs, ou Hauteur Significative, qui est la hauteur moyenne entre la crête et le creux d'une vague. Des éléments de structures additionnels peuvent venir compléter ce bassin d'essai. Ces éléments peuvent être combinés pour construite les structures à tester, rendant ainsi possible l'utilisation de ce bassin d'essai pour pratiquement tout type de structure. Dans les premiers essais effectués, les éléments de structures disponibles sont : - de petites structures filiformes, tels que flexibles, "risers", ou tuyaux rigides, notamment, -de grands corps flottants ou non flottants, y compris des navires ou plateformes, ayant une influence sur la houle. Comme dans la technique par agents d'énaction, il n'est pas nécessaire de diviser l'espace en morceaux. L'espace est représenté par les points de structure (ou points de mesure), là où cela est utile. Les grandeurs ne sont calculées que là où les agents le jugent nécessaire. Dans les autres endroits de l'espace, là où il n'y a pas de point de mesure, les grandeurs à calculer ne sont tout simplement pas connues (même pas approximativement). Chaque point de mesure ne représente que lui-même (et parfois effectivement une zone l'entourant - mais on ne peut pas appeler ça une maille, puisqu'il n'y a pas de maillage recouvrant tout l'espace; et qu'il pourrait a contrario y avoir deux points de mesure au même endroit). Un point de structure, permanent ou non, est caractérisé par des coordonnées dans l'espace, et des "propriétés". Ces coordonnées peuvent être celles d'un point prédéfini de la "zone d'influence" du point de structure, par exemple le centre si c'est une sphère, ou le coin supérieur gauche, s'il s'agit d'un carré. Les coordonnées comportent aussi la définition de l'étendue de la zone d'influence, implicitement ou explicitement. Pour un objet mécanique, les propriétés comprennent par exemple un vecteur force, et/ou un vecteur couple (ou leurs équivalents scalaires à plusieurs composantes) ; en chimie, les propriétés sont des concentrations de substances chimiques (réactifs), présents dans le compartiment. D'autres propriétés sont utilisables pour d'autres domaines applicatifs. 17 CervVal3.frd.doc 18 Dans un agent, une "action" utilise une ou des fonctions qui permettent de définir de nouvelles valeurs pour une ou des coordonnées, et/ou une ou des propriétés, en fonction des. valeurs précédentes des coordonnées des points de structure, de leurs propriétés, et de paramètres internes propres à l'agent concerné. En outre, dans un agent, la décision peut comporter au moins une autre fonction pour faire évoluer les paramètres internes propres à cet agent et/ou pour créer ou détruire d'autres agents, notamment. Enfin, dans un agent énactif ou dual, la décision peut comporter une ou plusieurs autres fonctions pour faire évoluer les points de structure accessibles à cet agent, avec éventuellement la création de points de structure (non permanents, i.e. non accessibles aux agents d'interaction). La création d'un point de structure implique non seulement de définir ses coordonnées et ses propriétés, mais aussi d'activer toutes les fonctions requises pour le traitement ultérieur de ce point de structure. Ainsi, lorsqu'il crée un point de structure pour un phénomène nouveau, un agent énactif ou dual va instaurer les "fonctions requises pour le traitement ultérieur de ce point de structure". Il va laisser ces fonctions (en pratique, une désignation de ces fonctions) dans l'environnement, associées à un point de rnesure qu'il crée. Un autre agent passant par là pourra alors retrouver cette désignation de fonction(s), en même temps que le point de mesure. Il appliquer les fonctions ainsi retrouvées, avec pour arguments les paramètres désignés dans le point de mesure. Autrement dit, un point de structure peut comprendre, comme propriétés : une ou des désignations de fonction, - une ou des désignations de paramètres (noms de variables) à appliquer à chaque fonction, - des valeurs, dont les valeurs de paramètres pour les fonctions. Exemple particulier d'application Un élément générique du bassin virtuel est la simulation de l'action de la mer sur un objet flottant, que l'on prendra comme un flexible flottant. La figure 5 illustre les éléments génériques de la simulation, qui sont à considérer comme des classes informatiques, que l'on pourra instancier autant que nécessaire pour les besoins de la simulation. On considère donc un flexible flottant en interaction avec une mer. La simulation d'une telle interaction nécessite la co-évolution de deux simulateurs (Figure 5) : un simulateur de mer SNI, qui est en fait lui même composé de simulateurs de divers phénomènes tels que la houle, le vent, par exemple, et un simulateur de flexible SF. La mer est un objet extrêmement complexe, beaucoup trop coûteux à simuler via un maillage de sa surface. Elle est simulée ici selon la technique par agents énaction 61, conformément aux enseignements de WO 2006/003271. CervVal3.frd.doc 19 Dans cette technique, chaque phénomène (groupe de vague, déferlement, ...) est un agent d'énaction 61. Les agents ne communiquent pas entre eux, mais interagissent implicitement parce qu'ils partagent un même environnement, à savoir des points de mesure dynamiques, définissables (donc choisis) dynamiquement. Une façon de partager un point de mesure dynamique consiste à le placer dans un objet d'état auquel accède chacun des agents qui "possède" ce point de mesure dynamique. En chaque point de mesure dynamique (ou objet d'état) 41, au moins l'un des agents définit une position 410 et une vitesse 411. C'est parce qu'ils sont influencés par l'environnement et l'influencent en retour, qu'indirectement les agents s'influencent mutuellement. De plus, une spécificité de la technique par agents d'énaction, c'est que cet environnement n'est pas maillé, mais est structuré par les agents eux même en fonction de leurs besoins (voir le tableau E2, recensant les étapes du cycle des agents énaction). C'est cela qui permet de faire vivre le modèle océanographique de la nier. Ce modèle peut comprendre des agents d'énaction pour tout ou partie des éléments du Tableau M2 ci-après. TABLEAU M2 phénomène modélisé modèles physiques paramètres groupe de vagues Ondes localisées par une enveloppeâge, spectre, nombre de vagues d'extension finie se propageant le Iongprincipales, vecteur d'onde de "rais". moyen, position moyenne, vitesse Analyse par ondelettes avecde groupe, enveloppe analysatrice de Monet 2D déferlement Déferlement actif : critères delargeur des fronts déferlants, durée déferlement, activité du déferlement de phase active, quantité d'action, Déferlement passif : disparitionprofondeur de mousse, durée de progressive des turbulences et de larelaxation mousse par relaxation interactions Cinématique interaction parvecteurs d'onde, pulsations et~ groupe/groupe déferlements amplitudes des groupes en Résonance : interaction de quadruplets interaction interactions Transferts d'action et dissipation des/vitesse particule/crête, profondeur groupe/déferlement vagues courtes par la mousse passive de mousse, longueurs d'onde Allongement des crêtes dissipées Augmentation du nombre de vagues interactions Age d'un état de mer : vitesse dechamp de vecteurs "vent en groupe/vent friction, transfert d'énergie vers la mer altitude", vecteurs d'onde, cambrure, taux d'avance de crête) d'une vague interactions Conservation des crêtes et de l'action champ de vecteurs "courant de groupe/courant Réfraction et élargissement dessurface", vecteurs d'onde, 0( CervVal3.frd.doc 20 groupes par gradients de courantpulsations des groupes, amplitudes et phases locales des vagues Conservation des crêtes et de l'énergie bathymétrie, vecteurs d'onde Réfraction dispersive et élargissementmoyens, pulsations moyennes des des groupes groupes, amplitudes et phases locales des vagues Sur cette base, on aura par exemple un groupe de vagues, qui dépose des points de mesure sur l'eau; laisse les autres agents (autres groupes, déferlements, ...) impacter ces points de mesure; relève ces points de mesure et change ses paramètres internes en conséquence (vitesse et fréquence du groupe, notamment). D'autres détails sur la simulation de la mer pourront être trouvés dans l'article "Comparison of sea state statistics between a phenomenological model and field data", Christophe LE GAL, Michel OLAGNON, Marc PARENTHOEN, Pierre-Antoine BEAL, Jacques TISSEAU, 2007, Proc. Oceans Conf., p. 6. On considère maintenant la simulation SF du flexible. Il est lui aussi soumis à plusieurs phénomènes : Son poids constant en direction et force La poussée d'Archimède, dirigée vers le haut (gradient des pression) et d'une force dépendant de son taux d'immersion (c'est-à-dire dépendant des positions relatives de la bouée et de la surface de l'eau) Les interactions hydrodynamiques modélisées par les équations de Morisson Ce type de phénomènes peut être décrit par des équations différentielles et se modélise bien par des agents d'interaction 52. Des points de mesure (ou objets d'état) 42 sont ainsi créés tout le long du flexible. Le séquenceur 31 (figure 3) est défini généralement comme suit : a. il travaille par séquences successives et répétitives, b. chaque séquence portant sur une sélection particulière parmi une pluralité d'éléments de simulation distincts, qui sont ici les différents agents impliqués dans la simulation, c. chaque agent est activé au plus une fois lors de chaque séquence, d. l'ordre dans lequel les agents sont activés varie de façon au moins partiellement aléatoire d'une séquence à l'autre. En outre, lorsqu'il est activé, un agent travaille sur la base de l'état courant des autres agents, lesquels peuvent avoir déjà été activés, auquel cas il sont dans l'état nouveau (pour la séquence considérée), ou bien attendre leur tour, auquel cas ils sont encore dans l'état ancien. C'est tout cela qui donne le caractère asynchrone chaotique de la simulation. interactions groupe/profondeur CervVal3.frd.doc 21 Les agentsne sont pas tous sélectionnés à chaque séquence. La sélection d'un agent peut se faire selon différentes règles. La plus simple est de ne pas sélectionner un agent qui est pour le moment nécessairement inactif. En outre, la sélection d'un agent, ou d'un sous-groupe d'agents, peut être contrainte à respecter une règle de périodicité, que l'on peut exprimer comme une fréquence, en la rapportant à la durée moyenne d'exécution d'une séquence. Ainsi, les équations de Morisson peuvent être traitées à la cadence de 5 Hz. Le phénomène d'élongation exposé plus haut peut être traité à la cadence de 1 Mhz D'autres phénomènes peuvent être traités de manière similaire, sur la base de leurs propres équations, qui sont connues, avec par exemple, dans le cas du flexible : - Torsion : 1 KHz - Inertie : 1 MHz - poids : 0,1 Hz -Flexion : 10 KHz - poussée d'Archimède : 5 Hz - Interaction avec d'autres structures La mer seule est traitée selon la technique antérieure, à l'aide d'éléments de simulation du genre agents d'énaction, ou équivalents. Les points de structure (dynamiques) sont les points d'intérêt pour la visualisation sur l'écran 19. Deux types d'agents sont créés au niveau du flexible. Le premier type ("intrinsèque") concerne les interactions mécaniques à l'intérieur du flexible ; le second type ("extrinsèque") concerne les interactions entre le flexible et la mer. Un agent extrinsèque est un agent dual 70 qui relie un point de mesure sur le flexible avec un point de mesure à la surface de l'eau. Son rôle est de calculer les interactions hydrodynamiques. La force exercée par l'eau sur le flexible dépend en effet de la vitesse relative entre l'eau et le flexible. L'agent interaction responsable de l'application de cette force devra donc connaître la vitesse du flexible et la vitesse de l'eau. Cela peut se faire en utilisant les équations de Morisson, qui sont rappelées en Annexe 1, formules [I] à [III]. Dans la formule [1], pour un élément de flexible donné : m est la masse de l'élément de flexible, k est l'accélération de l'élément de flexible, Pw est la masse volumique de l'eau, Cd est le coefficient de traînée ("drag"), Crä est le coefficient de "masse d'eau ajoutée", qui correspond à une gaine d'eau entourant le flexible, et qui se déplace avec lui Dext est le diamètre de la section du flexible interceptée par l'eau Sext est la surface de la section du flexible interceptée par l'eau (sa "section mouillée") V est la vitesse relative de l'eau par rapport au flexible, CervVal3.frd.doc 22 ii est l'accélération (absolue) de l'eau au niveau du flexible, La formule [2] exprime l'évolution de la masse apparente m de l'élément de flexible par rapport à sa valeur brute mo (sans eau ajoutée), plus la masse d'eau ajoutée. La formule [3] exprime l'évolution de la vitesse V par rapport à sa valeur précédente Vo. L'homme du métier comprendra que l'équation [1] peut être modélisée par des itérations sur les équations [2] et [3]. La surface de l'eau étant simulée par des agents énaction, ces agents extrinsèques sont duaux, avec un comportement énactif pour pouvoir mesurer la surface de l'eau, et un comportement interactif pour traiter le flexible. Ils ont la charge de créer eux-mêmes des points de mesure sur l'eau aux emplacements dont ils veulent connaître les caractéristiques (vitesse de l'eau). Le flexible est découpé en éléments Ti à T6, comme indiqué sur la figure 6. La ligne moyenne du flexible est illustrée en trait mixte. La longueur d'un tronçon dépend de différentes facteurs, et notamment de la précision de visualisation requise. Elle peut être de 50 cm, par exemple. La figure 7 illustre les interactions au niveau des deux premiers éléments ou tronçons du flexible TI et T2. XII et X12 sont cieux points de structure dynamiques, qui sont créés pour l'élément de structure TI par un ou plusieurs agents duaux, chargés ici de l'interaction hydrodynamique. Un ou des points de structure permanents, solidaires de l'élément de structure Ti, sont également traités par ce ou ces éléments duaux. On considère maintenant Ires interactions entre deux tronçons consécutifs, tels que Ti et T2. Elles sont traitées par des agents: "intrinsèques". Ainsi, un agent intrinsèque relie est un agent d'interaction qui relie deux points de mesure successifs du flexible. II a pour fonction de maintenir le respect des caractéristiques mécaniques du flexible : Elongation (agent E12) : maintenir constante la distance entre deux points de mesure successifs; Flexion (agent F12) : maintenir aussi constant que possible le rayon de courbure formé par les points de mesure permanents successifs. La constance du rayon de courbure est altérée par les efforts ressentis, au point de mesure concerné, du fait du reste du flexible. Torsion (agent T12) : maintenir aussi constant que possible l'angle formé par les points de mesure permanents successifs, entre deux tronçons de tube. Sur la figure 7, on retrouve en X21 et X22 les même indications pour le tronçon T2 que pour T1, et en E23, F23, T23, les même indications pour l'interaction tronçon T2/T3 que pour Tl/T2, comme décrit plus haut. On considère maintenant un exemple de simulation du comportement mécanique du flexible. La loi d'élasticité est exprimée par l'équation [4], où : F est la force existant entre deux éléments, ot CervVal3.frd. doc dl/1 est l'élongation (relative), et k est une constante d'élasticité. Appliqué à l'élongation entre deux éléments Ti et T2 du flexible, cela se traduit par les équations [5] et [6], où V1 est la vitesse de Ti, V2 la vitesse de T2, m la masse (ici, égale) de Ti et T2, d112/112 est l'élongation (relative) entre Tl et T2. La flexion peut être traitée sur des bases similaires, avec ses propres équations. Il en est de même pour la torsion. En résumé, en plus des agents précités simulant la mer, les agents suivants sont prévus pour le flexible et son interaction avec la mer : - Agents intrinsèques 52 d'interaction mécanique au sein du flexible: ce sont des agents d'interaction reliant deux points successifs sur le flexible. Ils suivent un cycle perception=mesure des position du flexible; décision=calcul des forces à appliquer sur le flexible; action=modification de la vitesse des points de mesure en fonction des forces calculées. Poids : c'est un agent d'interaction, appliquant systématiquement une force vers le bas, sans condition, à tous les points de mesure liés au flexible. Son cycle est : perception=rien; décision=triviale (poids vers le bas); action=modification des vitesse des points de mesure pour prendre en compte le poids. - Agents extrinsèques duaux 70 d'interaction hydrodynamique : ce sont des agents duaux mesurant la vitesse relative de l'eau et du flexible. Cycle : Action-1 : création de points de mesure (énactifs) sur l'eau sur les bords du flexible; Action-2 modification des vitesses des points de mesure du flexible (interactifs) pour prendre en compte les forces hydrodynamiques, Perception : mesure de la vitesse du flexible (grâce aux points de mesure explicites) et de l'eau (grâce aux points de mesure créés à la première étape). Décision: calcul de la vitesse relative, des forces hydrodynamiques, et de la position des prochains points de mesure. - Agent inertie 82 : c'est un agent d'interaction, qui intègre les vitesses 421 des points de mesure du flexible pour calculer les nouvelles positions 420 des points du flexible. La vue la plus simple de l'invention consisterait à prévoir un agent par point de mesure. Mais il sera souvent plus efficace de mettre plusieurs points de mesure par agent. Par exemple, un agent "poids" peut traiter d'un seul coup plusieurs points de mesure ; mieux, un seul agent poids peut traiter d'un seul coup tous les points de mesure du flexible. De même, un seul agent inertie 82 peut traiter d'un seul coup tous les points de mesure du flexible. Dans un exemple particulier, on s'intéresse à l'impact d'une mer constituée d'une houle irrégulière (article IPAS) stressée par le vent sur un tuyau flexible de 100m. Les phénomènes pris en compte pour une telle étude sont la poussée d'Archimède, le poids, les raideurs en tension, flexion et amortissement du tuyau, les interactions hydrauliques telles que décrites par les 23 CervVal3.frd.doc 24 équations de Morisson. Ces phénomènes interagissent entre eux via des médiateurs d'interaction (selon WO 2006/003271). Ainsi le phénomène houle influence le phénomène Archimède en modifiant l'altitude des médiateurs d'interaction mis en place par ce dernier. On peut y ajouter des éléments de structure virtuels tels que : - des bouées virtuelles (simulation de flottation, mesurant l'élévation, ou l'élévation et le courant marin) - des lasers virtuels (qui mesurent l'élévation selon mais avec une technique de simulation de propagation de lumière, ce qui n'a pas les mêmes défauts que la flottation d'une bouée) -des capteurs de force, de déplacement, de vitesse, de courbure, par exemple. Ce bassin d'essais virtuel ce distingue d'une simple résolution numérique par plusieurs points : - La simulation de mer, reprenant le modèle de mer de l'article IPAS, produit une mer irrégulière réaliste. Il ne s'agit pas d'un simple profil de houle, mais d'un ensemble aléatoire de trains d'ondes statistiquement équivalent au modèle demandé. Chaque instant de la simulation est unique. - Il est possible à tout moment à un opérateur d'interagir, en cours d'expérience, avec le bassin pour, ajouter ou retrancher un élément, changer les conditions de simulations, ajouter ou retrancher un point de structure, ajouter ou retrancher une contrainte, ...DTD: En allant plus loin, les éléments de la modélisation peuvent comprendre : - des houles régulières (Airy ou autre), - des houles irrégulières (IPAS ou autre), modélisées par un ensemble d'agents d'énaction (conformément à WO 2006/003271), - des éléments filiformes flottants ou non flottants (tuyau flexibles ou rigides, risers, ...) des grands corps flottants ou non-flottants, attachés ou non attachés, des ouvrages côtiers, - la bathymétrie. - des liquides ou particules (sable, solvant, polluant, plancton), - d'autres éléments tels que des sources de chaleur, d'ondes, de lumière, ... Dans un tel bassin d'essais virtuel, tous les objets structurent eux-mêmes l'environnement, ont leur fonctionnement propre et sont l'objet d'un certain nombre de phénomènes : interactions hydrauliques, création de houle, contraintes de pression, interactions entre phénomènes. (conformément à WO 2005/081141) Ainsi, les phénomènes et leurs influences peuvent être simulés séparément, et ils co-évoluent, chacun à sa fréquence propre. Un tel bassin d'essai virtuel permet de rejouer en arrière une simulation, et notamment d'y ajouter, a posteriori, des éléments nouveaux. Il est ainsi possible de faire revenir, a posteriori, une simulation sur les instants qui précèdent un événement exceptionnel (tel qu'une vague scélérate) pour tenter d'en analyser les éléments précurseurs. Mais l'invention n'est pas limitée à l'exemple d'interaction entre une structure mécanique et la mer. CervVal3.frd.doc 25 Plus généralement, l'invention offre une méthode de simulation de phénomène mécanique dans laquelle chaque interaction mécanique agit séparément sur la vitesse des structures qu'il influence, via un médiateur d'interaction, et dans laquelle chaque élément de structure est doté de son phénomène d'inertie qui intègre cette vitesse pour se repositionner dans l'espace. Un phénomène d'inertie relié à un élément de structure fonctionne à la fréquence du plus rapide parmi les phénomènes agissant sur cette même structure. Cette technique (séparation des phénomènes mécaniques en plusieurs phénomènes agissant sur la vitesse et un phénomène d'inertie) permet d'appliquer aux interactions mécaniques la méthode de simulation basée sur les agents d'interaction de WQ 2005/081141, qui ne leur est en principe pas applicable. Plus généralement encore, l'invention couvre toute application de simulation dans laquelle on utilise des agents duaux pour relier des agents d'interaction et des agents d'énaction, qui coopèrent avec des objets entités, ou des agents d'entité. o'. Annexe 1 mo = 2PwCdDextl vlv + pwCm.Sextë ù Pw(Cm ù 1)Sextx m = mo + pw (Cm ù 1) Sext V == Vo + (PWdD{XtIVV + PwCmSext ) -At f_kdl l k.d112 Vi =V1+ k.d112 V2=V2+ M.112 m.112 (1) (2) (3) (4) (5) (6) d Revendications 1. Dispositif de simulation du monde réel, en particulier pour une interaction fluide-corps, propre à être implanté dans un ordinateur agencé pour supporter un environnement multi-tâches de programmation (23), avec un gestionnaire de simulation (30), capable de travailler en mode chaotique asynchrone par séquences répétitives (31) sur des éléments de simulation distincts (40-70), un tel élément de simulation travaillant avec au moins une donnée d'espace/temps, dite point de structure, avec au moins une donnée de propriété, définissant un état courant du point de structure, ainsi qu'avec la désignation d'au moins une fonction, applicable pour modifier cet état courant, caractérisé en ce que le gestionnaire de simulation (30) comprend une première section de simulation (SS 1), agencée pour simuler un milieu fluide, et une seconde section de simulation (SS2), agencée pour simuler un ou des corps sensiblement solides, en présence du milieu fluide, en ce que les deux sections de simulation sont couplées, et en ce que le gestionnaire cle simulation (30) est agencé de façon à maintenir une périodicité générale d'activation des éléments de simulation qui diffère selon les phénomènes physiques simulés, dans l'une et l'autre des deux sections de simulation. 2. Dispositif selon la revendication 1, caractérisé en ce que la première section de simulation (SS1) sert à simuler la mer (SM), et en ce que la seconde section de simulation (SS2) sert à simuler un ou des corps flottant et/ou plongeant au moins partiellement dans la mer (SF), ce qui permet de réaliser un bassin d'essais virtuel. 3. Dispositif selon la revendication 2, caractérisé en ce que la première section de simulation (SS1) est agencée pour simuler un milieu fluide par des points de structure dynamiques, tandis que la seconde section de simulation (SS2) est agencée pour simuler un ou des corps sensiblement solides, en présence du milieu fluide, par des points de structure permanents. 4. Dispositif selon la revendication 3, caractérisé en ce que le gestionnaire de simulation comprend en outre des éléments de simulation dits duaux (70), capables à la fois de posséder des points de structure permanents et de définir d'eux-mêmes des points de structure dynamiques, et munis de la désignation d'une fonction agencée pour influencer à la fois au moins un point de structure permanent et au moins un point de structure dynamique. ces éléments de simulation duaux servant à coupler les deux sections de simulation (SS1, SS2). 5. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'une au moins des sections de simulation (SSI, SS2) comporte un ou des éléments de simulation dont une fonction travaille sur une propriété définie comme une grandeur dérivée, et en ce qu'il comporte en outre au moins un élément de simulation intégrateur (80A, 80B), capable de calculer une grandeur intégrale de la grandeur dérivée contenue dans un autre élément de simulation, et de stocker cette grandeur intégrale en tant que propriété dans cet autre élément de simulation. 27 oSCervVal3.frd.doc 28 6. Dispositif selon l'une des revendications précédentes, dans lequel l'environnement multitâches de programmation (23) est apte à travailler par objets activables, caractérisé en ce que certains au moins des éléments de simulation sont définis comme des objets activables. 7. Dispositif selon la revendication 6, caractérisé en ce que tous les éléments de simulation sont définis comme des objets activables, et en ce que le gestionnaire de simulation (30) est agencé pour travailler par séquences sur une sélection parmi les objets activables, dont chacun est activé au plus une fois lors de chaque séquence, selon un ordre variant de façon au moins partiellement aléatoire d'une séquence à l'autre. 8. Dispositif selon l'une des revendications 6 et 7, caractérisé en ce que les objets activables comprennent un ou des objets d'interaction (50) contenant chacun la désignation d'au moins un point de structure permanent et d'au moins une fonction applicable à ce point de structure permanent. 9. Dispositif selon l'une des revendications 6 à 8, caractérisé en ce que tous les éléments de simulation sont définis comme des objets activables un ou des objets d'état (40), contenant chacun au moins une donnée d'espace et/ou de temps et/ou au moins une donnée de propriété, définissant chacun un point de structure permanent, et un état courant de celui-ci, 10. Dispositif selon l'une des revendications 6 à 9, caractérisé en ce que les objets activables comprennent des objets dits d'énaction (60) aptes à définir des entités autonomes spatio-temporelles représentatives chacune d'un phénomène physique et capables d'interagir, en cas d'activation, avec des points de structure dynamiques, appartenant à des objets d'état distincts ou incorporés à l'objet d'énaction. 11. Dispositif selon l'une des revendications 6 à 10, caractérisé en ce que les objets activables opèrent selon une suite répétitive d'opérations : action-perception-décision-action-perceptiondécision, et ainsi de suite, en ce qu'une séquence comporte trois opérations consécutives dans cette suite. 12. Dispositif selon la revendication 11, prise en combinaison avec les revendications 8 et 10, caractérisé en ce qu'une séquence commence par la perception pour un objet d'interaction, ou par l'action pour un objet d'énaction. 13. Dispositif selon l'une des revendications précédentes, caractérisé en ce que la première section de simulation (SS 1) comporte des éléments de simulation pour une partie au moins des phénomènes suivants : groupe de vagues, déferlement, interactions groupe/groupe, interactions groupe/déferlement, interactions groupe/vent, interactions groupe/courant, et interactions groupe/profondeur 14. Dispositif selon l'une des revendications précédentes, caractérisé en ce que la seconde section de simulation (SS2) comporte des éléments de simulation pour des caractéristiques mécaniques entre différents segments d'un corps. a C1,% tf)