BACK_TO_BASE
Engineering Notebook // Build Log
/
19:40:36
/
NOTEBOOK_ENTRY

控制理论

控制理论教程:从经典控制到模型预测控制(MPC) 目录 第一章 什么是控制系统 第一章 什么是控制系统 第二章 数学基础回顾 第二章 数学基础回顾 第三章 系统建模 第三章 系统建模 第四章 时域分析 第四章 时域分析 第五章 稳定性分析 第五章 稳定性分析 第六章 频域分析 第六章 频域分析 第七章 PID 控制 第七章 pid 控制 第八章 状态空间方法 第八章 状态空间方法 第九章 最优控制基础 第九章 最优控制基础 第十章 模型…

Notebook Time
17 min
Image Frames
0
View Tracks
246
学习
FIELD_GUIDE

FIELD GUIDE

Use the guide rail to jump between sections.

控制理论教程:从经典控制到模型预测控制(MPC)

目录


第一章 什么是控制系统

本章目标:建立对控制系统的直觉认识,理解开环/闭环控制的区别,明确控制系统设计的核心目标。

前置知识:无。

1.1 控制无处不在

你每天都在与控制系统打交道,只是可能从未意识到:

  • 空调恒温:你设定 24°C,空调持续测量室温,温度高了就制冷,低了就停机——这是一个典型的闭环控制系统。
  • 汽车巡航定速(Cruise Control):设定目标速度后,系统根据当前车速自动调节油门,上坡加油、下坡减油。
  • 人体体温调节:下丘脑感知体温偏离 37°C 时,通过出汗或颤抖来调节——自然界最精妙的控制系统之一。

从工业过程到航天器姿态调整,从机器人运动到电力系统调度,控制理论是工程世界的"幕后指挥"。

1.2 开环控制与闭环控制

开环控制(Open-Loop Control):控制器的输出不依赖于系统的实际输出。例如,一个定时烤箱——你设定烤 30 分钟,不管食物实际温度如何,时间到了就停。

闭环控制(Closed-Loop Control / Feedback Control):控制器将系统实际输出反馈回来,与期望值比较,根据偏差来调整控制动作。

graph LR
    R["参考输入 r(t)"] --> Sum((+/-))
    Sum --> C["控制器 Controller"]
    C --> P["被控对象 Plant"]
    P --> Y["输出 y(t)"]
    Y --> S["传感器 Sensor"]
    S -->|"反馈信号"| Sum

上图展示了一个经典的闭环控制系统。核心组件包括:

组件英文功能
被控对象Plant需要被控制的物理系统(电机、化学反应器等)
传感器Sensor测量系统输出(温度计、编码器等)
控制器Controller根据偏差计算控制量(PID 控制器、MPC 等)
执行器Actuator将控制信号转化为物理动作(阀门、电机驱动等)

闭环控制的核心是误差信号(Error Signal)

e(t)=r(t)y(t)e(t) = r(t) - y(t)

其中 r(t)r(t) 是参考输入(期望值),y(t)y(t) 是实际输出。

1.3 控制系统设计的三大目标

设计一个控制系统时,我们关注三个核心性能指标:

  1. 稳定性(Stability):系统在受到扰动后能否回到平衡状态。一个不稳定的系统是无法使用的——这是最基本的要求。
  2. 快速性(Transient Performance):系统到达期望状态的速度。响应太慢则无法满足实时性要求。
  3. 准确性(Steady-State Accuracy):系统最终是否能精确跟踪期望值。存在稳态误差意味着控制不够精准。

这三个目标往往互相矛盾:追求更快的响应可能导致振荡甚至不稳定;消除稳态误差可能引入额外的动态延迟。控制理论的核心任务就是在这些矛盾中找到最优平衡。

1.4 本教程的学习路径

graph TD
    A["经典控制<br/>传递函数、时域/频域分析<br/>第2-6章"] --> B["PID 控制<br/>工业界最广泛的控制器<br/>第7章"]
    B --> C["现代控制<br/>状态空间方法<br/>第8章"]
    C --> D["最优控制<br/>LQR / Kalman / LQG<br/>第9章"]
    D --> E["模型预测控制 MPC<br/>带约束的最优控制<br/>第10章"]

经典控制理论(第 2-7 章)以传递函数为核心工具,适合单输入单输出(SISO)系统;现代控制理论(第 8-10 章)以状态空间为核心工具,天然支持多输入多输出(MIMO)系统和约束处理,也是 MPC 的数学基础。


第二章 数学基础回顾

本章目标:复习控制理论中最常用的数学工具——拉普拉斯变换和传递函数,理解极点与零点的物理意义。

前置知识:微积分(导数、积分)、线性微分方程基础。

2.1 拉普拉斯变换(Laplace Transform)

控制理论大量使用拉普拉斯变换的原因很简单:它将微分方程转化为代数方程,极大地简化了分析。

对于一个定义在 t0t \geq 0 上的函数 f(t)f(t),其拉普拉斯变换定义为:

F(s)=L{f(t)}=0f(t)estdtF(s) = \mathcal{L}\{f(t)\} = \int_0^{\infty} f(t) e^{-st} \, dt

其中 s=σ+jωs = \sigma + j\omega 是复变量。

常用变换对

f(t)f(t)(时域)F(s)F(s)(s 域)说明
δ(t)\delta(t)(单位脉冲)11脉冲响应
u(t)u(t)(单位阶跃)1s\dfrac{1}{s}阶跃输入
tt(斜坡)1s2\dfrac{1}{s^2}斜坡输入
eate^{-at}1s+a\dfrac{1}{s+a}一阶衰减
sin(ωt)\sin(\omega t)ωs2+ω2\dfrac{\omega}{s^2+\omega^2}正弦信号

关键性质——微分性质

L{dfdt}=sF(s)f(0)\mathcal{L}\left\{\frac{df}{dt}\right\} = sF(s) - f(0^-)

这意味着时域的微分变成了 s 域中的乘以 s。这就是拉普拉斯变换简化微分方程的秘密:所有导数项都变成了 s 的多项式。

2.2 传递函数(Transfer Function)

考虑一个线性时不变(LTI, Linear Time-Invariant)系统,在零初始条件下,传递函数定义为输出的拉普拉斯变换与输入的拉普拉斯变换之比:

G(s)=Y(s)U(s)G(s) = \frac{Y(s)}{U(s)}

举例:考虑一个由以下微分方程描述的系统:

y¨+3y˙+2y=u(t)\ddot{y} + 3\dot{y} + 2y = u(t)

对两端做拉普拉斯变换(零初始条件):

