• Aucun résultat trouvé

Optimisations algorithmiques

6.2 Contrôle d’erreur

À partir des pinceaux obtenus à l’aide de l’algorithme de recherche de la surface du traducteur, nous construisons des interpolateurs selon la méthode d’interpolation polynomiale présentée dans le chapitre4. Pour pouvoir être utilisés dans le processus de constitution des réponses impulsionnelles détaillé dans le chapitre5, ces interpo-lateurs doivent approcher efficacement les valeurs des grandeurs de rayons.

6.2.1 Critère de précision

Une première étape consiste à définir un seuil d’acceptabilité en matière de pré-cision permettant de décider de la qualité des interpolateurs d’un pinceau. Pour que l’erreur d’interpolation n’ait pas d’effet sur la qualité de la constitution de la réponse impulsionnelle, l’erreur commise en termes de temps de vol doit être inférieure au temps d’un échantillon temporel :

δt < 1

fech

1. En pratique, nous avons fixé ce nombre à 50 000, qui est une limite suffisamment large pour les configurations que nous avons testées.

avec fechla fréquence d’échantillonnage du signal produit. On peut relier l’erreur de temps à l’erreur de position à l’aide de la lenteur s :

δt ≈ sδx

Soit :

δx < 1

s. fech

6.2.2 Test de précision d’un pinceau

Suivant ce critère, un test de validité des fonctions d’interpolation d’un pinceau consiste à choisir une direction d incluse dans le pinceau et à vérifier l’interpolation

sur cette direction :

1. Lancer du rayon ultrasonore selon la direction d depuis le point d’origine du

pinceau.

2. Interpolation selon cette direction de la position finale d’arrivée du rayon à l’aide de l’interpolateur de position du pinceau.

3. Comparaison de la distance entre l’estimation et la valeur obtenue par lancer de rayons avec le plafond d’erreur défini précédemment.

Si l’erreur commise par l’interpolation est inférieure au plafond, on peut estimer que l’interpolation respecte le critère de précision. Nous rappelons la majoration d’erreur proposée pour l’interpolation d’Hermite en section4.4.3:

∀t ∈ I, |f (t) − P(t)| ≤ max t∈I |f(n+2)(t)| (n + 1)! n ! i=1 (t − xi)2

Bien qu’il ne soit pas possible de choisir a priori l’échantillon produisant l’erreur maximale sur le domaine d’interpolation, sachant que les interpolateurs que nous construisons utilisent les valeurs 0 et 1 pour les valeurs de(xi)1≤i≤net(yi)1≤i≤n, la majoration d’erreur la moins stricte a lieu sur l’échantillon maximisant la fonction :

(t, u) → t4(1 − t)4u4(1 − u)4

Le couple de valeurs(1/2,1/2) vérifie cette condition. Ainsi, en effectuant l’échan-tillonnage sur ce couple de valeurs, nous faisons le choix de la majoration la moins stricte sur l’ensemble de l’espace d’interpolation.

Cela ne garantit néanmoins pas la stricte vérification du critère de précision sur l’ensemble du domaine d’interpolation. Une étude probabiliste pourrait nous per-mettre de mieux estimer l’efficacité de ce critère qui, dans le cadre de nos simulations, s’est avéré suffisant au vu de la régularité des fronts d’onde interpolés.

6.2.3 Application du test de précision

Ce test de précision est appliqué à chaque pinceau résultant de l’étape de re-cherche du traducteur. Les pinceaux utilisés lors de la constitution de réponse im-pulsionnelle vérifient la condition de précision. Ainsi, les pinceaux ne respectant pas cette condition ne peuvent directement servir à la suite des calculs.

Pour améliorer la qualité des interpolateurs, nous procédons à la subdivision systématique des pinceaux invalides et ce, jusqu’à n’obtenir que des pinceaux valides ou atteindre un niveau limite de subdivisions. Le processus appliqué utilise une file de pinceaux dans laquelle sont cumulés les pinceaux à contrôler et sont ajoutés les pinceaux issus de la subdivision des pinceaux invalides.

