• Aucun résultat trouvé

Lancer de rayons ultrasonores

3.2 Modèle de rayons ultrasonores

t

Figure 3.11 – Calcul des réponses impulsionnelles élémentaires

Pour un traducteur multiéléments, on procède de la même manière en calculant l’ensemble des réponses impulsionnelles élémentaires associées à un découpage de chaque élément. Avant d’en effectuer la sommation, les lois de retard et d’amplitude sont appliquées conformément à leur définition pour chaque élément du traducteur. Pour calculer la réponse impulsionnelle élémentaire induite par un élément du découpage du traducteur sur le point de champ considéré, il est nécessaire de con-naître à la fois l’amplitude et l’instant d’arrivée d’une perturbation unitaire après propagation. Pour ce faire, nous utilisons des rayons d’onde ultrasonore échantillon-nant le front d’onde.

3.2 Modèle de rayons ultrasonores

Cette section a pour premier objectif de préciser le modèle de lancer de rayons ultrasonores en explicitant les grandeurs calculées pour un rayon. Puis, nous y in-diquons les informations sur les milieux de propagation nécessaires à la simulation. Nous détaillons ensuite le procédé de lancer de rayons ultrasonores dans des milieux homogènes et hétérogènes avant d’aborder les questions de précision et de perfor-mance de l’implémentation réalisée.

La figure3.12schématise la propagation d’un rayon ultrasonore dans une pièce comportant trois milieux. Comme cela a été vu en section2.3, une même onde peut donner naissance à plusieurs ondes de modes de polarisation différents à une in-terface. Ainsi, le suivi d’un rayon ultrasonore est en fait l’exploration d’un arbre de rayons. Nous nous intéressons dans cette section au suivi d’une branche de l’arbre, caractérisée par la séquence de modes de polarisation qui lui est associée.

Figure 3.12 – Suivi de rayons ultrasonores

3.2.1 Rayon ultrasonore

〈RayonUS〉 struct RayonUS { 〈Données de RayonUS 75 };

Un rayon est tout d’abord un objet géométrique défini par un point d’origine dans l’espace et par une direction. Cette direction est donnée par la direction d’énergie de l’onde ultrasonore. En milieux isotropes, elle est identique à la direction de phase. Comme vu en section2.2.1, en milieux anisotropes, ces deux directions sont diffé-rentes.

Afin d’éviter des calculs redondants et puisque les directions de phase et d’énergie sont abondamment utilisées lors des calculs de rayons ultrasonores, nous choisissons des les conserver en mémoire.

En général, lorsque l’on instancie un rayon, la donnée d’entrée est la direction de phase. En effet, même s’il est possible de calculer numériquement les directions de phase associées à une direction d’énergie en utilisant par exemple la méthode proposée parVavryˇcuk(2006), le résultat n’est pas unique. Géométriquement, cela revient à chercher, pour une direction d donnée, l’ensemble des points d’une surface

de lenteur tels que la normale en ces points égale d.

〈Données de RayonUS〉

Vecteur3D origine; Vecteur3D 21

Vecteur3D directionPhase; Vecteur3D directionÉnergie;

Par ailleurs, il peut être utile de filtrer les intersections du rayon géométrique à l’aide de bornes de distance d’intersection. On spécifie donc des distances mini-male et maximini-male d’intersection. En général, la distance minimini-male est spécifiée à un seuil faible (typiquement 10−4pour des flottants en simple précision) visant à éviter les auto-intersections de primitives dues à un défaut de précision de la position du point d’origine. La distance maximale est, dans la suite, toujours spécifiée à la valeur maximale possible selon le type de flottants utilisé.

〈Données de RayonUS〉+≡ float distanceMin; float distanceMax; 〈Limites de rayon〉 rayon.distanceMin = 10−4; rayon.distanceMax = ;

Pour calculer le temps mis par une onde pour aller d’un point à un autre, ce qui est indispensable pour la reconstitution des réponses impulsionnelles élémentaires, il est nécessaire de disposer de la lenteur de propagation de l’onde.

