COMSOL二维仿真 电磁超声Lamb波对板材检测 适合新手入门学习使用
电磁超声检测这玩意儿听起来挺玄乎,其实用COMSOL玩起来就跟搭积木差不多。今儿咱们就拿块铝板做实验,手把手教你用二维仿真抓Lamb波的尾巴。别慌,就算你昨天刚装好软件,今天也能跟着搞出点动静。
先打开COMSOL新建个二维模型,材料库拽块2mm厚铝板出来。这步关键在几何参数设置,板长随便搞个200mm够用,厚度可别手抖输错了:
% 几何参数设置 thickness = 2e-3; // 板厚 length = 200e-3; // 板长接下来上硬菜——物理场耦合。左手电磁场,右手结构力学,中间用洛伦兹力当红娘。线圈用矩形代替,离板面1mm悬空挂着。重点是这个边界条件设定,电磁场选绝缘边界,结构那边得给板子边缘留个自由端,不然波传不出去:
// 电磁场边界 physics.set('es', 'boundary1', 'ElectricInsulation'); // 结构边界 physics.set('solid', 'boundary2', 'Free');激励信号用个5周期汉宁窗调制的正弦波,中心频率选在200kHz附近。这个频厚积刚好能激出S0和A0两种基本模态,新手建议先用单频信号,后面玩熟了再上扫频:
% 激励信号参数 f0 = 200e3; // 中心频率 cycles = 5; // 周期数 t_window = @(t) sin(2*pi*f0*t).*hanning(t*f0*cycles); // 汉宁窗调制网格剖分是个技术活,最高频率对应波长除以5是安全线。铝中纵波速度约6300m/s,200kHz对应波长31.5mm,最大网格尺寸设6mm足够。但注意线圈区域要局部加密,毕竟磁场变化剧烈:
// 网格尺寸设置 mesh.set('maxsize', 6e-3); mesh.set('region', 'coil_area', 'custom', 0.5e-3);求解器配置最容易翻车,时间步长按采样定理取1/(20*f0)=0.25μs。建议先跑个0.1ms试试水,完整传播过程大概需要0.5ms。遇到不收敛的情况,把阻尼系数调到1e-4能救急:
% 求解器参数 t_step = 5e-7; // 时间步长 t_total = 5e-4; // 总时长 solver.set('tlist', linspace(0,t_total,1000));跑完仿真别急着关界面,在结果里新建个截面图,选位移幅值。点播放按钮能看到波包在板子里来回窜,用探针功能抓取某点的时域信号,做FFT能看到明显的特征频率。要是发现波形畸变,八成是网格不够细或者时间步长太大。
最后来个骚操作——用参数化扫描批量跑不同缺陷尺寸。建个椭圆当裂纹,长短轴设成变量,配合批处理作业自动生成损伤特征数据库。这个套路练熟了,应付简单的板材检测需求绰绰有余。