FR 2936081 A1 20100319 FR 0805020 A 20080912 GENERATION DE COMMANDES POUR UNE PLATE-FORME MOBILE DE SIMULATEUR Domaine technique La présente invention concerne un procédé et un dispositif de génération de commandes de mouvements d'une plate-forme mobile pour un simulateur de véhicule. 1 o Exposé de l'art antérieur Les entraînements des pilotes de véhicules comme des avions, camions, hélicoptères, s'effectuent la plupart clu temps grâce à des simulateurs reproduisant des comportements du véhicule. L'objectif d'un simulateur est notamment de reproduire un environnement virtuel 15 représentant un milieu réel d'évolution du véhicule ainsi que le poste de commande du véhicule. Le simulateur comporte donc généralement un poste de pilotage placé au centre d'un dispositif audiovisuel permettant de reproduire un environnement extérieur. Ce type de simulateur, dit simulateur sans mouvement, ne reproduit pas les mouvements du véhicule. Les 20 simulateurs sans mouvements procurent, au pilote les utilisant, des sensations de lenteur. Ces sensations de lenteur sont liées à une inertie du véhicule simulé qui semble être moins réactif qu'un véhicule réel. La sensation de lenteur est particulièrement préjudiciable lorsqu'il s'agit d'entraîner les pilotes à réagir rapidement face à une situation dangereuse. 25 Par exemple, un suivi d'une trajectoire avec un simulateur sans mouvements nécessite des corrections de faible fréquence, avec une grande amplitude, ce qui est peu réaliste. De plus, des entraînements de longue durée peuvent induire des états nauséeux pour les conducteurs. Afin de pallier les inconvénients précités, la plupart des 30 simulateurs de véhicules utilisent des plates-formes mobiles de simulation pour reproduire des attitudes et des accélérations du véhicule simulé. Les plates-formes mobiles permettent de reproduire de manière plus réaliste des sensations ressenties par un conducteur d'un véhicule en situation réelle. Les performances des conducteurs, ainsi entraînés, s'en trouvent accrues par rapport une utilisation d'un simulateur sans mouvement. Les plates-formes mobiles peuvent avoir jusqu'à six degrés de liberté, dont trois degrés en rotation et trois degrés en translation. Ces degrés de liberté permettent de reproduire des mouvements de tangage, roulis, lacet, cavalement, embardé, pilonnement, selon le véhicule simulé. Une cinématique usuelle de plate-forme mobile est celle de la plate-forme de Stewart, mettant en oeuvre six vérins hydrauliques ou électriques afin de mettre en mouvement une cabine de pilotage d'un véhicule. Ce type de plate-forme avec mouvement ne peut restituer que de manière imparfaite les sensations ressenties par le conducteur. En effet, des contraintes physiques, liées à une élongation maximale des vérins, limite le champ des perceptions possibles pour le conducteur. Par exemple, une valeur typique d'élongation maximale pour des vérins utilisés dans des simulateurs d'aéronefs est de un mètre et demi. Cette élongation maximale ne permet pas de simuler des accélérations de longue durée par exemple. Cependant, le cerveau humain étant particulièrement sensible à la variation de l'accélération, c'est à dire à la dérivée troisième de la position, des effets physiologiques plus satisfaisant peuvent être obtenus avec des longueurs de vérins limitées, en utilisant par exemple des artifices. Certains artifices permettent notamment de restituer des effets de longue durée. Par exemple, un cabrage de cabine, réalisé avec une vitesse angulaire inférieure à un seuil de la perception humaine, donne une impression d'accélération linéaire prolongée par l'effet du poids du corps sur le dossier du siège du pilote. Les plates-formes mobiles sont commandées par des algorithmes de contrôle prenant en compte les limitations physiques de la plate-forme. Les algorithmes de contrôle de plate-forme de simulation permettent de générer des commandes à appliquer par la plate-forme afin de réaliser un mouvement de la cabine de pilotage suivant des instructions provenant d'un logiciel de simulation. Les algorithmes de contrôle ont peu évolué pendant les trente dernières années, notamment, l'algorithme utilisé pour produire une commande pour la plate-forme comporte généralement les étapes suivantes : • une première étape au cours de laquelle des accélérations provenant d'un véhicule simulé sont divisées par deux, puis utilisées comme entrée pour le calcul de la commande ; • les accélérations peuvent ensuite être transformées en facteurs de charge, au cours d'une deuxième étape, ou encore peuvent passer par un filtre dont les coefficients sont optimisés empiriquement puis multipliés par un gain. Le résultat de ces opérations est une accélération fournie à la plate-forme mobile sous la forme d'une commande. La commande se comporte comme un filtre dont les coefficients sont déterminés de manière empirique. Outre de restituer à un facteur d'échelle près les accélérations du véhicule réel au niveau de la tête du pilote, l'objectif de la commande est aussi de ramener la plate-forme dans une position neutre. Le calcul des facteurs de charge et le filtrage servent à optimiser la sensation produite par les mouvements de la plate-forme. Le gain permet de réduire l'amplitude des mouvements de la plate-forme de façon à éviter de conduire les vérins dans des butées mécaniques. Conduire les vérins dans les butées a notamment pour conséquence une usure prématurée des vérins, qui sont particulièrement coûteux à remplacer. Les algorithmes existants permettent de borner les valeurs des commandes à prendre en compte par la plate-forme afin de réduire l'amplitude du mouvement de la plate-forme. Les commandes du mouvement de la plate-forme conduisent à restituer de manière insatisfaisante les sensations. De plus, pour garantir que la plate-forme ne butera pas, des marges de sécurité sont prises en compte dans le calcul de la commande. Les marges de sécurité restreignent le domaine d'utilisation en fonction des possibilités mécaniques du système notamment en terme de longueur de vérins utilisable et donc en terme de ressenti de l'accélération par le pilote. Une amélioration possible peut consister à définir des bornes d'utilisation de la plate-forme en fonction du domaine d'utilisation du véhicule réel comme le domaine de vol pour un aéronef. Globalement, les performances induites par l'utilisation de cette amélioration ne sont pas satisfaisantes en matière de restitution de sensations ainsi qu'en terme de respect des contraintes mécaniques de la plate-forme.35 Résumé de l'invention (reprise des revendications) Un but de l'invention est notamment de pallier les inconvénients précités. A cet effet, l'invention a pour objet un procédé de calcul de commandes de mouvements d'une plate forme mobile d'un simulateur de véhicule. Le procédé utilise notamment en entrée des accélérations calculées par un logiciel de simulation de comportement du véhicule. Le procédé comporte notamment les étapes suivantes : • un premier calcul de commandes d'accélérations à appliquer par la plate-forme, filtrant les accélérations calculées à l'aide d'un filtre 10 construit d'après un modèle mathématique de perception humaine d'un mouvement ; • un deuxième calcul de positions successives de la plate-forme en fonction des commandes d'accélération filtrées ; • une mise à l'échelle des positions de la plate-forme en fonction de 15 limitations physiques de la plate-forme ; • un troisième calcul des commandes d'accélérations à appliquer par la plate-forme, en fonction des positions successives de la plate-forme mises à l'échelle. Les positions de la plate-forme peuvent être définies par les 20 positions du centre géométrique de la plate-forme et par les longueurs des vérins actionnant la plate-forme. La longueur des vérins peut être mise à l'échelle par une première fonction de mise à l'échelle scaling(l) , par exemple telle que : scaling : R+ -* [lmin Imax ] lmin dl S lmin 25 OÙ Avec : scaling (1) =l ,dlE[lmin,Inax] ùImax , dl ùImax dscaling dl )1=r.n 1=1 _: 0 • 1 représente une longueur d'un vérin; • 1, représente une longueur minimale physiquement possible à mettre en oeuvre par la plate-forme ; ^ Imax représente une longueur maximale physiquement possible à 30 mettre en oeuvre par la plate-forme. La mise à l'échelle des positions peut prendre en compte des limitations de vitesse d'allongement des vérins de la plate-forme. La prise en compte des limitations de vitesse d'allongement des 5 vérins peut utiliser une deuxième fonction de mise à l'échelle scalingY (v) , par exemple telle que : scalingY : R --3 [Vmin, vmax ] Vmin , Vv Ç Vmin l = v , Vv e [Vmin, vmax ] avec : scalingY (v) = lmax dscaling _ 0 dl r=r,,,,,, 1=rteä où • 1 représente une longueur d'un vérin; • 1.n représente une longueur minimale physiquement possible à 20 mettre en oeuvre par la plate-forme ; • 1. représente une longueur maximale physiquement possible à mettre en oeuvre par la plate-forme. La mise à l'échelle des positions peut prendre en compte des limitations de vitesse d'allongement des vérins de la plate-forme. 25 La prise en compte des limitations de vitesse d'allongement des vérins peut utiliser une deuxième fonction de mise à l'échelle scaling,, (v) par exemple telle que : scalingv : R -* [vmin , Vmax ] Vmin, Vv 5 Vmin =v ,VVE[Vmin''Vmax] avec : scalingv (V) Vmax, Vv ~ Vmax C dscalingv dv v=vmm vùVmax où • v représente une vitesse d'allongement d'un vérin ; • Vmin représente une vitesse minimale d'allongement physiquement atteignable par les vérins de la plate-forme ; • Vmax représente une vitesse maximale d'allongement physiquement possible par les vérins de la plate-forme. Autres avantages de l'invention (résumé des avantages) L'invention a notamment pour principaux avantages d'être simple et peu coûteuse à mettre en oeuvre, d'être adaptable à de multiples plate-formes mobiles de simulation. Brève description des figures D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit, donnée à titre illustratif et non limitatif, et faite en regard des dessins annexés qui représentent : • la figure 1 : un exemple de synoptique de différentes étapes de commande d'une plate-forme de simulation selon l'art antérieur ; • la figure 2 : un synoptique de différentes étapes possibles de calcul d'une commande pour une plate-forme de simulation selon l'invention ; • la figure 3 : un schéma de différents blocs de calcul de la commande de la plate-forme de simulation selon l'invention ; • la figure 4 : un synoptique de différentes étapes possibles d'obtention d'un filtre pour le calcul d'une commande d'accélération ; • la figure 5a : un synoptique de différentes étapes de calcul possibles d'une cinématique directe des vérins de la plate-forme de simulation mobile ; • la figure 5b : une représentation schématique d'une palette mobile d'une plate-forme de Stewart ; • la figure 5c : une représentation schématique d'une palette fixe d'une plate-forme de Stewart ; • la figure 6a : une première fonction de mise à l'échelle de la commande d'accélération ; • la figure 6b : une deuxième fonction de mise à l'échelle de la commande d'accélération ; • la figure 7: un synoptique de différentes étapes de calcul possibles pour définir des paramètres de cinématique inverse afin de produire la commande d'accélération. Description de l'invention (au moyen d'un exemple de réalisation) La figure 1 représente un synoptique de différentes étapes de commande d'une plate-forme mobile de simulation d'un véhicule, selon l'art 20 antérieur. Un entraînement à la conduite d'un véhicule utilise notamment un logiciel de simulation 1 permettant de reproduire virtuellement les mouvements du véhicule ainsi que l'évolution de l'environnement du véhicule au cours des mouvements. Le logiciel de simulation 1 permet par exemple 25 de prendre en compte des commandes d'un pilote du véhicule afin de faire évoluer le véhicule simulé en conséquence, tout en reproduisant le comportement réel du véhicule en pareil cas. Le logiciel de simulation 1 calcule une accélération logicielle 2 caractéristique du mouvement réel du véhicule. Ensuite un premier module 3 calcule une commande d'accélération 30 à appliquer à la plate-forme en prenant en compte de contraintes mécaniques 4 de la plate-forme. La commande d'accélération ainsi calculée se présente sous la forme d'une accélération calculée 5, fournie à la plate-forme de simulation 6, qui l'applique afin d'exécuter la commande d'accélération 7. La commande d'accélération 7 peut être calculée en divisant l'accélération d'entrée par un facteur afin de garantir le respect des contraintes physiques de la plate-forme de simulation. Ce type de calcul de commande d'accélération selon l'art antérieur ne permet pas d'assurer une représentation réaliste des accélérations ressenties par un pilote d'un véhicule réel. En effet, les accélérations pouvant être mises en oeuvre sont limitées et ne permettent donc pas de reproduire une accélération de longue durée, par exemple. Par ailleurs, le système de plate-forme n'est pas utilisé de manière optimale. En effet, d'importantes zones d'incursion des vérins ne sont jamais sollicitées et ceci afin de préserver l'usure des vérins en évitant de les mener en butée de course. D'autre part, le facteur de division de l'accélération ne prend pas en compte des accélérations très fortes et subites qui peuvent: alors endommager le système de plate-forme. La figure 2 représente un exemple de synoptique de plusieurs étapes possibles 21, 22, 23, 24, 25 pour un calcul d'une commande d'accélération d'un simulateur de véhicule. Une succession des étapes de calcul d'une commande d'accélération forme un procédé de génération de commandes pour une plate-forme mobile de simulateur 20 selon l'invention. Un logiciel de simulation 1 fournit une ou plusieurs accélérations Uak du véhicule simulé, aussi nommées accélérations logicielles. Au cours d'une première étape 21 de seuillage de l'accélération logicielle Uak, le module de l'accélération Uak du véhicule simulé est comparé au module d'une accélération seuil USeU1i. L'accélération seuil Llseuil correspond à une valeur d'accélération en-deça de laquelle l'accélération du véhicule simulé n'est pas perçue par un être humain. Lorsque le module de l'accélération Uak est strictement supérieur au module de l'accélération seuil Use,,;,, l'accélération utilisée en entrée du calcul d'une commande d'accélération est la différence entre l'accélération du véhicule simulé Uak et l'accélération seuil USeU1i. Lorsque le module de l'accélération Uak est inférieur ou égal au module de l'accélération seuil USeuji, alors l'accélération utilisée en entrée du calcul d'une commande d'accélération est nulle. Dans ce cas, aucune commande n'est calculée. Une deuxième étape 22 du procédé 20 selon l'invention est une étape de calcul d'une commande d'accélération 22, dite commande optimale, en fonction de l'accélération d'entrée, définie au cours de la première étape 21. Le calcul de la commande optimale 22 utilise un modèle mathématique, sous la forme d'une fonction de transfert. Le modèle mathématique représente une perception humaine des attitudes et accélérations du véhicule réel, par l'intermédiaire de différents organes de l'oreille interne. Un tel modèle mathématique de sensations peut utiliser le modèle développé par R. Telban et F. Cardullo pour appliquer une méthode dite de la commande optimale notamment décrite dans la publication suivante : � Motion Cueing Algorithms : A human centered approach, State University of New York at Binghampton, NASA Langley Research Center Hampton, Virginia �. D'autres modèles mathématiques de perception peuvent également être utilisés sans qu'il soit nécessaire de modifier le procédé 20 selon l'invention. La méthode de calcul de la commande optimale utilise un filtre appliqué à l'accélération définie au cours de la première étape 21. Le filtre permet d'obtenir une accélération à imposer à la plate-forme de simulation afin de restituer des sensations proches des accélérations ressenties dans un cas réel. Une troisième étape 23 du procédé 20 selon l'invention est une étape de calcul de cinématique directe 23. La cinématique directe permet de passer d'une accélération de commande calculée, la commande optimale calculée au cours de la deuxième étape 22, aux positions de vérins qui animent la plate-forme mobile. Le calcul de cinématique permet de déterminer les données cinématiques suivantes : • positions du centroïde de la plate-forme mobile ; • longueurs des vérins ; • vitesses d'allongement des vérins, telles qu'elles seraient si l'on appliquait directement la commande optimale d'accélération issue de 30 la deuxième étape 22. De manière générale, dans un système de forces parallèles ayant des points d'application fixes, le point par lequel leur résultante passe constamment, quelle que soit la direction de ces forces, est nommé centroïde du système. Dans la présente invention, le système est une plate-forme mobile, le 35 centroïde est alors le centre de gravité de la plate-forme mobile. Une quatrième étape 24 du procédé 20 selon l'invention est une étape de mise à l'échelle 24 des longueurs calculées au cours de l'étape de cinématique directe 23. L'étape de mise à l'échelle 24 permet d'assurer un respect des contraintes physiques de la plate-forme mobile. Les longueurs des vérins doivent, en effet, rester comprises entre une longueur minimale et une longueur maximale, réalisables par la plate-forme mobile. La mise à l'échelle des longueurs vérins peut être réalisée en utilisant par exemple une fonction de mise à l'échelle : scaling(l) telle que : scaling : R+ ù> [lmin ,Imax ] ' lmin dl • 1 représente une longueur d'un vérin calculée au cours de l'étape de cinématique directe 23 ; • 1n,;n représente une longueur minimale physiquement possible à mettre en oeuvre par la plate-forme ; • Ç représente une longueur maximale physiquement possible à mettre en oeuvre par la plate-forme ; • la condition dscaling` = 0 correspond à une condition applicable dl , '=4m,n =l sur les dérivées de la fonction scaling(l) permettant d'éviter des discontinuité dans les vitesses de déplacement de la plate-forme. En effet, des discontinuités dans les vitesses de déplacement de la plate-forme mobile conduisent à des impulsions au niveau des accélérations qui nuisent au ressenti des sensations par le pilote du véhicule simulé. Eviter des discontinuités de vitesse permet donc d'améliorer le ressenti du mouvement par le pilote du véhicule simulé. Le respect des contraintes physiques de la plate-forme mobile nécessite également de contraindre les vitesses de déplacement de la plate-forme. Les vitesses de déplacement de la plate-forme correspondent aux vitesses d'application des longueurs des vérins calculées au cours de l'étape Avec : scaling(l) =0 (1000) de cinématique directe 23. Les vitesses de déplacement de la plate-forme peuvent être contraintes en utilisant une fonction cle mise à l'échelle des vitesses prenant en paramètre la vitesse de déplacement de la plate-forme mobile : scalingv : R - [Vmin, Vmax ] i Vmin, dv Vmin =v ,VvE[vmin,v.x] vmax dvvmax " dscalingv =0 dv v=v_ avec : scalingv (v) = OÙ (1002) • v représente une vitesse d'allongement d'un vérin calculée au cours de l'étape de cinématique directe 23 ; • Vm;n représente une vitesse minimale d'allongement physiquement 10 atteignable pour les vérins de la plate-forme mobile ; • Vmax représente une vitesse maximale d'allongement physiquement possible pour les vérins de la plate-forme mobile. • la condition dscalingv 1 = 0 correspond à une condition applicable dv =v~ sur les dérivées de la fonction scalingv (v) permettant d'éviter des 15 discontinuités des accélérations dans le déplacement de la plate-forme mobile, permettant également d'améliorer le ressenti du mouvement. Les longueurs et vitesses d'allongement mises à l'échelle sont alors compatibles avec les limites mécaniques de la plate-forme mobile. 20 L'étape de mise à l'échelle 24 permet donc avantageusement d'introduire dans le procédé selon l'invention de calcul de la commande optimale une simulation de la cinématique de la plate-forme afin d'éviter des situations dans lesquelles les vérins arriveraient en bout de course. Ceci permet avantageusement de préserver la durée de vie des vérins et donc du 25 système de plate-forme mobile. Eviter des situations où les vérins se trouvent en bout de course permet, avantageusement, d'éviter des sensations parasites irréalistes provoquées par des chocs des vérins sur des élastomères amortissant les fins de course des vérins. Une cinquième étape 25 est une étape de calcul de cinématique inverse 25 qui permet, en utilisant un algorithme de Newton de manière itérative, de repasser des longueurs de vérins, calculées au cours de l'étape de mise à l'échelle 24, à la position du centroïde de la plate-forme mobile, puis aux accélérations de commande Usk nécessaires au déplacement de la plate-forme mobile. Les accélérations de commande Usk permettent alors un déplacement de la plate-forme avec des longueurs de vérins corrigées en fonction des performances de la plate-forme. La figure 3 représente un exemple d'une architecture fonctionnelle définissant différents blocs 30, 31 pour la mise en oeuvre du procédé de génération de commandes d'accélération 20 selon l'invention. Les différents blocs fonctionnels 30, 31 peuvent être des parties d'un programme s'exécutant sur un ou plusieurs processeurs d'un ordinateur. Un premier bloc fonctionnel 30 peut être un bloc qui assure le calcul de la commande optimale en fonction des accélérations d'un véhicule 35 telles que les accélérations logicielles Uak. Le calcul de la commande optimale 30 comporte notamment les première et deuxième étapes 21, 22 du procédé selon l'invention. Un deuxième bloc fonctionnel 31 comporte différents modules de traitements 32, 33, 34, assurant que la commande optimale calculée par le premier bloc fonctionnel 30 respecte les contraintes physiques de la plate-forme. Le deuxième bloc fonctionnel 31 comporte notamment : • un premier module de calcul de cinématique directe 32, mettant en 25 oeuvre l'étape de calcul de cinématique directe 23 du procédé 20 selon l'invention • un deuxième module de mise à l'échelle 33, réalisant l'étape de mise à l'échelle 24 des longueurs calculées au cours de l'étape de calcul de cinématique directe 23 du procédé 20 selon l'invention ; 30 • un troisième module de calcule de cinématique inverse 34, mettant en oeuvre l'étape de calcul de la cinématique inverse 25 du procédé 20 selon l'invention. Le deuxième bloc fonctionnel 31 fournit des accélérations de commande 36 à la plate-forme mobile. Les modules de cinématique directe 32 et de cinématique inverse 34 dépendent uniquement de la géométrie de la plate-forme mobile. Les modules de cinématique directe 32 et de cinématique inverse 34 sont donc adaptables à n'importe quel type de simulateur avec mouvement sans qu'il soit nécessaire de modifier l'architecture fonctionnelle du programme mettant en oeuvre le procédé 20 selon l'invention. La figure 4 représente différentes étapes possibles 40 pour obtenir un filtre applicable pour le calcul de la commande optimal 22 représenté sur 10 la figure 2. Le filtre de calcul de la commande optimale peut notamment être déterminé de la manière suivante : • définition 41 d'une force spécifique réelle appliquée au pilote du véhicule simulé en fonction de l'accélération UE,k fournie par le logiciel 15 de simulation 1 du véhicule ; • utilisation 42 de modèles d'un système vestibulaire humain pour définir les rapports d'une part entre la force spécifique ressentie par le pilote et la force spécifique réelle appliquée au pilote, et d'autre part entre la vitesse angulaire ressentie par le pilote et la vitesse angulaire 20 réelle appliquée au pilote ; • modélisation 43 d'un système global de ressenti de l'accélération par le pilote du véhicule en fonction du modèle de système vestibulaire ; • construction 44 d'un système d'équations définissant : o une erreur de sensation du pilote du simulateur par rapport au 25 ressenti d'un pilote d'un véhicule réel ; o une erreur entre l'état d'un véhicule réel et l'état du véhicule simulé ; • définition 45 d'un critère de minimisation du système d'équations définissant les erreurs ; 30 • résolution 46 du système d'équations définissant les erreurs, en fonction du critère de minimisation défini ; • obtention 47 d'un filtre à appliquer à l'accélération Uak fournie par le logiciel de simulation 1 pour obtenir la commande optimale sous la forme d'une accélération à appliquer par la plate-forme mobile. L'application du filtre permet de minimiser les erreurs sur le ressenti de l'accélération par le pilote du véhicule simulé. L'être humain de manière générale est sensible, lorsqu'il est 5 soumis à une accélération, à une force dite force spécifique fPS . La force spécifique fPS peut être définie pour le pilote du véhicule simulé en prenant la tête du pilote comme point d'application de la force spécifique fPS . La force spécifique peut être définie par la formule suivante : fPS=âPS ùg (1003) 10 où âPS désigne l'accélération au niveau de la tête du pilote, et g représente la force gravitationnelle. L'accélération âPS peut s'exprimer de la manière suivante : âPS =âs +R+2.wsnR+cos nR+cos n(ws AR) (1004) en prenant : 15 • èis : accélération appliquée à la plate-forme mobile du simulateur ; • ws : la vitesse angulaire de la plate-forme ; • R : le vecteur entre le centre de gravité de la plate-forme et le centre de gravité du pilote. Dans l'expression (1004), on peut considérer que : 20 • ws A( cos AR) est négligeable ; • wsnR et R sont nuls car la distance entre la tête du pilote et le centre de gravité du simulateur est considérée comme fixe. x En posant ws = 6 et R = R,, , on obtient : W) \Rz RZ •9ùRy •yi Rx•yiùRZ• ô (1005) ~Ry.0ùRx•, 25 Et donc : (ax+RZ•9ùRy yin QPs = ay +Rx •I,iiùRZ (1006) gaz +Ry . ùRx •B~ ù cos AR= g peut ensuite être exprimée dans le repère du simulateur en utilisant une matrice de passage Tinob_fix entre le repère relatif terrestre et le repère mobile du simulateur : cos O . cosy/ cos O . sin y/ ù sin O T,nob_ J = sin Ç • sin 0 . cos yr ù cos ço . sin yr sin ço . sin 9 • sin yr + cos rp • cos yr sin ço • cos O cosrp•sinO•cosy' +singp•sinyr cosçp•sin9•sinyr--sinçp•cosyr cosgp•cos9,, (1007) On obtient alors : /0\ / ùg•sin9 [Tiobùfx] • 0 g • sin 0• cos 9 (1008) g•cosçp•cos9~ La force spécifique peut donc s'exprimer ainsi : aX+RZ •0ûRY yi+g•sin8 fPS=âps û g= aY+RX•giûRZ.i ûg•singp•cos9 (1009) ~aZ+RY •CpûRX •B-g•cosço.cos9) Parmi les systèmes à disposition d'un être humain pour assurer son équilibre et sa mobilité se trouve le système vestibulaire. Le système vestibulaire est un des systèmes sensoriels principaux pour la perception d'un mouvement et d'une orientation par rapport à la verticale. Des récepteurs sensoriels du système vestibulaire sont situés dans l'oreille interne. Le système vestibulaire permet notamment d'évaluer une vitesse de déplacement à partir d'une accélération mesurée au niveau de l'oreille interne d'un être humain. En effet, l'oreille interne se comporte comme un instrument de mesures : • d'accélérations angulaires, par l'intermédiaire de canaux semi-circulaires ; • d'accélérations linéaires, par l'intermédiaire d'otolithes. Une modélisation du système vestibulaire permet de représenter des sensations ressenties par un pilote auquel on applique une accélération, en fonction de l'accélération appliquée. Par exemple, on peut utiliser des modèles décrits par R. Telban, W. Wu, F. Cardullo dans � Motion Cueing Algorithm Development : Initial investigation and redesign of the algorithms. State university of New York at Binghampton, NASAICR-2000-209863, Mars 2005". Un modèle de canaux semi-circulaires peut notamment être décrit par la relation suivante : L a Z Z S o-Hssc(s)-(1+zas)(1+rss)(1+ZLs) (1010) et un modèle d'otolithes peut être décrit par la relation LùH00(S)ù K(1+Zas) (1011) f (1+ZLs)(1+ZSs) avec : • w : une vitesse angulaire ressentie ; • co : une vitesse angulaire � réelle � ; • f : une force spécifique ressentie ; 10 • f : force spécifique � réelle � ; • Ts , ZL , ra , K : des constantes de temps dépendant d'un degré de liberté mis en jeu et correspondant aux temps de réaction du système vestibulaire. 15 A partir des modèles du système vestibulaire (1010), (1011), on peut construire un modèle global de ressenti de l'accélération par un pilote du véhicule simulé mis en mouvement par la plate-forme mobile. Plusieurs modèles de ressenti peuvent être construits, le modèle décrit ci-dessous est donné à titre d'exemple. 20 Dans un premier temps, on peut considérer un modèle global de ressenti en deux dimensions, une dimension étant selon un premier axe horizontal x et une autre dimension étant selon un deuxième axe horizontal y par exemple. L'accélération Uak calculée par le logiciel de simulation peut s'exprimer ainsi : ~u ( 0 � l / Uak=u= ' = y = (1012) \u2/ \ax \ax/ 25 En deux dimensions, le modèle des otolithes (1011) devient par exemple : P Ao f=H0TO(P)=Go(P+Bo)(P+B,) (1013) avec fx = ax +RZ.0+g sin(e) = f (1014), où Go, 4, Bo, B1 sont des constantes. 30 En considérant que : sin(0)=O l'expression (1013) devient :5 f =Go• p+4 "(Rz+g. 1 z)•u1+uz (1014) (p+Bo)(p+Bl) p L'expression (1014) peut ensuite être mise sous la forme suivante : _ Go Rz p 3 + Go Ao Rz p z + Go g p + Go ~5~_g p4+(Bo+B,)•p3+Bo•B,•pz Go p+Go •Ao u fz= z Bo+B,) p+Bo B, z Afin d'obtenir une représentation d'état dei; ( x= posons : •u, (1015) A001 = A B 0 0 C 0 0 0 0 D 0 0 BOT01 F 0 0 0 0 E 0 0 _ Coro 1 = [1 1 1 1]; Doro_1 = P] et cherchons A, B, C, D, E, F tels que : x=AoTO 1 •x+Born ..0 (1017) f =COTG 1 •x+DOTO 1 •u (1018) L'expression (1018) devient : f = x, +x2 +x3 +x4 (1019) et l'expression (1017) devient : p•x, =A x,+B xz+F•u, p. x2 =C•x, p•x3 =D•x2 p•x4 =E•x3 La résolution du système (118) donne : = z F.p •u, (1021) p ùA. p+B•C (1020) .0016) 19 x2= 2 CF •u, (1022) p ùA•p+B•C x3= 2DCF •u, (1023) p•(p ùA•p+B•C) x4 _ EDCF •u (1024) ù pz•(p2-A•p+B•C) Ensuite, l'expression (1019) donne : Go•Rz•p3+Go•4•Rz•p2+G0•g• p+Go•Ao•g ù •u p4 +(Bo+B,)•p3+Bo•B,•p2 (1025') F (1025')= D= g Ao •Rz E=4 F = Go • Rz D'où : Bl 0 0 ùB° ù(Bo +B,) 4 4 0 0 0 AOTO 1 0 g 0 0 0 Ao • Rz 0 4 0 > (1026) ùGo Rz 0 BOTO 1 0 0 COTO_1 = [1 1 1]; DoTo 1 = [0] Pour obtenir une représentation d'état de f2 , posons : f p3+C•F•p2+D•C•F•p+E•D•C•F •u pa+A•p3+B•C•p2 i A=ù(Bo+B,) Bo • B1 B= ù Ao C=4 (1025) x= ;x= ;u=u2; \x2/ x2) A B _ El Aoroz = C D ; Boro2 = ~F ' COTO2 = [0 1]; D'or02 = Pl et cherchons A, B, C, D, E, F tels que : Aoro 2 • x + BoTO 2 • u (1028) LOTO 2 • x + DOTO 2 .0 (1029.) L'expression (129) donne alors : f2 = x2 (1030) et l'expression (1028) 5 donne : p•x,=A•xl+B•x2+E•u2 (1031) p•x2 =C•x1 +D. x2 +F .u2 En résolvant le système d'équations (1031), on obtient : _ Go•p+Go.Ao F=Go L p2+(Bo+B,)•p+Bo•Bl u2 C•EùA•F=Go•Ao F• p+C•EùA•F A+D=ù(Bo+B,) D•AùC•B=Bo•B1 A00= 20 En fixant arbitrairement deux paramètres, on obtient : A=1(imposé) 1 ù(Bo+B1--1)ùBo•B, AOTO _ 2 B =ù(Bo +B1 +1)ùBo B, 1 ù(Bo +B1 +1) 10 C=1(imposé) a B ù Go.(Ao+1) OTO_2 (1033) D =ù(Bo +B1 +1) Go E=Go •(Ao+1) COTO2 =[0 1] F = Go Dorm2 = [0] Enfin, la représentation d'état de f se déduit de l'expression f = f +f2 . Les matrices relatives à f sont : (1032) AOTO 10 A002 B0TO _ 1 0 BOTO = (1034), 0 Boro 2 COTO [COT0_1 COT0_2 ] DOTO = [DOT0_, DOTO2 ] avec : ù(Bo +B,) ù BOB' 0 0 0 0 4 0 0 0 0 0 0 g 0 0 0 0 Aoro = 4.Rz 0 0 4 0 0 0 0 0 0 0 1ù(Bo+B1+1)ùB0.B, 0 0 0 0 1 ù(Bo + B, +1) (1035) RZ • Go 0 0 0 0 0 Boro = 0 0 0 Go.(4+1) 0 Go Coro =[1 1 1 1 0 1]; Dom = [0 0] L'ensemble de matrices (1035) est une des représentations d'état possibles pour le modèle des canaux semi-circulaires. D'autres représentations peuvent être utilisées notamment en modifiant les valeurs des paramètres fixés de manière arbitraire. En deux dimensions, le modèle des canaux semi-circulaires (1010) devient par exemple : 2 w = P .rL.rA w (1036) (1+rL.p)(1+rs.p)(1+rA.p) Sachant que u = ' = y = (1012) et que wy = p • w (1037) alors \uz/ ~aX / \aX) ~o l'expression (1036) devient : w= p.TL.rA u, (1038) (1+TL.p)(1+rs.p)(1+rA.p) On cherche ensuite à exprimer l'expression (1038) de la manière suivante : x= x2 ;x= x2 ;u= \u2/ \x3 / x3 / Ascc = D 0 0 ; Bscc = 0 E 0 0 0 0 0 22 Cscc= [0 1 0]; Dscc = [0 0] A B C F 0 =Ascc'x+Bscc. (1039) ,LO=Csccx+Dscc• En développant l'expression (1038), on obtient l'expression suivante : p TL TA a)" = u (1040) p3•TL•VA•Ts+pz•(TL TA+TL'TS+TA'Ts)+p•(TA+TL+TS)+1 Ensuite, on pose : _ i'\ ( _ u et on cherche A, B, C, D, E, F tels que : x = Asccx+Bsccu (142) = Cscc ' x + Dscc • u (143) L'équation (1043) donne : w = x2 (1044) et l'équation (1042) donne : p•x, = A•x, +B•x2 +C.x3 +F•u, p•x2 =D•x, (1044) p. x3 = E x2 ~o En résolvant le système (1044), on obtient : 05' = p TL TA p3'TL'TA'Ts+p2'(TL •TA+TL •TS+TA'TS)+p•(TA+TL+TS)+l _ D•F p p3 ùA. p2 ùD•B• pùD•C•E u2 F C p u z l 3 A p2 B P + + •p+l D•C•E D•C•E C•E (1045) F =TL'TA C•E 1 = puis : (1045) D•C•E T` TA TS (1046) A A, B, C, D, E, F pour résoudre le système (1046), on obtient alors, par exemple : A--TL TA+TL.TS+TANS TL *TA'TS B ù(TA +TL +Ts ) = TL TA C=û (1047) TL TA puis: - TL TA+TL•TS+TA'Ts (TA+TL+Ts) 1 TL ' TA Ts TL ' TA TL • TA 1 0 0 Ts 0 1 o (1048) 23 Ts = TA + TL + Ts C'E On fixe ensuite arbitrairement deux des variables Bcss = 1 0 0 0 0 0 Ccss = [0 1 0] Dcss = [0] L'ensemble de matrice (1048) est une des représentations d'état possibles pour le modèle des canaux semi-circulaires. D'autres représentations peuvent être obtenues en modifiant les valeurs des paramètres attribuées de manière arbitraire. En regroupant les représentations d'étai: des modèles de canaux semi-circulaires et otolithes, on obtient par exemple : A ù_ / Ascc 0 \ = Bscc \ . _= r Cscc 0 \ D _ D ( scc \ 1049) 0 A v B Cä` 0 C D OTO / B \ OTO / on)) \ OTO J x=Av•x+B,. ÿ=Cv•x+Dv'u Une fois la représentation du système global déterminée, la commande optimale est déterminée en choisissant et en minimisant un critère contraignant : • une erreur e de sensation du pilote du véhicule simulé par rapport aux sensations d'un pilote de véhicule réel ; • une erreur xe sur le déplacement de la plate-forme mobile. Dans un premier temps, on construit donc deux erreurs à minimiser : xe ùxA ù xs (1051) e = YA ùYs La représentation du système global de ressenti (1050) devient alors : = Av .( xA ùxs)+Bv (uA ùus) e= C,.(xAùxs)+Dv(YAùus) xe=Av xe+Bv'(uAùus) puis : û (1053) e=Cv •xe+Dv •(uAûus) On introduit ensuite un groupe additionnel de termes qui sont la vitesse et la position du centroïde de la plate-forme mobile : xd = t (zs xs) (1054) On obtient alors la représentation d'état suivante : (0 0\ (0 1\ \1 0 ) Ad Yd = xd Une représentation du système global rassemblant le ressenti des accélérations linéaires et angulaires par le pilote peut se présenter ainsi : i ressenti avec ÿ = (1050) \ / ressenti xe =._Aùxs =Av'xA+Bv uAù(Avxs+B1..us) e=CV'xA+Dv'uAùCV'xs ùDV'us (1052) \0 0) (1055) Bd xd + us En posant x = xe et y = e et en utilisant le systèrne (1055), on obtient xd Yd e o \ x= \0 Ad) Les systèmes d'équations (1056), (1057) définissent donc une représentation d'état du système à résoudre pour minimiser les erreurs (1051). On peut alors définir un critère de minimisation pouvant, par exemple, s'exprimer de la façon suivante : J=E{J (`e Qa•e+`xa Rd x,+'us•R.us)dt} (1058) où Q, et Rd sont des matrices semi-définies positives et R une matrice définie positive. Le comportement du véhicule réel étant inconnu et sachant que pour appliquer la méthode de la commande d'accélération optimale il est nécessaire de connaître une trajectoire du système dans l'espace d'état, on suppose que la consigne de déplacement du véhicule réel est constante entre deux instants d'échantillonnage de la trajectoire du système. Le critère de minimisation (1058) peut alors s'écrire sous la forme suivante : J û 2 l fi('ùxd • Rd • xd + `us • R•us) dt } + { Çte.Qd e dt } (1059) L'expression (1059) du critère de minimisation `comporte : J • un premier terme (`xd • Rd xd + `us • R•us) correspondant à une minimisation de l'erreur sur le déplacement ; • un deuxième terme e • Qd • e correspondant à une minimisation de l'erreur de sensation. Le critère défini par l'expression (1059) représente donc un compromis entre la minimisation des deux erreurs décrites par l'expression (1051). En regroupant les matrices Qa et Ra en une seule matrice Q : C, 0 Y 0 I x =A•x+B•uS+D•uA (1057) y=C•x (A, o\ ~B\ (ùB\ ,D= \ 0 Ad 0 B d i \ / \ d / et : avec A= ,B= ,C= "B \ ùB\ x+ 0 ,- ua+ u s (1056) Q = /Qd 0 \ (1060) \0 Rd, l'expression du critère de minimisation (1059) devient : J=2{ ô(`y•Q•y+'u•R•us)dt} (1061) avec la matrice Q définie non négative et la matrice 1! définie positive. Si l'on choisit t, assez grand, ce qui correspond à un horizon infini, alors l'expression (1061) du critère de minimisation devlient : Jû2{ f (`y•Qy+'us•R•u) dt} (1062) Pour résoudre le système, on utilise la méthode de la commande optimale qui revient à maximiser un Hamiltonien du système défini par : H=û2['y•Q•y+fus •R•us]+'2(A•x+D•uA+B•us) (1063) Les équations canoniques de Hamilton sont les suivantes : dx - H dt 2 (1064), avec x,-o =0 (1065) La deuxième équation canonique de Hamilton dt = ûHX donne : À ='C•Q•C•xû'A.2 (1066) et la maximisation du Hamiltonien donne : us =R-' .'B.2 (1067). L'expression (1067) représente la commande optimale. On peut alors définir un système liant x et 2. de la manière suivante : r z=A•x+B•R-' •'B•2+D•uA (1068) À='C•Q•C•x-'A. . On se trouve dans un cas de problème de poursuite car e = yA û ys est quelconque. On peut donc poser : 2(t) =K(t).x(t)+k(t) (1069). En considérant que e(t) est constante car uA est constante, on peut alors considérer que lorsque T est très grand, K et k sont des constantes , d'où : 2=K.x+k (1070) Le système (1068) devient alors : z= A•x+B•R-' •'B •(K •x+k)+D•u4 (1071) K•.z='C•Q•C•x-'A•(K•x+k) En remplaçant .x par sa valeur, on obtient alors :25 (K•A+'A•K+K•B.R-' •'B•Kû'C•Q•C)•x=û(K•B.R-' •'B•k+K•D•uA+'A•k) (1072) , pour tout x(t), d'où : K•A+'A•K+K•B•R-' •'B•Kû'C•Q•C=0 (1073) K•B•R-' •'B•k+K•D•uA+'A•k=0 Donc K est une solution de la première équation du système (1073) : K • A+'A • K +K • B • R-' •'B • K û'C • Q • C = 0 dite équation de Ricatti. k peut donc s'écrire sous la forme suivante : k=-(K •B•R-' 'B+'A)-' •K•D•uA (1074) Posons : M = -(K • B • R-' • 'B +'A)-' • K • D (1075) On obtient donc k = M • ua (1075'), la commande optimale est alors donnée par : us = R-' •'B • (K • x+M • uA) (1076) Soit d'après l'expression de M : us = R-' •'B • (K • x+M • uA) (1077) En reportant l'expression de us dans l'équation (1071), on obtient une équation différentielle permettant de déterminer une évolution du vecteur d'état x en fonction de la commande d'entrée ua =(A+B•R-' •'B•K)•x+(B•R-' •'B•M+D)•uA (1078) 0=K•A+'A•K+K•B•R-' •'B•Kû'C•Q•C On en déduit ensuite une expression d'un filtre W(s) à appliquer à la commande d'entrée ua tel que : us = W x ua W(s) = R-'.'B.K.[s.I û(A+B.R '.'B.K)] '.(B.R-'.'B.M +D)+R-'.'B.M (1079) La commande us représente une accélération optimale à fournir à la plate- forme mobile afin d'assurer un déplacement réaliste de la plate-forme minimisant l'erreur de sensation ressentie par le pilote du véhicule simulé par rapport à un pilote d'un véhicule réel. II est également possible de considérer un modèle de ressenti en trois dimensions, pour un système de plate-forme mobile ayant six degrés de liberté. Dans ce cas, l'accélération utilisée en entrée peut être représentée de la façon suivante : tu ( • i " ~ wx u2 (by u3 coz u4 ax X u5 ay Y U61 \a, z 1 Le modèle des canaux semi-circulaires en trois dimensions est par l'expression suivante : u= (1080) donné co" ==Hssc(s)= w 2 îL ia s (1 + zas)(1 + zss)(1 +TLs) (1010) avec : • w = C0 0 ~r] : une vitesse angulaire ressentie ; • w = [ç 9 W] : une vitesse angulaire réelle. Le modèle des otolithes en trois dimensions est donné par l'expression suivante : f Hom (s) = K(1+zas) = (1011) f. oro (1+rLs)(1+zss) z] : une force spécifique ressentie ; Z]' : force spécifique � réelle �. En considérant les six degrés de liberté, la force spécifique s'écrit dans un repère attaché à la base du simulateur : ax +Rz .9ûRy • yi+g•sin0 fp = ay +RX •tji û Rz . 5ûg•singo.cos9 (1081) gaz +Ry . bûRX . 9 û g . cosrp•cos91 Dans le cadre d'une approximation des petits angles et en supposant que le pilote est à la verticale du centroïde de la plate-forme mobile, c'est à dire Rx = Ry = 0, la force spécifique s'écrit alors : 7ax +Rz •6+g.0 f' = ay ûRz •0ûg•qp (1082} az g ~ 20 On peut définir us comme une donnée comportant des accélérations au niveau du centroïde de la plate-forme mobile : 15 .Y us = [ci), wy d aC ay ad' _ [u(1) u(2) u(3) u(4) u(5) u(6)]' (1083) On peut ainsi exprimer fp en fonction de us : /u(4)+(Rz + 1 g)•u(2) P fp = u(5) ù (Rz + Pz g).u(l) (1084) u(6)ùg Dans l'expression obtenue (1084) les forces spécifiques fp sont découplées 5 selon les trois axes. En effet, si on note,: fp ù [fp, fpy fpz) ul ù LBx~, u2 ù [Oïl' Y], , u3 =[4�1085) Alors, on a : fp, = f (u1) , fpy = f (u2) , fpz = f (u3) . II est donc possible d'appliquer la méthode de résolution de la commande optimale utilisée dans le cas à deux dimensions pour les forces spécifiques selon les axes x et y. 10 Pour la force spécifique selon l'axe z, il est possible par exemple d'utiliser une simple restitution des accélérations. On considère un système d'état tel que construit précédemment : =A•x+B•u +D•u s a (1086) Avec : 20 • Te un pas de temps de discrétisation petit ; • A=eAT 1 , • Bl =Te.eAT B, • Dl =Te.eAT .D. Si k est un numéro de pas, le critère à minimiser, devient dans le cas à trois 25 dimension : Nù1 J='xkCT •Q•Cxk+'uskR.usk (1088) 2 k=0 y = C.x Il s'agit ensuite de discrétiser le système (1086) afin d'obtenir un filtre sur la 15 commande d'accélération en temps discret. Obtenir un filtre en temps discret permet de prévoir l'instant auquel les limites physiques de la plate-forme vont être atteintes. Le système discrétisé (1086) devient alors : xk+l ù Al . xk + Bi . usk + D1 . uak (10F37) Yk = C.xk Le Hamiltonien associé au critère de minimisation (1088) est donné par l'expression : N-1 N-1 H ù 1 'xk `C Q C xk + rusé • R •usk + `2k+1 • (Al . xk + B1 • us), + D, • uak ) k=0 k=0 (1089) Les équations canoniques correspondant à l'expression du Hamiltonien (1089) sont les suivantes : /1" k Xk La maximisation du Hamiltonien donne donc : ùR •usk + BlT . 2,k+l = 0 b usk = R ' • BIT . 2k+I (1090) Le système liant x et 2 est alors : xk+l ù Al . xk + BI .Rù1 • tBl . 2k+I + Dl .uak (1092) ~k = t C . Q • C xk + t Al . 2k+l Si l'on suppose N grand, dans un cas stationnaire à horizon infini, on a donc : 2k =K•xk+k Vk1 (1093) Le système (1092) devient alors : ( 0=(`C•Q•C+K)•xkû`A, •K•xk+, +(I-'Al)•k (1094) xk+l = (1û B1 • R-' 'B1 . K)-' . (Dl . uak + B1 • R-' 'B, • k + Al • xk ) Par substitution, on obtient l'équation suivante : [('c.Q.c+K)_'A, •K•(I -B1 •R-' • `B, .K) ' Al1 xk (1095) ûPA, .K .(I- BI .R-1 'B, .K) 1.(Dl.uak+B,•R l.tB,•k)-(I-`A,)•k]=0 L'équation (1095) étant vraie Vxk, on obtient donc le système (1096) décrit 20 en Annexe. En utilisant le lemme suivant : (A-BCD)-' =A-' +A-'B•(C-' -DA-'B)-'DA-' sur la première équation du système (1096), alors celle-ci devient : (`C•Q•C+K)-`A, .K-(I-B, •R-' �B, K)' A, ==0 (1097) Puis : 25 `C•Q•C+K-`A, •K•A, û'A, •K•BI(R-`B, •K•B,)-' `B, .K .4 =0 (1098) L'expression (1098) étant une équation de Ricatti en temps discret. La deuxième équation du système (1096) devient le système (1099) : xk+1 =H (1090) k = (1ùù K (I ù B, • Rù' 'B, K)ù' • B, • Rù' 'Bl )ù' (1099) •(`A, K•(IùB,•Rù'•`Bl'K)ù'•DI)'uak En posant ND = I - -•K • (I - B, • R-1 'B1 K)ù1 . B, .Rù1 . 'B1)-1 (1100) •('A, •K.(I- BI •Rù1 ••K)"' •D, L'expression (1099) peut alors s'exprimer sous la forrne suivante : k=ND'uak N D = I ù'A, ù'A, • K • (I ù Bl • Rù' • 'B, • K)ù' • B1 . Rù' • 'B, )ù' (1101) •('A, •K •(I ùB, . Rù1 •.K)ù' . Dl On obtient donc la relation suivante : {xk+, = Al xk +BI .usk +D, uak ('1102) usk =R''B1 '(K•xk+l + k) avec K vérifiant : 'C•Q•C+Kù'A, •K.A1 ù •K•BI(Rù'B, •K•B1)ù' •'B •K A, =0 k=ND •uak (1103) ND = I ù ù 'A, K (I ù B, • Rù1 ' Bl .Rù' 'B1)ù1 •('A, •K•(IùB, •Rù' •K. Dl On résout alors le système par substitution et on obtient la forme suivante pour la commande optimale : xk+1 = [Al +B, •(IùRù1.'B1 .K.B1) 1 •R-1 •'B1.K•A,1.xk 1 (1104) + B, . (1 -R-' 'B1 .K•B,) 1 .(R-' •'B1.(K•D, +N))+D,].uak Le filtre à appliquer à l'accélération d'entrée peut donc avoir par exemple la forme suivante : [B, •(IûR-' •'B, •K•B, .(R-' •'B, •(K D, +N))+D,1 (1105) La figure 5a représente plusieurs étapes possibles 51, 52, 53 pour le calcul de cinématique directe 23 représenté sur la figure 2. Une première étape du calcul de cinématique directe 23 est un calcul de longueur des vérins 51 après application de la commande optimale calculée au cours de la deuxième étape 22 du procédé de génération de commande selon l'invention. Pour calculer la longueur d'extension des vérins nécessaire pour l'application de la commande optimale, il s'agit dans un premier temps de calculer les coordonnées des différents points d'attache des vérins de la plate-forme mobile. Parmi les points d'attache des vérins, des premiers points d'attaches sont situés sur une partie mobile de la plate-forme. La plate-forme considérée est par exemple une plate-forme de Stewart. Les 5 calculs décrits par la suite sont adaptés pour l'exemple au cas d'une plate-forme de Stewart. Une partie mobile ou palette mobile 54 de la plate-forme de Stewart peut se représenter, comme sur la figure 5b, par un hexagone dont les six sommets peuvent être notés B, , B2 , B3, B4 , B5, B6. La palette mobile 54 peut être 10 centrée sur un repère défini par deux axes perpendiculaires, x, y. La palette mobile est définie telle que : B4B5 = B6B1 = B2B3 = E, . Posons : • C le centre de la palette mobile et du repère x, y ; • fi l'angle entre les vecteurs CB4 , CB5 ; 15 • R, le rayon d'un cercle 55 circonscrit à la palette mobile 55. ( Alors fi= 2 • arctan E, (1106) ~2. (RI)2 ù(E,/2)2 et (ùR, cos(7r/3ùf3/2)\ 'ùR, cos(rc/3ù/3/2)~ 7ùR, cos(îr/3+f3/2)\ ùR, sin(rr/3ù f3/2))'CB2 RI sin(.r/3ù f3/2) ~'C~j3 RI sin(ir/3+/3/2) /R, cos(/3/2r / R, cos (/3/2) 'ùR, cos(rr/3+/3/2y CB4 = R, sin(/3/2))'CBS \ùR, sin(/3/2)CB6 ,ùR, sin(1r/3+/3/2)~ (1107) 20 Une partie fixe ou palette fixe 56 de la plate-forme de Stewart peut se représenter, comme sur la figure 5c, par un hexagone dont les six sommets peuvent être notés 0,, 02, 03, 04, O5 , O6 . La palette fixe 56 peut être centrée sur un repère défini par deux axes perpendiculaires x_o, y_o. La palette mobile est définie telle que : 0,02 = 0304 = 05B6 = E2. 25 Posons : • O le centre de la palette fixe et du repère x_o, y_o ; • a l'angle entre les vecteurs 005 , 006 ; • R2 le rayon d'un cercle 57 circonscrit à la palette fixe 56. CB, _ Alors a =2 • arctan i E2 2..N./(R2)2 ù(E2/2)2 (1108) et (ùR2 cos(a/2)\ •OB (R2 cc s(rc/3 + a/2) \ = R2sin(a/2) 3 \ R2 sin (7r/3 + a/2) , " R2 cos (7r/3 ù a/2) "; Oi36 / R2 cos (7r/3 + a/2) " \ùR2 sin(rr/3ùa/2)) \ùR2 sin(rc/3+a/2)i (1109) En exprimant les vecteurs O;B; , i étant un entier compris entre un et six, dans un repère lié au sol, on déduit : O;B, -00. + OC + CB, ùxO, ' xc xB; " Yc +[T]. yB; \.zi ( xc+cos0•cosyr•xB;+cos0.sinyr•yB; yc +(sin Qp•sin0•cosy/ ùcosç .sinyr)•xB; +(sin ço.sinO•sir. yr+cosç .cosy')•yB ùyO; ~zc +(cos q .sin0.cosyr+sinço •sinyr)•xB, +(cos rp•sin0•sinyrùsinç .cosyr) yB, ùzO, (1110) en rappelant que : OB4 = OBI _ \ùR2 sin( a/2)) (R2 cos(rc/3ùa/2) \R2 sin (7r/3 ù a/2) " R2 cos (a/2) "' ; 0B2 = ; OB5 = _Xs_ Ys Zs _ [Ti. X,. Yr Zr 15 avec • cos0•cosyr sincp•sinO•cosyrùcoscp•sinyi coscp•sin0•cosyrùsinço.sinv [Tl = cos0•sinyr sinço.sin0•sinyrùcosço.cosyr cosçp•sin0•sinyrùsinrp•costg ù sin 0 sin qp • cos 0 cos cp • cos 0 (1112) et l; = JOB; • OB1 (1113), l; représentant la longueur d'extension de chaque vérins. Une deuxième étape du calcul de cinématique directe 23 est un calcul de vitesse des vérins 52, calculée en fonction de la longueur des vérins obtenue au cours de la première étape 51 du calcul de cinématique 20 directe 23. On a: l;2 = OB. • OB. (1114), par dérivation, on obtient : dl. dOB. 1. = dt ' OB; (1115) d'où : dl. v. _ ù ' dt avec l; _ JOB .0B (1117) et O;B, tel que décrit en Annexe 1 par l'expression, (1118) cela implique : • dO;B;\ xc + xB. B. ./ù(sin0•cosy')•9ù(cos9•sinyr). ' dt )s ( y `~ ù(sin 9• sinyr)•9+(cos O.cosy')•^jr • d ' =)>c+(xB; yB;).ï, (1120) dt ~y avec T, défini en Annexe 1 par l'expression (1120') • dO' =zc+(xB; yB;)•Y'2 (1121) dt iZ avec Y2 défini en Annexe 1 par l'expression (1121') Une troisième étape du calcul de cinématique directe 23 est un calcul de d'accélération des vérins 53, calculée en fonction de la vitesse des vérins obtenue au cours de la deuxième étape 52 du calcul de cinématique directe 23. On a: dl; d OB; 1 ù OB. (1122) dt dt par dérivation, on obtient : d21. dl. 2 -= rdOB. 2 d2OB. l' dt2 + dt dt + dt2 .bùBi (1123) d'où : 34 d OB1 . . OB. 1. r dt (1119) 2 22 2 dOB. Ô(dl. + ù (1124) dt dt dt ~ avec : • /d d 2 2 \ =zc+(xB, yB,)•ï3 (1125) Ix avec Y3 défini en Annexe 1 par l'expression (1125') • /d ~ 2 5 " @c+(xB, YB).T4 (1126) \ 'y avec r4 défini en Annexe 1 par l'expression (1126') et avec les matrices (1126") définies en Annexe 1. • ( d OZB .= + (xB, yB,,) . T5 (1127) 1, avec T5 défini en Annexe 2 par l'expression (1127') et avec les 10 matrices (1127") définies en Annexe 2. On peut ensuite mettre l'accélération l; sous la forme suivante : =h(0,O,yi,ï,yA (1128) A, •O+A2 •ë+A3 •yi+A4 •ï+As • ÿ+A •z+ct (1129) avec : 0 15 • A,= I B,ro•xB;+B o yB; O.B. 0 • xB;; + B yo yB, 1/ ùsin0•cosçv•xB,. ù sinO•sinyr yB; • A2 = Byxë xB + By} B • yB, BZxë • xB. + Bryë • yB, I'-cos0•sinyr•xB, +cosO•cosyr• yB,\ • A3 = B .xw xB; + Byyo. . yB 8,4, • xB + Bryç,; yB, `~11 O.B. 1, d 2l. 1 a.= ' dt2 0, B, dl r=r,,,;,, 10 A cette fin, on définit dans un premier temps une élongation des vérins E telle que : Les figures 6a et 6b représentent des fonctions de mise à l'échelle des élongations des vérins calculées en fonction de la longueur des vérins nécessaire pour appliquer la commande optimale. On cherche une fonction de la forme suivante : scaling : R+ -* [lmin , lmax ] > lmin' VI _ Imax "dscaling 1 = 0 • 4= 1 0 • A6 = 0 • ct=1;ù(A,•rp+A7•+A3•yi+A4•x+A5•+A6 z). O,B; E=l / Imax + lmin \ 2 1130) avec : • 1 : la longueur d'un vérin ; 15 • ln,;n : la longueur minimale d'un vérin ; • 1. : la longueur maximale d'un vérin. Le système (1000) devient alors : scaling : R -4 [ùEmax, Emax ] >- -Emax , VE S ùEmax = E , VE E [ùEmax Emax ] Avec : scaling (E) Emax, VE >ù Emax dscaling" = 0 dE ~E=-Ex E=E0xx 37 Pour retrouver la fonction scaling(l) à partir de la fonction scaling(E) , il faut ajouter une différence correspondant à la longueur à mi-course des vérins. La fonction scaling(E) recherchée correspond par exemple à une première fonction recherchée 60, représentée sur la figure 6a. Des points anguleux 61 de la fonction recherchée 60 sont ensuite remplacés par des raccords continus, tels que représentés sur la figure 6b. On obtient ainsi une deuxième fonction de mise à l'échelle des élongations 62. La fonction scaling(E) recherchée est par exemple une fonction impaire, de type exponentielle, dont un maximum est Emax . Emax peut être mis à une valeur constante. Par exemple la fonction suivante peut être utilisée : ùEmax si E lmax lmin _ tmac ù tmin e 2 \ 2 J / lmax +'min + lma+c ù'min \ V_ e 2 2 ,(1136) _r 1 rm'n1 z 2 lmax + lmin + i l ù lmax -1 min 2 2 2 z.e,l1°' -1mmn e` 2 ~ sinon La figure 7 représente plusieurs étapes possibles de définition des paramètres pour l'étape de calcul de la cinématique inverse 25, représentée sur la figure 2. II s'agit, lors de l'étape 25 de calcul de la cinématique inverse, de trouver six paramètres (çp 9 yr x y z) déterminant la position de la plate-forme, en fonction des longueurs de vérins calculées au cours de l'étape de mise à l'échelle 24. Une première étape 71 du calcul de cinématique inverse 25 est une étape de calcul des coordonnées des points d'attaches de la plate-forme dans un repère relatif au sol. Les coordonnées des points d'attache de la plate-forme mobile dans le repère sol ont, par exemple, pour indice "ms". Les coordonnées des points d'attache de la base de la plate-forme dans le repère sol ont, par exemple, pour indice "bs". Prenons trois points d'attache au sol pour faire une base de la plate-forme. Par exemple, on peut choisir un premier point 01, un deuxième point 03 et un troisième point 05 avec comme point origine le premier point 01. Des coordonnées xm5L , yms , 2i zms2i des autres points de la base peuvent s'exprimer en fonction des Vi E [1;3] Zms2i ùZ ms, = a i (Zms, ùZms,) + p2i (zmss _.zms, ) Le système (1137) est vérifié par tous les points de la plate-forme quel que soit le repère dans lequel sont écrites les coordonnées (Xms, ,Yms, ,zms, ), ( Xms, , Yms, , zms, ), (Xms, , Ymss , zms, ) des premier, deuxième, troisième points 0, , 03 , O5 . Ceci est en particulier vérifié pour les coordonnées des points dans le repère lié à la plate-forme mobile définis par la relation (1107). Comme tous les points de la plate-forme mobile ont la même côte selon un axe z perpendiculaire au plan de la plate-forme, la troisième équation du système (1137) n'apporte aucun renseignement supplémentaire. Les systèmes à résoudre sont donc les suivants a: Xms2 ùXms, = "2i (Xms, ùXms,) + lu2i (Xms, ùXms, ) Vi E[1;3] (1138) Yms -Yms, = i (Yms, -Yms) + /U2i (Yms 5 -Yms) Les systèmes (1138) sont des systèmes linéaires de deux équations à deux inconnues. En utilisant la méthode de Cramer pour résoudre les systèmes (1138) on obtient alors les valeurs de (.12i p2i)Vi e 1;3 Une deuxième étape 72 du calcul de cinématique inverse 25 est l'application de manière itérative de l'algorithme de Newton afin de calculer les coordonnées de tous les points d'attache des vérins sur la plate-forme mobile dans le repère lié au sol. Dans un premier temps, une expression telle que décrite ci-dessous peut exprimer le fait que les distances DI, D2, D3 entre les points de la plate- forme mobile B, , B3, B5 : (1139) Les coordonnées dans le repère mobile, telles que définies dans (1107), peuvent être utilisées pour calculer D,,D2,D3 . 39 coordonnées des points choisis 03, O5 , l'indice � 1 � correspondant au premier point 01, l'indice � 3 � correspondant au deuxième point 03, l'indice � 5 � correspondant au troisième point 05 : Xms 2, ùXms, = a i (Xms, ùXms) + Pei (Xms, ùXms ) Yms 2, ùYms, = ,12i (Yms, ùYms) + P2i (Yms, -Yms,) (1137) [Di=(xx)2+(y 3ù y ,)2 D2 =( x5 ùxrns)2+(y,nr5 ùy,,,.r)2 D3 = (xs ù x3 )2 +(ys ù y,, )2 De plus : Vi E[1;6] :12 =(xms, -xmb;)2+(yms, -ymb;)2+(zms, -zmb,)2 (1140) avec 1, représentant les longueurs de vérins de l'itération courante. En combinant les relations (1139) et (1140), on obtient le système suivant : Vi E [1; 6] : (xms; - xmb, )2 + (yms; - ymb, )2 + (zms; .- zmb; )2 -12 ( xms3 - xms, )2 + ( yms3 - yms, )2 ùDl (1141) (xmss - xms, )2 + (ymss - yms, )2 ù D2 (xms5 - xms3 )2 + (ymss - yms3 )2 ù D3 Ensuite, en utilisant les relations (1138), on obtient la relation suivante : F=F(X) (1142) avec X = (xä. x, ,,si yäs , y y s Z z., z^u 51 Ensuite, en se basant sur la relation suivante : F(X+A)=F(X)+A •F'(X) (1143) avec F'(X) = jacobien(F) De la relation (1143), est déduite la relation suivante : OX -F'-' (X)•(F(X+A )-F(X)) (1144) On cherche Ax/F(X +tX) = 0, la relation (1144) devient alors : 15 Ax =F'-'(X)•(-F(X)) (1145) En utilisant la relation (1138), F'(X) peut s'exprimer de la façon définie par l'expression (1146) décrite en Annexe 2. La variable X peut être initialisée avec des valeurs issues de l'itération précédente. Par exemple, des outils de résolution automatisé de systèmes 20 d'équations peuvent être utilisés pour résoudre le système précédent et obtenir une valeur de oX . Les itérations effectuées en appliquant l'algorithme de Newton peuvent être arrêtées lorsque l'on a max ()i x I)- Une troisième étape 73 du calcul de cinématique inverse 25 est une étape de calcul des coordonnées du centroïde de la plate-forme mobile ainsi que des angles de déplacement de la plate-forme mobile. Dans un premier temps, on calcule les coordonnées du centre de gravité de 5 la plate-forme : / 6 \ E xmsi i=1 6 ymsi (1147) i=1 E ZmSi i=1 On peut calculer les coordonnées des vecteurs GBi qui relient le centre de gravité aux différents points d'attache de la partie mobile de la plate-forme On peut alors créer la base suivante : G=1• 6 Ems, = GB1 + GB2 2•xB, 10 Ems2 = GB, ù GBZ (1148) 2. yBl Ems3 = Ems, A Ems2 La base (1148) correspond, à un instant t = 0, à la base canonique du repère lié au sol. En utilisant la relation suivante, qui lie le repère fixe et le repère mobile : Ems, Emin, Ems2 = [Tmobùfx ] • Emmz (1149) - Ems3 _ _ Emm3 - Emin, _ [1 0 0] 15 avec : Emmz = [0 1 0] et Tmobùfix définie par l'expression (1007), on en Emma = [0 0 1] déduit : {Ems2 (1)/Ems, (1) = tan(le) yr =tan ' Ems2 (1)/Ems, (1� Ems3 (1)=ùsin (0) 9=sin-'(ùEms3(1)) (1150) Ems3 (2)=sin(çp)•cos(9) =sin-'Ems3(2)/cos(9)) On a donc bien retrouvé les coordonnées ainsi que les angles (çp 9 yr x y z) associés au centroïde de la plate-forme mobile. En dérivant deux fois les coordonnées (çp 9 yr x y z) on obtient la commande d'accélération à appliquer par la plate-forme mobile. Avantages Le procédé de calcul de commande d'accélération selon l'invention permet avantageusement de reproduire de manière réaliste des accélérations ressenties par le pilote ou le conducteur d'un véhicule dans un simulateur. Elle permet également d'exploiter au maximum l'intégralité des ressources dynamiques du système de mouvement tout en évitant d'atteindre des butées de fin de course des vérins. Ceci permet avantageusement d'augmenter la durée de vie des vérins et plus généralement des plate-formes mobiles de simulation. Avantageusement, le procédé selon l'invention permet de reproduire de manière réaliste des situations extrêmes dans lesquelles les vérins de la plate-forme ont une configuration dissymétrique, par exemple dans le cas de décollages manqués ou suite à un freinage violent. Les calculs de cinématique directe 23 et inverse 25 dépendent uniquement de la géométrie de la plate-forme de simulation utilisée. Ces calculs peuvent donc avantageusement être adaptés à n'importe quel simulateur avec mouvement sans changer l'architecture fonctionnelle 30, 31 de calcul de la commande d'accélération. De plus les calculs effectués par le procédé selon l'invention sont des calculs exacts, c'est à dire ne nécessitant pas d'approximation. Ceci permet avantageusement de ne pas introduire d'effets de bord qui pourraient nuire à la stabilité des résultats produits par le procédé selon l'invention. Le procédé selon l'invention permet donc avantageusement d'améliorer l'entraînement des pilotes de véhicules en les confrontant de manière réaliste à des situations extrêmes. Les pilotes de véhicules ainsi entraînés sont donc plus aptes à réagir correctement face à des situations dangereuses, ce qui améliore leur sécurité et évite des dommages sur les véhicules. Le procédé de calcul de la commande optimale selon l'invention permet en outre un calcul simple des accélérations, des contraintes liées à la plate-forme étant prises en compte après le calcul de la commande optimale générée par le simulateur de mouvement du véhicule.5 REVENDICATIONS1. Procédé (20) de calcul de commandes de mouvements d'une plate forme mobile d'un simulateur de véhicule (6), ledit procédé (20) utilisant en entrée des accélérations (2) calculées par un logiciel de simulation (1) de 5 comportement du véhicule, caractérisé en ce qu'il comporte au moins les étapes suivantes : • un premier calcul (22) de commandes d'accélérations à appliquer par la plate-forme, filtrant les accélérations calculées à l'aide d'un filtre construit d'après un modèle mathématique de perception humaine 10 d'un mouvement ; • un deuxième calcul (23) de positions successives de la plate-forme en fonction des commandes d'accélération filtrées ; • une mise à l'échelle (24) des positions de la plate-forme en fonction de limitations physiques de la plate-forme ; 15 • un troisième calcul (25) des commandes d'accélérations à appliquer par la plate-forme, en fonction des positions successives de la plate-forme mises à l'échelle. 2. Procédé selon la revendication 1, caractérisé en ce que les 20 positions de la plate-forme (6) sont définies par les positions du centre géométrique de la plate-forme (6) et par les longueurs des vérins actionnant la plate-forme (6). 3. Procédé selon la revendication 2, caractérisé en ce que la 25 longueur des vérins est mise à l'échelle par une première fonction de mise à l'échelle scaling(l) telle que : scaling : R+ - [lmin , lmax ] j lmin i dl lmax dscaling dl )r=rn;ä 1=1m. où • 1 représente une longueur d'un vérin; • 1. représente une longueur minimale physiquement possible à mettre en oeuvre par la plate-forme (6) ; • 1. représente une longueur maximale physiquement possible à mettre en oeuvre par la plate-forme (6). 13. Dispositif selon la revendication 10, caractérisé en ce que la mise 10 à l'échelle des positions prend en compte des limitations de vitesse d'allongement des vérins de la plate-forme. 14. Dispositif selon la revendication 13, caractérisé en ce que la prise en compte des limitations de vitesse d'allongement: des vérins utilise une 15 deuxième fonction de mise à l'échelle scaling (v) telle que : scaling,, : R ù> [vif., v. ] Vmin Vv