第2章:OIS系统架构——闭环控制系统的组成与信号流
做OIS这么多年,我经常被问到同一个问题:
「光学防抖到底是怎么工作的?」
其实答案就藏在一个闭环系统里。今天咱们就把它拆开看看。
2.1 闭环控制系统的四大核心组件
一个典型的OIS系统,说白了就是四个关键器件在跳舞:
陀螺仪、霍尔传感器、驱动IC、音圈马达。
我习惯把它们分成两组:
一组负责「感知」——陀螺仪和霍尔传感器。
一组负责「执行」——驱动IC和音圈马达。
嗯,这里要注意:
感知和执行之间,还有一个看不见的「大脑」——控制算法。它跑在驱动IC内部或者主控芯片里。
2.1.1 陀螺仪——感知角速度
陀螺仪的任务很简单:
检测手机/相机的抖动,输出角速度信号。
我在项目中遇到过一个问题:
某款陀螺仪的采样率只有1kHz,但手抖的频率最高能到20Hz左右。理论上够用,但实际测试时发现,低采样率会导致相位延迟,最终防抖效果打折扣。
关键参数:
- 量程:一般±2000°/s
- 灵敏度:0.01°/s/LSB左右
- 噪声密度:0.005°/s/√Hz以下
选陀螺仪时,别只看数据手册上的「理想值」。实际焊接后的温漂、振动环境下的噪声,才是真正的坑。我曾经因为没做温漂补偿,导致-20℃下防抖失效——嗯,那是个难忘的冬天。
2.1.2 霍尔传感器——检测镜头位置
陀螺仪告诉我们「手抖了多少」,但镜头到底移动了多少?
这就需要霍尔传感器了。
霍尔传感器的工作原理很简单:
它检测磁铁产生的磁场强度变化,从而推算出镜头位移。
常见类型:
- 线性霍尔:输出模拟电压,与位移成正比
- 数字霍尔:输出PWM或I2C信号
我个人习惯用线性霍尔,因为模拟信号延迟小,适合高速闭环。
我曾经遇到过霍尔传感器被外部磁场干扰的情况——手机扬声器里的磁铁,离镜头模组太近,导致位置检测偏差。后来我们加了磁屏蔽罩才解决。
2.1.3 驱动IC——闭环控制的核心
驱动IC是OIS系统的「大脑」。
它接收陀螺仪和霍尔传感器的信号,运行控制算法,然后输出电流驱动音圈马达。
驱动IC内部通常包含:
- ADC:将模拟信号转为数字
- PID控制器:核心算法
- PWM发生器:输出驱动波形
- 通信接口:I2C/SPI
你想想看,如果驱动IC的ADC分辨率不够,位置检测精度就会下降。我一般要求ADC至少12位,最好14位以上。
2.1.4 音圈马达——执行机构
音圈马达(VCM)是OIS系统的「手」。
它根据驱动IC输出的电流,产生电磁力,推动镜头移动。
VCM的关键指标:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 行程 | ±0.3~±0.5mm | 镜头可移动范围 |
| 推力常数 | 10~50 mN/A | 电流与力的转换效率 |
| 谐振频率 | 50~200 Hz | 机械系统的固有频率 |
| 响应时间 | < 5ms | 从指令到稳定位移 |
音圈马达的谐振频率必须远离手抖频段(1~20Hz),否则系统容易振荡。我一般要求VCM的谐振频率在80Hz以上。
2.2 信号流与反馈机制
现在我们把四个组件串起来,看看信号是怎么流动的。
2.2.1 前向通路
手抖 → 陀螺仪检测 → 驱动IC计算补偿量 → 驱动IC输出电流 → 音圈马达推动镜头 → 镜头位移补偿抖动
这是「开环」的思路。
但开环有个致命问题:
你无法知道镜头到底移动到了正确位置没有。
2.2.2 反馈通路
所以我们需要反馈:
镜头位移 → 霍尔传感器检测 → 反馈给驱动IC → 与目标位置比较 → 修正驱动电流
这就是闭环控制的核心逻辑:
测量 → 比较 → 修正 → 再测量
我习惯把这个过程叫做「每秒几千次的微调」。
驱动IC内部的PID控制器,以1~10kHz的频率运行,不断调整镜头位置。
2.2.3 完整的信号流图
下面这张图,是我在项目中经常用来跟团队沟通的框架图:
2.3 闭环控制的关键——PID算法
驱动IC内部运行的PID算法,是OIS系统的灵魂。
它有三个环节:
- 比例(P):根据当前误差大小,输出对应的修正量。误差越大,修正越猛。
- 积分(I):累积过去的误差,消除稳态偏差。说白了就是「纠偏」。
- 微分(D):预测误差的变化趋势,提前抑制振荡。
我在项目中遇到过一个问题:
某款驱动IC的PID参数没调好,导致镜头在低频抖动时响应慢,高频时又振荡。后来我们花了整整两周,用扫频法才找到最优参数。
我建议先调P,让系统能响应;再加D抑制振荡;最后加I消除静差。千万别一上来就三个参数一起调——你会疯的。
2.4 信号流中的延迟问题
闭环系统最怕什么?
延迟。
信号从陀螺仪到驱动IC,再到音圈马达,最后反馈回来——每一步都有延迟。
典型延迟分布:
| 环节 | 延迟时间 | 说明 |
|---|---|---|
| 陀螺仪采样 | 0.5~2ms | 取决于采样率和滤波器 |
| ADC转换 | 0.1~0.5ms | 取决于分辨率 |
| PID计算 | 0.05~0.2ms | 取决于算法复杂度 |
| VCM响应 | 1~5ms | 机械惯性 |
| 霍尔反馈 | 0.1~0.3ms | 传感器响应 |
总延迟一般在2~8ms之间。
如果超过10ms,防抖效果就会明显下降——你会看到画面「拖尾」。
我曾经为了省成本,选了一款便宜的陀螺仪,采样率只有500Hz。结果总延迟飙到15ms,防抖效果还不如不开。后来换回1kHz的器件,问题才解决。有些钱,真不能省。
2.5 小结
OIS闭环控制系统的核心,就是四个组件加一个算法:
- 陀螺仪感知抖动
- 霍尔传感器反馈位置
- 驱动IC运行PID算法
- 音圈马达执行位移
信号流是:
手抖 → 陀螺仪 → 驱动IC → 音圈马达 → 镜头 → 霍尔传感器 → 反馈回驱动IC
嗯,这个框架你记住了,后面讲具体设计时就不会迷路。
公众号:蓝海资料掘金营,微信deep3321