TLM法
TLM法(Transmission Line Matrix method:伝達線路行列法)
TLM法による音波伝搬シミュレーション
TLM法(Transmission Line Matrix method:伝達線路行列法)は、FDTD法のように波動方程式の近似により計算をするのではなく、波動伝搬の原理であるホイヘンスの原理を模式したものです。
原理に関してその概略を述べるには、スペース的に難しいので下記の参考文献をあげておきます。
加川 幸雄, 土屋 隆生, 吉田 則信, 佐藤 雅弘, "等価回路網法入門―伝達線路行列法と空間回路網法," 森北出版, 1999
Matlabによる実装
以下がmatlabによるプログラムになります。 出来るだけ、for文を使わないようにして、三次元配列には結果を入れるもののみとなっています。 三次元、若しくは四次元配列を用いた方がコードは綺麗になりますが、実行速度は遅くなります。
%TLMによる音波伝搬シミュレーション
clear
nx=256;%xメッシュサイズ
ny=256;%yメッシュサイズ
time=512;%駆動時間
Vi1=zeros(nx,ny);%入射パルス(三次元配列は使わない)
Vi2=zeros(nx,ny);
Vi3=zeros(nx,ny);
Vi4=zeros(nx,ny);
Vr1=zeros(nx,ny);%散乱
Vr2=zeros(nx,ny);
Vr3=zeros(nx,ny);
Vr4=zeros(nx,ny);
V=zeros(nx,ny,time);%接点電圧
Vt=zeros(nx,ny);%接点電圧(一時保管)
r0=((1-sqrt(2))/(1+sqrt(2)));%無反射の反射係数
xin=30;%入力電圧x座標
yin=70;%入力電圧y座標
w=4;%入力電圧パルス幅
shift=12;%パルス中心の時間遅れ
t=1:time;
f=-2*((t-shift)/(w.^2)).*exp(-(((t-shift)./w).^2)).*4.68;%入力電圧
for t=2:time
%散乱
Vr1=Vt-Vi1;
Vr2=Vt-Vi2;
Vr3=Vt-Vi3;
Vr4=Vt-Vi4;
%散乱パルスを隣の入射パルスへ
Vi1(:,2:ny)=Vr3(:,1:ny-1);
Vi3(:,1:ny-1)=Vr1(:,2:ny);
Vi2(2:nx,:)=Vr4(1:nx-1,:);
Vi4(1:nx-1,:)=Vr2(2:nx,:);
%境界条件
Vi1(:,1)=r0.*Vr1(:,1);%上端境界条件
Vi3(:,ny)=r0.*Vr3(:,ny);%下端境界条件
Vi2(1,:)=r0.*Vr2(1,:);%左端境界条件
Vi4(nx,:)=r0.*Vr4(nx,:);%右端境界条件
%接点電圧の導出
Vt=0.5*(Vi1+Vi2+Vi3+Vi4);
%接点電圧の保管
V(:,:,t)=Vt;
%入力電圧(メッシュの中心に入力)
Vt(xin,yin)=f(t);
end
最終更新 May 14, 2020: ブログ更新 (e287c4c)