2. 从精确建模的疲惫,到不依赖模型的MFAC思路
2.1 传统自适应控制的现实瓶颈
接触过控制工程的人差不多都有过这种体验:理论课上推导了一大堆自适应律,看起来非常精致,但拿到现场设备上,控制器往往坚持不了几个班次就不对劲了。原因其实不复杂,传统自适应控制,包括自校正控制和模型参考自适应控制,都需要先对被控对象建立一个结构已知、参数可在线辨识的数学模型。一旦对象结构本身就不清楚,或者强非线性,或者工况在持续漂移,辨识出来的参数很容易失真,控制效果自然就跟着崩。
我之前负责过一个液位控制的小项目,对象本来用一阶惯性加纯滞后模型建模,但实际系统里面有明显的摩擦非线性,还有一段很难精确刻画的加热滞后。为了凑模型参数,光阶跃响应就做了好几组,可是换一个工作点,参数又变了。最难受的是模型参考自适应里面那个参考模型,如果我连对象真实动态都不清楚,怎么选参考模型都会显得很一厢情愿。这种“建模难、建模贵、模型还不一定靠得住”的问题,在工程现场其实非常普遍。
MFAC也就是无模型自适应控制,恰恰是冲着这个痛点去的。它不要求你先给出系统的结构模型,不要求你对非线性项做近似,也不需要做系统辨识。整条设计路线建立在被控对象的实时输入输出数据上,直接在受控系统的工作点附近构建一个等价的动态线性化模型,然后基于这个等价模型去设计控制器。理解这一点之后,再回头看“无模型”三个字,心里就踏实多了。这里的“无模型”指的是不需要建立受控对象的结构化数学模型,并不意味着完全没有控制模型,它使用的是一种在线更新的等价数据模型。
2.2 MFAC的基本设定:受控对象的I/O数据就能用
MFAC之所以能摆脱精确建模,本质上靠的是一种很强的工程直觉:一个系统不管内部物理过程多复杂,只要它的输入输出是可测的,而且输出随输入的变化在宏观上是平滑、有界的,那么在当前工作点附近,系统的行为总能用一个小范围的线性关系去近似。这个近似不需要描述系统的全局动态,只需要描述“此刻如果我把控制输入改变一个量,输出大概会变多少”就够了。
这里面最关键的两个数,一个是在线估计出来的特征参数,通常叫伪偏导数或伪梯度,另一个是控制输入端到输出端的增量关系。伪偏导数不代表系统某个物理参数的估计,它更像是一个随工作点变化的时变增益,把系统从“输入增量”到“输出增量”的传导关系给浓缩了。因为系统本身是非线性的,伪偏导数必须在线更新,以保证每时每刻的线性化模型都有足够好的预测效果。
在这个设定下,被控对象被视作一个仅通过I/O数据对外呈现的系统:
y(k+1) = f(y(k), ..., y(k-na), u(k), ..., u(k-nb))
其中 f 是完全未知的非线性函数。传统做法会去辨识 f 的长相,MFAC不这么做。它只在当前 k 时刻,用输入增量 Δu(k) 和输出增量 Δy(k+1) 之间建立一个局部线性化等价模型,例如:
Δy(k+1) = φ(k) Δu(k)
有了这个式子,系统就被“降维”成了每一拍都在更新的变增益线性系统。后面设计控制器只需要围绕这个一阶等价模型展开,复杂度立刻降下来了。注意,这个等价模型几乎每一刻都在变,因为它要跟着原非线性系统的工作点走。伪偏导数 φ(k) 的在线估计质量,直接决定整个MFAC控制器的成败,这也是为什么后面仿真里真正需要花时间琢磨的往往是估计器那一块。
2.3 动态线性化在最底层改变了什么
过去我们处理非线性系统,最常用的两条路,要么在某个固定工作点附近做泰勒展开,得到一个线性模型,然后在这个模型上设计控制器,也就是经典的线性化方法;要么引入反馈线性化或者精确线性化,通过坐标变换和非线性反馈把系统化成线性系统。这两条路都要求我们对对象的非线性结构有足够准确的了解。工程现场难就难在,即使能测到数据,也很难把数据背后的机理结构还原出来。
动态线性化和这些方法的本质区别在于,它不在系统内部寻找真实结构,而是直接在“输入增量空间”上构造等价关系。
这个想法可以打一个比方。你开一辆从没拆开过的车,不需要知道发动机缸数、喷油脉宽和变速箱齿比,只需要知道踩油门之后车速变化了多少、方向盘打过去之后横摆角速度变化了多少,就能开着它上路。控制器的职责不是修发动机,而是“根据当前车速和期望车速,决定下一脚油门踩多重”。踩多少油门的经验,来自于上一脚油门引起的车速变化。如果路面变陡了,这一脚同样深度引起的速度增益变小,只要控制算法能实时把这个增益重新估计出来,司机就不会感到车辆失控。动态线性化干的就是这件事:在线估计“当前路况下的油门增益”。
把这个机制落到控制算法设计上,最深层的改变是,控制器不再依赖“离线完成的建模”,而是把“建模”和“控制”打包在一个在线闭环里完成。建模不再追求精致的全局解释力,只追求局部够用、更新够快。这在控制理论内部是一次逻辑重构,相当于把主导权从“机理分析”转移到了“数据反馈”上。
2.4 为什么这种思路没有更早流行
不少入门者看到MFAC,第一个感觉是它很简单,第二感觉是它太“不讲道理”了。为什么这样一个不依赖模型、算法结构又清晰的方法,没有更早成为主流?实际上这和理论完善度、计算条件都有关系。
早期做自适应控制的人不是不知道模型难建,而是那时对“用一个时变参数去吸收非线性动态”这件事缺乏系统性理论支撑。MFAC的完整框架是逐步建立起来的,包括伪偏导存在性的理论前提、估计算法收敛性分析、闭环稳定性证明,这些工作做了很多年才形成相对完备的体系,让后来者能够放心使用。与此同时,早期工业控制器计算能力有限,每一拍都要完成伪偏导估计和控制律计算的要求并不总是能被满足。现在嵌入式控制器的算力上来了,这类算法的部署门槛才真正降了下来。
所以在我个人看来,MFAC最大的贡献不是给出一个更聪明的控制器,而是重新界定了一个问题:把未知非线性系统用数据驱动的方式在线线性化,然后把自适应控制设计建立在这个在线等价模型上。你一旦接受这个思路,就会发现它可以很方便地推广到纯时滞系统、多输入多输出系统,甚至一些结构未知的复杂工业过程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
3. 紧格式、偏格式、全格式:动态线性化到底有几种玩法
3.1 紧格式动态线性化:最小化版本的等价模型
上一节只给出了动态线性化最基本的形式,也就是紧格式动态线性化。这里的“紧”指的是用一个标量伪偏导数,把从控制输入增量到输出增量的
