4. 闭环控制基础:霍尔传感器反馈、光栅尺反馈、PID控制器入门、位置环与电流环

各位同学,欢迎来到第四章。前面几章我们聊了开环控制,说白了就是给电机一个电压,它转多少算多少。但在实际镜头驱动中,开环根本不够用——温度一变、负载一换,位置就跑了。今天我们来啃闭环控制这块硬骨头。

我个人习惯把闭环控制比作「闭着眼睛走路 vs 睁着眼睛走路」。开环是闭着眼,你迈出一步,不知道踩到哪了。闭环是睁着眼,每走一步都看看目标在哪,随时调整。嗯,就这么简单。

4.1 反馈传感器:霍尔 vs 光栅尺

闭环控制的第一步,是知道当前的位置。怎么知道?靠传感器。镜头驱动里最常见的两种反馈传感器是霍尔传感器和光栅尺。

4.1.1 霍尔传感器反馈

霍尔传感器利用霍尔效应——当磁场穿过导体时,会产生与磁场强度成正比的电压。在VCM(音圈电机)里,磁铁固定在动子上,霍尔芯片贴在定子上。动子移动时,磁场变化,霍尔输出对应的电压。

关键参数:

参数 典型值 说明
灵敏度 1~5 mV/Gauss 越高越好,但噪声也大
线性范围 ±500~±1500 Gauss 超出后输出饱和
响应带宽 DC~20 kHz 对焦速度够用
温度漂移 ±0.1%/°C 需要温度补偿
我的经验:霍尔传感器便宜、体积小,但线性度有限。我在一个手机镜头项目中遇到过,霍尔输出在行程两端明显非线性,导致对焦精度下降。后来加了查表补偿才搞定。

4.1.2 光栅尺反馈

光栅尺的原理是光学干涉或衍射。尺子上刻有等间距的条纹,光通过后产生明暗变化,光电探测器计数条纹数来得到位置。

光栅尺的优势:

  • 精度高:分辨率可达纳米级
  • 线性好:全行程几乎完美线性
  • 不受磁场干扰:适合有强磁场的环境

光栅尺的劣势:

  • 成本高:比霍尔贵一个数量级
  • 体积大:不适合超薄镜头模组
  • 对污染敏感:灰尘、油污会影响读数
注意:光栅尺的安装精度要求极高。我曾经见过一个案例,光栅尺贴歪了0.1度,结果在行程末端产生了超过10微米的误差。安装时一定要用激光对准。

4.2 PID控制器入门

有了反馈信号,怎么用它来驱动电机?最经典的方法就是PID控制。PID是比例(Proportional)、积分(Integral)、微分(Derivative)的缩写。

说白了,PID控制器就是一个「纠错器」。它根据当前误差(目标位置 - 当前位置),计算出应该给电机多大的驱动力。

PID的数学形式:

u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt

其中:
u(t)  = 控制输出(电压/电流)
e(t)  = 误差(目标 - 实际)
Kp    = 比例增益
Ki    = 积分增益
Kd    = 微分增益

三个环节的作用:

环节 作用 比喻
比例(P) 根据当前误差大小输出 「看到偏差就推一把」
积分(I) 消除稳态误差 「一直有偏差就一直加力」
微分(D) 抑制超调、提高响应 「看到偏差变化快就刹车」
核心观点:PID调参没有万能公式。我习惯先调P,让系统能响应但不振荡;再加一点D抑制超调;最后加I消除稳态误差。顺序别搞反了。

4.3 位置环与电流环

在实际的镜头驱动系统中,我们通常不会只用一个PID。而是用两个PID串联起来——外环是位置环,内环是电流环。这叫「串级控制」。

为什么需要两个环?

  • 位置环:负责让镜头到达目标位置。它输出的是「目标电流」。
  • 电流环:负责让实际电流等于目标电流。它直接控制电机电压。

你想想看,如果只有一个位置环,它直接输出电压。但电压和电流的关系受线圈电阻、温度、反电动势影响,很不稳定。加上电流环后,位置环只管「要多少电流」,电流环负责「给到这么多电流」,分工明确,鲁棒性更好。

典型的串级控制结构:

串级控制:位置环 + 电流环 目标位置 位置环PID 电流环PID 电机 位置传感器 电流采样 位置环输出目标电流 → 电流环控制实际电流 → 电机驱动镜头 → 位置传感器反馈位置 电流环响应快(kHz级),位置环响应慢(Hz级),内外环速度要匹配

电流环为什么比位置环快?

电流的变化速度取决于电感和电压。而位置的变化速度取决于电流和负载。电感通常很小(微亨级),所以电流环的带宽可以做到几千赫兹。位置环受机械惯量限制,带宽通常只有几十到几百赫兹。

调参顺序:先调内环(电流环),再调外环(位置环)。我刚开始做的时候,先调位置环,结果系统振荡得一塌糊涂。后来才明白,内环不稳,外环怎么调都没用。

4.4 实战中的PID调参技巧

理论讲完了,来点实际的。PID调参是门手艺活,我分享几个我常用的方法。

方法一:临界比例法

  1. 先把Ki和Kd设为0
  2. 慢慢增大Kp,直到系统开始等幅振荡
  3. 记录此时的Kp(称为Ku)和振荡周期Tu
  4. 按经验公式计算PID参数
控制器类型 Kp Ki Kd
P 0.5 * Ku 0 0
PI 0.45 * Ku 1.2 * Kp / Tu 0
PID 0.6 * Ku 2 * Kp / Tu Kp * Tu / 8
避坑指南:临界比例法只适用于线性系统。镜头驱动中,摩擦力、弹簧力、磁滞都会导致非线性。我曾经在一个项目中,用临界比例法算出的参数,实际跑起来超调严重。后来加了限幅和抗积分饱和才解决。

方法二:手动试凑法

这个方法更依赖经验。我一般这样操作:

  • 先给一个小的阶跃目标,观察响应曲线
  • 如果响应太慢,增大Kp
  • 如果超调太大,增大Kd
  • 如果稳态误差不为零,增大Ki
  • 重复以上步骤,直到满意

方法三:软件辅助整定

现在很多MCU都支持自动整定。比如STM32的电机控制库就有PID自整定功能。它会自动注入激励信号,分析响应,然后给出推荐参数。但注意,自动整定出来的参数通常需要微调。

我的建议:不要迷信自动整定。它只能给你一个起点,最终还是要靠手动微调。尤其是镜头驱动这种对超调敏感的应用,自动整定往往偏激进。

4.5 本章小结

闭环控制是镜头驱动从「能动」到「动得准」的关键。霍尔传感器和光栅尺各有优劣,选型时要综合考虑成本、精度、体积。PID控制器是核心算法,三个环节各司其职。串级控制(位置环+电流环)能大幅提升系统的鲁棒性和响应速度。

调参没有捷径,多动手、多观察、多总结。我做了这么多年,每次调参还是会遇到新问题。嗯,这就是工程的魅力吧。