一、自适应控制概述
什么是自适应控制
先说说我自己的理解吧。自适应控制,说白了就是让控制器自己学会「随机应变」。
你想想看,传统的PID控制器,参数调好了就固定在那。但现实世界哪有那么理想?电机用久了会发热,电阻会变化;飞机飞高了空气密度会变,气动特性也跟着变。这时候固定参数的控制器,性能就会打折扣。
自适应控制要解决的就是这个问题——系统参数变了,控制器能自己调整参数,保持性能稳定。
我记得刚入行那会儿,带我的老工程师跟我说过一句话:「好的控制器,应该像老司机开车——路况变了,脚法也跟着变。」现在想想,这话说得真到位。
核心定义:自适应控制是一种能够在线辨识系统参数变化,并自动调整控制器参数,使系统始终保持期望性能的控制策略。
为什么需要自适应控制
这个问题其实很实际。我做过不少工程项目,遇到过三种典型场景,非用自适应不可:
- 参数时变——比如机器人关节的摩擦力,用久了会磨损,摩擦系数一直在变。固定参数控制器刚开始还行,半年后就开始抖动了。
- 模型不确定——很多工业对象,你根本拿不到精确的数学模型。比如化工反应釜,内部反应机理复杂,只能给个近似模型。这时候自适应控制能边运行边学习。
- 环境变化——无人机在不同海拔飞行,空气密度差很多。固定参数的控制器,在平原调好了,上高原就失控。自适应控制能自动补偿这种变化。
我曾经做过一个项目,给某工厂的加热炉做温控。炉子的热惯性会随着炉龄增加而变化。刚开始用PID,效果还行。三个月后,温度波动越来越大,最后不得不重新整定参数。后来换成了模型参考自适应控制,这个问题就解决了。嗯,这就是典型的「参数时变」场景。
自适应控制与经典控制的区别
这里我画了一张图,帮你理清思路:
从这张图可以看得很清楚:经典控制是「一次调好,终身使用」,而自适应控制是「边干边学,动态调整」。两者没有谁优谁劣,关键看应用场景。
我的建议:如果你的系统参数基本不变,或者变化很慢,用经典控制就够了,没必要上自适应。自适应控制虽然强大,但实现复杂,调试周期也长。别为了用技术而用技术。
自适应控制的应用领域
自适应控制的应用范围其实比很多人想象的要广。我挑几个典型的说说:
| 领域 | 典型应用 | 为什么需要自适应 |
|---|---|---|
| 航空航天 | 飞行器姿态控制、导弹制导 | 飞行高度/速度变化导致气动参数剧烈变化 |
| 机器人 | 机械臂轨迹跟踪、力控制 | 负载变化、关节磨损、柔性变形 |
| 过程控制 | 化工反应器、加热炉、蒸馏塔 | 原料成分变化、设备老化、环境温度波动 |
| 电力系统 | 发电机励磁控制、电力系统稳定器 | 电网拓扑变化、负荷波动 |
| 汽车工程 | 发动机怠速控制、主动悬架 | 发动机磨损、路面条件变化 |
| 生物医学 | 麻醉深度控制、血糖控制 | 患者个体差异大、生理参数时变 |
我印象最深的是在航空航天领域的应用。当年参与过一个无人机项目,飞行包线很宽,从海平面到5000米。PID控制器在不同高度要切换好几套参数,调试起来特别麻烦。后来用了模型参考自适应控制,一套参数从头飞到尾,省了不少事。
注意:自适应控制不是万能的。它需要足够的激励信号来辨识参数,如果系统长时间处于稳态,参数估计可能不准确。另外,自适应律的设计不当可能导致系统不稳定——我见过有人把自适应增益设得太大,结果系统直接发散。这个坑,后面章节会详细讲。
好了,这一章的内容就到这里。自适应控制的核心思想其实不复杂——就是让控制器学会「适应变化」。后面的章节,我们会深入具体的算法和实现细节。
公众号:蓝海资料掘金营,微信deep3321