BELLHOP-3D

基于https://blog.csdn.net/qq_45201106/article/details/130583098这篇进行一些细致的补充:

一、声学工具箱的下载 

https://oalib-acoustics.org/
上述网址进去后,页面如下,点击MODELS&SOFTWARE,然后再点击Acoustics Toolbox:

进入后页面如下,再点击Acousitcs Toolbox:

即可得到下载的页面,点击第二个At 

 对声学工具箱压缩包进行下载,得到

 解压后,在文件夹里首先找到tests文件夹,然后在该文件夹内找到Bellhop3DTests文件夹,该文件夹内各名称的文件夹为Bellhop3D的示例:

 运行示例,以其中Munk文件夹为例,点击进去会有runtest.m文件,直接打开matlab运行即可。

 二、BELLHOP-3D的使用

BELLHOP使用主要利用env文件获取环境和收发位置信息,env文件中3D模型区别2D模型的地方主要在于增加了:(以下面例程为例)

该示例中地形如下图所示:

1、角度设置

对于theta、alpha、beta:

1)theta

46行Ntheta是对某深度水平剖面的角度划分数目,整个平面以发射位置xy(0,0)为圆心,可进行360°的平面角度划分,具体划分起始和截至角度如47行所示,示例为0-360°,共划分成Ntheta-1份,示例为37-1=36份,即每10°计算一次传播损失。角度划分数越多,得到的平面传播损失越接近圆形,下图左侧Ntheta=37,右侧图Ntheta=10,可以看出明显区别。

 2)alpha

49-50行的alpha与二维BELLHOP用法一样,49行为声源开角内的声线个数,50行为声源开角,下图左侧为声源开角(-90,90),右侧为(-30,30),可以看出明显区别。

3)beta

51-52行的beta为声线划分角度,51行为在某深度水平剖面划分的声线角度个数,52行为声线划分的起始和截至角度。其中,声线角度要对应theta角度,若在超过水平剖面设定的角度,则无法计算。设定如下所示,按照0-300°划分5份,即0、60、120、180、240、300°

下图左侧为平面图,右侧为旋转后的声线图。

简单总结一下:

计算传播损失时,调整theta和alpha参数,与beta无关,Ntheta个数代表传播损失计算个数;

计算声线轨迹时,可以直接将theta范围设置为(0,360),调整alpha和beta参数即可,Nbeta个数代表声线计算个数。

 2、收发位置

关于收发位置,需要发射平台的xyz信息,以及接收平台的rz信息。

1)发射平台位置信息

位于示例程序的36-41行,可以改变x和y信息,将原有的37、39行的(0,0)修改(-10,-10),相应地,在计算传播损失时,以(-10,-10)为圆心进行计算,下图左侧为地形俯视图,右侧为传播损失图,可以很明显的看出,与以(0,0)为圆心计算结果不同,在左下角出现空缺,这是由于变换圆心后,以100km为直径画圆计算时,地形没有覆盖到那个位置。

改变发射深度z,与2D操作相同,这里不再过多赘述。

2)接收平台位置信息

42-45行分别为接收平台r和z的信息,42行和44行分别为在r和z方向上的插值数目,43和45行分别为r和z的起始和截至距离。与2D操作相同,也不再过多赘述。

3)根据收发位置画图

在画传播损失时,可以发现有这样一行程序:

后面这三个数字分别代表,发射的x和y位置,画图传播损失的深度z。

a、发射的x和y位置

x和y的设置主要取决于你要将圆心设置到哪个位置,像上图是根据(-10,-10)为圆心计算的传播损失,如果想将圆心设置到原点位置只需要将上行程序的x和y设置为0,0即可:

b、传播损失的深度z

如果42行接收深度插值大于1,则这个z的设置是帮你提取出相应深度的传播损失数值。通过设置不同的z可以很快得到不同深度下的传播损失图,便于观察随深度的变化趋势。

对0-5000m进行1001次插值,得到每个垂直剖面的传播损失矩阵维度为1001*1001

示例地形的海底从3000-5000米出现,通过调整z为1000、3500、4500、5000m,得到相应深度传播损失如下图所示,可以发现右上角逐渐显现出海底地形的位置。

 3、海底地形

 如果要加入海底地形,34行为“A~”,如果不需要海底设置为“A”即可,下面就加入海底地形的情况进行介绍。主要采用的是下面这行程序,即可生成自己想要的海底bty文件。

 

 其中,x、y和z均为自己设置的海底地形区域和区域内的相应深度。

bty文件内格式为,“R”,x轴个数Nx,x轴参数,y轴个数Ny,y轴参数,以及Nx*Ny维度的深度矩阵。

通过plotbdry3d函数可以画出自定义的海底地形:

 按照上文介绍的,得到不同深度下传播损失图为:

 

4、3d文件可以用于2d画图

可以用2d的画图函数对3d结果进行画图,但是只能默认为第一个角度下的结果。

左侧为接收插值为1时,plotshd的画图结果。右侧为接收插值为101时,plotshd的画图结果,与2维结果一直,所以3d文件可以画出2d的仿真图。

plotray画图结果:

 

 

 

 

文章来源地址https://uudwc.com/A/y54Vy

 

 

 

 

 

原文地址:https://blog.csdn.net/manxin_Liu/article/details/131487043

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年10月30日 03:42
[Elasticsearch] 给ES设置必须以用户名密码访问
下一篇 2023年10月30日 04:42