Minimiser les distances

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
rousse1
Messages: 3
Enregistré le: 16 Juin 2013, 21:23

Minimiser les distances

par rousse1 » 16 Juin 2013, 22:38

Bonjour,

Je suis technicien qualité conception en bureau d'études, aussi avec l'aide de la CAO (Catia),
beaucoup de mes problèmes géométriques sont résolus (même si cela n'est pas la vocation de ce logiciel). Maintenant je me trouve confronté à un problème que je ne sais pas résoudre (désolé il n'est pas possible à priori sur ce forum de lier un schéma).

Imaginez:
- une ligne brisée de coordonnées théoriques (x,y,(z)) représente l'axe d'une tuyauterie parfaite
- une deuxième ligne avec des coordonnées relevées par une machine de contrôle sur une tuyauterie fabriquée, placée librement dans l'espace mais considérée comme non déformable et comportant naturellement des défauts. Pour déclarer la tuyauterie conforme ou non conforme en fonction de tolérances, la machine de contrôle cherche à approcher au mieux la ligne réelle à la ligne théorique c'est à dire à minimiser les distances maxi à chaque coordonnée.
Le schéma a été représenté en 2D pour essayer de simplifier la tâche mais en réalité il faut raisonner en 3D avec un nombre de 3 à 12 points. J'ai tenté de résoudre ce problème par la méthode des moindres carrés, barycentre... mais sans résultat probant; je pense que la moyenne des distances minimisées aux coordonnées par un algorythme quelconque doit apporter la solution.
Donc si quelqu'un peut m'apporter la solution, je l'en remercie d'avance car je n'ai malheureusement pas le temps de me relancer dans des études mathématiques.



Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 16 Juin 2013, 22:54

Bonjour,
Sauf erreur de ma part Catia, ne résout probablement pas ce problème. Je pense que même en 2D peu de logiciels savent le résoudre.
Il y a 3 solutions, soit vous me donnez les valeurs et je résouts le cas particulier, soit je vous explique comment on fait, soit ce problème est répétitif et il faut faire un module (j'ai probablement ça dans mes archives).

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 17 Juin 2013, 07:46

Bonjour,

pour poster une image. suivre ce lien

- Besoin effectivement d'un schéma
- Y-a-t-il autant de mesures prises que de mesures théoriques? (idem peut-on comparer point à point)
- Qu'est-ce que l'approximation de ta courbe réelle? S'agit-il de lui donner l'apparence d'une ligne brisée? Normalement l'approximation c'est genre la courbe théorique elle a une certaine equation, avec des paramètres, et il faut arriver à trouver les bons paramètres pour la courbe réelle.
S'agit-il ici de comparer les angles entre chaque ligne? Leur longueur des lignes? Le point de début et d'arrivée?
- Comment doit-on les comparer, moindres carrés, si supérieur à une distance vaut 1, sinon 0, ecart relatif.. J'ai l'impression que tu veux faire ce que fait la machine de contrôle. Peux-tu expliquer en quoi c'est différent?
la vie est une fête :)

rousse1
Messages: 3
Enregistré le: 16 Juin 2013, 21:23

par rousse1 » 18 Juin 2013, 23:04

Bonjour,

Je vous remercie d'abord d'avoir pris le temps de me répondre.
La deuxième proposition me convient parfaitement car bien que ce soit un problème ponctuel j'ai besoin de connaître la méthode de calcul et cela pour 2 raisons:
1) Le brisé que j'ai dessiné est uniquement un exemple pour déterminer la méthode de calcul. Sur un cas concret je vérifierai que le résultat obtenu est bien en corrélation avec celui de la machine de contrôle tridimensionnelle. Naturellement le but de cette opération n'est pas de vérifier cette machine mais de faire évoluer notre processus de contrôle afin qu'il réponde mieux à notre besoin; c'est à dire qu'au lieu de minimiser les distances sur tous les points, cette minimisation ne se ferait que sur les points du premier et dernier segment. Je ne vais pas entrer plus dans le détail qui est mon domaine d'expertise en qualité conception et qui est hors sujet sur ce forum.
2) J'aime bien me donner la peine de comprendre.

