经典控制理论

Proportional Integral Derivative

PID 控制器是工业控制中应用最广泛的反馈控制算法,通过比例、积分、微分三个环节的组合,实现对系统误差的快速、准确、稳定控制。

📖 1. 概述

PID(Proportional-Integral-Derivative)控制器是一种线性反馈控制器,其核心思想是根据系统误差(设定值与实际输出之差)的比例、积分、微分组合来生成控制信号。

📊

比例 P

当前误差的响应,快速但有稳态误差

📐

积分 I

历史误差的累积,消除稳态误差

微分 D

误差变化趋势的预测,抑制超调

🎯

广泛应用

工业控制中 90% 以上的控制器采用 PID

\(e(t)\)
PID 控制器
\(u(t) = K_p e + K_i \int e + K_d \dot{e}\)
\(u(t)\)
被控对象 Plant
\(y(t)\)
输出
\(r(t)\)
💡
核心优势:PID 控制器结构简单、鲁棒性好、不需要精确的数学模型,只需调节三个参数(Kp, Ki, Kd)即可实现良好的控制效果。

🔧 2. PID 原理

2.1 比例环节(P)

$$u_P(t) = K_p \cdot e(t)$$

比例环节的输出与误差信号成正比,是最基本的控制环节。

优点

  • 响应速度快
  • 结构简单
  • 即时响应误差变化

缺点

  • 存在稳态误差
  • Kp 过大会导致振荡
  • 无法消除常值干扰

2.2 积分环节(I)

$$u_I(t) = K_i \cdot \int_0^t e(\tau)d\tau$$

积分环节的输出与误差的累积量成正比,用于消除稳态误差。

作用:积分环节能够消除比例控制无法消除的稳态误差,但会引入相位滞后,可能导致系统超调和振荡。

2.3 微分环节(D)

$$u_D(t) = K_d \cdot \frac{de(t)}{dt}$$

微分环节的输出与误差的变化率成正比,用于预测误差变化趋势。

💡
作用:微分环节能够抑制超调、改善动态性能,但对噪声敏感,实际应用中需要滤波处理。

2.4 PID 各环节响应对比

PID 各环节对阶跃误差的响应 时间 t 输出 误差信号 e(t) P 输出 I 输出 D 输出

📝 3. 公式推导

3.1 连续时间形式

PID 控制器的连续时间表达式:

$$u(t) = K_p \cdot e(t) + K_i \cdot \int_0^t e(\tau)d\tau + K_d \cdot \frac{de(t)}{dt}$$

其中:

符号含义作用
\(K_p\)比例增益控制当前误差的响应强度
\(K_i\)积分增益控制历史误差累积的响应强度
\(K_d\)微分增益控制误差变化率的响应强度
\(e(t)\)误差信号\(e(t) = r(t) - y(t)\)

3.2 离散时间形式

使用矩形积分近似和后向差分近似:

$$u(k) = K_p \cdot e(k) + K_i \cdot T_s \cdot \sum_{i=0}^{k} e(i) + K_d \cdot \frac{e(k) - e(k-1)}{T_s}$$

其中 \(T_s\) 为采样周期。离散形式便于数字控制器实现。

3.3 传递函数形式

在 Laplace 域中,PID 控制器的传递函数为:

$$G_c(s) = \frac{U(s)}{E(s)} = K_p + \frac{K_i}{s} + K_d s = \frac{K_d s^2 + K_p s + K_i}{s}$$

标准 PID 形式

工程中常用的标准形式:

$$G_c(s) = K_p \left(1 + \frac{1}{T_i s} + T_d s\right)$$

其中 \(T_i = K_p/K_i\) 为积分时间常数,\(T_d = K_d/K_p\) 为微分时间常数。

并联 PID 形式

各环节独立调节:

$$G_c(s) = K_p + \frac{K_i}{s} + K_d s$$

连续时间

$$u(t) = K_p e(t) + K_i \int_0^t e(\tau)d\tau + K_d \dot{e}(t)$$

离散时间

$$u(k) = K_p e(k) + K_i T_s \sum_{i=0}^{k} e(i) + \frac{K_d}{T_s}[e(k)-e(k-1)]$$

📊 4. 频域分析

