
横波检测在工业无损检测里确实是个让人又爱又恨的技术。爱的是它对裂纹类缺陷的响应足够直接恨的是想稳定激发出合格的横波并不容易。我最近在COMSOL里把电磁超声横波这条路完整跑了一遍用单线圈配合垂直偏置磁场在铝板上激出了500kHz的横波并且在仿真里成功抓到了两次底波信号。这篇文章就把从方案选型、模型搭建到波形识别的整个过程写下来重点说说单线圈怎么实现横波激发、500kHz这个频率是怎么定下来的以及B1、B2两次底波信号的处理方法。准备做电磁超声换能器设计、非接触测厚仿真的朋友或者想入坑COMSOL多物理场耦合的新手都可以拿这篇当一个可复现的参考底稿。1. 横波检测为什么让人又爱又恨这次我站在电磁超声这边1.1 爱在横波剪切分量让缺陷无处可藏先说清楚一个基本事实在固体介质里超声波最常见的就是纵波和横波。纵波传播时质点振动方向与传播方向一致横波则是垂直的。工业无损检测里横波之所以被频繁使用核心原因是它和裂纹类缺陷的“相互作用”更直接。板材内部的垂直裂纹、管材外壁的纵向裂纹这类缺陷在承受外部载荷时往往会沿厚度方向张开。纵波垂直入射到这种裂纹上大部分能量会直接穿过反射信号很弱而横波的剪切振动分量会在裂纹表面产生明显的反射和模式转换信号。换句话说横波对“嘴巴张着”的裂纹特别敏感这是纵波很难替代的。另一个好处是横波在自由界面反射时波形相对单纯。垂直入射的情况下纯横波在底面自由界面反射后依然是纯横波不会像斜入射那样在纵波、横波之间来回转换这让后续的信号判读简单了不少。还有一个工程上特别实用的点用横波做板厚测量时时间基准非常干净。只要能抓到两个相邻底波板厚和横波声速之间就是纯粹的线性关系这个后面展开讲。1.2 恨在传统方案压电横波探头有一道绕不开的“耦合剂高墙”既然横波这么好用为什么现场做起来就那么别扭问题出在横波激发方式上。传统压电探头本身产生的是厚度方向的纵波振动想得到横波必须依靠斜楔让纵波以一定入射角打到工件表面通过波形转换在工件里折射出横波。这个方案有几个先天限制。首先斜楔和工件之间必须有良好的声耦合现场要涂耦合剂、要施加压力表面粗糙或者有锈蚀时耦合效果会急剧恶化。其次斜楔本身是个声学部件角度选错或者楔块磨损激发的横波角度就飘了。更头疼的是高温场景压电晶片在居里温度以上直接失效耦合剂在高温下要么挥发要么碳化。我早年做过激光熔覆后的在线检测项目工件表面温度好几百度常规压电探头根本不敢贴上去只能用高温延迟块硬扛信号质量依然很难看。这也是横波检测“恨”的来源之一——不是横波本身不好是激发它的传统路径太脆弱。1.3 电磁超声的解法无耦合、垂直入射而且单线圈就够电磁超声换能器EMAT能同时解决这几个问题。它的原理不依赖压电晶片而是用高频电流线圈在工件表面感应出涡流涡流在偏置磁场中受到洛伦兹力洛伦兹力直接驱动工件表面质点振动从而激发出超声波。因为是电磁力“隔着空气”作用所以不需要耦合剂允许一定的提离距离对表面粗糙度和温度也没那么敏感高温管道的在线测厚、带涂层工件的检测反而是EMAT最舒服的场景。更重要的是只要把偏置磁场的方向设计成垂直于试件表面、线圈电流沿表面环向流动洛伦兹力的方向就会落在表面平面内这正好是剪切力直接激发出垂直传播的横波。这个“垂直入射横波”在传统压电方案里几乎是无解的但在EMAT里只需要一个单匝环形线圈加一块永磁体。我之前看到很多资料把EMAT说得特别玄乎实际上从力学的角度拆开它就是“涡流×磁场表面剪切力”这么一件事。用COMSOL仿真时这个物理过程可以被拆得非常清晰。2. 单线圈加500kHz方案定型前先把几笔账算清楚2.1 频率为什么定在500kHz波长、分辨率、衰减的平衡点EMAT的工作频率不像压电探头那么随意因为它的发射效率低频率一旦上去表面趋肤深度变小、涡流集中在更薄的表层但高频声波在材料里的衰减也更快信号经常抓不住。选择500kHz是基于如下考虑。我当时的仿真对象是一块20mm厚的铝板横波声速约3100m/s500kHz对应的横波波长是6.2mm。这个波长既足够短能分辨到毫米量级的缺陷又足够长在铝板里往返几次后衰减还在可控范围内。如果把频率提到2MHz以上波长降到1.5mm级别表面分辨率确实更好但EMAT的激发效率会明显下降表面涡流层更薄需要网格更细仿真和实验的成本都翻倍。如果降到100kHz衰减是低了可波长到了31mm对20mm厚的板子来说一个大周期就覆盖了整个厚度底波反射信号几乎和发射脉冲搅在一起没法看。500kHz在这个场景里是个不错的折中在20mm铝板中发射3个周期的脉冲B1和B2在时间轴上能清晰分开网格规模也不至于失控。2.2 为什么“单线圈”就能出横波磁场方向才是关键很多刚接触EMAT的朋友会问横波不是需要一个剪切力吗一个圆环线圈怎么可能做到这里的关键在洛伦兹力的方向拆分。洛伦兹力公式是FJ×B力总是同时垂直于电流方向和磁场方向。线圈铺在工件表面高频电流在工件里感应出的涡流方向是沿着线圈环向走的也就是表面平面内的圆周方向。这时候只要偏置磁场是垂直表面的叉乘的结果就一定落在表面平面内沿着径向。径向力作用在表面就是纯粹的剪切加载横波自然就出来了。把磁场方向反过来看就更有意思了。假如永磁体的磁场是水平方向的涡流在水平方向叉乘出来的力就会变成垂直表面的法向力这时候激发出来的就是纵波而不是横波。换句话说决定EMAT出横波还是出纵波的首要因素不是线圈形状而是偏置磁场和涡流之间的方向关系。单线圈的优势在于结构最简单、近场分布均匀仿真和加工难度都低三维螺旋线圈或回折线圈反而会让磁场分布复杂化不利于第一步验证。2.3 两次底波信号为什么值得单独抓一抓底波信号是超声检测里的老朋友了。发射的横波传到板底面发生反射第一次回到上表面叫一次底波记作B1继续反射、第二次回到上表面叫二次底波记作B2。它们的到达时间满足t(B1)2d/ct(B2)4d/c其中d是板厚c是横波声速。只抓B1也能测厚但工程上人们通常更愿意同时抓B1和B2。原因是单个底波的绝对到达时间会受到系统延迟的影响比如发射电路的触发延时、探头中的声程、表面防护层等这些误差在单次测量里完全抵消不掉。用B2和B1的时间差也就是Δtt(B2)-t(B1)2d/c系统性的延迟被自动减掉了测厚结果只取决于声速和反射间隔稳定得多。在仿真里抓B1和B2目的就是验证这个时间关系在模型里是否严格成立模型对了后面的参数化扫描才有意义。我在COMSOL里复现这个关系的过程后面会单独讲。3. COMSOL建模把“电磁-力-声”这条链路完整搭起来3.1 几何模型轴对称简化是第一原则EMAT的完整三维模型不是不能做但计算量会立刻失控而且很多细节对结果影响很小。这个案例里线圈是圆环、磁场大致沿轴向、试件是平板几何上具备轴对称条件所以我直接用2D轴对称模型把三维问题压缩到rz平面来求解。这个选择直接决定了后面所有设置也显著缩短了计算时间。几何尺寸这样安排铝板半径150mm厚度20mm。板半径取这么大的原因很朴素我要观察的是30μs以内的B1和B2横波从中心位置传到侧面需要约150mm/3100m/s≈48μs纵波也需要约24μs只要纵波幅度不直接干扰径向横波探针侧面反射就不会在我们关心的时窗内造成污染。板上方留20mm空气域单匝圆环线圈截面设为0.5mm宽、0.2mm高紧贴板上表面提离距离暂时设0.3mm模拟实际探头与工件之间的微小间隙。线圈半径取15mm。为什么取15mm而不是更小因为单线圈的激发区域要和接收探针位置错开一些避免初始强信号直接把后面的微小回波淹没了。建模时我做了三个明确的简化。第一不把永磁体建模成实体而是用一个均匀背景磁场代替因为偏置磁场在局部区域内近似均匀没必要为一块磁铁额外建磁路网格。第二忽略高频涡流自身产生的动态磁场对洛伦兹力的二阶影响只保留“涡流×静态偏置磁场”这一主项仿真先看波形特征。第三采用单向耦合先由电磁场算出洛伦兹力再把力加载到固体力学中求解声波传播暂时不走双向反馈。这三个简化每一处都省下大量网格和收敛成本同时保证主要物理过程不变。3.2 材料参数声速不是查来的是自己算出来的铝板材料参数直接决定声速而声速又直接决定底波到达时间。我用的参数是6061铝合金的典型值密度2700kg/m³杨氏模量68.9GPa泊松比0.33电导率按3.5e7 S/m。这些参数在COMSOL材料库里有但最好自己验证一遍。横波声速的计算公式是cSsqrt(E/(2ρ(1ν)))代入数值后得到约3097m/s纵波声速约6148m/s。这个3097m/s就是我后面判断底波位置的时间基准。钢板做电磁超声横波时参数不同钢的横波声速约3200m/s、电导率约4e6S/m差别主要在涡流强度和衰减上建模流程完全一样。线圈材料按铜处理电导率5.998e7S/m。但要注意线圈域在固体力学中不参与计算它只是电磁场的电流载体不需要给它赋结构材料属性。空气域只需要电导率设为极小值保证磁场计算正常。3.3 物理场接口磁场加固体力学再加一个背地磁场物理场搭建是新手最容易绕晕的地方我直接说操作路径。用“磁场mf”接口负责求解涡流场用“固体力学solid”接口负责求解声波传播。交界面在铝板表面浅层。mf接口里线圈域通过“外部电流密度”施加环向电流。我不用COMSOL自带的线圈域特征原因是单匝线圈用线圈特征反而引入了额外的方向定义和匝数设置容易出错。直接在圆柱坐标系下给线圈域一个环向电流密度Jφ是最干净的做法电流幅值除以线圈截面积就是电流密度。幅值我取了50A这是EMAT激励电流的常见量级。偏置磁场用“背景场”功能加在工件表面附近方向沿z轴幅值0.5T。这个强度对应常见的永磁体但在模型里它是一个均匀分布的量。关键一步是定义洛伦兹力体载荷。在固体力学接口里给铝板域加“体积力”径向分量写为mf.Jphi乘以背景磁场的z分量。因为叉乘关系eφ×ezer这个方向正好是径向剪切力。符号方向取决于电流方向设定如果发现波形相位反了把电流方向取反即可。COMSOL中这个耦合变量的定义方式一定要注意单位。mf.Jphi的单位是A/m²背景磁场Bz的单位是T两者相乘得到N/m³正好是体积力载荷的单位直接填进固体力学的体积力输入框即可COMSOL会自动做单位检查。3.4 激励电流汉宁窗脉冲的写法与周期数选择EMAT用的是脉冲电流不是连续正弦波。我用的激励是3周期汉宁窗调制正弦波表达式如下I0 50[A] f 500[kHz] Tp 3/f I I0*sin(2*pi*f*t)*(sin(pi*t/Tp))^2在COMSOL里需要用if语句把脉冲限制在0到Tp区间否则时间轴负半轴也会有电流影响瞬态求解。写成if(t0 tTp, I0*sin(2*pi*f*t)*(sin(pi*t/Tp))^2, 0)为什么要加汉宁窗因为矩形脉冲的前后沿太陡会产生很宽的频带激发的信号不纯后面识别底波时容易被旁瓣干扰。汉宁窗的三周期脉冲频率主要集中在500kHz附近既能保证足够的时间分辨率又不会让脉冲拖得太长。三周期脉冲总时长6μs对应铝中横波传播约18.6mm的空间长度在20mm板中B1和B2的时间间隔有12.9μs脉冲完全来得及分开。如果用五周期甚至十周期B1和B2之间可能只剩几个周期波形叠加后判读难度大增这是我实测对比后得到的经验。4. 网格和时间步长横波算得出来全靠这两样卡得死4.1 趋肤深度先卡死表面网格电磁超声的涡流只存在于工件表面非常薄的一层。500kHz在铝中的趋肤深度δsqrt(2/(ωμσ))代入数据大约0.12mm。如果表面网格比这个还粗涡流和洛伦兹力根本算不对后续一切都是空谈。我的网格策略是在铝板表面加边界层网格第一层厚度取0.02mm大约是趋肤深度的六分之一然后以1.5倍增长率逐层增厚一共设置6层总厚度覆盖大约0.4mm相当于3到4个趋肤深度。这样既保证了涡流分布的精度又不至于让整个板都铺满超细网格。这一步有个很隐蔽的坑边界层网格在几何曲率较大的位置会自动退化尤其是线圈正下方。如果你发现洛伦兹力算出来的分布沿径向出现不合理的锯齿多半是边界层在局部没有铺满需要手动检查那一小片区域的网格质量。4.2 波长决定体网格别让横波在网格里“饿死”涡流只在表面薄层里但声波是要穿过整个板厚的。声波网格的准则和电磁网格完全不同。500kHz横波波长6.2mm二阶单元至少需要每波长6到8个实际我用了每波长10个也就是单元最大尺寸控制在0.6mm左右。纵波波长12mm用0.6mm单元更是绰绰有余。这样可以让横波在振动中保持正确的衰减和相位。整体网格数量在2D轴对称模型下并不夸张因为中心附近网格密向边缘逐渐变粗。COMSOL的“物理场控制网格”在这个模型里不太适合它不会自动识别趋肤深度和声波波长的双重需求所以我手动设置了两个尺寸区表面薄层用边界层板内部用自由三角形网格配合0.6mm上限。4.3 时间步长和求解器别在瞬态求解器上省事时间步长同样要服从频率约束。500kHz的周期是2μs我的经验是一个周期至少分30步也就是时间步长不超过66ns。这样在30μs的观察窗口里大约需要450步。如果再激进一点每周期只分15步波形的高频分量会被严重抹掉底波峰值的到达时间判断会产生偏差。求解器我采用瞬态研究时步积分用BDF方法最大阶数设为2。线性求解器用直接法MUMPS。这里没有用迭代法的原因在于声波问题带来的刚度矩阵条件数不好迭代求解器在这种多物理场耦合模型里收敛慢且不稳。我这模型在16核的Linux服务器上大约跑40分钟如果换成三维模型同样的网格密度计算时间会翻两个数量级所以二维轴对称的价值在于能快速迭代验证物理参数。4.4 单向耦合先跑通再考虑双向耦合我特别想强调这一点。很多教程一上来就上全耦合磁场、固体力学、动生电动势一起算结果是收敛困难、计算时间爆炸还把问题搞复杂了。我的建议是先跑单向耦合电磁场算完得到洛伦兹力然后把这个力作为固定载荷在固体力学里传播看超声波的产生、传播、反射过程。这样能快速验证频率、波速、网格是否合理。单向耦合跑通之后如果你关心接收线圈的感应电压幅度、换能器灵敏度这类定量问题再打开双向耦合在磁场接口中激活动生电流项让固体力学的速度场v进入电磁方程计算的感应电压才会被正确模拟。但双向耦合对时间步长和网格的要求更苛刻不适合一开始就作为排查工具。5. 抓两次底波信号探针放哪、波形怎么看、厚度怎么算5.1 探针测径向速度而不是随便找个位移量横波在模型中的偏振方向是径向的所以最能反映横波回波的物理量是表面质点的径向速度在COMSOL里对应变量v_r。我在铝板上表面、距离中心约14mm处布置了一个点探针记录径向速度随时间的变化。为什么要选径向而不是轴向速度因为轴向速度uz对应的是纵波垂直入射横波回波到达表面时主要是径向质点运动如果监听uz抓到的更多是纵波分量和模态转换噪声底波反而看不清。如果你的模型里还要模拟接收线圈信号可以进一步后处理感应电压其物理本质是动生电场Ev×B沿线圈路径的积分。径向速度本质上就是这个感应电压的“源头”所以先看v_r是最直接的验证手段。单向耦合模型的探针数据已经足够判断B1和B2有没有卡在正确的时间位置。5.2 从波形里把B1、B2认出来A扫信号拆解瞬态计算完成后画出探针的径向速度-时间曲线这就是一个典型的A扫信号。我看到的波形大体有三段。第一段是0到8μs左右的大幅波形这是发射激励期间洛伦兹力直接驱动表面振动产生的主波对应初始激励脉冲它其实包含了一部分直接从底面反射回来的早期回波但被主波淹没了。第二段大约在12.9μs处出现一个清晰的脉冲这就是B1是发射波到达底面反射后第一次回到上表面的横波。第三段在25.8μs附近出现第二个相似形态的脉冲即B2。两次出现间隔正好是12.9μs除以2乘以声速3100m/s得到板厚19.9mm和几何模型几乎一致。这里有一个值得注意的细节B1和B2的形态并不完全一样。B2的幅度会比B1低因为横波在两面之间来回反射时每次经过表面都会有一部分能量被附近的结构散射和吸收而且理想的自由表面反射并非100%。幅度衰减比例本身就是很有用的工程信息它对应实际测厚时的信号余量。5.3 测厚公式与误差控制为什么用Δt而不是绝对时间实际工程测厚公式是dc×Δt/2Δt取B2和B1的时间差。这个公式的妙处在于它不依赖绝对零时刻的定义。如果只用B1的到达时间测厚度发射脉冲从哪一刻算起激励开始、还是主波峰值这个零点的选取误差在仿真里不大但现场仪器里随处可见。而Δt天然避开了这个坑。还有一点容易忽略底波的到达时间应该用包络峰值位置判读而不是简单看波形首次过零。因为脉冲经过多次反射后波形会有轻微畸变直接用某个过零点不稳定。我处理探针数据时先做了带通滤波中心频率500kHz、带宽300kHz滤掉高频数值噪声和低频漂移再取希尔伯特包络找峰值。峰值位置之间的时间间隔比原始信号的过零点稳定得多。5.4 信号又杂又弱时的处理经验工程信号不会像理想仿真这么干净。我总结几条应对办法。当B2幅度太弱时先看横波速度是否计算正确再看板底面边界是不是用了低反射边界而把反射给吸收掉了这一条在COMSOL里特别常见。如果信号里纵波干扰明显检查偏置磁场是否严格垂直于表面只要有一点点倾角就会产生法向力分量激发出纵波。如果发现探针在径向速度中看不到清晰的B1而轴向速度里有明显起伏说明模型里的“横波”其实是纵波多半是线圈电流方向和磁场方向叉乘关系设反了。此外现场设备通常会做多次激励平均仿真里也一样。可以跑几个不同相位的激励把波形叠加平均底波信号会更稳定。参数扫描时这种平均可以通过高效的批处理实现而不是手动重跑。6. 跑完仿真以后踩过的坑和要带回现场的东西6.1 仿真里最容易翻车的三个细节第一个是线圈电流方向。COMSOL里环向电流的符号如果设反洛伦兹力的方向就变成向内压缩而不是向外拉伸。力的方向反了不会影响波速和底波间隔但接收信号的相位会和实验相反做定量对比时非常困扰。排查办法很简单在铝板表面画一个径向速度云图看激励瞬间表面质点到底是向外还是向内运动和你的设定方向对照一下。第二个是板侧面的反射。虽然我把板半径加大到150mm但在计算时间足够长之后侧面反射还是会回来。如果想把观察窗口拉到60μs以上做更多次底波必须给铝板侧面加低反射边界条件否则会在后期出现一堆方向各异的伪回波。第三个是提离距离的敏感性。我一开始把提离设成0.3mm后来扫描到0.5mm时发现底波幅度下降了将近三成。电磁超声对提离就是敏感仿真里能明显看到这个趋势。做实际工装设计时这往往是决定信号能不能稳定抓到的关键参数值得单独扫描。6.2 别手动调参用参数化扫描和脚本驱动单次仿真只能验证一个工况真正定方案需要看频率、提离、板厚、磁场强度这几个变量同时变化的趋势。COMSOL的瞬态研究本身就支持参数化扫描可以直接在研究中添加参数集一次性跑完多组工况。但瞬态扫描比较耗时我的做法是使用COMSOL在Linux服务器上的批处理功能同时在命令行里用Java或Python写脚本控制COMSOL的会话批量提交参数任务、导出探针数据再统一做后处理。用MATLAB驱动COMSOL的思路也一样本质上是通过LiveLink接口批量设置参数、求解、取结果。这样做的直接收益是一个晚上能扫描完十组频率和五组提离的组合第二天起床就能看到一版完整的底波幅度-提离-频率关系曲线。这个效率差异在项目时间紧的时候是决定性的。6.3 仿真和现场之间还差一个“物理世界”COMSOL模型可以做到非常精致但它不能替代现场的脉冲源和磁路设计。EMAT的电声转换效率远低于压电探头仿真里给50A电流得到的底波幅度在实验里常常要放大器增益拉到很大才能看见。这在仿真里体现不出来因为我用的是理想均匀背景磁场而实际永磁体有边缘效应、磁路有漏磁局部磁场方向也不是完全垂直。如果后面要做定量实验我建议把永磁体实体建模加进来至少跑一次3D模型确认磁场分布的三维效应再把简化模型作为日常迭代工具。从我个人的实操体会来说这个仿真案例最大的价值不是算出了多精确的曲线而是把“横波为什么难激发、底波为什么能测厚”这两件事的物理机制完整验证了一遍。后续如果想扩展可以在这个模型基础上把缺陷加进去观察横波遇到不同角度裂纹时的反射特征或者对比不同线圈匝数和磁路结构下的信号幅度。这条路走通之后无论是做测厚仪器还是探伤方案心里都会踏实很多。