前言:讲解之前,我们来复习一下高中时学习的相互作用力的定义:相互作用力是物理学中描述两个物体间互相作用的力,其基本特征为大小相等、方向相反且作用线重合,遵循同时产生与消失的规律。当手敲击桌面时,手和桌面会有相互作用,你的手会疼,桌面会振动,两者发生了相互作用,这是固体之间的相互作用;炎热的夏季吹个风扇,空气的流动驱动扇叶旋转,同时扇叶也会扰动空气的流动,给我们送来凉爽的风,这是流体和固体的互相作用;对着圆筒大喊一声,声波将导致圆筒振动,而圆筒中的振动又会在空气中产生新的声波,这是声音和固体的相互作用。
声音的“好坏”、“刺耳”、“不舒服”,无论是在各行各业,对于每一个产品来说,这些是可以被直观的感受出来的,所以对声学的研究也是无法绕开的重要课题。一直以为“声音”摸不到看不见,十分的抽象,但是这篇帮助你快速了解和掌握声学仿真的过程,用最通俗易懂的方式解释最抽象的概念逻辑。
比起研究枯燥的理论知识,我更愿意在实例中进行学习,才能让这些理论变成直观的问题,仔细看实例的步骤,会随机掉落知识点哦,你也可以在我的comsol课程中进行视频学习。
comsol是多物理场仿真的常用软件,也是本人觉得最好用的多物理场软件。comsol支持多种物理场的耦合分析,比如电磁学、流体动力学、热传导、结构力学等等。用户可以轻松的实现多个物理场的结合,甚至无需过多操作,软件会自动帮你进行两个物理场的链接,来模拟更加真实的现实世界。
接下来,话不多说,直接开整!可以跟着实例的步伐一起来学习声固耦合的用法,从实践中快速掌握用法
一、模型说明
本次案例模拟了一个简单的圆柱体放置于水中,当给水面一个入射声波后,圆柱筒的壁面会受到水声压的冲击从而引起圆柱壁的振动,圆柱壁面同时也会形成散射波反作用于水声域,从而形成最终的波形。在这个案例中,声波与固体之间发生相互作用、相互影响,为了准确模拟两者之间的耦合作用,便可以使用comsol的声—固耦合模块。

二、仿真思路
1、明确自己的目的
在这次的仿真中,我们需要考虑两个模块,分别是固体模块和声学模块,而两者之间还需要进行相互耦合,comsol刚好有现成的声—固耦合物理场可以用到。
2、确定边界条件
由于本次是用到了两个物理场,所以需要分别对两个物理场进行边界条件的设置,遵循原则“自己管自己”,也就是不同的物理场分别进行各自的边界条件设置,你在哪个物理场中需要对应的边界条件,单独进行设置即可。
在此次的案例中对于压力声学模块,需要设置一个入射压力场来作为驱动激发声波;在固体力学模块中,不用进行额外的设置,或者添加作用力及约束,可以自行尝试。
3、进行单独模块或耦合模块计算
有了前两步的操作,已经完成了基本的模型搭建,最后一步就是明确你的仿真情形,进行仿真计算即可。
三、关于参数
1、小技巧
comsol支持用户自定义参数,用户可以在参数列表将参数手动输入,也可以用txt的格式储存参数并在使用时导入即可。
2、优势
提前输入参数可以①灵活修改数值,当需要在模型中进行数值调整时,无需找到该数值的设置位置,只需要在前面将参数进行修改即可;②增强可读性,参数名称更加直观清晰,可以在后面输入该参数的描述,当在后面输入参数时,鼠标放置上去会自动显示参数描述;③参数优化, 可以通过改变参数值快速输出模型结果,有助于找到最优解,或通过改变参数观察对结果的影响。
3、操作
这次的案例可以选择导入TXT文件的形式输入参数,TXT参数文件在资料包中。

四、三维建模
1、小技巧
你可以使用两种方式完成你的模型搭建。首先你可以在常用的三维建模软件里面进行模型绘制,专业的三维制图软件使用起来更加灵活,也更方便,对于较复杂的模型来说,是个不错的选择;其次,你可以选择直接在comsol中进行建模,comsol也拥有自带的三维建模模块,对于熟悉软件的人来说,也是个不错的选择,但是灵活性没有专业的建模软件高。
2、声学域的搭建
本次的小案例只需要搭建一个圆柱以及周围的声学域,声学域使用球体来替代,球体是计算声学域常用的模型,因为球体①具有对称性,减少计算复杂度,准确的模拟声波在各个方向上的均匀扩散;②施加均匀的边界条件,有助于更好地反应声波传播问题。
3、操作
使用圆柱体和球体就可以搭建出来简易模型了,具体的尺寸可以参考本次的模型,也可以自己随意设置。



五、归类同项
1、小技巧
在comsol中设置“显示”通常我把他叫做“同项归类”。目的是为了在后面可以更方便快捷的选择相关边界/域/点/边等,就不用每次在图形窗口中进行选择了,相当的方便实用。
2、操作
分别定义以下选择:流体域、固体域、辐射边界、固体边界,按照图中的选择进行归类划分即可。

六、添加材料
使用comsol软件自带的材料库添加Water,Liquid(mat1),并选择“流体域”,添加Aluminum 3003-H18并选择“固体域”

七、压力声学,频域设置
1、写在前面的小知识
本次将会用到“球面波辐射边界条件”,球面波辐射边界条件通常用于模拟声音向无限远处传播,并形成最少的反射现象。同时球面波辐射边界条件带有入射压力场属性,允许用户在声学域的外球表面上设置入射平面波表示入射声波来模拟外层声波入射。这个边界条件是声学仿真中最常用的边界条件之一。
2、操作
在压力声学物理场中选择流体域,把外面包围的水球分类到压力声学中,并将声压级参考压力变成“使用水的参考压力”,因为声学的介质是水,所以这里需要将参考压力设为水压。

在物理场中选择边界并选择“球面波辐射”,在属性中选择入射压力场,这一步为了给整个模型一个驱动,让模型“动”起来。
入射压力场的幅值P0中输入1,并在入射波的方向k中输入波的方向矢量

八、固体力学设置
1、操作
固体力学物理场中选择固体域,将圆柱归类于固体力学中,使用固体力学这套理论来计算圆柱。这里不进行过多的边界条件设置,如果你有其它需要约束的可以正常施加即可。

九、绘制网格
对于声学研究中,网格的大小有时候会直接影响仿真的收敛性,通常来说,每个波长上需要设置5个及以上的单元来解析声波,comsol默认的网格是波长上设置5个单元。

十、研究设置
仅需要在频率中输入计算频率f即可
下方显示了这个模型中所有涉及到的物理场,如果你只是想看单一的物理场情况,就把其余的物理场禁用就可以


十一、计算结果

小结:本文带大家一步步实现了位于水域中的圆筒声固耦合仿真过程,并在里面穿插了一些使用技巧和知识点,帮助大家对comsol声学仿真有个基础的了解,能够简单上手操作。
至此,你可以轻松上手实现一个完整的声固耦合仿真了,其实对于comsol来说,这种简单易学的小模型是所有仿真的基础,麻雀虽小五脏俱全,当你掌握了这些基础模型的建模之后,你会发现,再复杂的模型都可以套用这些小模型的仿真方法和思路。
最后提出一个小思考,大家可以上手实践一下:
如果把这个圆筒换成中空圆筒,又会有什么样的影响呢,又该如何设置呢?欢迎大家在我的课程下交流讨论。