控制算法手记-迭代学习控制

‘任何事情,重复做一万次,你也会成为专家。’ 这并不是鸡汤,而是一类重要的数据驱动控制方法-迭代学习控制ILC(Iterative Learning Control)背后的基本思路。重复并不意味着完全和以前一样,而是每次都能从之前的经验中学习并改进,循序渐进,臻于完美。在工业自动化中,存在着在同样的条件下重复执行同一个任务的场合(如机器臂重复定位-抓取,晶圆运动平台、数控加工中心、注塑机压力控制、电机控制等),为迭代学习控制的应用提供了可能。

从历史偏差中学习


对于人类来说,从过往偏差/错误中学习是掌握并习得新技能的好方法;然而,控制算法并不总是这样。一种经常的情况是,由于外部未知周期性/重复干扰以及模型不确定性等因素的存在,控制系统实际输出和目标输出会出现偏差,且反复出现。干扰信息未知或者无法测量,也就无从在算法中通过前馈控制器予以补偿;反馈控制器(如PID)闭环补偿则会带来滞后;鲁棒控制算法(Robust controller)则只保证干扰带来的影响在一定范围内。考虑历史偏差信息中隐含着丰富的系统信息以及同样的条件下重复执行同一个任务的系统工作特点,控制算法应能够有效利用历史信息直接计算出(不是通过相关物理机理模型或者自适应控制器)当前时刻的控制输入以排除未知重复性干扰影响,进而保证系统输出性能。从这种意义上来说,迭代学习控制本质上是一种根据系统历史输入输出数据、预测外界干扰并提前做出补偿的开环控制器。学习框架
如何从历史信息中学习并达到好的效果? 从身为智能体的人类此类学习经验来说,可能会存在着学习失败、缓慢、状态不稳定、效果不佳等问题。同样地,控制算法也可能会犯类似的错误。因此,算法工程师需要在理解迭代学习机理/框架的基础上,根据实际应用场合来设计算法,以最大限度地发挥迭代学习控制的优势。 

图1. 迭代学习控制结构图[1]

一种常见的迭代学习控制框架如图1所示,图中迭代步数(0,...j,...)为系统当前重复次数,每个重复周期/迭代步数被分割成有限个采样点(1,...k,..N)。迭代学习算法将前一个迭代步 (j-1)的偏差送入学习函数L进行处理,和前一个迭代步(j-1) 控制指令相加后生成当前迭代步j控制指令。即系统当前控制指令是在之前迭代步控制指令的基础上,根据相应的偏差做出调整得到:如果以前迭代步中的控制指令已经能达到相对较好的效果(产生的偏差较小),那么当前控制指令只需在以前的基础上微调;如果以前迭代步中的控制效果不好(产生的偏差较大),当前控制指令则需要做出相对较大的调整;学习函数L规定了历史偏差信息能在多大程度上、以什么方式(如偏差每次放大多少倍?利用了多少时刻的偏差信息以及之间如何组合?)被当前控制指令利用,因此决定了迭代学习算法的收敛速度和实时学习效果(如偏差是否随迭代次数增大单调递减、以什么样的速度递减、是否产生瞬时过大的控制指令、最终是否能实现零误差跟随),是迭代学习算法设计的关键。图1中滤波函数Q一般为1,此时根据历史控制指令和对应偏差信息计算出来的当前控制指令直接送入被控对象P中,历史信息被完全利用,因此当系统满足一定条件时,随着迭代步数的增大,控制输出可以完美跟踪参考轨迹。然而,对于具有高频不确定性或未知非周期性干扰的被控系统来说,历史信息可能隐含着随机误差被代入到下一个迭代步的控制中,导致被控系统不稳定或振荡,此时滤波函数Q可以设计成低通或带通滤波器,以保证系统的鲁棒性和稳定性;但由于未完全利用历史信息,会牺牲掉部分学习速度和最终学习效果(如系统不能完美跟踪参考输入)。因此,滤波器Q的设计需要综合权衡系统稳定性、鲁棒性、实时学习性能和最终控制精度。

总结


不同于PID控制器在反馈控制的框架中利用当前及相邻时刻偏差信息计算控制指令,迭代学习控制可以利用一个多个历史迭代步(j-1,j-2…)中‘未来时刻’(k+1, k+2…)的偏差信息来计算当前迭代步jk时刻的控制指令。这种区别使得迭代学习控制跳出了反馈控制的框架,能够对某种有规律的干扰或不确定性进行提前补偿,从而在某些方面有效的克服了PID控制器的不足,自从上世纪七八十年代被提出以来,得到了广泛研究和实际应用[1][2]。然而对于并不严格满足同样条件下重复执行同一个任务的应用场合,或者存在非重复性、随机干扰/噪声或复杂非线性系统,迭代学习控制作为一种开环控制架构并不具备相关反馈及参数辨识机制来处理这些问题。此时,迭代学习控制需要和其他反馈、鲁棒或者自适应控制框架等进行融合以达到理想控制效果。


参考文献


[1] D. A.Bristow , M. Tharayil and A. G. Alleyne. A survey of iterative learning control. IEEE Control Systems Magazine,2006, 26(3):0-114.
[2] Jian-XinXu. A survey on iterative learning control for nonlinear systems. International Journal of Control, 2011, 84(7):1275-1294.