COMSOL声学仿真基础知识(二)

声学波动方程推导详解:从守恒定律到 Helmholtz 方程

声波的本质是压力扰动在弹性介质中的传播。在 COMSOL 等仿真软件中,压力声学接口求解的核心方程就是声学波动方程。理解它的来龙去脉,是正确设置物理场、边界条件和解释结果的基础。本文将从流体力学的基本守恒定律出发,一步步推导出声压 ppp 所满足的时域波动方程和频域 Helmholtz 方程,并给出 COMSOL 中使用的最通用形式。


一、基本假设

为使推导清晰且符合大多数工程场景,我们首先引入以下假设:

  1. 介质为理想流体:无黏性,无热传导。
  2. 绝热过程:声波传播极快,来不及与外界换热,可视为等熵。
  3. 小振幅扰动 :声学量远小于背景量,例如 p≪ρ0c02p \ll \rho_0 c_0^2p≪ρ0c02,质点速度远小于声速。
  4. 背景介质静止且均匀 :初始流速为零,密度 ρ0\rho_0ρ0 和声速 c0c_0c0 为常数。
  5. 线性近似:忽略所有二阶及以上的小量乘积。

这些假设将非线性流体力学方程简化为线性波动方程。对于有流、非均匀介质等复杂情况,后续可以在此基础上扩展。


二、基本控制方程

描述流体运动的核心方程是质量守恒、动量守恒和状态方程。

2.1 质量守恒(连续性方程)

单位时间内,控制体内质量的减少等于净流出质量通量:

∂ρ∂t+∇⋅(ρu)=0 \frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \mathbf{u}) = 0 ∂t∂ρ+∇⋅(ρu)=0

其中 ρ\rhoρ 为流体密度,u\mathbf{u}u 为质点速度矢量。

2.2 动量守恒(Euler 方程)

在无黏假设下,流体微团的加速度完全由压力梯度驱动:

ρDuDt=−∇p \rho \frac{D \mathbf{u}}{D t} = -\nabla p ρDtDu=−∇p

物质导数展开为 DuDt=∂u∂t+(u⋅∇)u\frac{D \mathbf{u}}{D t} = \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u} \cdot \nabla)\mathbf{u}DtDu=∂t∂u+(u⋅∇)u。在小振幅假设下,对流项 (u⋅∇)u(\mathbf{u} \cdot \nabla)\mathbf{u}(u⋅∇)u 为二阶小量,可以忽略,于是退化为线性欧拉方程。

2.3 状态方程

对于等熵过程,压力只是密度的函数,且可展开为泰勒级数。保留一阶项得到线性关系:

p=c02ρ′ p = c_0^2 \rho' p=c02ρ′

这里 c0c_0c0 是绝热声速,ρ′\rho'ρ′ 是密度扰动量,即 ρ=ρ0+ρ′\rho = \rho_0 + \rho'ρ=ρ0+ρ′,且 ρ′≪ρ0\rho' \ll \rho_0ρ′≪ρ0。声压 ppp 本身就是压力扰动量。


三、线性化过程

将所有瞬时量写为背景值与扰动值之和:

ρ=ρ0+ρ′,u=0+u′,p=p0+p \rho = \rho_0 + \rho', \quad \mathbf{u} = 0 + \mathbf{u}', \quad p = p_0 + p ρ=ρ0+ρ′,u=0+u′,p=p0+p

其中背景密度 ρ0\rho_0ρ0 和背景压力 p0p_0p0 为常数,背景速度为零。代入控制方程,忽略扰动量的乘积(二阶小量),得到线性化方程组。

线性化连续性方程