s2Y(s)+3sY(s)+2Y(s)=U(s)s^2 Y(s) + 3sY(s) + 2Y(s) = U(s) G(s)=Y(s)U(s)=1s2+3s+2=1(s+1)(s+2)G(s) = \frac{Y(s)}{U(s)} = \frac{1}{s^2 + 3s + 2} = \frac{1}{(s+1)(s+2)}

传递函数完整地描述了系统的输入-输出动态行为。

2.3 极点与零点(Poles and Zeros)

传递函数的一般形式为:

G(s)=K(sz1)(sz2)(szm)(sp1)(sp2)(spn)G(s) = K \frac{(s - z_1)(s - z_2) \cdots (s - z_m)}{(s - p_1)(s - p_2) \cdots (s - p_n)}
  • 零点(Zeros):使分子为零的 s 值,即 z1,z2,,zmz_1, z_2, \ldots, z_m
  • 极点(Poles):使分母为零的 s 值,即 p1,p2,,pnp_1, p_2, \ldots, p_n

极点和零点在复平面(s 平面)上的位置决定了系统的全部动态特性:

  • 极点的实部 < 0(位于左半平面)→ 对应衰减的模态 → 系统稳定
  • 极点的实部 > 0(位于右半平面)→ 对应发散的模态 → 系统不稳定
  • 极点为复数(共轭对)→ 系统有振荡行为
  • 极点越靠近虚轴→ 衰减越慢,响应越迟钝

上例中 G(s)=1(s+1)(s+2)G(s) = \frac{1}{(s+1)(s+2)} 有两个极点 p1=1p_1 = -1p2=2p_2 = -2,都在左半平面,系统稳定。

2.4 方框图代数(Block Diagram Algebra)

复杂系统通常由多个子系统组成,用方框图表示并利用以下规则化简:

串联(Series)

G(s)=G1(s)G2(s)G(s) = G_1(s) \cdot G_2(s)

并联(Parallel)

G(s)=G1(s)+G2(s)G(s) = G_1(s) + G_2(s)

负反馈(Negative Feedback)

Y(s)R(s)=G(s)1+G(s)H(s)\frac{Y(s)}{R(s)} = \frac{G(s)}{1 + G(s)H(s)}

其中 G(s)G(s) 是前向通道传递函数,H(s)H(s) 是反馈通道传递函数。这是控制理论中最重要的公式之一——它把开环传递函数 G(s)H(s)G(s)H(s) 与闭环传递函数联系起来。


第三章 系统建模

本章目标:学会将物理系统转化为数学模型(微分方程和传递函数),理解线性化的基本方法。

前置知识:第二章(拉普拉斯变换、传递函数)。

3.1 建模的一般流程

  1. 明确系统边界和输入输出变量
  2. 根据物理定律(牛顿定律、基尔霍夫定律等)列写微分方程
  3. 在平衡点附近线性化(如有必要)
  4. 做拉普拉斯变换,得到传递函数

3.2 例一:弹簧-质量-阻尼器系统

考虑一个质量 mm 连接弹簧(刚度 kk)和阻尼器(阻尼系数 bb),受外力 F(t)F(t) 作用,位移为 x(t)x(t)

由牛顿第二定律:

mx¨(t)+bx˙(t)+kx(t)=F(t)m\ddot{x}(t) + b\dot{x}(t) + kx(t) = F(t)

拉普拉斯变换(零初始条件):

(ms2+bs+k)X(s)=F(s)(ms^2 + bs + k)X(s) = F(s)

传递函数:

G(s)=X(s)F(s)=1ms2+bs+kG(s) = \frac{X(s)}{F(s)} = \frac{1}{ms^2 + bs + k}

改写为标准二阶形式:

G(s)=1/ms2+bms+km=ωn2/ks2+2ζωns+ωn2G(s) = \frac{1/m}{s^2 + \frac{b}{m}s + \frac{k}{m}} = \frac{\omega_n^2 / k}{s^2 + 2\zeta\omega_n s + \omega_n^2}

其中自然频率 ωn=k/m\omega_n = \sqrt{k/m},阻尼比 ζ=b2mk\zeta = \frac{b}{2\sqrt{mk}}。这两个参数完全决定了系统的动态行为(见第四章)。

3.3 例二:RC 电路

一个串联 RC 电路,输入电压 Vin(t)V_{in}(t),输出为电容上的电压 Vc(t)V_c(t)

由基尔霍夫电压定律(KVL):

Vin(t)=Ri(t)+Vc(t)V_{in}(t) = Ri(t) + V_c(t)

i(t)=CdVcdti(t) = C\dfrac{dV_c}{dt},代入得:

RCdVcdt+Vc(t)=Vin(t)RC\frac{dV_c}{dt} + V_c(t) = V_{in}(t)

传递函数:

G(s)=Vc(s)Vin(s)=1RCs+1=1τs+1G(s) = \frac{V_c(s)}{V_{in}(s)} = \frac{1}{RCs + 1} = \frac{1}{\tau s + 1}

其中 τ=RC\tau = RC时间常数(Time Constant)。这是一个一阶系统。

3.4 线性化(Linearization)

真实世界中的系统往往是非线性的。例如,单摆的运动方程为:

ml2θ¨+mglsinθ=τ(t)ml^2\ddot{\theta} + mgl\sin\theta = \tau(t)

sinθ\sin\theta 是非线性项。但如果摆角很小(θ0\theta \approx 0),则 sinθθ\sin\theta \approx \theta,方程变为线性的:

ml2θ¨+mglθ=τ(t)ml^2\ddot{\theta} + mgl\theta = \tau(t)

一般线性化方法:对于非线性系统 x˙=f(x,u)\dot{x} = f(x, u),在平衡点 (xˉ,uˉ)(\bar{x}, \bar{u}) 处做泰勒展开,取一阶项:

δx˙=fxxˉ,uˉδx+fuxˉ,uˉδu\dot{\delta x} = \frac{\partial f}{\partial x}\bigg|_{\bar{x},\bar{u}} \delta x + \frac{\partial f}{\partial u}\bigg|_{\bar{x},\bar{u}} \delta u

其中 δx=xxˉ\delta x = x - \bar{x}δu=uuˉ\delta u = u - \bar{u} 为偏差量。这种在平衡点附近的线性近似是控制理论的基本手段,也是大多数控制器设计方法的前提。


第四章 时域分析

本章目标:掌握一阶和二阶系统的时域响应特性,理解稳态误差的概念。

前置知识:第二、三章(传递函数、系统建模)。

4.1 典型输入信号