Je vous remercie par avance de votre aide en espérant ma demande est assez claire.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 19 Juin 2013, 10:38

Bonjour,
Pour ce genre de choses, le principe est toujours le même : on dispose de 2 représentations de la même chose dans 2 systèmes différents et il faut établir le lien qu'il y a entre les deux. Les méthodes sont pratiquement toujours identiques.

Pour passer d'un référentiel A à un référentiel B en 3D, la formule est la suivante
X = TX + XX.x + XY.y + XZ.z
Y = TY + YX.x + YY.y + YZ.z
Z = TZ + ZX.x + ZY.y + ZZ.z
Il y a 12 paramètres (TX ... ZZ) donc 12 valeurs à calculer. On doit donc établir un système linéaire de 12 équation, puis le résoudre.
Si on a 4 points homologues, il suffit d'écrire le système.
Si on n'a que 3 points, on calcule un quatrième homologue dans les 2 systèmes de façon à former un tétraèdre à peu près bien régulier, et on est ramené au problème précédent.
Si on a plus de 4 points, ce qu'on peut considérer comme le cas normal, on écrit la somme des carrés des écarts en distance entre les points, ce sera de la forme
S = Somme((Di)²)
où (Di)²=((Xi-xi)² + (Yi-yi)² + (Zi-zi)²)
La valeur la plus probable est obtenue pour celle qui minimise S.
On calcule les dérivées partielles de S par rapport à chacune des inconnues (TX ... ZZ) et on écrit qu'elles s'annulent.
On obtient un système linéaire en (TX ... ZZ) où les paramètres sont de la forme Somme(Xi)n Somme(Xi²Yi) etc.
Il suffit de résoudre le système et l'on a ainsi les 12 paramètres nécessaires.
Il est vrai que le calcul littéral est un peu long, mais comme il y a forcément une certaine symétrie, on peut facilement se vérifier.
Bon courage.

rousse1
Messages: 3
Enregistré le: 16 Juin 2013, 21:23

par rousse1 » 20 Juin 2013, 15:47

Bonjour,

Je pense avoir compris la démarche mais j'ai encore besoin d'un peu d'aide.
1) Tout d'abord pourquoi changer de référentiel, étant donné que le relevé de coordonnées du brisé réel se fait à partir du repère orthonormé du théorique?
2) S= Somme((Di)²) --> Ok
avec (Di)²=(xir-xit)²+(yir-yit)²+(zir-zit)² --> Ok
r: coordonnée réelle et t: coordonnée théorique
si je ne me trompe pas la dérivées partielles de S par rapport à chacune des inconnues:
d(S)/d(xir)= 2xir-2xit
en annulant les dérivées partielles les pts réelles et théoriques sont confondus.
Il y a sûrement quelque chose qui m'échappe.

En vous remerciant encore de votre aide

Cordialement

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 20 Juin 2013, 18:40

Bonjour,
En fait, on ne change pas de référentiel. Je vais expliquer le problème en 2D, c'est pareil, mais c'est une bonne façon de la comprendre. Les formules sont
X = TX + XX.x + XY.y
Y = TY + YX.x + YY.y.
Je suppose que vous reconnaissez la formule : Translation + rotation + homothétie (similitude).
si j'appelle A = h.cos(théta) et B=h.sin(théta) où h est le rapport d'homothétie et théta l'angle de rotation, alors les formules s'écrivent
X = TX + A.x - B.y
Y = TY + B.x + A.y
Le nombre de signes '-' est impair et la formule dépend des conventions angulaires.
Deux points homologues permettent de définir les paramètres.

Imaginons maintenant qu'au lieu d'avoir seulement 2 points, on en ait 3 ou plus. Il faut faire intervenir un rapport d'affinité, Dans ce cas il y bien 6 paramètres à définir, c'est le cas général et c'est la méthode qu'on emploie pour "comparer" 2 lignes brisées, et d'une façon générale un certain nombre de couples de points homologues.