En choisissant de stocker la lenteur s plutôt que la vitesse v, le temps de vol t d’un rayon ayant parcouru une distance d se calcule de la sorte :

t= sd

Avec la vitesse :

t= d

v

Les deux approches étant sensiblement équivalentes du point de vue des résultats, nous choisissons de stocker la lenteur plutôt que la vitesse pour éviter d’utiliser des divisions.

〈Données de RayonUS〉+≡ float lenteur;

De plus, des informations sur la polarisation sont nécessaires pour reproduire le déplacement induit par l’onde simulée en un point de l’espace. Enfin, pour pouvoir appliquer un filtrage des ondes par mode, on choisit d’identifier le mode de polarisa-tion (L, T , qL, qT 1 ou qT 2) pour chaque rayon ultrasonore.

〈Données de RayonUS〉+≡ Mode mode; Vecteur3D polarisation; Vecteur3D 21 〈Mode〉 enum Mode { 〈ModeIsotrope 76 〈ModeAnisotrope 76 }; 〈ModeIsotrope〉 Mode_L, Mode_T, 〈ModeAnisotrope〉 Mode_qL, Mode_qT1, Mode_qT2

3.2.2 Milieux de propagation

〈Milieu〉

class Milieu {

〈Données de Milieu 77 〈Méthodes de Milieu

}

La définition d’un milieu de propagation doit permettre, pour une direction de propagation et un mode donnés, de déduire l’ensemble des caractéristiques d’un rayon ultrasonore.

〈Méthodes de Milieu〉+≡

virtual RayonUS propagation(Vecteur3D origine, RayonUS 75

Vecteur3D direction, Vecteur3D 21

Mode modePropagé) = 0; Mode 76

De même, elle doit permettre simultanément la résolution de l’équation de Snell-Descartes et de l’équation de propagation, développée en section2.3.

〈Méthodes de Milieu〉+≡

virtual RayonUS interaction(RayonUS rayonIncident, RayonUS 75

Vecteur3D normale, Vecteur3D 21

Mode modeGénéré) = 0; Mode 76

Par ailleurs, comme présenté en annexeD, quel que soit le type de milieu consi-déré, afin de résoudre la condition d’égalité des contraintes à une interface et calculer les coefficients de Fresnel, il est nécessaire de disposer de la densitéρ (en kg.m−3) de chaque matériau modélisé.

〈Données de Milieu〉

float densité; Milieu 77

Milieu isotrope 〈MilieuIsotrope〉

class MilieuIsotrope: public Milieu { Milieu 77

〈Données de MilieuIsotrope 77

〈Méthode de propagation en milieu isotrope 78 〈Méthode d’interaction en milieu isotrope 86

}

Puisque les ondes d’un mode donné se propagent toujours à la même vitesse dans un milieu isotrope, il suffit d’inclure les lenteurs de propagation des ondes L et T . Dans les milieux isotropes liquides, la lenteur des ondes L suffit puisque les ondes T ne peuvent pas se propager.

〈Données de MilieuIsotrope〉

float lenteurL; float lenteurT;

Milieu anisotrope 〈MilieuAnisotrope〉

class MilieuAnisotrope: public Milieu { Milieu 77

〈Données de MilieuAnisotrope 78

〈Méthode de propagation en milieu anisotrope 〈Méthode d’interaction en milieu anisotrope

}

Comme cela a été détaillé en section 2.2.3, le calcul des grandeurs caractéris-tiques d’une onde ultrasonore se propageant dans un milieu anisotrope nécessite la matrice de ChristoffelΓ . Pour une direction donnée, celle-ci est calculée à l’aide

du tenseur des constantes élastiques. Il caractérise le comportement mécanique du matériau dans une approximation de petits déplacements.

Ainsi, en plus de comporter la densitéρ du matériau, notre représentation d’un

milieu anisotrope doit comporter ce tenseur. 〈Données de MilieuAnisotrope〉

float tenseurConstantesÉlastiques[21];