一、自适应控制概述

什么是自适应控制

先说说我自己的理解吧。自适应控制,说白了就是让控制器自己学会「随机应变」。

你想想看,传统的PID控制器,参数调好了就固定在那。但现实世界哪有那么理想?电机用久了会发热,电阻会变化;飞机飞高了空气密度会变,气动特性也跟着变。这时候固定参数的控制器,性能就会打折扣。

自适应控制要解决的就是这个问题——系统参数变了,控制器能自己调整参数,保持性能稳定

我记得刚入行那会儿,带我的老工程师跟我说过一句话:「好的控制器,应该像老司机开车——路况变了,脚法也跟着变。」现在想想,这话说得真到位。

核心定义:自适应控制是一种能够在线辨识系统参数变化,并自动调整控制器参数,使系统始终保持期望性能的控制策略。

为什么需要自适应控制

这个问题其实很实际。我做过不少工程项目,遇到过三种典型场景,非用自适应不可:

  • 参数时变——比如机器人关节的摩擦力,用久了会磨损,摩擦系数一直在变。固定参数控制器刚开始还行,半年后就开始抖动了。
  • 模型不确定——很多工业对象,你根本拿不到精确的数学模型。比如化工反应釜,内部反应机理复杂,只能给个近似模型。这时候自适应控制能边运行边学习。
  • 环境变化——无人机在不同海拔飞行,空气密度差很多。固定参数的控制器,在平原调好了,上高原就失控。自适应控制能自动补偿这种变化。

我曾经做过一个项目,给某工厂的加热炉做温控。炉子的热惯性会随着炉龄增加而变化。刚开始用PID,效果还行。三个月后,温度波动越来越大,最后不得不重新整定参数。后来换成了模型参考自适应控制,这个问题就解决了。嗯,这就是典型的「参数时变」场景。

自适应控制与经典控制的区别

这里我画了一张图,帮你理清思路:

经典控制 固定参数控制器 离线整定 → 在线固定 适用于时不变系统 自适应控制 参数可调控制器 在线辨识 → 在线调整 适用于时变/不确定系统 核心区别对比 对比项 经典控制 自适应控制 参数调整 离线一次整定 在线持续调整 模型依赖 需要精确模型 允许模型不确定 鲁棒性 对参数变化敏感 对参数变化不敏感

从这张图可以看得很清楚:经典控制是「一次调好,终身使用」,而自适应控制是「边干边学,动态调整」。两者没有谁优谁劣,关键看应用场景。

我的建议:如果你的系统参数基本不变,或者变化很慢,用经典控制就够了,没必要上自适应。自适应控制虽然强大,但实现复杂,调试周期也长。别为了用技术而用技术。

自适应控制的应用领域

自适应控制的应用范围其实比很多人想象的要广。我挑几个典型的说说:

领域 典型应用 为什么需要自适应
航空航天 飞行器姿态控制、导弹制导 飞行高度/速度变化导致气动参数剧烈变化
机器人 机械臂轨迹跟踪、力控制 负载变化、关节磨损、柔性变形
过程控制 化工反应器、加热炉、蒸馏塔 原料成分变化、设备老化、环境温度波动
电力系统 发电机励磁控制、电力系统稳定器 电网拓扑变化、负荷波动
汽车工程 发动机怠速控制、主动悬架 发动机磨损、路面条件变化
生物医学 麻醉深度控制、血糖控制 患者个体差异大、生理参数时变

我印象最深的是在航空航天领域的应用。当年参与过一个无人机项目,飞行包线很宽,从海平面到5000米。PID控制器在不同高度要切换好几套参数,调试起来特别麻烦。后来用了模型参考自适应控制,一套参数从头飞到尾,省了不少事。

注意:自适应控制不是万能的。它需要足够的激励信号来辨识参数,如果系统长时间处于稳态,参数估计可能不准确。另外,自适应律的设计不当可能导致系统不稳定——我见过有人把自适应增益设得太大,结果系统直接发散。这个坑,后面章节会详细讲。

好了,这一章的内容就到这里。自适应控制的核心思想其实不复杂——就是让控制器学会「适应变化」。后面的章节,我们会深入具体的算法和实现细节。


公众号:蓝海资料掘金营,微信deep3321