迭代学习控制(ILC, Iterative Learning Control) 是一种面向重复性任务的智能控制算法,核心思想很朴素:同一个动作做很多次,每次根据上一次的误差修正下一次的指令,越做越好。
一、ILC 的基本原理
ILC 算法,假设系统在有限时间段内重复执行同一条轨迹,且每次运行的初始状态基本一致,工作方式可以简单表示为:
- 下标 k :表示第 k 次迭代。
- uk(t): 是第 k 次运行时,在时刻 t 的控制输入(比如给电机的目标位置或力矩)
- ek(t):是第 k 次运行时在时刻 t 的误差(比如期望力与实际力的差)。
- L:是学习增益,决定了从误差中学习的强度。
- δ:是一个微小的时间偏移,用于补偿系统延迟,让误差和指令在时间上对齐。
物理意义:上一次运行时,某个位置用了某个指令,结果力偏大了,那么下一次运行到同一个位置时,就在原来的指令上减去一个与误差成比例的量,如此反复,直到误差接近零。
二、ILC 的主要作用
- 提高重复轨迹的跟踪精度:对于位置、速度、或力的重复性轨迹,ILC 可以显著减小稳态和瞬态误差。
- 补偿未知或难以建模的动态:摩擦、传动间隙、重力不平衡、柔性变形等,ILC 通过试错-修正机制间接补偿,不需要建立精确的数学模型。
- 实现高精度力控或位置控制:在需要极高一致性的场景(如晶圆搬运、注塑、抛光、清洁),ILC 可将误差降低一个数量级以上。
三、典型应用场景
ILC 最适合满足以下条件的任务:
- 任务是重复性的(同样轨迹、同样速度、同样负载)。
- 系统在有限时间段内运行(有明确的开始和结束)。
- 每次运行的初始条件大致相同。
典型场景:
- 工业机器人:重复搬运、焊接、喷涂轨迹修正。
- 半导体设备:晶圆传送机械手的精密位置控制。
- 注塑机/压力机:重复开合模的力/位置控制。
- 医疗机器人:重复性康复训练动作的力辅助。
- 清洁机器人:对同一区域,多次执行相同的清洁路径,ILC 可让贴合力越来越均匀,补偿曲面形状误差和力控参数的不足。
四、ILC的有效性
其有效性建立在两个核心前提上:
- 误差的可重复性:如果同样的指令在每次运行时产生类似的误差(系统动态是确定性的),那么误差中就包含了上次哪里做得不好的可靠信息,ILC 正是利用了这个信息。
- 学习的因果对齐:ILC 通过非因果的学习结构(使用未来误差信息 ek(t+δ) 来更新当前时刻的指令),避免了实时反馈控制的相位滞后问题,实现了类似提前预判的修正效果。
通俗类比:
- 学打网球,每次发球都略有偏差。教练录下你上次的动作,指出球偏左了5厘米,下次发球时,刻意把手腕往右调一点。这个调整不依赖你当时的实时反应,而是基于上一次完整动作的回放分析。这就是 ILC 的离线学习、在线修正模式。
- 标准 PID 控制是边跑边看路,ILC 是跑完一圈,记下哪里颠簸了,下一圈提前绕过去。
五、机器人中的应用
标准 ILC 的跨次迭代框架直接套在单次内空间迭代上行不通,但它的思想用过去的误差信息构造前馈,完全可以被迁移,如果后续想实现越擦越贴的效果,ILC 可以这样嵌入:
- 清洁内壁一圈(一次迭代),记录整个路径上的力误差。
- 通过 ILC 更新下一圈的参考轨迹(或导纳控制器的期望力),使力曲线逐渐平坦。
- 由于内壁形状固定,重复清洁完全满足 ILC 的条件。
但请注意,ILC 的收敛需要系统动态稳定,且学习增益 L 要调好,否则可能发散。这可以作为下一阶段的高级优化,不是当前必须。
ILC 有两个关键特征:
- 重复性:要求系统在多次运行中重复同一轨迹,且每次运行时间轴完全对齐。
- 非因果学习:修正当前次运行的指令时,使用的是上一次运行整个过程的误差记录,包括未来时刻的误差,这是一种离线、跨次的学习。
对于单次运行,空间轴(沿外壁的清洁路径)代替了时间轴,用已经过的位置的误差,去补偿尚未到达的位置的控制。这在时间上是因果的(过去的已知,未来的未知),但在空间轴上是前馈性质:根据前面曲面的特性,预判后面曲面的特性。