Bellhop 是 一 款 高 效 的 射 线 追 踪 程 序 , 由 Michael Porter (http://hlsresearch.com/personnel/porter/index.php )
用 Fortran 语言编写 , 并 纳 为 声 学 工 具 箱 的 一 部 分
( 可 在 海 洋 声 学 库 网 站(http://oalib.hlsresearch.com/)获取)。
近日开始学习Bellhop,随时记一下学习过程
在matlab中安装工具包
- 在主页点击“设置路径”;
- 将工具包所在文件夹添加到路径,即可在matlab中进行调用
学习案例一
-
采用 Mun k 深海声速剖面,界于 0 到 5000m 深度之间,声源频率 50Hz,位于 1000m 深度,声线步距 100m,声线 70 根,出射角扇面为 - 13° ~ 13°,海底声速 1600m/s,海底密度 1.83/ cmg,海底衰减系数 0.8 dB/λ。
-
首先编写.env文件,这是Bellhop调用的环境参数文件,其中包括了设置的海洋环境、计算选项等。按照如图表格进行参数编写:
-
对于此案例中海洋环境的声线计算、本征声线计算、相干传播损失计算和振幅与传播时间计算的env文件见
案例一env文件 -
文件编写好后,在matlab中调用计算:
clc;clear;close all;
%% 声线轨迹计算
bellhop flatwav_R;%options3(1)='R',计算声线轨迹
figure;plotray flatwav_R;%画出声线轨迹图
%% 本征声线计算
bellhop flatwav_E;%options3(1)='E',计算本征声线轨迹
figure;plotray flatwav_E;
%% 相干传播损失
bellhop flatwav_C;%options3(1)='C',计算相干传播损失
figure;plotshd flatwav_C.shd;
%% 瞬时响应
bellhop flatwav_A;%options3(1)='A',计算瞬时响应
[arr,pos]=read_arrivals_asc('flatwav_A.arr');
plotarr('flatwav_A.arr',1,1,1);
-
flatwav_R和flatwav_E运行结束后,声线轨迹计算会得到.prt和.ray文件,.ray文件中包含了声线坐标等信息。
-
flatwav_C运行结束后我们得到flatwav_C.shd的二进制文件,其中包含了经过相干计算的声压,可以进行画图得到传播损失图。
-
flatwav_A计算结束后,得到的flatwav_A.arr文件,包含了接收器处的振幅和传播时间。
-
这就是水平海底波导的计算与仿真,相关代码和文件可以在Bellhop案例一中下载。