De cette façon, les pinceaux conservés vérifient tous le critère de précision et peuvent être utilisés pour la constitution de réponse impulsionnelle. Ils sont donc ajoutés à une liste qui est la donnée d’entrée de l’algorithme présenté dans le cha-pitre5.

6.2.4 Subdivision informée

Lors de la subdivision des pinceaux invalides, nous pouvons profiter des interpo-lateurs de position pour effectuer une subdivision plus efficace du pinceau. En effet, la subdivision en deux ou quatre sous pinceaux égaux au niveau des directions de départ ne garantit pas l’équivalence des pinceaux à l’arrivée.

En utilisant l’interpolateur de positions, on peut estimer les directions de départ de rayons permettant une subdivision équitable du pinceau à l’arrivée. Il suffit pour cela d’effectuer une inversion d’interpolation pour la position centrale du pinceau à l’arrivée en suivant la même méthode que celle utilisée en section5.3pour l’algo-rithme de constitution de réponse impulsionnelle.

Cela permet d’éviter des subdivisions trop nombreuses autour de zones géomé-triques saillantes causant une variation brutale des directions des rayons, comme dans l’exemple en figure6.6. Puisque cette approche est dépendante de la validité de l’interpolation, elle ne peut être utilisée lorsque le polynôme interpolateur des positions d’arrivée est mal conditionné ou commet des erreurs trop importantes.

Ainsi, la subdivision par inversion d’interpolation n’est utilisée que lorsque l’er-reur commise par le polynôme est inférieure à une valeur inférieure à une fraction de sa taille d’arrivée (cette valeur a été fixée à1/2de la taille du pinceau après des tests pratiques).

6.3 Conclusions et perspectives

L’algorithme de recherche de surface que nous avons développé et utilisé dans le cadre des simulations de champ ultrasonore permet en pratique d’obtenir une couverture de la surface du traducteur dans la majorité des configurations que nous avons testées.

Associé aux méthodes d’interpolation développées dans le chapitre4, il utilise un mécanisme de subdivision informée des pinceaux de rayons permettant une conver-gence rapide autour de la surface du traducteur à partir d’un ensemble de pinceaux de départ couvrant la sphère unité. De plus, au cours du processus de subdivision, la précision des interpolateurs des pinceaux est vérifiée de manière à respecter une erreur en interpolation de temps de vol inférieure à un échantillon temporel et donc inobservable en pratique.

Cependant, le mécanisme de subdivision de pinceaux sur lequel il est fondé se base lui-même sur une hypothèse implicite de continuité des surfaces géométriques intersectées. Par son utilisation d’interpolateurs d’Hermite pour la subdivision des pinceaux ayant atteint le plan du traducteur, il s’avère d’autant plus efficace que la géométrie est lisse.

Figure 6.6 – Biais d’estimation de la subdivision en division régulière de pinceaux, causant de nombreuses subdivisions successives

Nous avons pu constater que l’algorithme a plus de difficultés à converger au-tour de la zone de visibilité de la surface du traducteur sur des maillages bruités. En particulier, il s’avère très sensible aux variations de normales. Ces cas représentent une limite intrinsèque de notre modèle de pinceaux : lorsque l’hypothèse de conti-nuité de la dérivée n’est pas vérifiée, les interpolateurs échouent à convenablement approximer les pinceaux.

Notons par ailleurs que notre algorithme a peu de chances de réussir à détecter de petites discontinuités présentes sur un maillage puisqu’il exploite une approche purement basée sur du lancer de rayons. L’utilisation de méthodes d’intersection volumique des pinceaux avec la géométrie de la pièce pourrait corriger ce problème.

Enfin, le test de précision des interpolateurs des pinceaux, même s’il s’avère effi-cace dans de nombreux cas, ne garantit pas une majoration de l’erreur d’estimation des temps de vol et positions d’arrivée des rayons sur l’ensemble du domaine d’in-terpolation. Une étude probabiliste du problème pourrait permettre de déterminer si l’approche que nous avons choisie peut théoriquement être améliorée.

CHAPITRE

7