MAP 431
Contrˆ ole non destructif et imagerie par ultrason dans les guides d’ondes
E. Lun´eville
eric.luneville@ensta.fr
2012
L’utilisation des ondes pour inspecter des structures, d´etecter des objets, qualifier des milieux n’est pas nouvelle (radiographie, radar, sonar, ´echographie, tomographie, ...). Bien ´evidemment ces techniques ne sont pas destructives. Aujourd’hui on cherche `a les g´en´eraliser `a des structures de plus en plus complexes pour d´etecter des d´efauts soit lors d’un processus industriel (contrˆole de qualit´e) soit lors d’un contrˆole de s´ecurit´e (d´etection de fissures dans les cuves de centrale nucl´eaire, de d´elaminage dans les composites dont sont faites les ailes d’avions, ...). Le contrˆole non destructif vise `a d´efinir une proc´edure, si possible rapide et tr`es fiable, permettant de d´etecter la pr´esence de certains types de d´efauts sans forc´ement les quantifier.
Il s’agit donc de mettre au point les param`etres d’une exp´erimentation en utilisant des outils de simulation num´erique. Plus ambitieux mais plus difficile `a mettre au point et plus coˆuteuse, l’imagerie vise `a fournir une repr´esentation plus pr´ecise du d´efaut.
Dans ce projet, nous allons nous int´eresser `a la situation des guides d’ondes qui pr´esentent quelques par- ticularit´es : propagation sur de longues distances d’ondes privil´egi´ees (modes) mais en quantit´e limit´ee. A titre d’exemple, citons la d´etection par ultrason de d´efauts dans des structures inaccessibles (cables enterr´es, pipeline enterr´e, tuyauterie dans des zones irradi´ees). Rappelons que les ultrasons sont des ondes acoustiques dans l’air et des ondes ´elastodynamiques dans des milieux ´elastiques. Pour simplifier ce projet, nous nous placerons dans le cadre des ´equations de l’acoustique.
1 Propagation dans les guides d’ondes
On consid`ere le probl`eme de propagation acoustique en r´egime harmonique (d´ependance ene−iωt) dans un guide d’onde (2D) W = ]−∞,∞[×]0, h[ :
4u+k02u= 0 sur W
∂nu= 0 sur ∂W
o`uk0=ω/c0 (c0 c´el´erit´e du son dans le milieu homog`ene),u repr´esente la pression accoustique.
Ce probl`eme admet des solutions particuli`eres, appel´ees modes guid´es,∀n≥0:
Φ±n(x, y) =ancos(nπ
h y)e±iβnx avec βn=
r
k02−nπ h
2
(Re(βn)≥0 et Im(βn)≥0).
Lorsque n≤ k0πh (βn r´eel),Φ+n (resp. Φ−n) est un mode propagatif suivant lesx >0 (resp.x <0) et lorsque n > k0πh (βn imaginaire pur), Φ+n (resp. Φ−n) est un mode, dit ´evanescent, exponentiellement d´ecroissant suivant les x >0 (resp.x <0). an est un coefficient complexe non nul arbitraire. On le choisit de telle sorte que les fonctions
cn(y) =ancos(nπ h y) soient normalis´ees dans L2(]0, h[) :
kcnkL2(]0,h[) = 1.
On s’int´eresse maintenant au probl`eme de la diffraction d’un mode propagatif (Φ±n) par un d´efaut localis´e que l’on va mod´eliser par une perturbation du nombre d’onde :
k(x, y) =k0(1 +η(x, y))
o`uη est une fonction L∞ `a support compact dans ]−a, a[×]0, h[ (a >0); le support repr´esente la position du d´efaut. Par la suite, on notera Γ le bord du d´efaut.
Le champ acoustique correspondant u±n v´erifie les ´equations suivantes (ν normale sortante):
4u±n +k2(x, y)u±n = 0 dans W
∂νu±n = 0 sur ∂W [u±n] = [∂νu±n] = 0 sur Γ u±n −Φ±n =X
n≥0
µnΦ+n x > a u±n −Φ±n =X
n≥0
νnΦ−n x <−a
La troisi`eme relation traduit les conditions de transmission `a l’interface entre les deux milieux (raccord de la pression et de la vitesse normale) et les deux derni`eres conditions expriment que le champ diffract´e (champ total - champ incident) est un champ se d´ecomposant sur les modes ”sortants”. Il ne revient pas des ondes de l’infini !
Remarque 1 Ce mod`ele peut ˆetre justifier par le principe d’absorption limite, qui consiste `a ajouter une partie imaginaire positive au nombre d’onde (amortissement), `a chercher une solution dans H1(W) (il en existe une et une seule), puis `a consid´erer la solution limite lorsque cette partie imaginaire tend vers 0.
2 Mod` ele 1D
Lorsque le nombre d’onde ou la hauteur est petit (kh < π) il n’y a qu’un seul mode propagatif Φ±0(x, y) = a0e±ik0x. On est alors proche de la solution monodimensionnelle (k(x) =k0(1 +γ(x)):
(u±)00+k2(x)u±= 0 dansR [u±] = [∂xu±] = 0 en x=±a u±=e±ik0x+µeik0x x > a u±=e±ik0x+νe−ik0x x <−a
Remarque 2 Lorsqueη est seulement une fonction dex `a support dans ]−a, a[, on retrouve ce mod`ele en consid´erant la moyenne du champ u sur la hauteur.
Les conditions `a l’infini peuvent ˆetre remplac´ees par les conditions locales suivantes (b > a) : ∂xu+ =ik0u+ enx=b
∂xu+ =−ik0u++ 2ik0e−ik0b enx=−b
et
∂xu−=ik0u−−2ik0e−ik0b enx=b
∂xu−=−ik0u− enx=−b . Conservation d’´energie
En multipliant l’´equation constitutive paru et en int´egrant sur l’intervalle ]−b, b[ on montre que
|u+(b)|2+|u+(−b)−e−ikb|2= 1,
|u−(−b)|2+|u−(b)−e−ikb|2= 1,
o`u |u+(b)|2 (resp. |u−(−b)|2) repr´esente le coefficient de transmission et |u+(−b)−e−ikb|2 (resp. |u−(b)− e−ikb|2) le coefficient de transmission.
Sch´ema aux diff´erences finies
Pour r´esoudre les probl`emes 1D pr´ec´edents, on propose d’utiliser le sch´ema aux diff´erences finies suivant sur la grille r´eguli`ere xj =−b+ (j−1)∆x, j = 1, N, ∆x = N−12b , uj d´esignant une approximation de u `a l’abcisse xj :
u+j+1+u+j−1−2u+j
∆x2 +k2(xj)u+j = 0 j= 2, N u+2 −u+1
∆x +ik0u+1 + ∆x
2 k02u+1 = 2ik0e−ik0b j= 1 u+N−1−u+N
∆x +ik0u−N +∆x
2 k02u+N = 0 j=N et
u−j+1+u−j−1−2u−j
∆x2 +k2(xj)u−j = 0 j= 2, N u−2 −u−1
∆x +ik0u−1 +∆x
2 k20u−1 = 0 j= 1 u−N−1−u−N
∆x +ik0u−N+ ∆x
2 k02u−N = 2ik0e−ik0b j=N .
Remarque 3 Dans l’approximation des conditions aux limites, on a introduit un terme de correction (∆2xk20u±1) afin de rendre le sch´ema d’ordre 2. Sans cette correction il serait seulement d’ordre 1 !
Ces sch´emas se mettent sous la forme de syst`eme lin´eaires d’ordreN : AU+=F+ etAU−=F−, avec F+= (2ik0e−ik0b,0, ...,0)t etF+= (0, ...,0,2ik0e−ik0b)t.
Programmation Scilab
Ecrire une fonction Scilab qui `a partir des donn´ees (k0,b,N) et de la fonction γ construit la matriceA, les vecteurs second membre F±. R´esoudre les syst`emes lin´eaires et repr´esenter les solutionsU± obtenues.
Pour valider le code de calcul, on commencera par tester le casγ = 0 qui conduit aux solution u±=e±ik0x. On tracera (en ´echelle logarithmique) la courbe d’erreur L2 en fonction du pas de discr´etisation ∆x. Une approximation de l’erreur L2 est donn´ee par
|v|L2 = s
∆x X
j=1,N
vj2.
On en profitera pour analyser la fa¸con de choisir le param`etre de discr´etisation N en fonction du nombre d’onde k0.
Dans un deuxi`eme temps, on repr´esentera la variation des coefficients de transmission et de r´eflexion en fonction de l’amplitude η de la perturbationγ(x) =ηχ]−a,a[(prendre k0 = 4,b= 2,a= 0.5,η ∈[−0.1,2]).
3 Mod` ele 2D
On s’int´eresse dor´enavant au cas d’un guide 2D. On note par la suiteO le d´efaut de bord Γ.
Perfectly Matched Layer (PML)
Afin de prendre en compte les conditions de rayonnement, nous proposons d’utiliser des couches parfaitement absorbantes dites PML qui pr´esentent la particularit´e d’absorber les modes sortants sans g´en´erer de modes r´efl´echis (couche absorbante adapt´ee). Soitα∈Cet la fonctionαequi vaut 1 pour|x|< aetαpour|x|> a.
On consid`ere le probl`eme pos´e en champ diffract´e (ν= (νx, νy) normale sortante) :
αe ∂
∂x
αe∂evn±
∂x
+∂2ev±n
∂y2 +k2(x, y)ev±n = (k20−k2(x, y))Φ±n dans Ωb =]−b, b[×]0, h[
∂νven±= 0 sur y= 0 ety=h, |x|< a
α2∂xevn±νx+∂yven±νy = 0 sur y= 0 ety=h, |x|> a
∂xven±= 0 sur x=−b etx=b
[ven±] = [∂νev±n] = 0 sur Γ
[ven±] = [α∂e xev±n] = 0 sur x=−a etx=a.
Montrer qu’une formulation variationnelle de ce probl`eme est :
trouverevn±∈H1(Ωb) tel que ∀v∈H1(Ωb) Z
Ωb
α∂e xevn±∂xv+ Z
Ωb
1
αe∂yevn±∂yv− Z
Ωb
k2(x, y)
αe evn±v=− Z
O
(k02−k2(x, y))Φ±nv (1) Le champ total est alors donn´e par ue±n = ev±n + Φ±n. On peut d´emontrer (ce n’est pas demand´e ici) les propri´et´es suivantes :
• D`es queRe(α)>0, la formulation (1) rel`eve de l’alternative de Fredholm et admet une unique solution hormis un nombre au plus d´enombrable de fr´equencek0.
• Les constantes de propagation associ´ees aux modes de la couches PML sont donn´ees par βn,α = βαn.
• Lorsque b→+∞ ue±n converge (localement dansH1) vers u±n.
La seconde propri´et´e fournit la fa¸con dont il faut choisir le nombre complexe α afin que la couche soit absorbante. En effet, on a
Im(βn,α) = Re(α)Im(βn)−Im(α)Re(βn)
|α|2 .
Par cons´equent, siRe(α)<0 etIm(α)<0 les modes se propageant dans la direction desx >0 (Re(βn)≥0 et Im(βn)≥0) se transforment en modes d´ecroissant exponentiellement dans la direction des x >0 et les modes se propageant dans la direction des x < 0 (Re(βn) ≤ 0 et Im(βn) ≤ 0) se transforment en modes d´ecroissant exponentiellement dans la direction desx <0.
R´esolution par ´el´ements finis - freefem++
Il s’agit maintenant de r´esoudre le probl`eme variationnel (1) `a l’aide de FreeFEM++ en utilisant des ´el´ements finis de Lagrange d’ordre 2 (P2). Pour ce faire :
• on d´efinira un maillage `a partir des fronti`eres (border) des rectangles ]−b,−a[×]0, h[, ]−a, a[×]0, h[
et ]a, b[×]0, h[ ainsi que du d´efaut (prendre un disque de centre (x0, y0) et de rayonRdans un premier temps). Attention `a bien identifier `a l’aide de la m´ethoderegion les diff´erentes r´egions (zones PML gauche et droite, zone du d´efaut) ainsi que les fronti`eres int´erieures −a×]0, h[ et a×]0, h[ (utiliser un label dansborder).
• on d´efinira la forme bilin´eaire du probl`eme comme un objetvarfagissant sur des ´el´ements complexes de l’espace ´el´ements finis (par exemple Vh<complex> u,v et on l’associera `a une matrice complexe (matrix<complex>) avec l’option UMFPACK comme solveur.
• On calculera le second membre du probl`eme `a l’aide d’une int´egrale 2D sur la r´egion d´efinissant le d´efaut.
• Enfin on utilisera l’op´erareur ^-1pour r´esoudre le syst`eme lin´eaire.
Dans un premier temps, on r´esoudra le probl`eme pour un mode propagatif incident Φ±n et on dessinera la solution; seule la partie dans le domaine ]−a, a[×]0, h[ est pertinente ! Afin de valider la solution, on pourra observer deux ph´enom`enes : lorsque la taille du d´efaut devient petite la solution doit tendre vers 0 et la solution dans la zone pertinente doit ˆetre quasiment ind´ependante de la position des fronti`eres PML
−a×]0, h[ eta×]0, h[.
Exemple de param`etres : guide de hauteurh = 1, taille du domaine de calculb = 1, abcisse des fronti`eres PML a= 0.5, d´efaut circulaire centr´e en (0,0.15) de rayon 0.05, nombre d’onde du guide k0 = 50 (16 modes propagatifs) et dans le d´efautk1= 60, param`etre de PML α= 0.5−0.5i.
Calcul des coefficients de diffraction
Les coefficients de diffraction sont les composantes sur la base modale des champs diffract´es. En d’autres termes, on les d´efinit de la fa¸con suivante
(Sm+)+n =a Z h
0
vm+(a, y)cn(y)dy (Sm+)−n =a
Z h 0
vm+(−a, y)cn(y)dy (Sm−)+n =a
Z h 0
vm−(a, y)cn(y)dy (Sm−)−n =a
Z h 0
vm−(−a, y)cn(y)dy
On adaptera le code FreeFem++ pour qu’il r´ealise une boucle afin de calculer tous les coefficients de diffraction (Sm±)±n pour n, m= 0, ..., N o`uN est le nombre de modes quid´es. Ces coefficients seront stock´es sous une forme matricielle dans des fichiers, par exemple spp.dat,spm.dat,smp.dat,smm.dat. Attention, les coefficients de diffraction sont complexes, les stocker comme deux r´eels.
4 Imagerie par m´ ethode LSM
Cette derni`ere partie est consacr´ee `a la reconstruction de l’image du d´efaut par une m´ethode appel´ee Linear Sampling Method. Elle n’exploite que les matrices des coefficients de diffraction. Il serait trop long de la justifier ici et nous renvoyons `a [1] pour ceux que cela int´eresse. En pratique, pour tout point (x, y) de la zone d’inspection, on introduit le syst`eme lin´eaire d’inconnueh= ((h−n)n=0,N,(h+n−)n=0,N) :
∀m≤N,
X
n≤N
eiβna
iβn (Sn+)−mh−n + (Sn−)−mh+n
= eiβm(a+x) iβm cm(y) X
n≤N
eiβna iβn
(Sn+)+mh−n + (Sn−)+mh+n
= eiβm(a−x) iβm
cm(y).
(2)
On montre que lorsque le point d’´echantillonnage (x, y) se situe `a l’ext´erieur du d´efaut, la norme L2 de la solution h est tr`es grande. Ainsi en repr´esentant −log(||h||2L) pour diff´erents points d’´echantillonnage on reconstruit une image du guide dans lequel le d´efaut ”apparaˆıt”.
On ´ecrira en Scilab, un script qui `a partir des matrices de diffraction r´esout le syt`eme pr´ec´edent pour des points situ´es sur une grille r´eguli`ere (meshgrid) et repr´esente−log(||h||L2)(utiliser la fonction surf).
Exemple de reconstruction : guide de hauteurh= 1, taille du domaine de calculb= 1, abcisse des fronti`eres PML a= 0.5, d´efaut circulaire centr´e en (0,0.15) de rayon 0.05, nombre d’onde du guide k0 = 50 (16 modes propagatifs) et dans le d´efautk1= 60, param`etre de PML α= 0.5−0.5i.
Par la suite on pourra tester diff´erentes configurations, diminuer ou augmenter la fr´equence, consid´erer plusieurs d´efauts circulaires ou des d´efauts de formes diff´erentes.
References
[1] L. Bourgeois, E. Lun´eville, The Linear Sampling Method in a waveguide : a modal formulation, Inverse Problems, vol. 24, pp. 015018, 2008
5 Correction
Mod`ele 1D code Scilab
Calcul de la matrice et des seconds membres du syst`eme lin´eaire function [ A, Fp ,Fm]= guide1D ( b , k0 ,N)
dx=2∗b / (N−1 ) ; x j=−b : dx : b ; A=−2∗speye(N,N ) ;
f o r j =1:N−1 do A( j +1 , j ) = 1 . ; A( j , j +1)=1.;
end
k2=(dx∗k0∗(1+gamma( x j ) ) ) . ˆ 2 f o r j =1:N−1 do
A( j , j )=A( j , j )+k2 ( j ) ; end
A( 1 , 1 ) = %i∗k0∗dx+k0∗k0∗dx∗dx /2−1;
A( 1 , 2 ) = 1 ;
A(N,N)=%i∗k0∗dx+k0∗k0∗dx∗dx /2−1;
A(N, N−1)=1;
Fp=zeros(N , 1 ) ; Fp(1)=2∗dx∗%i∗k0∗exp(−%i∗k0∗b ) ; Fm=zeros(N , 1 ) ; Fm(N)=−2∗dx∗%i∗k0∗exp(−%i∗k0∗b ) ; endfunction
Fonction γ
function y=gamma( x ) y=e t a∗( x<a & x>−a ) ; endfunction
Calcul de l’erreur L2 (γ = 0) i =0;b=2; k0 =2; e t a =0; a = 0 . 5 ; f o r N= 1 0 : 1 0 : 5 0 0 do
[ A, Fp ,Fm]= guide1D ( b , k0 ,N ) ; up=umfpack (A, ”\” , Fp ) ;
i=i +1;
h ( i )=2∗b / (N−1 ) ; x=−b : h ( i ) : b ;
e r=abs ( up−exp ( %i∗k0∗x ’ ) ) ; erL2 ( i )= s q r t ( h ( i ) )∗norm ( e r ) ; end
c l f
p l o t ( l o g ( h ) , l o g ( erL2 ) ) ;
Evolution des coefficients de transmission et de r´eflexion pour une perturbation homg`eneγ(x) =ηχ]−0.5,0.5[
c l e a r;
exec( ’ guide1D . s c i ’ ) ; exec( ’gamma . s c i ’ ) ; b=2;N=400; k0 =4; i =0;
f o r e t a =−0 . 9 : 0 . 0 1 : 2
[ A, Fp ,Fm]= guide1D ( b , k0 ,N ) ; up=umfpack (A, ”\” , Fp ) ;
i=i +1;
e t a s ( i )= e t a ;
rp ( i )= abs ( up(1)−exp(−%i∗k0∗b ) ) ˆ 2 ; tp ( i )= abs ( up (N) ) ˆ 2 ;
end
Figure 1: ErreurL2 en fonction du pas (´echelle logarithmique)
Figure 2: Evolution du coefficient de r´eflexion (rouge) et du coefficient de transmission (bleu) en fonction de l’amplitude η de la perturbation
f i g u r e ( ” BackgroundColor ” , [ 1 1 1 ] ) p l o t ( e t a s , tp , ’ red ’ ) ;
p l o t ( e t a s , rp ) ;
Mod`ele 2D
Calcul des matrices de diffraction `a l’aide de FreeFem++
// m a i l l a g e
r e a l a = 0 . 5 , b = 1 . 5 , h=1 , r = 0 . 0 5 , x0 =0 , y0 = 0 . 1 5 ; b o r d e r B1 ( t=−b,−a ){x=t ; y =0;}
b o r d e r B2 ( t=−a , a ) {x=t ; y =0;}
b o r d e r B3 ( t=a , b ) {x=t ; y =0;}
b o r d e r B4 ( t =0 ,h ) {x=b ; y=t ;} b o r d e r B5 ( t=b , a ) {x=t ; y=h ;} b o r d e r B6 ( t=a ,−a ) {x=t ; y=h ;} b o r d e r B7 ( t=−a ,−b ){x=t ; y=h ;} b o r d e r B8 ( t=h , 0 ) {x=−b ; y=t ;}
b o r d e r B9 ( t =0 ,h ) {x=−a ; y=t ; l a b e l =1;}
b o r d e r B10 ( t=h , 0 ) {x=a ; y=t ; l a b e l =2;}
b o r d e r B11 ( t =0 ,2∗p i ){x=x0+r∗cos( t ) ; y=y0+r∗s i n( t ) ;}
i n t n=40 , p=b−a , q=2∗a ;
mesh Th=b u i l d m e s h ( B1 ( p∗n)+B2 ( q∗n)+B3 ( p∗n)+B4 ( n)+B5 ( p∗n)+B6 ( q∗n)+B7 ( p∗n)+B8 ( n)+B9 ( n)+B10 ( n)+B11 ( 2∗n ) ) ; plot(Th , w a i t=t r u e ) ;
cout<<” l i s t e d e s r e g i o n s ”<<e n d l ;
cout<< ” m a t e r i a u : ” << Th( a−0 . 0 1 , 0 . 0 1 ) . r e g i o n << e n d l ; cout<< ” o b s t a c l e : ” << Th( x0 , y0 ) . r e g i o n << e n d l ;
cout<< ”PML+ : ” << Th ( ( a+b ) / 2 , h / 2 ) . r e g i o n << e n d l ; cout<< ”PML− : ” << Th(−( a+b ) / 2 , h / 2 ) . r e g i o n << e n d l ; f e s p a c e Vh(Th , P2 ) ; // d e f i n i t i o n de l ’ e s p a c e
Vh<complex> u , v ; // d e f i n i t i o n de l ’ i n c o n n u e e t de l a f o n c t i o n t e s t
// d ´e f i n i t i o n d e s c o n s t a n t e s du p r o b l`e m e complex a l p h a =0.5∗(1−1 i ) ;
r e a l k0 =50 , k1 =60;
// modes p r o p a g a t i f s i n t np=k0∗h/ p i ;
cout<<” nombre de modes p r o p a g a t i f s = ”<<np+1<<e n d l ; cout<<” V a l e u r s d e s b e t a s : ” ;
r e a l[i n t] b e t a s ( np +1) , a s ( np + 1 ) ; f o r (i n t m=0;m<=np ;m++)
{
a s [m]=sqrt( 2 / h ) ;
b e t a s [m]=sqrt( k0 ˆ2−(m∗p i /h ) ˆ 2 ) ; }
a s [ 0 ] =sqrt( 1 / h ) ;
// d ´e f i n i t i o n de l a forme b i l i n ´e a i r e v a r f b f ( u , v)=
int2d(Th , 5 ) ( dx ( u )∗dx ( v)+dy ( u )∗dy ( v)−k0 ˆ2∗u∗v ) +int2d(Th , 0 ) ( dx ( u )∗dx ( v)+dy ( u )∗dy ( v)−k1 ˆ2∗u∗v )
+int2d(Th , 1 ) ( a l p h a∗dx ( u )∗dx ( v)+dy ( u )∗dy ( v ) / alpha−k0 ˆ2/ a l p h a∗u∗v ) +int2d(Th , 2 ) ( a l p h a∗dx ( u )∗dx ( v)+dy ( u )∗dy ( v ) / alpha−k0 ˆ2/ a l p h a∗u∗v ) ; matrix<complex> A=b f (Vh , Vh , s o l v e r=UMFPACK) ;
i n t n b i =100;
r e a l vmin =−0.5 ,vmax = 0 . 5 ; r e a l[i n t] i s o v ( n b i ) ;
f o r(i n t c =0; c<n b i ; c++) i s o v ( c )=vmin+c∗( vmax−vmin ) / ( nbi−1 ) ; // b o u c l e s u r l e s modes p r o p a g a t i f s + e t −
complex [int,i n t] spp ( np+1 ,np +1) , spm ( np+1 ,np +1) , smp ( np+1 ,np +1) , smm( np+1 ,np + 1 ) ; f o r (i n t m=0;m<=np ;m++)
{
//mode +
f u n c p h i p=a s [m]∗cos(m∗p i∗y/h )∗exp( 1 i∗b e t a s [m]∗x ) ; v a r f l f p ( u , v)=int2d(Th , 0 ) ( ( k1ˆ2−k0 ˆ 2 )∗p h i p∗v ) ; complex [i n t] B=l f p ( 0 , Vh ) ; // s e c o n d membre u [ ] =Aˆ−1∗B ; // r ´e s o l u t i o n
f o r(i n t n=0;n<=np ; n++) // c o e f f i c i e n t s de d i f f r a c t i o n {
f u n c phinp=a s [ n ]∗cos( n∗p i∗y/h )∗exp( 1 i∗b e t a s [ n ]∗x ) ; spp (m, n)= i n t 1 d (Th , 2 ) ( phinp∗u ) ;
f u n c phinm=a s [ n ]∗cos( n∗p i∗y/h )∗exp(−1 i∗b e t a s [ n ]∗x ) ; spm (m, n)= i n t 1 d (Th , 1 ) ( phinm∗u ) ;
}
plot( u , f i l l =1 ,dim=2 , n b i s o=nbi , v i s o=i s o v ,cmm=”mode +”+m+” : champ d i f f r a c t e ” , v a l u e=t r u e , w a i t=t r u e ) ;
// modes −
f u n c phim=a s [m]∗cos(m∗p i∗y/h )∗exp(−1 i∗b e t a s [m]∗x ) ; v a r f l f m ( u , v)=int2d(Th , 0 ) ( ( k1ˆ2−k0 ˆ 2 )∗phim∗v ) ; B=l f m ( 0 , Vh ) ; // s e c o n d membre
u [ ] =Aˆ−1∗B ; // r ´e s o l u t i o n
f o r(i n t n=0;n<=np ; n++) // c o e f f i c i e n t s de d i f f r a c t i o n {
f u n c phinp=a s [ n ]∗cos( n∗p i∗y/h )∗exp( 1 i∗b e t a s [ n ]∗x ) ; smp (m, n)= i n t 1 d (Th , 2 ) ( phinp∗u ) ;
f u n c phinm=a s [ n ]∗cos( n∗p i∗y/h )∗exp(−1 i∗b e t a s [ n ]∗x ) ; smm(m, n)= i n t 1 d (Th , 1 ) ( phinm∗u ) ;
} }
// s a u v e g a r d e d e s m a t r i c e s de d i f f r a c t i o n {o f s t r e a m o s ( ”param . d a t ” ) ;
os<<k0<<” ”<<h<<” ”<<np+1<<e n d l ; }
{o f s t r e a m o s ( ” spp . d a t ” ) ; f o r(i n t m=0;m<=np ;m++) {
f o r(i n t n=0;n<=np ; n++) os<<r e a l( spp (m, n))<<” ”<<imag( spp (m, n))<<” ” ; os<<e n d l ;
} };
{o f s t r e a m o s ( ”spm . da t ” ) ; f o r(i n t m=0;m<=np ;m++) {
f o r(i n t n=0;n<=np ; n++) os<<r e a l( spm (m, n))<<” ”<<imag( spm (m, n))<<” ” ; os<<e n d l ;
} };
{o f s t r e a m o s ( ”smp . da t ” ) ; f o r(i n t m=0;m<=np ;m++) {
f o r(i n t n=0;n<=np ; n++) os<<r e a l( smp (m, n))<<” ”<<imag( smp (m, n))<<” ” ; os<<e n d l ;
} };
{o f s t r e a m o s ( ”smm . d a t ” ) ; f o r(i n t m=0;m<=np ;m++) {
f o r(i n t n=0;n<=np ; n++) os<<r e a l(smm(m, n))<<” ”<<imag(smm(m, n))<<” ” ; os<<e n d l ;
} };
Programme Scilab de reconstruction
// L i n e a r s a m p l i n g dans un g u i d e d ’ onde c l e a r;
// l e c t u r e d e s m a t r i c e s de d i f f r a c t i o n f=mopen( ”param . dat ’ , ’ r t ’ ) ;
[ n , k , h , np]= m f s c a n f ( f , ’ %g %d %i ’ ) ; m c l o s e ( f ) ;
Rpp=f s c a n f M a t ( ” spp . dat ’ ) ; Rpm=fscanfMat( ”spm . dat ’ ) ; Rmp=f s c a n f M a t ( ”smp . dat ’ ) ; Rmm=fscanfMat( ”smm . dat ’ ) ; Smm=z e r o s ( np , np ) ;
Spm=z e r o s ( np , np ) ; Smp=z e r o s ( np , np ) ; Spp=z e r o s ( np , np ) ;
f o r n=1: np do
Smm( : , n)=Rmm( : , 2∗n−1)+%i∗Rmm( : , 2∗n ) ; Spm ( : , n)=Rpm( : , 2∗n−1)+%i∗Rpm( : , 2∗n ) ; Smp ( : , n)=Rmp( : , 2∗n−1)+%i∗Rmp( : , 2∗n ) ; Spp ( : , n)=Rpp ( : , 2∗n−1)+%i∗Rpp ( : , 2∗n ) ;
Figure 3: Partie r´eelle du champ diffract´e pour le mode incident Φ+0 k0= 50,k1 = 60 (16 modes propagatifs) et pour un d´efaut circulaire centr´e en (0,0.15) et de rayon 0.05
end ,
// c a l c u l d e s beta m f o r m=1: np do
b e t a s (m)= s q r t ( k ˆ2−((m−1)∗%pi/h ) ˆ 2 ) ; a (m)= s q r t ( 2 / h ) ;
end
a (1)= s q r t ( 1 / h ) ;
// c a l c u l de l a m a t r i c e LSM s = 0 . 5 ;
L=z e r o s ( 2∗np , 2∗np ) ; f o r m=1: np do
f o r n=1: np do
e=exp ( %i∗b e t a s ( n )∗s ) / ( 2∗%i∗b e t a s ( n ) ) ; L (m, n)= e∗Spm(m, n ) ;
L (m, n+np)= e∗Smm(m, n ) ; L (m+np , n)= e∗Spp (m, n ) ; L (m+np , n+np)= e∗Smp(m, n ) ; end
end
// i n v e r s i o n de L Lm1=i n v ( L ’∗L ) ;
// b o u c l e d ’ ´e c h a n t i l l o n n a g e R=1;
x=−R : . 0 1 : R ; y = 0 : . 0 1 : 1 ;
[ X,Y]= m e s h g r i d ( x , y ) ; n b p t s=l e n g t h (X ) ; Xg=m a t r i x (X, 1 , n b p t s ) ; Yg=m a t r i x (Y, 1 , n b p t s ) ; B=z e r o s ( 2∗np , n b p t s ) ;
f o r m=1: np do
e=exp ( %i∗b e t a s (m)∗s ) / ( 2∗%i∗b e t a s (m) ) ;
B(m, : ) = a (m)∗c o s ( (m−1)∗%pi/h∗Yg ) .∗exp ( %i∗b e t a s (m)∗Xg ) ; B( np+m, : ) = a (m)∗c o s ( (m−1)∗%pi/h∗Yg ) .∗exp(−%i∗b e t a s (m)∗Xg ) ; end
f o r j =1: nbpts , Bj=B ( : , j ) ;
B ( : , j )=B ( : , j ) / norm ( Bj , 2 ) ;
Figure 4: Image reconstruite par LSM pour k0 = 50, k1 = 60 (16 modes propagatifs) et pour un d´efaut circulaire centr´e en (0,0.15) et de rayon 0.05
end ,
// r ´e s o l u t i o n eq LSM H=Lm1∗L ’∗B ;
Hn=o n e s ( 1 , 2∗np )∗( abs (H) .∗abs (H ) ) ; Z=m a t r i x (Hn , l e n g t h ( y ) , l e n g t h ( x ) ) ; // d e s s i n
s u r f (X, Y,−l o g ( Z ) , ’ f a c e c o l ’ , ’ i n t e r p ’ ) ; h f=g e t ( ” h d l ” ) ;
h f . c o l o r m o d e =−1;
f=g e t ( ” c u r r e n t f i g u r e ” ) ; f . c o l o r m a p=h s v c o l o r m a p ( 1 0 0 ) // p l o t d ´e f a u t
t =0:2∗%pi / 4 0 : 2∗%pi ; x0 =0; y0 = 0 . 1 5 ; r = 0 . 0 5 ;
param3d ( x0+r∗c o s ( t ) , y0+r∗s i n ( t ) ,−15+0∗t ) ; ax=g c a ( ) ;
ax . view=” 2d” ;