∂ρ′∂t+ρ0∇⋅u′=0 \frac{\partial \rho'}{\partial t} + \rho_0 \nabla \cdot \mathbf{u}' = 0 ∂t∂ρ′+ρ0∇⋅u′=0

线性化动量方程

ρ0∂u′∂t=−∇p \rho_0 \frac{\partial \mathbf{u}'}{\partial t} = -\nabla p ρ0∂t∂u′=−∇p

线性化状态方程 直接给出 p=c02ρ′p = c_0^2 \rho'p=c02ρ′。

为书写简便,后面我们省略扰动速度的上标,直接用 u\mathbf{u}u 表示质点振动速度。


四、导出时域波动方程

我们的目标是消去质点速度 u\mathbf{u}u 和密度扰动 ρ′\rho'ρ′,得到只含声压 ppp 的方程。

Step 1 :将状态方程 p=c02ρ′p = c_0^2 \rho'p=c02ρ′ 代入线性连续性方程,消去 ρ′\rho'ρ′:

1c02∂p∂t+ρ0∇⋅u=0 \frac{1}{c_0^2} \frac{\partial p}{\partial t} + \rho_0 \nabla \cdot \mathbf{u} = 0 c021∂t∂p+ρ0∇⋅u=0

Step 2:对时间求偏导:

1c02∂2p∂t2+ρ0∇⋅∂u∂t=0 \frac{1}{c_0^2} \frac{\partial^2 p}{\partial t^2} + \rho_0 \nabla \cdot \frac{\partial \mathbf{u}}{\partial t} = 0 c021∂t2∂2p+ρ0∇⋅∂t∂u=0

Step 3 :由线性动量方程解出 ∂u∂t=−1ρ0∇p\frac{\partial \mathbf{u}}{\partial t} = -\frac{1}{\rho_0} \nabla p∂t∂u=−ρ01∇p,代入上式:

1c02∂2p∂t2−∇⋅(∇p)=0 \frac{1}{c_0^2} \frac{\partial^2 p}{\partial t^2} - \nabla \cdot (\nabla p) = 0 c021∂t2∂2p−∇⋅(∇p)=0

因为 ∇⋅(∇p)=∇2p\nabla \cdot (\nabla p) = \nabla^2 p∇⋅(∇p)=∇2p,最终得到经典的声学波动方程

∇2p−1c02∂2p∂t2=0 \nabla^2 p - \frac{1}{c_0^2} \frac{\partial^2 p}{\partial t^2} = 0 ∇2p−c021∂t2∂2p=0

这就是在静止均匀理想流体中,声压扰动传播所遵循的双曲型偏微分方程。它描述了波以恒定速度 c0c_0c0 传播的物理现象。


五、更通用的形式:含源项与非均匀介质

在 COMSOL 的压力声学接口中,方程被推广为可以处理非均匀介质和存在声源的情况。

5.1 介质非均匀

如果密度 ρ(x)\rho(\mathbf{x})ρ(x) 和声速 c(x)c(\mathbf{x})c(x) 随空间变化,但仍在每个局部满足线性关系,通过类似的推导(保留 ρ\rhoρ 的空间导数),可以得到变系数波动方程:

1ρc2∂2p∂t2+∇⋅(−1ρ∇p)=0 \frac{1}{\rho c^2} \frac{\partial^2 p}{\partial t^2} + \nabla \cdot \left( -\frac{1}{\rho} \nabla p \right) = 0 ρc21∂t2∂2p+∇⋅(−ρ1∇p)=0

这一形式自动满足了界面上压力连续和法向速度连续的条件。

5.2 存在声源

单极源对应质量的注入/抽出,以 QmQ_mQm 表示(单位:1/s21/\text{s}^21/s2),加入连续性方程右端;偶极源对应体积力驱动,以 qd\mathbf{q}_dqd 表示(单位:N/m3\text{N}/\text{m}^3N/m3),加入动量方程。最终 COMSOL 中的瞬态压力声学方程写为:

1ρc2∂2p∂t2+∇⋅−1ρ(∇p−qd)=Qm \frac{1}{\rho c^2} \frac{\partial^2 p}{\partial t^2} + \nabla \cdot \left -\\frac{1}{\\rho} (\\nabla p - \\mathbf{q}_d) \\right = Q_m ρc21∂t2∂2p+∇⋅−ρ1(∇p−qd)=Qm

当 qd=0\mathbf{q}_d = 0qd=0 且 Qm=0Q_m = 0Qm=0 时,就退化为前一节的无源形式。


六、频域波动方程:Helmholtz 方程

很多声学问题关心稳态频率响应。假设声源和声场均做时谐变化,令

p(x,t)=Rep\~(x)eiωt p(\mathbf{x}, t) = \text{Re} \left \\tilde{p}(\\mathbf{x}) e\^{i\\omega t} \\right p(x,t)=Rep\~(x)eiωt

将次代入时域波动方程(以无源、均匀介质为例),时间导数 ∂/∂t\partial/\partial t∂/∂t 对应乘因子 iωi\omegaiω,∂2/∂t2\partial^2/\partial t^2∂2/∂t2 对应 −ω2-\omega^2−ω2,可得:

∇2p~+ω2c02p~=0 \nabla^2 \tilde{p} + \frac{\omega^2}{c_0^2} \tilde{p} = 0 ∇2p~+c02ω2p~=0

定义波数

k=ωc0 k = \frac{\omega}{c_0} k=c0ω

就得到了著名的 Helmholtz 方程

∇2p~+k2p~=0 \nabla^2 \tilde{p} + k^2 \tilde{p} = 0 ∇2p~+k2p~=0

对于含源项和介质非均匀的情形,COMSOL 频域方程为:

∇⋅−1ρ(∇p\~−qd)−ω2ρc2p~=Qm \nabla \cdot \left -\\frac{1}{\\rho} (\\nabla \\tilde{p} - \\mathbf{q}_d) \\right - \frac{\omega^2}{\rho c^2} \tilde{p} = Q_m ∇⋅−ρ1(∇p\~−qd)−ρc2ω2p~=Qm

求解该方程得到的 p~\tilde{p}p~ 是复声压,同时包含了幅值和相位信息,可以用来直接计算声压级、声强等后处理量。


七、关键物理量速查表

符号 名称 单位 关系式
ppp 声压 Pa (N/m²) ---
u\mathbf{u}u 质点振速 m/s ρ0∂u∂t=−∇p\rho_0 \frac{\partial \mathbf{u}}{\partial t} = -\nabla pρ0∂t∂u=−∇p
ρ′\rho'ρ′ 密度扰动 kg/m³ p=c02ρ′p = c_0^2 \rho'p=c02ρ′
c0c_0c0 声速 m/s 介质属性
ω\omegaω 角频率 rad/s ω=2πf\omega = 2\pi fω=2πf
kkk 波数 rad/m k=ω/c0k = \omega / c_0k=ω/c0
λ\lambdaλ 波长 m λ=2π/k=c0/f\lambda = 2\pi/k = c_0/fλ=2π/k=c0/f

八、总结

我们从理想流体的质量守恒、动量守恒和等熵状态方程出发,通过线性化处理,消除了质点速度和密度扰动,导出了经典声学波动方程。进而讨论了介质非均匀和源项带来的推广,最终给出了频域 Helmholtz 方程的形式。这些方程构成了 COMSOL 压力声学模块的核心骨架。

理解推导过程,不仅有助于你把握物理模型的适用条件,还能让你在设置边界条件和解释计算结果时更有洞察力。下次当你面对仿真模型中那个 ∇2p~+k2p~=0\nabla^2 \tilde{p} + k^2 \tilde{p} = 0∇2p~+k2p~=0 时,希望你能立刻想起它背后那段"体育馆人浪"般的清晰图景。

相关推荐
麻瓜老宋1 小时前
AI开发C语言应用按步走,表达式计算器calc的第十九步,注释、表达式分隔符、long double 精度
c语言·开发语言·atomcode
崖边看雾1 小时前
Python学习——函数
开发语言·windows·python·学习·pycharm
宸津-代码粉碎机1 小时前
Jar热部署进阶实战|修复原生方案OOM与类冲突问题,生产级无BUG优化方案
java·大数据·服务器·开发语言·前端·人工智能·python
互联网中的一颗神经元12 小时前
小白python入门 - 39. 采集流水线小项目
开发语言·python
徐小夕12 小时前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github
Wang's Blog12 小时前
Go-Zero 项目开发22:用户群聊功能的实现与完善
开发语言·golang
a11177612 小时前
坦克大战3D Three.js 3D (开源项目)
开发语言·javascript·3d
可编程芯片开发13 小时前
UPFC统一潮流控制器的simulink建模与仿真
算法