误差控制和残差控制
传统控制的核心思想是误差。误差控制的目标是使系统输出与期望输出之间的误差最小化。 而残差控制的核心思想是残差。残差控制的目标是使系统输出与预测输出之间的残差最小化。
在传统的控制理论里,观测是独立于控制的。观测数据来自传感器。 观测数据的更新,会导致误差的更新。 误差的更新,最后导致控制量的更新。
在残差控制律里,观测和控制是统一的。观测和控制,都会产生残差。 即:观测残差 更新模型参数,控制残差 更新控制参数。
即:控制律有 观测和控制2个拍,交织在一起运行。 观测残差告诉你,模型哪里错了。控制残差告诉你,控制量哪里错了。
残差和误差,说的是维度。误差是个标量,残差是个矢量。
这就导致了,对于 >1 个控制量的系统。 对每一个控制量,都需要运行一个独立的误差控制。为了避免多个误差控制环相互打架的问题, 要求控制量之间必须解耦。
而残差控制,没有这个必须解耦的限制。 因为残差控制是基于残差的。残差是个矢量,所以可以同时控制多个控制量,控制量之间可以耦合。
残差控制律
在残差控制律下,控制系统是一个 多输入多输出的闭环控制系统。
控制律运行的时候,需要把控制逻辑分成3个拍:
- 观测残差
- 控制残差
- 更新预测
这3个拍可以交织运行,也可以异步运行。即:观测和控制运行速度不一致。
具体在代码上,需要一个 状态空间。状态空间里,存储系统模型参数,预测输出,控制参数。
观测步骤:观测和预测的残差,通过残差传播的方式,更新模型参数。
控制步骤:根据观测和控制目标的残差,通过残差传播的方式,更新控制参数。
更新预测:根据系统状态空间和状态转移方程,更新预测输出。
这3个步骤首尾相连运行,形成一整个闭环控制环。
每个步骤里,都会更新自己的协方差矩阵。预测的时候,这个矩阵告诉你,我的预测会随着时间发散。 观测的时候,这个矩阵告诉你,我的观测有多少相干性。 控制的时候,这个矩阵告诉你,我的控制量有多少耦合性。
收敛过程
不管是误差控制,还是残差控制,都有一个收敛过程。 系统在更新控制量的时候,不需要一步到位的给出准确的控制量。 系统会通过迭代,逐渐收敛到一个稳定的状态。
收敛速度,又被称为系统带宽。
注意:系统带宽和控制律的执行带宽并不等价。 系统带宽是一个收敛的过程。他天然的低于执行带宽。除非做到理论上的单拍收敛。
高精度控制的优化目标就是2条腿走路:
- 提高执行带宽。
- 提高收敛速度。
为什么闭环系统并不追求单拍收敛呢?
因为单拍收敛,需要完美的模型。 而完美的模型,是不存在的。 所以,闭环系统并不追求单拍收敛。
承认模型是不完美的,再通过小步快跑的方式逼近控制目标。
解耦和正交
即便用了残差控制,状态空间依然需要满秩。 向量之间要满足正交性。 但是,正交性是数学上的。耦合性是物理上的。
例如 D轴和Q轴,数学上是正交的,物理上是有耦合的。
残差转播
残差传播的方式,可以使用机器学习!
Comments