comsol超声测厚7 利用5MHz的压电片对20mm厚度的铝板进行测厚,接收了3次底波如图2,选前两个底波通过时差和声速计算测得板厚为20.469mm,误差还可以。
先掏出看家本领建个模。在材料库里拽出铝板参数时,手一抖把杨氏模量多输了两位小数,突然意识到这强迫症得治——声速计算器里啪啪敲入v=√(E/(ρ(1-ν²))),金属参数对声速的影响曲线在眼前自动展开。其实直接填个已知的铝材声速6300m/s更省事,但谁让咱们是仿真狂人呢。
!超声测厚示意图
(此处应有一张COMSOL模型截图,展示压电片与铝板的相对位置)
信号处理才是重头戏。从COMSOL导出电压数据后,用Python写了个暴力峰值检测:
peaks, _ = find_peaks(raw_signal, height=0.5*max_signal, distance=100) t1 = time_array[peaks[0]] # 第一个底波到达时间 t2 = time_array[peaks[1]] # 第二个底波 thickness = (t2 - t1) * velocity / 2这算法简单到像小学生作业,但实测效果意外地稳。不过注意那个distance参数——它决定了两个波峰之间的最小间隔点数,设置不当会把噪声当信号。有次我把这个值设成50,结果程序愣是数出七个假回波,算出来的板厚比纸还薄。
时差法测厚有个隐藏福利:自动抵消系统延时。就像用两个闹钟时差算路程,管它什么时候开始计时。但实际跑数据时发现,当采样率低于100MSa/s时,时间戳的量化误差能带来0.3mm的跳动。这时候得祭出三次样条插值大法,把波形局部放大后亚像素级定位峰值。
铝板厚度在20mm晃悠时,5MHz探头其实处在尴尬期——波长1.26mm刚好让近场区长度N≈D²/(4λ)=16mm(假设晶片直径8mm),测量点恰好处在近场边缘。这时候声束还没完全聚拢,回波振幅跟过山车似的,所以得在模型里打开全弹性波方程,不能偷懒用射线声学近似。
最后那个20.469mm的结果,误差主要来自两个邪门因素:一是铝板温度每升高1℃,声速降0.03%;二是压电片背面的环氧树脂耦合层,厚度变化0.1mm能让走时差产生等效2mm的测厚误差。下次准备在模型里加个热膨胀模块,顺便把耦合剂做成粘弹性材料——虽然COMSOL可能会因此多算半小时,但谁让咱们是细节控呢?