基于动态规划的对焦步进电机控制
2022-02-23邝先验周亚龙吴玉刚
邝先验,周亚龙,吴玉刚
基于动态规划的对焦步进电机控制
邝先验,周亚龙,吴玉刚
(江西理工大学 电气工程与自动化学院,江西 赣州 341000)
为了解决STM(stepper motor)镜头中步进电机低频对焦慢、高频失步跑焦的问题,通过分析对焦过程中电机的加减速动作,结合步进电机加减速曲线,设计了一种适用于STM镜头驱动的步进电机开环控制算法。算法根据步进电机速度在单位控制周期内不变,把步进电机位置控制问题转换为单位控制周期内脉冲输出问题,实现了速度控制与位置控制的巧妙结合。设计并搭建了STM镜头对焦电机控制电路,工程实验结果表明:该算法提高了步进电机开环控制的精度,有效地减小了由于步进电机过冲和失步带来的跑焦问题。
STM镜头;步进电机;动态规划算法;加减速曲线;位置控制
0 引言
自20世纪以来,图像识别技术发展迅速,对图像的清晰度、采集速度都提出了更高的要求。马达是自动对焦镜头中最重要的部件之一,目前,市场上主流的镜头对焦马达有直流马达、步进马达、超声波马达3种。直流马达价格便宜,但难以精准控制,超声波马达控制精度高但价格昂贵。步进马达是一种利用电脉冲驱动的、单步可控的电机[1],具有价格便宜、噪声小、优秀的启停和反转响应等优点[2]。优化步进电机控制方法,对于提高镜头的对焦速度与准确性有着重要的意义。
步进电机的控制方法有很多,高精度的位置控制常采用全闭环控制,然而全闭环的位置控制不仅需要高精度的位置检测装置,而且控制系统结构包含非线性环节导致控制系统模型复杂化,影响系统的稳定性和快速性[3]。相机镜头大多采用封闭式机械结构,对焦过程中不容易受到干扰,适合开环控制。随着细分驱动技术的发展,电机输出跟踪输入的同步能力不断提高,再通过合适的加减速曲线算法优化,可以有效避免失步、振动等现象[4-5]。典型的开环速度控制曲线有:梯形曲线、S型曲线、指数型曲线、抛物线等[4,6-8]。文献[9]中提出了一种快速实现步进电机的加速-匀速-减速-定位的控制方法,通过目标位移、加速时间、匀速时间、减速时间等计算出步进电机的速度变化曲线。该算法把加减速曲线与位置控制相结合,取得了一定的效果,但只实现了简单的梯形曲线的位置控制。
通过分析自动对焦镜头的对焦过程,结合开环速度控制曲线,把对焦过程中的位置控制问题转化为单位控制周期内输出脉冲数的选择问题,根据步进电机的矩频特性设计了动态加速度参数,使用动态规划算法搜索最优速度变化解序列,原则上可以实现任意曲线的精确位移控制,具有一定的实用性。
1 自动对焦过程分析
1.1 对焦过程中步进电机动作分析
典型的自动对焦系统由分析处理模块判断输入的图像是否对焦清晰,控制模块则根据分析处理模块提供的相关信息来调节镜头驱动装置[10]。利用步进马达控制镜片以一定的步长前后移动,在镜头移动的过程中读取对焦评价函数相关信息,机身根据这些信息来判断是否合焦,在对焦过程中镜头进行往复运动,最终找到最清晰的对焦位置。
如图1所示,镜头一般对焦动作分为4步:①相机根据当前图像确定对焦方向;②粗略移动镜片确定合焦区间;③精细移动镜片确定合焦精确位置;④最后移动镜片完成对焦。对于开环控制来说,步进电机在高速情况下频繁地启动和刹车会导致失步和过冲产生的位置误差逐渐积累,影响相机对合焦位置的准确判断,进而使得对焦缓慢,甚至导致对焦失败。
图1 镜头一般对焦过程
1.2 对焦电机开环步进实验
不同型号的镜头都有独特电机特性和负载特性,因此由机械惯性带来的电机失步与过冲程度也各不相同[2,11],为测试高速启动和刹车对步进电机开环位置控制的影响,使用Viltrox SMT定焦镜头在不同的速度下做单向步进实验。步进电机的控制频率为100Hz,通过控制单位周期的脉冲数来控制电机速度,以不同的速度同向开环步进500步,测试结果如表1所示。
表1 单向步进的位移误差
表1的结果表明,当步进电机单位控制周期内的输出脉冲数较低,电机速度较小时,充分体现了步进电机无积累误差的特点,实际位移可以跟随期望位移,基本没有过冲和失步现象,随着电机速度的增加,逐渐出现了无法跟随目标位移的现象,当单位周期输出的脉冲数增大到150时,步进电机还未完成加速启动就已刹车,实际位移远小于期望位移,失步和过冲严重影响到开环位置控制的准确性。
2 基于动态规划的电机开环控制
2.1 位置控制与速度块组合的转换
现在设目标位移为q,总位移可以拆分为多个控制周期的位移之和。步进电机的位置控制问题可以转化为选择合适的脉冲数组合得到期望位移的问题,设s为第种速度在单位控制周期内的位移(后文统称速度块),x为该速度块的个数,有:
当上式中所有解项的系数之和最小时,就得到了最少速度块组合序列,也就是使用最短的时间到达目标位置的解序列。考虑到实际情况,该解序列具有两个约束条件。
条件一:由于步进电机的机械负载限制,当前时刻的速度若与下一时刻的速度相差过大会导致步进电机失步或过冲。
式中:相邻解序列的元素满足条件一的最大差值为max;()为解序列的第个元素;abs为绝对值计算符号。
条件二:为了保证步进电机从零速度开始加速,到达目标位置时需减速到零。(0)为解序列的第一个元素,)为解序列的最后一个元素,需满足:
2.2 基于矩频特性的Amax参数设计
通常的步进电机的矩频规律为:在运行频率0较小时,转矩基本横定,而当增大时,随近似线性下降[4,11]。对于这种矩频特性,其加速度与运行频率之间满足的线性变化规律为:
代入(5)式,得到加速度cc与运行频率之间的关系为:
令=,=,x为解序列中的元素,构造函数:
式中:为初始力矩;为加速度系数,随着电机频率的增加,加速度逐渐减小。
2.3 约束条件的动态规划搜索算法
动态规划是运筹学的一个分支,是求解决策过程的最优化数学方法,是一种强大的离散时间方法,可以为非凸最优控制问题提供全局解决方案[12]。当某问题的最优解可以由子问题的最优解推导得到,则可以先求解子问题的最优解,再构造原问题的最优解。若子问题有较多的重复出现,则可以自底向上,从子问题向原问题逐步求解[13]。使用动态规划方式把大问题分解成小问题逐步解决,避免重复的搜索,更加快速高效,基于动态规划的步进电机速度曲线搜索算法具体如下。
1)划分阶段。设目标位移为d,解序列的最小项数为(d),解序列为(d),使用自下而上的求解方式将大规模问题拆分为小规模问题。
{(0),(1),(2),…,(d)} (9)
先求解小规模问题,再逐渐递推出目标解。设备选速度块为d。
d={1,3,5,7,9} (10)
2)构造初始状态。从d中可以得到:
3)决策与约束条件。现求解(3)、(3),若要得到总位移为3的解序列,则要选择小于等于总位移的备选值,可选项为[1,3]。
令q=(3),q为(3)序列中的第个值,约束条件一为:
检查得到的解序列是否满足约束条件一,不满足则舍弃,显然两组解序列都满足。第二种组合方式所得到的解序列的项数更小、更省时间。记录下最优结果(3),(3)。
4)状态转移方程。从上面的关系式递推得到状态转移方程。
根据状态转移方程依次递推,最终可以获得满足约束条件一的目标位移的最优解序列,也就是步进电机的速度变化曲线。
2.4 动态规划搜索算法优化
动态规划算法在搜索过程中需要存储大量的中间变量,对于大规模的搜索来说,内存空间易发生溢出。因此需要降低搜索的规模。
现假设步进电机的目标位移为e,在a阶段电机处于加速阶段,加速到max后进入b匀速阶段,电机以最高速度运行,到达c后进入减速阶段,直到电机停止运动。因此,只需搜索0.5e的部分,另外的一半由0.5e的解序列逆排序得到,这样得到的全部序列恰好满足条件二。电机达到最高速之后以匀速运行,只需要搜索加速的部分序列,剩下的序列用最高速的速度块补齐。设加速部分的位移为1,最高速的单周期位移为q,局部使用动态搜索。
基本参数确定后,解序列具有确定性,为了提高算法的控制效率,可以预先搜索出需要的解序列,与最高速的速度块组合,可快速得到目标位移的速度块序列。
3 控制组件的设计与算法验证
通过对STM镜头自动对焦过程以及步进电机速度对于开环位置控制的分析,结合动态规划搜索算法,提出了基于动态规划的对焦步进电机开环控制算法。在此基础上设计了一种适用于STM镜头的控制电路。整个控制组件电路包括硬件和软件两个部分。
3.1 STM镜头对焦控制组件电路设计
整个镜头控制组件电路包括6个部分,其系统框图如图2所示。输入电压为5.0V,经DIO芯片转换为3.3V,分别为电机驱动以及其他模块供电。光电耦合开关用来确定对焦起点位置。调试接口采用USB转串口芯片,可以直接向电脑输出调试信息。主控制器由STM32F0系列单片机及其外围电路构成,负责协调与主机之间的信息交互、控制电机驱动完成对焦动作。电机驱动由MS41929电机驱动芯片及其外围电路构成,该芯片是一款双通道5V低压步进电机驱动芯片,具有电流细分的电压驱动方式以及扭矩纹波修正技术,可以实现超低噪声的微步进驱动,最高可以设置为256细分步进,满足镜头的高精度要求。MS41929采用SPI协议通信,使用主控制器向驱动芯片写入细分数、峰值电压、PWM频率、电机相位矫正参数等,通过VD引脚的电平变化使参数生效,可以灵活地控制步进电机。使用步进电机进行自动对焦实验,电机参数如表2所示。
3.2 对焦步进电机开环位置控制算法设计
第2章中给出了算法的状态转移方程,还需要进一步确定算法的输入输出参数,根据实际工程设置约束条件,使用二维矩阵来存储解序列结果。其主要步骤如下:
①确定约束条件max方程;
②设置电机最大速度maxspeed;
③确定备选序列;
④给出需要搜索的最大目标位移exposition;
⑤进行动态规划搜索,输出搜索结果。
表2 步进电机具体参数
图2 STM镜头控制组件系统框图
图3总结了搜索过程,其中备选序列i取零到最大速度之间的所有整数。
图3 控制序列搜索流程图
表3 2000脉冲步的解序列
表4 4000脉冲步的加速阶段解序列
由图4可以看到,步进2000脉冲步需要36个控制周期,每个控制周期为10ms。在0~180ms内,步进电机处于加速阶段,180~360ms内逐渐减速到0,相邻控制周期的脉冲数的差值随着速度的增加逐渐减小,符合步进电机力矩随着转速的增加而减小的特性。电机还未加速到最高速就开始减速,减速过程为加速的对称过程,为两段式运行过程。同时兼顾了速度控制与位移控制。
图5中,在0~210ms内,步进电机处于加速阶段,加速度逐渐减小,在210~370ms内,处于匀速阶段,370~580ms逐渐减速到0。步进电机加速到最高速后进入匀速运行状态,为典型的三段式运行曲线,搜索结果满足上文分析的两个约束条件,为最优控制序列。
图4 2000脉冲步的速度变化曲线
图5 4000脉冲步的速度变化曲线
3.3 与常规开环控制算法单向步进比较
以3.2小节的系统参数进行步进电机动态规划开环控制实验并与常规开环控制进行对比。实验结果见表5与表6。
表5 步进电机的常规开环控制
步进电机的常规开环控制结果见表5,在期望位移为600脉冲步时,低速开环控制的耗时为150ms,误差为5脉冲步。高速开环控制的耗时为60ms,误差为40脉冲步。在期望位移为4000时,低速开环控制的耗时为1000ms,误差为6脉冲步。高速开环控制的耗时为400ms,误差为90脉冲步。可以看到,随着速度的增大,由于快速启停导致的位移误差也在增大,无法满足系统高精度的控制要求。
表6 步进电机的动态规划开环控制
步进电机的动态规划开环控制结果见表6,在期望位移为600脉冲步时,动态规划开环控制的耗时为140ms,误差为1脉冲步,比常规开环控制精度更高。在多次实验中,误差最大时为3脉冲步,控制精度较高,符合自动对焦系统的要求。对比表5与表6在不同期望位移的实验结果,得出如下结论:随着目标位移逐渐加长,低速开环控制耗时过长,高速开环控制误差较大,无法满足系统要求,采用动态规划开环控制算法耗时短,失步和过冲误差小,具有更优的控制性能。
3.4 对焦拍照实验
使用动态规划开环控制算法与常规开环控制算法进行拍照对比。实验步骤如下:①固定相机的位置。②利用相机的手动对焦模式把镜头对焦位置调到无穷远处。③使用两种电机控制算法对焦同一位置的物体,拍摄两张照片。④改变对焦物体的位置,分别拍摄10组照片。⑤Tenengrad函数是一种基于梯度的图像清晰度评价函数,使用Tenengrad函数计算每张照片的清晰度,分别对每组数据进行最大值归一化。⑥统计每组照片的清晰度与对焦时间。实验结果如图6和图7。
图6 不同控制算法的图像清晰度对比
图6中,两种对焦算法对焦同一位置的物体进行拍照,10组照片均是本文提出的控制算法拍摄的清晰度更高。图7中,常规电机控制对焦算法的平均耗时为1.13s,动态规划电机控制算法对焦平均耗时为1.03s。对焦速度提升约10%。
图7 不同控制算法的对焦时间对比
4 结论
论文分析了自动对焦过程中电机速度对开环位置控制的影响,结合矩频特性设计了动态加速度参数,根据步进电机加减速算法设计了一种精确的开环位置控制算法。给出基于动态规划的对焦位置控制算法的具体实现与程序流程图,给出了2000位移与4000位移的搜索结果示例,并进行了对焦拍照实验。实验结果表明,使用本文提出的控制算法对焦速度更快,对焦准确性有一定提升,具有一定的实用价值。但算法仍有缺陷:为保证算法的实时性,当控制规模较大,加速时间较长,控制频率较高时,需要保存的序列表会大幅增加,占用大量的内存资源,因此,需要合理地设计控制参数。
[1] 杨宁宁, 王晓宁, 夏寅辉, 等. 基于步进电机的红外镜头控制组件设计[J]. 激光与红外, 2012, 42(1): 81-84.
YAND Ningning, WANG Xiaoning, XIA Yinhui, et al. Design of infrared lens control component based on stepping motor[J], 2012, 42(1): 81-84.
[2] 李茂军, 刘鼎邦. 步进电机细分驱动电磁转矩分析[J]. 控制工程, 2013, 20(2): 243-245.
LI Maojun, LIU Dingbang. Electromagnetic torque analysis of stepping motor subdivision drive[J]., 2013, 20(2): 243-245.
[3] 李汉. 一种步进电机快速准确定位系统的设计及其分析[J]. 微电机, 2012, 45(9): 91-95.
LI Han. Design and analysis of a fast and accurate positioning system for stepping motor[J]., 2012, 45(9): 91-95.
[4] 王邦继, 刘庆想, 周磊, 等. 步进电机控制系统建模及加减速曲线优化[J]. 电机与控制学报, 2018, 22(1): 37-42.
WANG Bangji, LIU Qingxiang, ZHOU Lei, et al. Modeling of stepping motor control system and optimization of acceleration and deceleration curve[J]., 2018, 22(1): 37-42.
[5] 周永明, 许进亮, 李向阳, 等. 基于DSP的两相步进电机细分驱动器设计[J]. 电力电子技术, 2017, 51(4): 87-93.
ZHOU Yongming, XU Jinliang, LI Xiangyang, et al. Design of two-phase stepping motor subdivision driver based on DSP[J]., 2017, 51(4): 87-93.
[6] 曾康玲, 杨向宁, 赵世伟, 等. 步进电机指数型加速曲线优化与实现[J]. 微电机, 2014, 47(6): 36-40.
ZENG Kangling, YANG Xiangning, ZHAO Shiwei, et al. Optimization and realization of exponential acceleration curve of stepping motor[J]., 2014, 47(6): 36-40.
[7] 郭庆, 郭银峰, 徐翠峰. 基于DSP的步进电机S曲线加减速控制[J]. 桂林电子科技大学学报, 2018, 38(1): 41-44.
GUO Qing, GUO Yinfeng, XU Cuifeng. S-curve acceleration and deceleration control of stepping motor based on DSP[J]., 2018, 38(1): 41-44.
[8] 路欣宇, 苏俊波, 许红, 等. 基于模糊控制的步进电机开环调焦系统设计[J]. 红外技术, 2018, 40(3): 228-231.
LU Xinyu, SU Junbo, XU Hong, et al. Design of stepping motor open-loop focusing system based on fuzzy control[J]., 2018, 40(3): 228-231.
[9] 杨颖辉. 基于AVR控制器的步进电机开环定位控制技术研究[J]. 宇航计测技术, 2016, 36(6): 89-95.
YAND Yinghui. Research on open-loop positioning control technology of stepping motor based on AVR controller[J]., 2016, 36(6): 89-95.
[10] 尤玉虎, 刘通, 刘佳文. 基于图像处理的自动对焦技术综述[J]. 激光与红外, 2013, 43(2): 132-136.
YOU Yuhu, LIU Tong, LIU Jiawen. Overview of auto focus technology based on image processing[J], 2013, 43(2): 132-136.
[11] 蔡祖光, 史铁林. 步进电动机矩频特性测试方法研究[J]. 电子器件, 2012, 35(2): 191-193.
CAI Zuguang, SHI Tielin. Research on measurement method of torque frequency characteristics of stepping motor[J]., 2012, 35(2): 191-193.
[12] Ono M, Pavone M, Kuwata Y. Chance-constrained dynamic programming with application to risk-aware robotic space exploration[J]., 2015, 39(4): 556-567.
[13] 刘大龙. 基于动态规划的冗余机械臂液压驱动系统能量优化[J]. 中国工程机械学报, 2018, 16(6): 483-496.
LIU Dalong. Energy optimization of hydraulic drive system of redundant manipulator based on dynamic programming[J]., 2018, 16(6): 483-496.
Control of Focusing System of Stepper Motor Based on Dynamic Programming
KUANG Xianyan,ZHOU Yalong,WU Yugang
(,,341000,)
To solve the problems of slow focusing in a stepper motor lens, caused by a stepper motor used for low-frequency driving, and the lack of focus, caused by an out-of-step stepper motor used for high-frequency driving, the open-loop control algorithm of a stepper motor for an STM lens is designed by analyzing the motor's acceleration and deceleration action and its acceleration-deceleration curves during the focusing process. Based on the constant speed of the motor during the unit control period, the algorithm transforms the position control problem of the stepper motor into a pulse output problem in the unit control cycle, which realizes a skillful combination of speed control and position control. The control circuits are built for the STM lens focusing motor. The experimental results show that this algorithm can improve the open-loop control precision of the stepper motor, effectively suppressing the out-of-focus problem caused by overshoot and out-of-step stepper motors.
STM lens, stepper motor, dynamic programming, acceleration-deceleration curve, position control
TN216
A
1001-8891(2022)02-0163-07
2020-06-17;
2020-08-10.
邝先验(1976-),男,博士,教授。主要研究方向:智能交通系统、系统建模与仿真、智能控制与信息技术。E-mail:xianyankuang@163.com