Concernant ce que vous appelez "changement de référentiel".
La ligne brisée de base, c'est à dire théorique est dans un référentiel de base.
Dans un référentiel quelconque, éventuellement très proche du référentiel de base, vous avez la définition de la ligne brisée à contrôler. Vous ne pouvez calculer valablement les distances entre points que si vous effectuer le "calage" du référentiel d'observation par rapport au référentiel de base.
Reprenons les 3 points, supposons que la position théorique soit un triangle équilatéral. Il est bien évident que le triangle réalisé ne sera pas équilatéral, mais pourquoi dire que c'est l'un des 3 points plutôt qu'un autre qui n'est pas bon ? D'où la méthode.

Quanc on écrit Di², la relation est beaucoup plus longue :
(Di)²=(xir-xit)²+(yir-yit)²+(zir-zit)²
(xir - xit)² = (TX + XX.xim + XY.yim + XZ.zim -xit)² m pour mesuré
etc.
Il faut distinguer r, réelle, c'est à dire après calcul et m mesuré, cad observé.
Vous comprenez que les calculs doivent être fait avec soin. En fait il y a 2 méthode de mener les calculs, soit on se dit que la dérivée (partielle) de u² est 2u.u', soit on développe, on ordonne puis on dérive.
Voilà, je vous conseille de commencer par calculer cela en 2D, et éventuellement de mener tout le calcul jusqu'au bout. Ca fait déjà un système à 6 inconnues.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 21 Juin 2013, 06:46

Dlzlogic, ou l'art de présenter de manière compliquée une idée simple...

D'une part, avant de présenter des formules de maths pour résoudre une optimisation, il faut être sur la même longueur d'onde quant au problème posé, sinon c'est un dialogue inutile.

D'autre part, mettre une histoire de référentiels "A,B,de base,théorique,etc" dans le problème de rousse1, c'est comme raconter cette petite blague
Pour changer l'ampoule de votre plafonnier, monter sur une table, tenir fermement l'ampoule, et appeler quelqu'un pour qu'il tourne la table !

Effectivement, en tournant la table, on dévissera bien l'ampoule... mais le plus simple et bien de monter sur la table est d'utiliser sa propre main pour dévisser l'ampoule.

Pour faire le parallèle avec le problème de rousse1, la table est le repère orthonormé utilisé, l'ampoule c'est la ligne brisée réelle, et on se demande si en tournant et translatant la ligne brisée réelle que l'on a sous nos yeux (et non le référentiel), on peut la superposer (à un poil près) à une ligne brisée théorique.

Tel que je l'ai compris, le problème revient à trouver une matrice de rotation R et un vecteur de translation V tels que la ligne réelle puisse être tournée par R et translatée par V pour tomber (à un poil près) sur la ligne théorique :
ligne_brisée_théorique = V + R . ligne_brisée_réelle.

Je ne pense pas qu'il faille utiliser d'homothétie ou de dilatation qui permettrait des déformations de la ligne brisée... à moins que rousse1 disent que c'est envisageable.

En dimension 2, c'est assez simple, un vecteur V est donné par 2 coordonnées (qu'il faudra rechercher) et une rotation est donnée par la matrice (où est à déterminer).
Il y a donc 3 inconnues à déterminer, avec des méthodes d'optimisation analysant des équations du genre


appliquées sur les sommets des lignes réelle et brisée.

En dimension 3, un vecteur V est donné par 3 coordonnées (qu'il faudra rechercher), mais c'est plus compliqué au niveau de la rotation, mais c'est faisable. Avant de poursuivre, est-ce une bonne traduction de votre problème ?

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 21 Juin 2013, 07:03

Dlzlogic, ou l'art de présenter de manière compliquée une idée simple...

D'une part, avant de présenter des formules de maths pour résoudre une optimisation, il faut être sur la même longueur d'onde quant au problème posé, sinon c'est un dialogue inutile.

D'autre part, mettre une histoire de référentiels "A,B,de base,théorique,etc" dans le problème de rousse1, c'est comme raconter cette petite blague
Pour changer l'ampoule de votre plafonnier, monter sur une table, tenir fermement l'ampoule, et appeler quelqu'un pour qu'il tourne la table !

Effectivement, en tournant la table, on dévissera bien l'ampoule... mais le plus simple et bien de monter sur la table et d'utiliser sa propre main pour dévisser l'ampoule.

Pour faire le parallèle avec le problème de rousse1, la table est le repère orthonormé utilisé, l'ampoule c'est la ligne brisée réelle, et on se demande si en tournant et translatant la ligne brisée réelle que l'on a sous nos yeux (et non le référentiel), on peut la superposer (à un poil près) à une ligne brisée théorique.

Tel que je l'ai compris, le problème revient à trouver une matrice de rotation R (dont le centre peut être supposé l'origine du repère, sans perte de généralité) et un vecteur de translation V tels que la ligne réelle puisse être tournée par R et translatée par V pour tomber (à un poil près) sur la ligne théorique :
ligne_brisée_théorique = V + R . ligne_brisée_réelle.

