3. 振镜扫描系统原理
振镜扫描系统是激光打标设备中最核心的物理执行单元,其本质是一个高精度的“角度—位置”伺服控制系统。在FPGA介入控制之前,我们必须深刻理解振镜电机如何将电信号转化为光斑的二维平面位移,以及光学镜组如何保证这种转化在幅面内保持线性与一致性。本章将围绕振镜电机的结构原理、光学偏转机制、f-theta透镜的校正逻辑以及扫描范围与分辨率的权衡关系展开,为后续FPGA算法设计奠定物理基础。
3.1 振镜电机结构与工作原理
振镜电机(Galvanometer Scanner)并非普通直流电机,而是一种有限转角伺服电机,其转子只能在有限角度范围内摆动(通常为±12.5°至±20°机械角)。与旋转电机不同,振镜电机的核心诉求是高动态响应与高定位精度,而非连续旋转。
3.1.1 动磁式与动圈式结构对比
当前工业级振镜主要采用两种结构:动磁式(Moving Magnet)和动圈式(Moving Coil)。动磁式振镜将永磁体安装在转轴上,定子为驱动线圈,具有转动惯量小、加速性能好的优点,是目前主流方案。动圈式振镜则将线圈置于磁场中,通过电流驱动线圈带动镜片偏转,其线性度更好但散热较差。
| 性能维度 | 动磁式 | 动圈式 | 工程选择建议 |
|---|---|---|---|
| 转动惯量 | 小(转子仅含磁体+镜片) | 大(线圈+骨架+镜片) | 高速打标选动磁式 |
| 线性度 | 中等(磁路饱和影响) | 优(洛伦兹力线性好) | 高精度雕刻选动圈式 |
| 热稳定性 | 好(线圈在定子侧) | 差(线圈发热影响镜片) | 长时间连续加工选动磁式 |
| 峰值电流 | 较低 | 较高 | 驱动电路成本考量 |
振镜电机内部集成了位置传感器(通常为电容式或光学编码器),用于实时反馈转子角度。电容式传感器分辨率可达20bit,但抗污染能力弱;光学编码器精度稍低但更可靠。FPGA通过读取该反馈信号,与目标角度比较后产生误差信号,经PID控制器输出驱动电压,形成闭环控制。
3.2 光学偏转与f-theta透镜校正
当激光束照射到振镜镜片上时,镜片旋转θ角,反射光束将偏转2θ角(光学杠杆效应)。若直接使用普通平场透镜,光斑在加工平面上的位移与tan(2θ)成正比,导致边缘区域扫描速度加快、标记密度下降。f-theta透镜通过引入负畸变,使像高y与入射角θ满足线性关系:y = f·θ(θ为弧度制)。
3.2.1 f-theta透镜的校正原理
普通透镜的像高公式为 y = f·tan(θ),而f-theta透镜设计为 y = f·θ。在θ=0°附近两者差异极小,但随着角度增大,tan(θ)增长速度快于θ。例如,当θ=20°(0.349rad)时,tan(20°)=0.364,两者偏差约4.3%。若不校正,同一角度增量在边缘产生的位移增量更大,导致正方形图案边缘外凸(枕形畸变)。
// 振镜角度与光斑位置换算(FPGA内部实现)
// 输入:振镜机械角 theta_x, theta_y(单位:rad)
// 输出:加工平面坐标 x, y(单位:mm)
// 注意:光学偏转角 = 2 * 机械角
float optical_theta_x = 2.0f * theta_x;
float optical_theta_y = 2.0f * theta_y;
// 理想f-theta关系
float x = f_lens * optical_theta_x;
float y = f_lens * optical_theta_y;
// 实际系统需加入畸变补偿系数(由标定获得)
x = x * (1 + k1 * (x*x + y*y) / (f_lens*f_lens));
y = y * (1 + k1 * (x*x + y*y) / (f_lens*f_lens));
3.2.2 场镜的工程选型
场镜(Field Lens)的焦距f直接决定扫描范围与光斑大小。根据公式 d = f·θ,当振镜最大光学角为±25°(0.436rad)时,f=160mm的场镜可提供约±70mm的扫描范围。但焦距增大也会导致光斑直径增大(光斑直径 ∝ f·λ/D,D为入射光束直径),因此需要在扫描范围与加工精度之间权衡。
3.3 扫描范围与分辨率
扫描范围由振镜最大偏转角与场镜焦距共同决定,而分辨率则取决于振镜位置传感器的位数与DAC的位数。两者之间存在物理极限约束:在固定扫描范围内提高分辨率,意味着每个DAC LSB对应的角度变化更小,可能低于振镜的重复定位精度。
3.3.1 分辨率计算实例
假设振镜最大机械角为±12.5°(对应光学角±25°),场镜焦距f=160mm,则最大扫描半幅为:
最大半幅 = f × tan(25°) ≈ 160 × 0.4663 ≈ 74.6mm
全幅 = 149.2mm(但实际有效幅面通常取80%,约119mm)
若DAC为16位,则角度分辨率为:
角度分辨率 = (25° × π/180) / 32768 ≈ 0.4363 / 32768 ≈ 13.3 μrad
对应光斑位移分辨率 = f × 13.3μrad ≈ 160 × 13.3e-6 ≈ 2.13 μm
该分辨率已接近振镜机械重复精度(通常为1~2μm),继续提高DAC位数收益有限。
| 参数项 | 典型值 | 对系统的影响 | FPGA算法关注点 |
|---|---|---|---|
| 振镜机械角范围 | ±12.5° | 决定最大扫描范围 | 角度限幅保护 |
| 场镜焦距 | 160mm | 决定幅面与光斑大小 | 坐标映射系数 |
| DAC位数 | 16bit | 决定角度量化步长 | 量化误差补偿 |
| 位置传感器位数 | 18~20bit | 决定闭环反馈精度 | PID采样率匹配 |
| 小步距响应时间 | 0.4~1ms | 决定打标速度上限 | 插补周期设计 |
3.4 实战案例:高速打标中的振镜非线性补偿
场景背景:某3C电子厂使用FPGA控制的振镜打标系统,对手机中框进行二维码雕刻。幅面要求60×60mm,节拍要求2秒/件,但实际调试中发现边缘区域二维码变形,且高速打标时出现“甩尾”现象。
初始现象与数据:
- 中心区域二维码识别率99.8%,边缘区域降至92.3%
- 边缘线条位置偏差最大达0.15mm
- 打标速度从500mm/s提升至1500mm/s时,拐角处出现明显过冲
分析判断过程:首先通过静态标定排除机械安装误差——使用标准网格纸打标,测量各点实际坐标与理论坐标偏差。发现偏差呈径向分布,中心小、边缘大,符合f-theta透镜残余畸变特征。其次,通过示波器观察振镜驱动电流波形,发现高速扫描时电流出现振荡,说明PID参数在高速段增益过高。
实际操作步骤:
- 畸变标定与补偿:在60×60mm幅面内取9×9=81个标定点,使用CCD相机测量实际光斑坐标,生成畸变查找表(LUT)。FPGA在坐标映射阶段查表插值,将最大偏差从0.15mm降至0.02mm。
- PID参数分段调整:将扫描速度分为低速段(0~500mm/s)和高速段(500~1500mm/s),分别整定PID参数。高速段降低比例增益Kp约20%,增加微分增益Kd约15%,抑制过冲。
- 轨迹预补偿:在FPGA插补器中加入速度前馈项,根据目标速度提前输出角度增量,减小滞后。
结果对比:优化后边缘二维码识别率提升至99.5%,拐角过冲量从0.12mm降至0.03mm,节拍保持1.8秒/件,满足产线要求。
3.5 常见误区与总结复盘
误区一:认为DAC位数越高,打标精度越高。实际上,当DAC分辨率超过振镜机械重复精度后,继续提高位数只会增加噪声敏感度。工程上16位DAC已足够,重点应放在机械振动抑制与温度补偿。
误区二:忽略f-theta透镜的残余畸变。虽然f-theta透镜已校正一阶非线性,但高阶畸变(如桶形畸变、像散)仍然存在,必须通过软件标定补偿。
误区三:将振镜视为纯惯性负载,使用简单梯形速度规划。振镜的谐振频率通常在2~5kHz,若激励信号包含该频段分量,会激发机械谐振,导致振镜发热、寿命下降。FPGA应实现S型速度规划或FIR滤波,抑制高频激励。
- 振镜是有限转角伺服电机,动磁式适合高速、动圈式适合高精度
- f-theta透镜实现 y=f·θ 线性映射,但仍有残余畸变需软件补偿
- 扫描范围与分辨率受物理极限约束,DAC位数并非越高越好
- FPGA控制需关注:插补周期、PID参数分段、畸变LUT、速度规划