4、控制理论基础回顾:PID控制、线性二次型调节器(LQR)、H∞鲁棒控制

各位同学,今天我们来聊聊控制理论里三个最核心的“家伙”——PID、LQR和H∞。说实话,我在飞控这行摸爬滚打十几年,这三个方法就像工具箱里的三把扳手,各有各的脾气,也各有各的绝活。咱们搞倾转旋翼,说白了就是跟“不稳定”和“不确定性”打交道,这三样东西,你都得心里有数。

4.1 PID控制:最朴素的“老黄牛”

PID控制,全称比例-积分-微分控制。嗯,这玩意儿可能是你接触的第一个控制器。我刚开始做飞控时,第一个能跑起来的程序就是PID。它简单、直观,而且效果往往出奇的好。

核心思想是什么? 说白了,就是看“现在差多少”、“过去差了多少”、“未来可能差多少”,然后加起来去修正。

  • 比例(P):看当前误差。误差大,输出就大。我习惯叫它“急性子”,反应快,但容易过头。
  • 积分(I):看历史误差累积。专门对付“稳态误差”,就是那种系统一直差那么一点点的情况。但积分太强,系统容易“犯困”,反应变慢。
  • 微分(D):看误差变化趋势。相当于“预言家”,提前刹车,抑制超调。但微分对噪声特别敏感,信号一抖,它比谁都激动。

经典PID公式(位置式):

u(t) = Kp * e(t) + Ki * ∫e(τ)dτ + Kd * de(t)/dt

其中,e(t) = 期望值 - 实际值。

我在项目中遇到过什么? 有一次调倾转旋翼的俯仰通道,P给大了,飞机像“点头娃娃”一样高频振荡;I给大了,响应慢得像“老牛拉车”。后来我学乖了,先调P让系统“动起来”,再加D让它“稳下来”,最后加I消除“静差”。这个顺序,我个人觉得是PID调参的黄金法则。

避坑指南: 我曾经在试飞时,因为传感器噪声没滤干净,微分项直接把舵机“震”坏了。所以,用D之前,务必先做好低通滤波。切记!

4.2 线性二次型调节器(LQR):最优的“数学家”

如果说PID是凭经验,那LQR就是靠数学。它不跟你讲“感觉”,它直接告诉你:在给定的代价函数下,这就是最优解。

LQR的核心逻辑: 你告诉它“状态偏差”和“控制能量”哪个更重要,它帮你算出一个最优的反馈增益矩阵K。

  • 状态方程:ẋ = Ax + Bu
  • 代价函数:J = ∫(xᵀQx + uᵀRu)dt
  • 最优控制律:u = -Kx

这里的Q和R矩阵,就是你的“价值观”。Q大,说明你希望状态误差小;R大,说明你希望控制动作小。你想想看,这不就是“既要马儿跑,又要马儿少吃草”吗?LQR就是帮你找到那个平衡点。

LQR设计步骤(我常用的):

  1. 建立系统的状态空间模型(A, B矩阵)。
  2. 选择Q和R矩阵。Q一般取对角阵,比如Q = diag([q1, q2, ...]),对应每个状态的重要性。
  3. 调用MATLAB的 lqr(A, B, Q, R) 函数,直接得到K矩阵。
  4. 仿真验证,如果超调大,就增大Q中的对应项;如果控制量饱和,就增大R。

我个人习惯: 先用Bryson法则(根据状态和控制量的最大允许值来定Q和R)算个初值,然后微调。LQR的好处是,它天然就是多变量控制器,特别适合倾转旋翼这种“多输入多输出”的系统。你不需要像PID那样一个一个通道去解耦,LQR一把梭哈。

注意: LQR是“线性”的。如果你的倾转旋翼在做大机动,模型非线性强了,LQR的效果就会打折扣。这时候,要么用增益调度,要么上更高级的非线性控制。

4.3 H∞鲁棒控制:对抗“不确定性”的硬汉

好了,前面两个都是“理想主义者”。PID假设模型准,LQR假设模型线性。但现实呢?模型有误差,风有扰动,传感器有噪声。这时候,H∞就登场了。

H∞要解决什么问题? 说白了,就是“在最坏的情况下,系统还能不能稳住?”它不追求最优性能,它追求“最坏情况下的性能保证”。

核心思想: 把系统的不确定性(比如建模误差、外部扰动)看作一个“敌人”,H∞控制器要保证从“扰动”到“输出”的传递函数的H∞范数(也就是最大增益)小于某个值γ。

标准H∞问题框图:

     w (扰动)      z (评价输出)
      ↓            ↑
  ┌─────────┐     │
  │   P(s)  │─────┘
  │ (广义被控对象)│
  └────┬────┘
       │ u (控制)   y (测量)
       ↓            ↑
  ┌─────────┐     │
  │   K(s)  │─────┘
  │ (控制器) │
  └─────────┘

目标:找到K(s),使得 ||T_wz||∞ < γ

我在项目中遇到过什么? 有一次做倾转旋翼的过渡段控制,模型在低速和高速之间变化很大。PID调了半天,低速好了高速就抖,高速好了低速就飘。后来换成H∞,把模型的不确定性用加权函数包络起来,设计出来的控制器,在整个过渡段都能稳定工作。嗯,那感觉,就像给系统穿上了一件“防弹衣”。

避坑指南: 我曾经以为H∞是万能的,结果发现加权函数选不好,控制器阶数太高,根本没法在飞控计算机上实时跑。后来我学会了用hinfsyn函数后,再用balred做模型降阶。记住,工程不是数学游戏,能跑起来才是硬道理。

4.4 三种方法的对比与选择

好了,三种方法都讲完了。你可能会问:“那我到底该用哪个?” 别急,我帮你捋一捋。

特性 PID LQR H∞
模型依赖 低(甚至不用模型) 高(需要精确状态空间模型) 高(需要包含不确定性模型)
设计难度 低(靠经验调参) 中(靠Q/R矩阵权衡) 高(靠加权函数塑造)
鲁棒性 一般(靠裕度) 较好(有相位裕度保证) 强(直接针对最坏情况)
适用场景 简单回路、调试初期 多变量系统、性能优化 强扰动、模型不确定系统

我的建议: 做倾转旋翼控制,别一上来就搞H∞。先用PID把基本回路跑通,感受一下系统的“脾气”。然后,用LQR把多变量耦合问题解决掉,提升性能。最后,如果发现模型变化太大或者外部扰动太强,再祭出H∞这个大杀器。说白了,工具没有好坏,只有合不合适。

本章知识体系(SVG流程图):

控制理论基础 PID控制 LQR控制 H∞鲁棒控制 简单、经验驱动 最优、多变量 鲁棒、抗不确定性 选择:从简单到复杂,逐步升级

好了,这一章的内容就到这里。记住,控制理论不是背公式,而是理解背后的物理直觉。下次你调参时,多想想“这个参数到底在控制什么?”,你会进步得更快。

专注资料整理