分析控制系统时,我们使用标准化的测试输入:

  • 单位阶跃(Unit Step)u(t)u(t),测试系统跟踪恒定指令的能力
  • 单位脉冲(Unit Impulse)δ(t)\delta(t),揭示系统的固有动态
  • 单位斜坡(Unit Ramp)r(t)=tr(t) = t,测试系统跟踪线性变化指令的能力

4.2 一阶系统响应

一阶系统传递函数:

G(s)=1τs+1G(s) = \frac{1}{\tau s + 1}

对单位阶跃输入的响应:

y(t)=1et/τ,t0y(t) = 1 - e^{-t/\tau}, \quad t \geq 0

关键特征:

  • 时间常数 τ\tauy(τ)=1e10.632y(\tau) = 1 - e^{-1} \approx 0.632,即经过一个时间常数后,输出达到稳态值的 63.2%
  • 调节时间(Settling Time):约 4τ4\tau(达到稳态值的 98%)
  • 无超调(No Overshoot):一阶系统的阶跃响应单调递增,不会超过稳态值

4.3 二阶系统响应

标准二阶系统传递函数:

G(s)=ωn2s2+2ζωns+ωn2G(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2}

两个关键参数完全决定了响应特性:

  • 自然频率(Natural Frequency) ωn\omega_n:系统无阻尼时的振荡频率
  • 阻尼比(Damping Ratio) ζ\zeta:描述振荡衰减的快慢

根据阻尼比的取值,系统呈现不同的行为模式:

阻尼比范围类型极点形式行为特征
ζ=0\zeta = 0无阻尼纯虚数极点等幅振荡,永不衰减
0<ζ<10 < \zeta < 1欠阻尼(Underdamped)共轭复数极点振荡衰减,有超调
ζ=1\zeta = 1临界阻尼(Critically Damped)重实极点最快无振荡响应
ζ>1\zeta > 1过阻尼(Overdamped)两个不同实极点缓慢无振荡响应

欠阻尼系统的关键性能指标0<ζ<10 < \zeta < 1):

超调量(Overshoot) MpM_p

Mp=eπζ/1ζ2×100%M_p = e^{-\pi\zeta / \sqrt{1-\zeta^2}} \times 100\%

ζ\zeta 越小,超调越大。ζ=0.707\zeta = 0.707 时超调量约 4.3%,通常被认为是一个良好的折中。

峰值时间(Peak Time) tpt_p

tp=πωn1ζ2t_p = \frac{\pi}{\omega_n\sqrt{1-\zeta^2}}

调节时间(Settling Time) tst_s(2% 准则):

ts4ζωnt_s \approx \frac{4}{\zeta\omega_n}

这组公式非常实用:给定性能指标要求(如超调量 < 5%,调节时间 < 2s),可以反推所需的 ζ\zetaωn\omega_n,进而指导控制器设计。

4.4 稳态误差(Steady-State Error)

稳态误差指系统进入稳态后,输出与期望之间的偏差。对于单位负反馈系统,开环传递函数为 G(s)G(s),稳态误差可用**终值定理(Final Value Theorem)**计算:

ess=lims0sE(s)=lims0sR(s)1+G(s)e_{ss} = \lim_{s \to 0} s \cdot E(s) = \lim_{s \to 0} s \cdot \frac{R(s)}{1 + G(s)}

系统的型别(System Type) 定义为开环传递函数中纯积分环节 1/s1/s 的个数 NN

G(s)=K(零点多项式)sN(极点多项式)G(s) = \frac{K \cdot (\text{零点多项式})}{s^N \cdot (\text{极点多项式})}
系统型别阶跃输入 esse_{ss}斜坡输入 esse_{ss}抛物线输入 esse_{ss}
0 型11+Kp\frac{1}{1+K_p}\infty\infty
I 型001Kv\frac{1}{K_v}\infty
II 型00001Ka\frac{1}{K_a}

其中 Kp,Kv,KaK_p, K_v, K_a 分别是位置、速度、加速度误差常数。

核心结论:系统型别越高,跟踪能力越强,但型别提高(增加积分环节)会使系统更难稳定。这再次体现了稳定性和准确性之间的矛盾。


第五章 稳定性分析

本章目标:掌握判断系统稳定性的数学工具,理解 Routh-Hurwitz 判据和根轨迹法。

前置知识:第二章(极点与零点)、第四章(系统响应)。

5.1 稳定性的定义

BIBO 稳定性(Bounded-Input Bounded-Output Stability):对于任意有界输入,系统的输出也是有界的。

对于 LTI 系统,BIBO 稳定性等价于:闭环传递函数的所有极点都位于 s 平面的左半平面(实部 < 0)

为什么左半平面意味着稳定?因为极点 p=σ+jωp = \sigma + j\omega 对应的时域分量为 eσtejωte^{\sigma t} \cdot e^{j\omega t}。当 σ<0\sigma < 0 时,eσte^{\sigma t} 随时间衰减;当 σ>0\sigma > 0 时,指数增长,输出发散。

5.2 Routh-Hurwitz 判据

Routh-Hurwitz 判据可以在不求解极点的情况下判断多项式的根是否都在左半平面。

对于特征多项式:

D(s)=ansn+an1sn1++a1s+a0D(s) = a_n s^n + a_{n-1} s^{n-1} + \cdots + a_1 s + a_0

构造 Routh 表:

sns^nana_nan2a_{n-2}an4a_{n-4} ...
sn1s^{n-1}an1a_{n-1}an3a_{n-3}an5a_{n-5} ...
sn2s^{n-2}b1b_1b2b_2...
.........
s0s^0

其中:

b1=an1an2anan3an1,b2=an1an4anan5an1b_1 = \frac{a_{n-1} \cdot a_{n-2} - a_n \cdot a_{n-3}}{a_{n-1}}, \quad b_2 = \frac{a_{n-1} \cdot a_{n-4} - a_n \cdot a_{n-5}}{a_{n-1}}

判定规则:第一列中符号变化的次数等于右半平面极点的个数。第一列全部为正则系统稳定。

举例:判断 D(s)=s3+2s2+3s+6D(s) = s^3 + 2s^2 + 3s + 6 的稳定性。

列 1列 2
s3s^313
s2s^226
s1s^12×31×62=0\frac{2 \times 3 - 1 \times 6}{2} = 0
s0s^06

第一列出现 0,这是一个特殊情况(表明有纯虚数极点),系统处于临界稳定状态。

5.3 根轨迹法(Root Locus)

