基于COMSOL有限元仿真的激光激发超声板材缺陷检测方法研究

张开发
2026/4/22 4:34:29 15 分钟阅读

分享文章

基于COMSOL有限元仿真的激光激发超声板材缺陷检测方法研究
激光激发超声检测板材中缺陷 COMSOL有限元仿真模型板状材料激光激发超声模拟包括板状材料带有缺陷和无缺陷两种情况。激光激发超声检测板材中缺陷这活儿干起来真挺考验耐性的。以前总觉得做个有限元模型就是把参数填进去等到跑 COMSOL 的时候才发现光是网格和时间步长就能把人绕进去。这次重点是想看看板子里藏着的缺陷到底怎么在声波里显形无缺陷和有缺陷两种情况对比着看效果才直观。物理机制上其实就是热弹性效应激光能量打上去瞬间升温材料膨胀产生应力波。在 COMSOL 里这需要耦合热传导和结构力学。最麻烦的是那个热源怎么定义毕竟激光不是均匀照在板子上的是个高斯分布。# t 为时间变量用于模拟激光脉冲宽度 # x, y 为平面坐标x0, y0 为光斑中心 # w 为光斑半径 power_density(t, x, y) (2 * P / (pi * w^2)) * ... exp(-2 * ((x-x0)^2 (y-y0)^2) / w^2) * ... sin(pi * t / pulse_width)这段逻辑对应到 COMSOL 的表达式编辑器里其实就是个分段函数。关键是那个时间项sin 波模拟短脉冲如果pulse_width设得太宽频谱就窄了分辨率不够设得太窄高频噪声又太多收敛困难。之前有一次忘了乘时间因子直接把连续波当脉冲算结果后面全是驻波根本看不出缺陷反射。几何建模上无缺陷就是一个完整的长方体。要想模拟缺陷通常是在板中间挖个坑。这里不建议用复杂的曲面尽量用简单的几何特征比如圆柱形气孔或者扁平的椭圆夹杂。因为后续网格要剖分得特别细形状越怪网格质量越难控制尤其是缺陷周围必须加密。% 这里的脚本逻辑是为了自动生成缺陷模型 % 避免手动操作导致的位置偏差 defect_geom boolean_difference(plate, void_hole); mesh.param.set(size, maxh, lambda_min/3); % lambda_min 是最高频对应的波长别看这几行伪代码实际在 LiveLink for MATLAB 里跑的时候每次改个参数都得重新生成网格耗时很长。所以网格策略一般是整体用较粗的网格保证计算效率在激光照射点和缺陷周围手动划定区域进行局部加密。特别是厚度方向因为是薄板至少要保证每个波长上有 6-8 个单元不然相位误差太大了。边界条件处理也有讲究。四周要是自由的上下表面也是自由的模拟无限大板子的话还得加完美匹配层PML吸收边界防止波在边界反射回来干扰结果。不过对于这种短时探测只要记录的时间窗口够短波还没跑到边界就被截断了这时候不加 PML 也能凑合用省点内存。两组模型跑完后处理的数据对比很明显。无缺陷的情况下接收探头收到的信号主要是直达波后面跟着上下表面的多次反射波形比较单一。激光激发超声检测板材中缺陷 COMSOL有限元仿真模型板状材料激光激发超声模拟包括板状材料带有缺陷和无缺陷两种情况。但是加上缺陷之后情况就变了。# 提取特定时间窗口的信号进行分析 signal_with_defect data.time_series[t_start:t_end] reflection_peak find_local_max(signal_with_defect, window10ns) print(f缺陷回波时间差{reflection_peak - direct_wave_time} ns)代码里这种简单的峰值查找逻辑用来定位缺陷回波位置很方便。你看那个reflection_peak它出现在直达波之后底面回波之前。这个时间差乘以声速除以 2大概就是缺陷的深度。有意思的是如果缺陷比较小反射波的能量会明显减弱。在 COMSOL 的 2D 绘图里你可以把位移场做成动画能看到波阵面扫过缺陷区域时能量发生了散射一部分绕过去了一部分折返回来了。这就是为什么有时候仿真里看不到明显的回波峰——可能是缺陷太小散射成了衍射波能量分散了。还有一个坑是数值色散。如果你的网格不够密或者时间步长太大算出来的波速会比理论值快。这时候即使加了缺陷反射波的位置也会漂移。所以跑完结果第一件事就是先看无缺陷模型的波速对不对得上材料的声速参数。如果不对那就是离散误差惹的祸得回去加密网格。另外激光激发源的位置也很敏感。如果打在缺陷正上方反射信号最强稍微偏一点信号就弱下去了。这在仿真里很容易通过扫描光源位置来观察虽然实际检测不一定这么扫但仿真可以帮你找到最佳的检测布局。总的来说这套模型的核心不在于方程有多复杂而在于参数的敏感度分析。从热源功率到网格密度再到缺陷的尺寸每一个变量都会影响最终波形。有时候为了验证算法故意把缺陷设得很大波形一目了然有时候为了贴近工程把缺陷设得很隐蔽信噪比就很考验滤波算法了。这玩意儿跑通了也就那样但想到以后能靠这个优化无损检测的参数还是觉得值得折腾。下次准备试试不同材料属性下的波传播或者引入各向异性估计又有新的坑等着填。

更多文章