023、OIS光学防抖:陀螺仪、音圈马达、滚珠式与悬丝式的机械设计与调优

📅 2026/7/13 17:12:01
023、OIS光学防抖:陀螺仪、音圈马达、滚珠式与悬丝式的机械设计与调优
023、OIS光学防抖陀螺仪、音圈马达、滚珠式与悬丝式的机械设计与调优去年在调试某旗舰机型的OIS时遇到一个让人抓狂的问题预览画面在低频抖动下防抖效果很好但一旦用户边走边拍画面边缘就开始出现诡异的“呼吸效应”——像是有人在镜头边缘轻轻吹气。拆开模组一看悬丝结构在Z轴方向有0.02mm的间隙陀螺仪数据明明已经送到驱动IC但机械响应就是跟不上。这种问题书本上不会告诉你只有拆过几十个模组、调过上百个参数的人才会懂。陀螺仪选型别被数据手册骗了很多工程师拿到陀螺仪数据手册第一反应是看灵敏度、量程、噪声密度。这些当然重要但真正决定OIS性能的是陀螺仪的延迟特性和温漂曲线。我踩过最大的坑是某款号称“工业级”的陀螺仪常温下性能完美但温度从25℃升到45℃时零偏漂移直接跳了3度/秒。这意味着什么手机在口袋里捂热了拿出来拍照OIS的初始位置就已经偏了。更可怕的是这种漂移是缓慢变化的AE和AF算法根本察觉不到只有当你对比开启和关闭OIS的照片时才发现画面一直在缓慢移动。这里踩过坑陀螺仪的截止频率设置。很多方案默认用100Hz的低通滤波但实际手持抖动的能量集中在5-20Hz高频部分主要是传感器噪声。把截止频率降到40Hz信噪比能提升一倍代价是响应延迟增加约5ms。对于普通拍照这5ms可以忽略但对于4K 60fps视频每帧只有16.7ms5ms延迟意味着画面会滞后约1/3帧人眼能明显感觉到“粘滞感”。别这样写把陀螺仪和驱动IC放在同一块FPC上。我见过一个设计为了节省空间把陀螺仪贴在音圈马达的驱动芯片旁边。结果马达工作时产生的电磁干扰直接耦合进陀螺仪输出数据里出现明显的50Hz工频噪声。后来不得不加一层铜箔屏蔽还额外贴了吸波材料成本增加了15%。音圈马达推力不是越大越好音圈马达的设计核心是推力常数和行程的平衡。推力常数Kt单位mN/A决定了同样电流下能产生多大的力。但很多人忽略了一个关键点Kt越大马达的电气时间常数也越大响应速度反而变慢。有一次调试一个8mm行程的OIS模组供应商提供的马达Kt标称是12mN/A实测只有9.8。推力不足导致在低频段5Hz跟随良好但到了10Hz以上相位滞后超过45度防抖效果急剧恶化。后来换了一款Kt8的薄型马达虽然最大推力小了但响应速度更快配合前馈控制10Hz处的相位滞后控制在15度以内。这里踩过坑马达的谐振频率。音圈马达本质上是一个质量-弹簧系统谐振频率通常在100-300Hz。如果这个频率落在陀螺仪的工作频段内就会产生共振。我见过一个案例马达谐振频率是180Hz而陀螺仪的采样频率是200Hz结果在180Hz附近出现了一个明显的增益尖峰画面在快速移动时会出现“振铃”现象。解决办法是在驱动IC里加一个陷波滤波器但代价是牺牲了该频段的防抖能力。滚珠式 vs 悬丝式机械设计的哲学这两种结构本质上是摩擦力和刚度的取舍。滚珠式用钢珠在V型槽里滚动摩擦力极小理论上可以实现任意方向的平滑运动。但问题在于钢珠和V型槽的接触点只有几个微米长期使用后会产生磨损导致间隙增大。我拆过一个用了两年的滚珠式模组钢珠表面已经出现明显的压痕用手轻轻一推镜头能晃动0.1mm。这种磨损在低温下更严重因为润滑油变稠钢珠滚动阻力增大磨损加剧。悬丝式用四根细金属丝悬挂镜头模组没有摩擦只有金属丝的弹性变形。优点是寿命长、无磨损、响应快缺点是刚度低容易受重力影响。在手机平放时悬丝式OIS的Z轴方向光轴方向会有0.01-0.02mm的下沉虽然不影响防抖但会影响AF的初始位置。别这样写把悬丝设计成直线型。我见过一个方案悬丝直接拉直结果在跌落测试中悬丝根部应力集中直接断裂。正确的做法是设计成S形或螺旋形让应力分散。另外悬丝的材料选择也很关键铍铜合金的疲劳寿命比不锈钢高3倍但成本贵了5倍。对于旗舰机型这点成本值得花。调优实战从参数到手感OIS调优本质上是PID控制的调参但比普通的电机控制复杂得多。因为OIS的负载镜头模组本身就是一个非线性系统摩擦力、弹性系数、温度都会变化。第一步标定陀螺仪和马达的对应关系。把手机固定在振动台上输入已知频率和幅度的正弦波同时记录陀螺仪输出和马达位置反馈。这个数据用来建立传递函数模型。我习惯用扫频法从1Hz扫到50Hz每个频率点停留5秒。这样能直观地看到系统的幅频和相频特性。这里踩过坑扫频时忘记关闭AF。AF马达工作时会产生额外的振动干扰OIS的标定结果。正确的做法是先把AF锁定在某个位置或者用胶带固定镜头。第二步调整PID参数。P比例控制响应速度I积分消除稳态误差D微分抑制超调。但OIS的特殊性在于陀螺仪输出的是角速度而马达控制的是位置。所以需要把角速度积分成角度再进行PID控制。别这样写直接用位置环的PID参数。我见过一个工程师把普通电机的位置环参数直接套用到OIS上结果系统振荡得厉害。因为OIS的负载惯量小响应快P增益稍微大一点就会产生高频振荡。正确的做法是先用纯P控制从0.1开始慢慢增加直到出现轻微振荡然后退回到振荡点的70%。再慢慢加入I消除稳态误差。最后加D抑制超调。第三步前馈控制。这是提升OIS性能的关键。陀螺仪输出的角速度信号经过一个高通滤波器后直接加到马达驱动信号上。这样做的目的是让马达提前响应补偿系统的延迟。前馈系数通常设在0.6-0.8之间太大容易过冲太小效果不明显。这里踩过坑前馈和反馈的相位匹配。如果前馈信号的相位和反馈信号的相位不一致两者会相互抵消反而降低防抖效果。我习惯用示波器同时观察陀螺仪输出和马达位置反馈调整前馈滤波器的相位让两者在5-20Hz频段内保持同相。个人经验性建议别迷信“大行程”。很多厂商宣传OIS行程±3度但实际手持抖动的幅度通常不超过±0.5度。更大的行程意味着更大的马达和更厚的模组牺牲的是整机厚度和成本。对于手机±1.5度足够对于车载考虑到路面颠簸±3度是必要的。陀螺仪和马达的匹配比单独选型更重要。我曾经把一款高性能陀螺仪和一款高性能马达搭配在一起结果因为两者的响应延迟不匹配防抖效果反而不如中端组合。建议用同一个供应商的整套方案或者至少做一次完整的系统级仿真。温度补偿是OIS的“隐形杀手”。陀螺仪的零偏随温度变化马达的磁钢在高温下退磁悬丝的弹性模量也会变化。我习惯在模组里集成一个温度传感器每隔1秒采集一次温度查表补偿陀螺仪零偏和马达推力常数。这个表需要在-20℃到60℃范围内至少取10个点每个点稳定30分钟后再记录数据。量产测试不能只看“防抖效果”。很多产线用振动台测试OIS只关注画面是否清晰。但更重要的指标是残余抖动和响应时间。我建议在产线增加一个测试项输入一个阶跃信号比如从静止突然转到10Hz振动记录马达位置从10%到90%的上升时间这个时间应该小于20ms。如果超过30ms说明马达或驱动IC有问题。最后也是最重要的OIS不是万能的。它只能补偿高频抖动1Hz对于低频漂移比如走路时的身体晃动需要配合EIS电子防抖一起使用。我见过太多项目把OIS调得完美但EIS算法没跟上最终效果还是差强人意。记住OIS负责“硬”的机械补偿EIS负责“软”的算法补偿两者缺一不可。调试OIS就像调音参数对了手感就对了。但手感这东西只有亲手摸过几十个模组才能找到那种“刚刚好”的感觉。