根轨迹法是由 Walter Evans 在 1948 年提出的图形化方法。它描述了当某个参数(通常是增益 KK)从 0 变化到 \infty 时,闭环极点在 s 平面上的运动轨迹。

对于开环传递函数为 KG(s)H(s)KG(s)H(s) 的负反馈系统,闭环特征方程为:

1+KG(s)H(s)=01 + KG(s)H(s) = 0

根轨迹的核心规则(简化版):

  1. 起点与终点:根轨迹从开环极点出发(K=0K=0),终止于开环零点(KK \to \infty)。
  2. 分支数:等于开环极点数 nn
  3. 实轴上的轨迹:实轴上某点属于根轨迹,当且仅当其右侧的实轴上的开环极点和零点总数为奇数。
  4. 渐近线:当极点数多于零点数时,部分分支趋向无穷远,渐近线角度为 (2k+1)×180°nm\frac{(2k+1) \times 180°}{n-m}

根轨迹法的价值在于它提供了一幅直观的"地图":你可以看到增益 K 的变化如何把闭环极点从稳定的左半平面推到不稳定的右半平面。这为控制器的增益选择提供了直觉指导。


第六章 频域分析

本章目标:理解频率响应的概念,掌握 Bode 图的绘制与解读,理解增益裕度和相位裕度。

前置知识:第二章(传递函数)、第五章(稳定性)。

6.1 频率响应的概念

当一个稳定的 LTI 系统的输入是正弦信号 u(t)=Asin(ωt)u(t) = A\sin(\omega t) 时,稳态输出也是同频正弦信号,但幅值和相位可能改变:

yss(t)=AG(jω)sin(ωt+G(jω))y_{ss}(t) = A|G(j\omega)| \sin\left(\omega t + \angle G(j\omega)\right)

其中 频率响应函数 G(jω)G(j\omega) 是将传递函数中的 ss 替换为 jωj\omega 得到的:

  • G(jω)|G(j\omega)|:幅频特性(Magnitude Response)——不同频率下的增益
  • G(jω)\angle G(j\omega):相频特性(Phase Response)——不同频率下的相移

6.2 Bode 图(Bode Plot)

Bode 图由两幅图组成,横轴都是频率 ω\omega(对数刻度):

  • 幅频图:纵轴为 20log10G(jω)20\log_{10}|G(j\omega)|,单位为 dB(分贝)
  • 相频图:纵轴为 G(jω)\angle G(j\omega),单位为度

基本环节的 Bode 图

增益环节 KK:幅值为 20log10K20\log_{10}K dB 的水平线,相位为 0°。

积分环节 1/s1/s:幅值以 -20 dB/decade 的斜率下降,相位恒为 -90°。

一阶环节 1τs+1\dfrac{1}{\tau s + 1}

  • ω1/τ\omega \ll 1/\tau:幅值 ≈ 0 dB,相位 ≈ 0°
  • ω=1/τ\omega = 1/\tau(转折频率):幅值 ≈ -3 dB,相位 = -45°
  • ω1/τ\omega \gg 1/\tau:幅值以 -20 dB/decade 下降,相位趋近 -90°

复杂系统的 Bode 图可以通过各环节的 Bode 图叠加得到——这是 Bode 图的最大优势。

6.3 增益裕度与相位裕度

这两个指标衡量闭环系统"离不稳定有多远":

相位裕度(Phase Margin, PM):在增益交叉频率 ωgc\omega_{gc}(幅值 = 0 dB 的频率)处,相位距离 -180° 还有多少余量。

PM=180°+G(jωgc)PM = 180° + \angle G(j\omega_{gc})

增益裕度(Gain Margin, GM):在相位交叉频率 ωpc\omega_{pc}(相位 = -180° 的频率)处,增益距离 0 dB 还有多少余量。

GM=20log10G(jωpc)(dB)GM = -20\log_{10}|G(j\omega_{pc})| \quad \text{(dB)}

工程经验值

  • 相位裕度 PM > 30°(通常目标 45°-60°)
  • 增益裕度 GM > 6 dB

相位裕度与二阶系统阻尼比之间存在近似关系:PM100ζPM \approx 100\zeta(度),因此 PM = 45° 大致对应 ζ0.45\zeta \approx 0.45,PM = 60° 对应 ζ0.6\zeta \approx 0.6

6.4 Nyquist 判据简介

Nyquist 判据基于复变函数的幅角原理,通过开环频率响应曲线 G(jω)H(jω)G(j\omega)H(j\omega) 在复平面上的图形(Nyquist 图)来判断闭环稳定性。

核心结论:闭环系统稳定,当且仅当 Nyquist 曲线逆时针包围 (1,0)(-1, 0) 点的次数等于开环传递函数在右半平面的极点数。

对于开环稳定的系统(开环无右半平面极点),这简化为:Nyquist 曲线不包围 (1,0)(-1, 0)


第七章 PID 控制

本章目标:理解 PID 控制器的工作原理与参数整定方法,认识其局限性。

前置知识:第四章(时域响应)、第六章(频域分析)。

7.1 PID 控制器的结构

PID(Proportional-Integral-Derivative)控制器是工业界应用最广泛的控制器,其控制律为:

u(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dtu(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt}

传递函数形式:

C(s)=Kp+Kis+Kds=Kp(1+1Tis+Tds)C(s) = K_p + \frac{K_i}{s} + K_d s = K_p\left(1 + \frac{1}{T_i s} + T_d s\right)

三个分量各司其职:

比例(P)分量——"现在":

  • 输出与当前误差成正比
  • 增大 KpK_p → 响应更快、稳态误差减小
  • KpK_p 过大 → 超调增大、甚至不稳定
  • 单独使用时通常无法消除稳态误差

积分(I)分量——"过去":

  • 输出与误差的累积成正比
  • 核心作用:消除稳态误差(因为只要存在误差,积分项就会持续增长)
  • 副作用:可能导致超调增大、响应变慢
  • 实际问题:积分饱和(Integral Windup)——执行器饱和时积分项持续积累,导致控制性能恶化

微分(D)分量——"未来":

  • 输出与误差变化率成正比
  • 核心作用:预测趋势,抑制超调(误差在增大时提前刹车)
  • 副作用:对高频噪声敏感
  • 实际中常加低通滤波:KdsK_d s 改为 Kds1+Tfs\dfrac{K_d s}{1 + T_f s}

7.2 PID 参数整定

Ziegler-Nichols 临界振荡法

  1. 去掉 I 和 D,仅用 P 控制
  2. 逐渐增大 KpK_p 直到系统出现等幅持续振荡
  3. 记录此时的临界增益 KcrK_{cr}临界周期 TcrT_{cr}
  4. 按下表设置 PID 参数:
控制器类型KpK_pTiT_iTdT_d
P0.5Kcr0.5 K_{cr}
PI0.45Kcr0.45 K_{cr}Tcr/1.2T_{cr}/1.2
PID0.6Kcr0.6 K_{cr}Tcr/2T_{cr}/2Tcr/8T_{cr}/8

Ziegler-Nichols 法给出的参数通常偏激进(超调约 25%),在实际中需要进一步微调。

其他整定方法:Cohen-Coon 法、内模控制(IMC)法、频域整定法、自动整定(Auto-Tuning)等。

7.3 PID 的局限性

PID 控制器虽然应用广泛,但存在根本性的限制:

  1. 无法系统地处理约束:执行器有最大/最小限制、状态变量有安全范围,PID 没有原生机制来处理这些约束
  2. 多变量系统困难:MIMO(多输入多输出)系统中,变量之间存在耦合,多个独立 PID 回路的配置很困难
  3. 缺乏预测能力:PID 是被动响应误差,无法利用对未来的预测来提前调整
  4. 参数整定困难:对于高阶、大时滞、非线性系统,PID 的三个参数很难达到满意的效果
  5. 最优性无保证:PID 无法保证任何意义上的最优性

这些局限性是驱动人们发展更高级控制方法(状态空间方法、最优控制、MPC)的核心动因。


第八章 状态空间方法

本章目标:掌握状态空间表示法,理解能控性与能观性,学习状态反馈和观测器设计。

前置知识:线性代数(矩阵运算、特征值)、第二章(传递函数)。

8.1 从传递函数到状态空间

传递函数是系统的"外部描述"(输入-输出关系),而状态空间是系统的"内部描述",它揭示了系统内部变量的动态。

状态空间表示(连续时间):

x˙(t)=Ax(t)+Bu(t)(状态方程)\dot{x}(t) = Ax(t) + Bu(t) \quad \text{(状态方程)} y(t)=Cx(t)+Du(t)(输出方程)y(t) = Cx(t) + Du(t) \quad \text{(输出方程)}
  • x(t)Rnx(t) \in \mathbb{R}^n状态向量(State Vector),描述系统在 tt 时刻的完整内部状态
  • u(t)Rmu(t) \in \mathbb{R}^m输入向量(Input Vector)
  • y(t)Rpy(t) \in \mathbb{R}^p输出向量(Output Vector)
  • ARn×nA \in \mathbb{R}^{n \times n}系统矩阵(State Matrix)
  • BRn×mB \in \mathbb{R}^{n \times m}输入矩阵(Input Matrix)
  • CRp×nC \in \mathbb{R}^{p \times n}输出矩阵(Output Matrix)
  • DRp×mD \in \mathbb{R}^{p \times m}直接传递矩阵(Feedthrough Matrix)

举例:弹簧-质量-阻尼器系统 mx¨+bx˙+kx=Fm\ddot{x} + b\dot{x} + kx = F

选择状态变量 x1=xx_1 = x(位移),x2=x˙x_2 = \dot{x}(速度):

[x˙1x˙2]=[01k/mb/m][x1x2]+[01/m]F\begin{bmatrix} \dot{x}_1 \\ \dot{x}_2 \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ -k/m & -b/m \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} + \begin{bmatrix} 0 \\ 1/m \end{bmatrix} F y=[10][x1x2]y = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}

状态空间与传递函数的关系

G(s)=C(sIA)1B+DG(s) = C(sI - A)^{-1}B + D

系统的极点就是矩阵 AA特征值

8.2 状态空间方法的优势

与传递函数相比,状态空间方法有几个显著优势:

  1. 自然支持 MIMO:多输入多输出系统在状态空间框架下只是矩阵维度的变化
  2. 保留内部信息:传递函数可能丢失系统内部的可控/可观信息(零极点对消)
  3. 便于数值计算:矩阵运算有成熟的数值算法
  4. 连接现代控制理论:最优控制、MPC 等都建立在状态空间基础上

8.3 能控性与能观性

能控性(Controllability):系统能否通过适当的输入在有限时间内从任意初始状态转移到任意目标状态?

能控性判据:构造能控性矩阵(Controllability Matrix):

C=[BABA2BAn1B]\mathcal{C} = \begin{bmatrix} B & AB & A^2B & \cdots & A^{n-1}B \end{bmatrix}

系统完全能控 \Leftrightarrow rank(C)=n\text{rank}(\mathcal{C}) = n

能观性(Observability):能否仅通过输出测量来确定系统的完整内部状态?

能观性判据:构造能观性矩阵(Observability Matrix):

O=[CCACA2CAn1]\mathcal{O} = \begin{bmatrix} C \\ CA \\ CA^2 \\ \vdots \\ CA^{n-1} \end{bmatrix}

系统完全能观 \Leftrightarrow rank(O)=n\text{rank}(\mathcal{O}) = n

能控性和能观性对于控制器设计至关重要:

  • 不能控的状态无法通过控制输入改变
  • 不能观的状态无法从输出测量中推断

8.4 状态反馈与极点配置(Pole Placement)

如果系统完全能控,可以通过状态反馈 u=Kx+ru = -Kx + r 将闭环极点配置到 s 平面的任意位置。

闭环系统矩阵变为:

x˙=(ABK)x+Br\dot{x} = (A - BK)x + Br

选择反馈增益矩阵 KK 使得 ABKA - BK 的特征值等于期望的闭环极点位置。

局限:极点配置法需要人为选择极点位置,缺乏系统化的最优性准则。这直接引出了第九章的最优控制方法。

8.5 状态观测器(State Observer)

状态反馈假设所有状态都可以直接测量,但实际中往往只有部分输出可测。观测器(也称估计器,Estimator)根据输入和输出重建完整的状态向量。

Luenberger 观测器(全阶观测器):

x^˙=Ax^+Bu+L(yCx^)\dot{\hat{x}} = A\hat{x} + Bu + L(y - C\hat{x})

其中 x^\hat{x} 是状态的估计值,LL 是观测器增益矩阵。估计误差 e=xx^e = x - \hat{x} 的动态为:

e˙=(ALC)e\dot{e} = (A - LC)e

如果系统完全能观,可以通过选择 LLALCA - LC 的特征值配置到任意位置,使估计误差快速收敛。

分离原理(Separation Principle):控制器设计(选择 KK)和观测器设计(选择 LL)可以独立进行,二者的结合仍然稳定。

8.6 离散时间状态空间

数字控制器工作在离散时间中。采样周期为 TsT_s 时,连续系统可以离散化为:

xk+1=Adxk+Bdukx_{k+1} = A_d x_k + B_d u_k yk=Cdxk+Dduky_k = C_d x_k + D_d u_k

其中 Ad=eATsA_d = e^{AT_s}Bd=0TseAτdτBB_d = \int_0^{T_s} e^{A\tau} d\tau \cdot B

离散时间状态空间是 MPC 的直接数学基础——MPC 在每个采样时刻求解一个有限时域的优化问题。


第九章 最优控制基础

本章目标:理解最优控制的基本思想,掌握 LQR 的设计方法,了解卡尔曼滤波器和 LQG 控制。

前置知识:第八章(状态空间方法、能控性)。

9.1 最优控制问题

极点配置法可以任意放置闭环极点,但"放在哪里最好"?最优控制通过定义一个代价函数(Cost Function),将控制器设计转化为优化问题:

找到控制输入 u(t)u(t),使系统从初始状态 x0x_0 出发,在满足系统动态约束的前提下,最小化某个性能指标。

最优控制的一般形式:

minu()J=ϕ(x(tf),tf)+t0tfL(x(t),u(t),t)dt\min_{u(\cdot)} J = \phi(x(t_f), t_f) + \int_{t_0}^{t_f} L(x(t), u(t), t) \, dt

约束条件:x˙(t)=f(x(t),u(t),t)\dot{x}(t) = f(x(t), u(t), t)

9.2 LQR——线性二次调节器(Linear Quadratic Regulator)

LQR 是最优控制中最经典、最成熟的方法。它处理的问题是:对于线性系统,在二次型代价函数下求最优控制。

问题定义(连续时间无限时域):

系统:x˙=Ax+Bu\dot{x} = Ax + Bu

代价函数:

J=0(xTQx+uTRu)dtJ = \int_0^{\infty} \left( x^T Q x + u^T R u \right) dt
  • Q0Q \geq 0(半正定):状态权重矩阵,惩罚状态偏离零点。QQ 越大,要求状态回到零点越快。
  • R>0R > 0(正定):输入权重矩阵,惩罚控制量的大小。RR 越大,控制更"节能"但响应更慢。

最优解为线性状态反馈:

u=Kx=R1BTPxu^* = -Kx = -R^{-1}B^T P x

其中 PP 是以下**代数 Riccati 方程(ARE, Algebraic Riccati Equation)**的唯一正定解:

ATP+PAPBR1BTP+Q=0A^T P + PA - PBR^{-1}B^T P + Q = 0

LQR 的优美性质

  1. 保证稳定:闭环系统 ABKA - BK 一定是稳定的(前提是系统能控,且 (A,Q1/2)(A, Q^{1/2}) 能观)
  2. 有良好的鲁棒性:具有至少 60° 的相位裕度和无穷大的增益裕度
  3. 设计直觉明确:通过调整 QQRR 的相对大小来平衡"状态性能"和"控制成本"

LQR 与极点配置的对比

极点配置LQR
设计参数期望极点位置权重矩阵 Q,RQ, R
最优性无保证最优(二次代价意义下)
鲁棒性无保证有理论保证
设计直觉需要经验选择极点通过物理意义设定权重

9.3 卡尔曼滤波器(Kalman Filter)

LQR 假设所有状态都可以精确测量。但真实系统中:

  • 并非所有状态都可测
  • 传感器测量包含噪声
  • 系统本身受到随机扰动

卡尔曼滤波器是状态估计的最优解。它处理的系统为:

x˙=Ax+Bu+w,wN(0,Qw)\dot{x} = Ax + Bu + w, \quad w \sim \mathcal{N}(0, Q_w) y=Cx+v,vN(0,Rv)y = Cx + v, \quad v \sim \mathcal{N}(0, R_v)

其中 ww 是过程噪声,vv 是测量噪声。

卡尔曼滤波器的结构与 Luenberger 观测器相同:

x^˙=Ax^+Bu+Kf(yCx^)\dot{\hat{x}} = A\hat{x} + Bu + K_f(y - C\hat{x})

但增益 Kf=PfCTRv1K_f = P_f C^T R_v^{-1} 是最优的,其中 PfP_f 满足另一个 Riccati 方程。

卡尔曼滤波器可以看作 LQR 的"对偶":LQR 在控制端求最优增益,卡尔曼滤波在估计端求最优增益。

9.4 LQG——线性二次高斯控制

将 LQR 与卡尔曼滤波器结合,就得到LQG(Linear Quadratic Gaussian)控制器

graph LR
    Plant["被控对象"] -->|"y (含噪声)"| KF["卡尔曼滤波器"]
    KF -->|"状态估计 x̂"| LQR_ctrl["LQR 控制律"]
    LQR_ctrl -->|"u"| Plant

由分离原理保证,这种组合是最优的:先用卡尔曼滤波器得到最优状态估计,再用 LQR 计算最优控制输入。

LQG 的局限:虽然 LQR 有良好的鲁棒性保证,但 LQG(加入卡尔曼滤波后)的鲁棒性可能显著下降。此外,LQG 仍然无法处理硬约束——这正是 MPC 的核心优势。


第十章 模型预测控制 MPC

本章目标:深入理解 MPC 的核心思想、数学推导和实现方法。这是本教程的终极目标。

前置知识:第八章(离散时间状态空间)、第九章(最优控制、LQR)。

10.1 MPC 的核心思想

模型预测控制(Model Predictive Control, MPC) 是一种基于模型的最优控制策略,其核心思想可以概括为三个字:预测、优化、滚动

基本思想

  1. 预测(Predict):在每个采样时刻,利用系统模型预测未来一段时间内系统的行为
  2. 优化(Optimize):在预测时域内求解一个带约束的优化问题,得到一组最优控制序列
  3. 滚动(Recede):只执行最优控制序列的第一步,然后在下一个采样时刻重复整个过程

这种"滚动时域优化(Receding Horizon Optimization)"策略是 MPC 的精髓:虽然每次规划一段未来,但只执行当前一步,然后利用新的测量信息重新规划。这赋予了 MPC 强大的抗扰动能力和适应性。

graph TD
    subgraph loop ["MPC 滚动优化循环"]
        M["测量当前状态 x_k"] --> P["用模型预测未来 N 步"]
        P --> O["求解带约束优化问题"]
        O --> A["得到最优控制序列 u*_k, u*_k+1, ..."]
        A --> E["只执行第一步 u*_k"]
        E --> W["等待下一采样时刻"]
        W --> M
    end

