横波检测在工业无损检测里属于让人又爱又恨的技术。今天咱们拿COMSOL做个电磁超声横波仿真,看看单线圈怎么激出500kHz的横波,顺便聊聊怎么抓取两次底波信号

📅 发布时间:2026/7/7 12:17:39 👁️ 浏览次数:
横波检测在工业无损检测里属于让人又爱又恨的技术。今天咱们拿COMSOL做个电磁超声横波仿真,看看单线圈怎么激出500kHz的横波,顺便聊聊怎么抓取两次底波信号
comsol电磁超声横波 频率为500k基于洛仑兹力单线圈激励横波。 接收了两次底波具体看图。先摆模型框架铝板厚度5mm线圈直径10mm悬空1mm放置。材料参数里有个坑要注意——很多人设置固体力学模块时会忘记勾选包含洛仑兹力这直接导致后续激励力凭空消失。代码层面看物理场耦合得这样写model.physics.create(emw, ElectromagneticWaves) model.physics.create(solid, SolidMechanics) model.physics.create(lntz, LorentzCoupling) # 关键耦合节点这里第三个物理场就是专门处理电磁-结构耦合的相当于在固体力学方程里硬插了个体积力项。comsol电磁超声横波 频率为500k基于洛仑兹力单线圈激励横波。 接收了两次底波具体看图。线圈激励参数设置得讲究500kHz对应波长约6mm横波声速按3000m/s算。网格剖分建议最大单元尺寸控制在1/8波长以下也就是0.75mm左右。实际代码里用到了扫频瞬态两步走study1 model.study.create(std1); study1.feature.create(freq, Frequency); study1.feature(freq).set(plist, 500e3); // 先扫频获取背景磁场 study2 model.study.create(std2); study2.feature.create(time, Transient); study2.feature(time).set(tlist, 0 1e-6 5e-6); // 时域分析抓波形第一次底波通常在3μs左右出现第二次则在6μs附近。接收信号处理时记得加窗函数不然边界的反射杂波能把你搞崩溃。实测数据用MATLAB处理时建议这样滤波[b,a] butter(4, [0.4 0.6], bandpass); // 带通滤波锁定500kHz sig_filt filtfilt(b, a, raw_signal);有个反直觉的现象虽然激励线圈是圆形但横波的偏振方向会与线圈轴线垂直。这是因为洛仑兹力的本质是J×B电流环产生的磁场在径向上导致最终合力方向呈现切向特征。最后说下那两个底波的时差5mm板两次回波间隔约3.3μs算出声速2980m/s和理论值基本吻合。要是发现时间差异常优先检查材料阻尼设置——铝的横波衰减系数设成1e4 N·s/m²就太夸张了实测设200~500比较合理。