4.1 伯德图(Bode Plot)

伯德图用于分析系统频率响应,包含幅频特性和相频特性两部分。

$$G_c(j\omega) = K_p + \frac{K_i}{j\omega} + K_d j\omega$$
频段主导环节幅频斜率相频特性
低频段 (\(\omega \to 0\))积分 I-20 dB/dec\(\to -90°\)
中频段比例 P0 dB/dec\(\to 0°\)
高频段 (\(\omega \to \infty\))微分 D+20 dB/dec\(\to +90°\)
PID 控制器伯德图 频率 ω (rad/s) 幅值 (dB) -20dB/dec (I) 0dB/dec (P) +20dB/dec (D) 0.01 0.1 1 10 100 1000 频率 ω (rad/s) 相位 (deg) -90° (I) 0° (P) +90° (D) 0.01 0.1 1 10 100 1000

🔧 交互式频域分析(拖动滑块调整参数)

1.0
0.5
0.2

伯德图 - 幅频特性

伯德图 - 相频特性

奈氏图

极点-零点图

4.2 奈氏图(Nyquist Plot)

奈氏图是频率响应在复平面上的极坐标表示,用于判断闭环系统稳定性。

$$G_c(j\omega) = \text{Re}(\omega) + j \cdot \text{Im}(\omega)$$
PID 奈氏图 Re Im (-1, 0) ω → 0 ω → ∞ 轨迹方向: ω 从 0 到 ∞
⚠️
奈氏稳定判据:若开环传递函数 \(G_c(s)G_p(s)\) 的奈氏曲线包围 (-1, j0) 点的次数等于开环右半平面极点数,则闭环系统稳定。

4.3 极点-零点图

PID 控制器的传递函数为:

$$G_c(s) = \frac{K_d s^2 + K_p s + K_i}{s}$$
特征位置影响
极点\(s = 0\)(原点)积分环节,消除稳态误差
零点由 \(K_d s^2 + K_p s + K_i = 0\) 决定影响系统动态响应
极点-零点图 Re Im 极点 s=0 零点 s₁ 零点 s₂ × 极点 ○ 零点

🎯 5. 稳定性分析

5.1 劳斯-赫尔维茨判据

对于闭环特征方程 \(1 + G_c(s)G_p(s) = 0\),劳斯判据可用于判断稳定性。

一阶系统 PID 控制

系统:\(G_p(s) = \frac{K}{\tau s + 1}\)

$$G_c(s)G_p(s) = \frac{K(K_d s^2 + K_p s + K_i)}{s(\tau s + 1)}$$

闭环特征方程:\(\tau s^2 + (1 + KK_d)s + KK_p = 0\)

稳定条件:\(\tau > 0, 1+KK_d > 0, KK_p > 0\)(始终成立)

二阶系统 PID 控制

系统:\(G_p(s) = \frac{K}{s(\tau s + 1)}\)

$$G_c(s)G_p(s) = \frac{K(K_d s^2 + K_p s + K_i)}{s^2(\tau s + 1)}$$

闭环特征方程:\(\tau s^3 + s^2 + KK_d s^2 + KK_p s + KK_i = 0\)

使用劳斯判据判断稳定性。

5.2 相位裕度与增益裕度

相位裕度 (PM)

定义:增益穿越频率处相位与 -180° 的差值。

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

推荐:\(PM \geq 45°\) 保证良好的阻尼特性。

增益裕度 (GM)

定义:相位穿越频率处增益的倒数。

$$GM = \frac{1}{|G(j\omega_{pc})|}$$

推荐:\(GM \geq 6\) dB 保证足够的稳定性。

经验法则:对于典型的 PID 控制系统,相位裕度 45°~60°、增益裕度 6~12 dB 可获得良好的动态响应和鲁棒性。

🔥 6. PID 变体

PI 控制器
$$G_c(s) = K_p + \frac{K_i}{s} = \frac{K_p s + K_i}{s}$$

特点:消除稳态误差,但无法预测误差变化趋势。

适用:对动态响应要求不高、主要关心稳态精度的场合。

PD 控制器
$$G_c(s) = K_p + K_d s$$

特点:预测误差变化趋势,改善动态性能,但无法消除稳态误差。

适用:响应速度要求高、稳态误差可接受的场合。

增量式 PID
$$\Delta u(k) = u(k) - u(k-1)$$
$$\Delta u(k) = K_p[e(k)-e(k-1)] + K_i e(k) + K_d[e(k)-2e(k-1)+e(k-2)]$$

特点:输出控制量的增量,避免积分饱和,便于无扰切换。

抗积分饱和 PID

当控制量达到饱和限制时,停止积分累积或反向积分:

$$\text{if } |u| \geq u_{\max}, \text{ then } u_I(k) = u_I(k-1) - \alpha \cdot e(k)$$

作用:防止执行器饱和时积分项持续累积导致的超调。

滤波 PID

对微分项添加低通滤波器,抑制高频噪声:

$$G_c(s) = K_p + \frac{K_i}{s} + \frac{K_d s}{\tau_f s + 1}$$

作用:保留微分环节的相位超前特性,同时抑制高频噪声放大。

PID 变体对比

类型优点缺点适用场景
PID全面、鲁棒参数多、调参复杂通用
PI简单、消除稳态误差响应较慢温度、液位控制
PD响应快、抑制超调有稳态误差伺服系统
增量式无积分饱和、便于切换需要历史数据过程控制

🏗️ 7. 调参方法

7.1 Ziegler-Nichols 方法

经典的 PID 参数整定方法,基于系统的临界增益和临界周期。

临界增益法(第二法)
1. 仅使用比例控制,逐步增大 Kp 直到系统等幅振荡
2. 记录此时的临界增益 \(K_u\) 和振荡周期 \(T_u\)
3. 按下表计算 PID 参数
控制器类型KpTiTdKiKd
P0.5 Ku----
PI0.45 KuTu/1.2-0.54 Ku/Tu-
PID0.6 KuTu/2Tu/81.2 Ku/Tu0.075 Ku·Tu

7.2 手动整定原则

Step 1: 先调 P

从小到大增加 Kp,直到系统响应快但不振荡(超调 < 20%)。

Step 2: 再调 I

从小到大增加 Ki,消除稳态误差,同时避免过大的超调。

Step 3: 最后调 D

从小到大增加 Kd,抑制超调,改善动态性能,注意避免噪声放大。

7.3 常见调参经验

💡

温度控制

Kp 适中,Ki 较小,Kd 较小(响应慢)

💡

位置控制

Kp 较大,Ki 适中,Kd 较大(快速响应)

💡

流量控制

Kp 较小,Ki 适中,Kd 较小(抑制噪声)

💡

压力控制

Kp 适中,Ki 较小,Kd 适中(平衡响应与稳定性)

7.4 参数对系统性能的影响

参数增大上升时间超调量调节时间稳态误差
\(K_p\) 增大减小增大基本不变减小
\(K_i\) 增大减小增大增大消除
\(K_d\) 增大基本不变减小减小基本不变
⚠️
注意:PID 参数之间存在耦合,调整一个参数可能影响其他参数的效果。实际调参时需要反复迭代,综合考虑各项性能指标。

🚀 8. 应用场景

🌡️ 温度控制

工业炉、烘箱、反应釜等温度控制系统。

Python 仿真Python
import numpy as np
import matplotlib.pyplot as plt

# 一阶惯性系统
K, tau = 1.0, 10.0  # 增益、时间常数
Kp, Ki, Kd = 2.0, 0.1, 0.5
dt, T = 0.1, 100
t = np.arange(0, T, dt)
x, e_prev, integral = 0, 0, 0

for i in range(1, len(t)):
    e = 1 - x  # 阶跃响应
    integral += e * dt
    derivative = (e - e_prev) / dt
    u = Kp * e + Ki * integral + Kd * derivative
    x = x + dt * (-x + K * u) / tau
    e_prev = e
🛰️ 电机速度控制

直流电机、伺服电机的速度控制。

Python 仿真Python
# 电机模型: J*dw/dt = Kt*i - B*w
J, B, Kt = 0.01, 0.1, 0.5  # 转动惯量、摩擦、力矩常数
Kp, Ki, Kd = 10, 5, 0.1
dt, T = 0.001, 2
t = np.arange(0, T, dt)
w, e_prev, integral = 0, 0, 0

for i in range(1, len(t)):
    e = 100 - w  # 目标转速 100 rad/s
    integral += e * dt
    derivative = (e - e_prev) / dt
    i_cmd = Kp * e + Ki * integral + Kd * derivative
    w = w + dt * (Kt * i_cmd - B * w) / J
    e_prev = e
🚗 自动驾驶纵向控制

车辆速度控制、自适应巡航控制 (ACC)。

  • 输入:目标车速、当前车速
  • 输出:油门/刹车控制量
  • 特点:需要考虑执行器延迟和车辆动力学
🏭 过程控制

化工、制药、食品等工业过程控制。

  • 液位控制:储罐液位稳定
  • 流量控制:管道流量调节
  • 压力控制:容器压力稳定
  • 浓度控制:混合物浓度调节
🤖 机器人关节控制

工业机器人、协作机器人的关节位置/力矩控制。

  • 位置环:PI 控制,消除稳态误差
  • 速度环:PI 控制,快速跟踪
  • 力矩环:P 控制,高带宽响应

📊 9. 与其他方法对比

方法优点缺点适用场景
PID简单、鲁棒、不需模型非最优、调参困难通用、快速部署
LQR最优性、理论完善需要精确模型线性系统、无约束
MPC处理约束、多变量计算量大有约束、非线性
H∞强鲁棒性保守、复杂不确定性大
模糊 PID不需精确模型、自适应规则设计主观非线性、不确定

决策流程图

选型指南:

✅ 简单系统 + 快速部署 + 不需模型 → PID
✅ 线性系统 + 无约束 + 需要最优 → LQR
✅ 有约束 + 非线性 + 计算资源充足 → MPC
✅ 强鲁棒性要求 + 模型不确定 → H∞
✅ 非线性 + 无精确模型 + 经验知识 → 模糊 PID
💡
实践联系:当 LQR 的 Q = diag(Kp, 0), R = 1/Ki 时,LQR 的稳态增益与 PI 控制器类似。MPC 在无限时域、无约束、线性系统下退化为 LQR,而 LQR 可看作 PID 的多变量扩展。

10. 常见问题

10.1 PID 控制器振荡怎么办?

⚠️
常见原因及解决方案:
1. Kp 过大 → 减小比例增益
2. Ki 过大 → 减小积分增益
3. Kd 过大 → 减小微分增益(可能放大噪声)
4. 采样周期过小 → 增大采样周期

10.2 如何消除稳态误差?

方法
1. 增加积分环节(Ki > 0)
2. 增大积分时间(减小 Ki)
3. 使用积分抗饱和策略
4. 检查执行器是否饱和

10.3 PID 与 LQR 的关系?

对于一阶系统 \(\dot{x} = -ax + bu\):

10.4 数字 PID 的实现方式?

位置式 PID

$$u(k) = K_p e(k) + K_i \sum_{i=0}^{k} e(i) + K_d [e(k)-e(k-1)]$$

缺点:需要累积历史误差,易积分饱和。

增量式 PID

$$\Delta u(k) = K_p[e(k)-e(k-1)] + K_i e(k) + K_d[e(k)-2e(k-1)+e(k-2)]$$

优点:无需累积历史误差,便于无扰切换。

10.5 采样周期如何选择?

经验法则
- 采样频率应为系统带宽的 10~20 倍
- 温度控制:\(T_s = 1 \sim 10\) s
- 位置/速度控制:\(T_s = 1 \sim 10\) ms
- 电流环:\(T_s = 0.1 \sim 1\) ms

📚 11. 参考文献

  1. Astrom, K. J., & Hagglund, T. (2006). Advanced PID Control. ISA.
  2. Ogata, K. (2010). Modern Control Engineering (5th ed.). Prentice Hall.
  3. Dorf, R. C., & Bishop, R. H. (2011). Modern Control Systems (12th ed.). Prentice Hall.
  4. Franklin, G. F., Powell, J. D., Emami-Naeini, A., & Powell, J. D. (2015). Feedback Control of Dynamic Systems (7th ed.). Pearson.

← 返回首页 | Last updated: 2026-06-25 | Made with love for classical control

目录