10.2 为什么需要 MPC

回顾前面学过的控制方法:

方法处理约束MIMO最优性预测能力
PID不能困难
极点配置不能可以
LQR不能可以有(无约束下)无(无限时域)
MPC原生支持自然支持有(有约束下)

MPC 的核心竞争力:系统性地处理约束的能力

现实系统中约束无处不在:

  • 阀门开度有上下限(输入约束)
  • 温度、压力不能超过安全范围(状态约束)
  • 产品质量指标有规格范围(输出约束)
  • 控制量变化率有限制(增量约束)

PID 和 LQR 在设计时不考虑约束,约束要么靠后期加限幅(anti-windup),要么靠保守设计来避免触及。MPC 则将约束直接嵌入优化问题中,从根本上解决了这一问题。

10.3 MPC 的数学推导

下面给出线性 MPC 的标准形式。

系统模型(离散时间线性状态空间):

xk+1=Axk+Bukx_{k+1} = Ax_k + Bu_k yk=Cxky_k = Cx_k

定义

  • 预测时域(Prediction Horizon):NpN_p
  • 控制时域(Control Horizon):NcN_cNcNpN_c \leq N_p
  • 当超过控制时域后,控制量保持不变:uk+j=uk+Nc1u_{k+j} = u_{k+N_c-1}jNcj \geq N_c

预测方程

从当前状态 xkx_k 出发,利用系统模型逐步预测:

xk+1=Axk+Bukx_{k+1} = Ax_k + Bu_k xk+2=A2xk+ABuk+Buk+1x_{k+2} = A^2 x_k + ABu_k + Bu_{k+1} \vdots xk+Np=ANpxk+i=0Np1ANp1iBuk+ix_{k+N_p} = A^{N_p} x_k + \sum_{i=0}^{N_p-1} A^{N_p-1-i} B u_{k+i}

将预测序列堆叠为向量形式:

X=[xk+1xk+2xk+Np],U=[ukuk+1uk+Nc1]\mathbf{X} = \begin{bmatrix} x_{k+1} \\ x_{k+2} \\ \vdots \\ x_{k+N_p} \end{bmatrix}, \quad \mathbf{U} = \begin{bmatrix} u_k \\ u_{k+1} \\ \vdots \\ u_{k+N_c-1} \end{bmatrix}

则预测方程可以写为紧凑的矩阵形式:

X=Axk+BU\mathbf{X} = \mathcal{A} x_k + \mathcal{B} \mathbf{U}

其中:

A=[AA2ANp],B=[B00ABB0ANp1BANp2BANpNcB]\mathcal{A} = \begin{bmatrix} A \\ A^2 \\ \vdots \\ A^{N_p} \end{bmatrix}, \quad \mathcal{B} = \begin{bmatrix} B & 0 & \cdots & 0 \\ AB & B & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ A^{N_p-1}B & A^{N_p-2}B & \cdots & A^{N_p-N_c}B \end{bmatrix}

代价函数

J=i=1Npxk+ixrefQ2+j=0Nc1uk+jR2J = \sum_{i=1}^{N_p} \| x_{k+i} - x_{ref} \|_Q^2 + \sum_{j=0}^{N_c-1} \| u_{k+j} \|_R^2

其中 vQ2=vTQv\|v\|_Q^2 = v^T Q v 表示加权范数。有时还加入控制增量项 Δuk+jS2\|\Delta u_{k+j}\|_S^2 来平滑控制动作。

用矩阵形式写出(设 xref=0x_{ref} = 0 简化表示):

J=XTQˉX+UTRˉUJ = \mathbf{X}^T \bar{Q} \mathbf{X} + \mathbf{U}^T \bar{R} \mathbf{U}

X=Axk+BU\mathbf{X} = \mathcal{A}x_k + \mathcal{B}\mathbf{U} 代入并展开:

J=UT(BTQˉB+Rˉ)HU+2xkTATQˉBfTU+constJ = \mathbf{U}^T \underbrace{(\mathcal{B}^T \bar{Q} \mathcal{B} + \bar{R})}_{H} \mathbf{U} + 2 \underbrace{x_k^T \mathcal{A}^T \bar{Q} \mathcal{B}}_{f^T} \mathbf{U} + \text{const}

约束条件

输入约束:uminuk+jumaxu_{min} \leq u_{k+j} \leq u_{max}

状态约束:xminxk+ixmaxx_{min} \leq x_{k+i} \leq x_{max}

输入增量约束:ΔuminΔuk+jΔumax\Delta u_{min} \leq \Delta u_{k+j} \leq \Delta u_{max}

这些约束可以统一写为线性不等式:

AineqUbineq\mathbf{A}_{ineq} \mathbf{U} \leq \mathbf{b}_{ineq}

最终的优化问题——二次规划(Quadratic Programming, QP)

minU12UTHU+fTU\min_{\mathbf{U}} \frac{1}{2} \mathbf{U}^T H \mathbf{U} + f^T \mathbf{U} s.t.AineqUbineq\text{s.t.} \quad \mathbf{A}_{ineq} \mathbf{U} \leq \mathbf{b}_{ineq}

这是一个标准的凸二次规划问题,有成熟的高效求解算法(如 Interior Point、Active Set、ADMM 等)。

10.4 MPC 的关键设计参数

参数影响选择建议
采样周期 TsT_s太大则控制粗糙,太小则计算负担大通常为系统主导时间常数的 1/10 到 1/20
预测时域 NpN_p影响预测的"视野"和计算量应覆盖系统的主要动态过程
控制时域 NcN_c影响控制灵活性和计算量通常 Nc=Np/3N_c = N_p/3Np/2N_p/2
状态权重 QQ跟踪精度 vs 控制平滑度对需要精确控制的状态分量赋大权重
输入权重 RR控制能耗 vs 响应速度增大 RR 使控制更平滑、更节能

10.5 MPC 与 LQR 的深层关系

MPC 与 LQR 有着深刻的联系:

  • 当 MPC 无约束预测时域趋向无穷时,MPC 退化为 LQR
  • 换言之,LQR 是 MPC 的一个特例——没有约束、无限时域的 MPC
  • MPC 可以看作"带约束的、有限时域的 LQR,并以滚动方式执行"

这一关系也解释了为什么 LQR 是理解 MPC 的重要基础。

10.6 MPC 的稳定性保证

MPC 的闭环稳定性并非自动保证的(有限时域优化不等于无限时域最优)。确保稳定性的常用方法:

  1. 终端代价(Terminal Cost):在代价函数中加入终端项 xk+NpTPfxk+Npx_{k+N_p}^T P_f x_{k+N_p},其中 PfP_f 通常取 LQR 的 Riccati 方程解
  2. 终端约束(Terminal Constraint):要求 xk+Npx_{k+N_p} 落入一个不变集(Invariant Set)
  3. 足够长的预测时域:实践中,较长的预测时域通常能保证稳定性

10.7 非线性 MPC(Nonlinear MPC)

当系统模型非线性时,预测方程变为:

xk+1=f(xk,uk)x_{k+1} = f(x_k, u_k)

优化问题不再是凸的二次规划,而是非凸非线性规划(NLP),求解更困难。常用方法:

  • 实时迭代(Real-Time Iteration, RTI):每个采样时刻只做一次牛顿迭代
  • 序列二次规划(SQP):将 NLP 近似为一系列 QP 问题
  • 逐步线性化:在当前工作点将非线性模型线性化,用线性 MPC 求解

10.8 MPC 的应用领域

MPC 自 20 世纪 80 年代从石化工业发展至今,已广泛应用于:

过程工业:化工、炼油、制药——MPC 的"发源地"。多变量耦合、约束复杂、动态缓慢,非常适合 MPC。

汽车与自动驾驶:路径跟踪、速度规划、能量管理。需要处理道路约束、舒适性约束、安全约束。

机器人:步行机器人的步态规划、机械臂轨迹跟踪。需要处理关节力矩限制和运动学约束。

航空航天:飞行器姿态控制、卫星变轨。推力有限、燃料有限,约束处理至关重要。

电力系统与建筑能源管理:负荷调度、储能优化。需要结合预测(天气、用电量)进行优化决策。

10.9 MPC 的实现工具

MATLAB/Simulink

  • Model Predictive Control Toolbox:图形化配置、自动代码生成
  • 函数:mpc()mpcmove()

Python

  • do-mpc:基于 CasADi 的非线性 MPC 框架
  • CVXPY:通用凸优化建模工具,适合实现线性 MPC
  • OSQP:高效 QP 求解器,适合嵌入式 MPC
  • acados:高性能非线性 MPC 求解器

一个简化的 Python MPC 伪代码

import numpy as np
from scipy.linalg import solve_discrete_are
import cvxpy as cp

# 系统模型
A = np.array([[1.0, 0.1], [0.0, 1.0]])
B = np.array([[0.005], [0.1]])
n_x, n_u = B.shape

# MPC 参数
N_p = 20          # 预测时域
Q = np.eye(n_x)   # 状态权重
R = 0.1 * np.eye(n_u)  # 输入权重

# 约束
u_min, u_max = -1.0, 1.0
x_min, x_max = -5.0, 5.0

def solve_mpc(x0):
    x = cp.Variable((n_x, N_p + 1))
    u = cp.Variable((n_u, N_p))

    cost = 0
    constraints = [x[:, 0] == x0]

    for k in range(N_p):
        cost += cp.quad_form(x[:, k], Q) + cp.quad_form(u[:, k], R)
        constraints += [
            x[:, k+1] == A @ x[:, k] + B @ u[:, k],
            u_min <= u[:, k], u[:, k] <= u_max,
            x_min <= x[:, k+1], x[:, k+1] <= x_max,
        ]
    cost += cp.quad_form(x[:, N_p], Q)  # 终端代价

    prob = cp.Problem(cp.Minimize(cost), constraints)
    prob.solve(solver=cp.OSQP)

    return u[:, 0].value  # 只返回第一步控制

这段代码展示了 MPC 的核心逻辑:在每个时刻,构造一个带约束的 QP 问题并求解,只执行第一步。

10.10 MPC 总结

graph TD
    subgraph mpcCore ["MPC 的三大支柱"]
        Model["预测模型<br/>线性/非线性状态空间"]
        Cost["目标函数<br/>二次代价 + 权重调节"]
        Constr["约束条件<br/>输入/状态/输出约束"]
    end
    Model --> QP["在线优化求解<br/>QP / NLP"]
    Cost --> QP
    Constr --> QP
    QP --> Ctrl["只执行第一步控制量"]
    Ctrl --> Feedback["测量新状态"]
    Feedback --> Model

MPC 的本质是:在每个时刻,基于当前状态和系统模型,展望未来,在约束范围内找到最优的控制策略,然后只执行一步,周而复始。

它融合了:

  • 建模(第三章)——需要准确的系统模型
  • 状态空间方法(第八章)——数学表示的基础
  • 最优控制(第九章)——优化框架的理论根基
  • 约束处理——PID 和 LQR 都不具备的核心能力

这也是为什么 MPC 被称为"过去三十年最成功的先进控制技术"。


附录

A. 推荐学习资源

教材

书名作者适用阶段特点
Modern Control EngineeringK. Ogata经典控制经典教材,例题丰富
Feedback Control of Dynamic SystemsFranklin, Powell, Emami-Naeini经典+现代兼顾理论与工程实践
Linear Systems TheoryJ. P. Hespanha状态空间数学严谨,适合深入
Optimal ControlLewis, Vrabie, Syrmos最优控制覆盖 LQR、动态规划
Model Predictive ControlJ. B. Rawlings, D. Q. Mayne, M. M. DiehlMPCMPC 领域的权威参考
Predictive Control for Linear and Hybrid SystemsBorrelli, Bemporad, MorariMPC理论深入,含混合系统

在线课程

  • MIT OCW 6.241 Dynamic Systems and Control
  • Steve Brunton 的 YouTube 系列 Control Bootcamp(强烈推荐,直觉讲解)
  • MPC 专项:EPFL 的 Model Predictive Control 课程

软件工具

  • MATLAB + Control System Toolbox + MPC Toolbox
  • Python: python-control(经典控制)、CVXPY + OSQP(MPC)、do-mpc(非线性 MPC)
  • Julia: ControlSystems.jlJuMP.jl

B. 符号表

符号含义
ss拉普拉斯变换复变量
G(s)G(s)传递函数
x(t)x(t) / xkx_k状态向量(连续/离散)
u(t)u(t) / uku_k控制输入
y(t)y(t) / yky_k系统输出
A,B,C,DA, B, C, D状态空间系统矩阵
ωn\omega_n自然频率
ζ\zeta阻尼比
Kp,Ki,KdK_p, K_i, K_dPID 增益
QQ状态权重矩阵
RR输入权重矩阵
PPRiccati 方程解
KK反馈增益矩阵
NpN_p预测时域
NcN_c控制时域
C\mathcal{C}能控性矩阵
O\mathcal{O}能观性矩阵