Je ne pense pas qu'il faille utiliser d'homothétie ou de dilatation qui permettrait des déformations de la ligne brisée... à moins que rousse1 dise que c'est envisageable.

En dimension 2, c'est assez simple, un vecteur V est donné par 2 coordonnées (qu'il faudra rechercher) et une rotation est donnée par la matrice (où est à déterminer).
Il y a donc 3 inconnues à déterminer, avec une méthode d'optimisation appropriée appliquée sur les sommets des lignes réelle et brisée.

En dimension 3, un vecteur V est donné par 3 coordonnées (qu'il faudra rechercher), c'est plus compliqué au niveau de la rotation, mais c'est faisable. Avant de poursuivre, est-ce une bonne traduction de votre problème ?

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 21 Juin 2013, 11:50

Léon,
Malgré le grand nombre de tes connaissances, je ne pense pas qu tu saches tout.
Relis tranquillement et en essayant de comprendre, le petit paragraphe avec les 3 points formant un triangle équilatéral.

Il y a donc 3 inconnues v_1, v_2, \theta à déterminer, avec une méthode d'optimisation appropriée appliquée sur les sommets des lignes réelle et brisée.

Quelle méthode d'optimisation proposerais-tu ?

Cependant tu as raison sur un point : étant donné le cas précis de rousse, la partie "homothétie" présente une petite difficulté, puisqu'il faudra corriger les distances mesurées, tous calculs faits, pour supprimer ce rapport d'homothétie, ou plutôt le rendre égal à 1, sauf si on peut admettre que l'appareil de mesure n'est pas parfait.
C'est ce que j'avais sous-entendu par
Les méthodes sont pratiquement toujours identiques.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 21 Juin 2013, 12:18

Dlzlogic a écrit:Malgré le grand nombre de tes connaissances, je ne pense pas qu tu saches tout.

Evidemment. D'ailleurs, qui pourrait se venter de tout connaître ?

Dlzlogic a écrit:Quelle méthode d'optimisation proposerais-tu ?

Cela dépend des contraintes et objectifs de rousse1. Je ne suis pas formaté pour répondre toujours de la même manière aux problèmes des autres : cf ton
Dlzlogic a écrit:Pour ce genre de choses, le principe est toujours le même : on dispose de 2 représentations de la même chose dans 2 systèmes différents et il faut établir le lien qu'il y a entre les deux. Les méthodes sont pratiquement toujours identiques.

Pour passer d'un référentiel A à un référentiel B en 3D, la formule est la suivante
X = TX + XX.x + XY.y + XZ.z
Y = TY + YX.x + YY.y + YZ.z
Z = TZ + ZX.x + ZY.y + ZZ.z
Il y a 12 paramètres (TX ... ZZ) donc 12 valeurs à calculer. On doit donc établir un système linéaire de 12 équation, puis le résoudre.

Tu as bien dû répondre cela à une dizaine de problèmes divers et variés, non ?

Plus sérieusement, j'ai l'impression que rousse1 veut minimiser l'écart maximal entre les sommets respectifs de la ligne brisée réelle et de celle théorique. A confirmer. Et si tel est la cas, la méthode des moindres carrés n'est peut-être pas aussi clairement idéale. A voir.

Dlzlogic a écrit:Cependant tu as raison sur un point : étant donné le cas précis de rousse, la partie "homothétie" présente une petite difficulté

Pour moi, le cas de l'homothétie n'est pas lié à une difficulté. C'est simplement que j'imagine que rousse1 veut seulement savoir si, après déplacement ad hoc de la ligne réelle, elle peut coller bien ou pas avec la ligne théorique. Or une homothétie n'est pas une isométrie : c'est donc, peut-être, une opération géométrique qui n'a pas lieu d'être dans le contexte de rousse1. C'est pour cela que je demande confirmation.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 21 Juin 2013, 12:33

Dlzlogic a écrit:Malgré le grand nombre de tes connaissances, je ne pense pas qu tu saches tout.

Evidemment. D'ailleurs, qui pourrait se venter de tout connaître ?

Dlzlogic a écrit:Quelle méthode d'optimisation proposerais-tu ?

Cela dépend des contraintes et objectifs de rousse1. Je ne suis pas formaté pour répondre toujours de la même manière aux problèmes des autres :
Dlzlogic a écrit:Pour ce genre de choses, le principe est toujours le même : on dispose de 2 représentations de la même chose dans 2 systèmes différents et il faut établir le lien qu'il y a entre les deux. Les méthodes sont pratiquement toujours identiques.

Pour passer d'un référentiel A à un référentiel B en 3D, la formule est la suivante
X = TX + XX.x + XY.y + XZ.z
Y = TY + YX.x + YY.y + YZ.z
Z = TZ + ZX.x + ZY.y + ZZ.z
Il y a 12 paramètres (TX ... ZZ) donc 12 valeurs à calculer. On doit donc établir un système linéaire de 12 équation, puis le résoudre.

Tu as bien dû répondre cela à une dizaine de problèmes divers et variés, non ?

Plus sérieusement, j'ai l'impression que rousse1 veut minimiser l'écart maximal entre les sommets respectifs de la ligne brisée réelle et de celle théorique. A confirmer. Et si tel est la cas, la méthode des moindres carrés n'est peut-être pas aussi clairement idéale. A voir.

Dlzlogic a écrit:Cependant tu as raison sur un point : étant donné le cas précis de rousse, la partie "homothétie" présente une petite difficulté

Pour moi, le cas de l'homothétie n'est pas lié à une difficulté. C'est simplement que j'imagine que rousse1 veut seulement savoir si, après déplacement ad hoc de la ligne réelle, elle peut coller bien ou pas avec la ligne théorique. Or une homothétie n'est pas une isométrie : c'est donc, peut-être, une opération géométrique qui n'a pas lieu d'être dans le contexte de rousse1. C'est pour cela que je demande confirmation.

Sylviel
Membre Transcendant
Messages: 6466
Enregistré le: 20 Jan 2010, 12:00

par Sylviel » 21 Juin 2013, 13:15

Bonjour,

je ne suis pas sûr de bien comprendre le problème. Mon interprétation est celle de Léon et assez différente de celle de Dlzlogic.

une deuxième ligne avec des coordonnées relevées par une machine de contrôle sur une tuyauterie fabriquée, placée librement dans l'espace mais considérée comme non déformable et comportant naturellement des défauts.
Pour déclarer la tuyauterie conforme ou non conforme en fonction de tolérances, la machine de contrôle cherche à approcher au mieux la ligne réelle à la ligne théorique c'est à dire à minimiser les distances maxi à chaque coordonnée.


Si je comprends bien tu disposes d'un solide (ta ligne brisée réelle) que tu souhaites placé le mieux possible par rapport à un tracé ?

Donc tu positionne ton solide avec une extrêmité en l'origine (juste pour poser le problème) et cherche ensuite la translation + rotation (de centre l'origine) qui vont te donner le meilleur résultat. En dimension 2 cela te donne 3 paramètres.

Jusque là je suis entièrement d'accord avec Léon.

Ensuite j'ai du mal à comprendre "minimiser les distances maxi à chaque coordonnées" ? Tu parles du maximum des distances entre un "sommet théorique" et sa position réelle ? Dans ce cas ce n'est pas la norme 2 qu'il faut minimiser, mais la norme infinie.
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 21 Juin 2013, 19:02

@ Léon,
Tu as bien dû répondre cela à une dizaine de problèmes divers et variés, non ?
Ben, ça me parait assez logique puisque le problème consiste à caler une figure par rapport à une autre, en 2D ou en 3D, dans les cas où j'ai répondu ça.

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 10 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite