Matalb&Simulink Control Tutorials笔记3-PID控制器设计

控制–PID设计

概述

考虑单位反馈系统:
Matalb&Simulink Control Tutorials笔记3-PID控制器设计
PID时域:
u(t)=Kpe(t)+Kie(t)dt+Kpde(t)dtu(t) = K_p e(t) + K_i \int e(t) dt + K_p \frac{de(t)}{dt}
拉普拉斯变换后:
Kds2+Kps+Kis \frac{K_d s^{2} + K_p s + K_i}{s}

Kp = 1;
Ki = 1;
Kd = 1;

s = tf('s');
C = Kp + Ki / s + Kd * s
%or
C = pid(Kp,Ki,Kd)
tf(C)

P I D 各环节作用
Matalb&Simulink Control Tutorials笔记3-PID控制器设计

例子

质量弹簧阻尼系统。
Matalb&Simulink Control Tutorials笔记3-PID控制器设计
控制方程:
mx¨+bx˙+kx=Fm\ddot{x} + b\dot{x} + kx = F
拉氏变换:
X(s)F(s)=1ms2+bs+k\frac{X(s)}{F(s)} = \frac{1}{ms^{2} + bs + k}

m = 1 kg;
b = 10 N s / m;
k = 20 N / m;
F = 1 N;

X(s)F(s)=1s2+10s+20\frac{X(s)}{F(s)} = \frac{1}{s^{2} + 10s + 20}

开环阶跃响应
s = tf('s');
P = 1/(s^2 + 10*s + 20);
step(P)

Matalb&Simulink Control Tutorials笔记3-PID控制器设计
阻尼比:10/220=1.1810/2\sqrt{20} = 1.18
增益:1/20 稳态误差 0.95 太大。
上升时间、稳定时间长。

比例控制

加比例控制后,单位反馈系统的闭环传递函数为:
X(s)R(s)=Kps2+10s+(20+Kp)\frac{X(s)}{R(s)} = \frac{K_p}{s^{2} + 10s +(20+K_p)}

Kp = 100;
C = pid(Kp)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

Matalb&Simulink Control Tutorials笔记3-PID控制器设计
KpK_p改变

Kp = 300;
C = pid(Kp)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

Matalb&Simulink Control Tutorials笔记3-PID控制器设计

比例控制器减小了上升时间和稳态误差,增加了过冲,并将稳定时间减少了一小部分。

比例-微分控制

X(s)R(s)=Kds+Kps2+(10+Kd)s+(20+Kp)\frac{X(s)}{R(s)} = \frac{K_ds+K_p}{s^{2} + (10+K_d)s +(20+K_p)}

Kp = 300;
Kd = 10;
C = pid(Kp,0,Kd)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

Matalb&Simulink Control Tutorials笔记3-PID控制器设计

增加微分项减少了过冲和稳定时间,并且对上升时间和稳态误差的影响可忽略不计。

比例-积分控制

X(s)R(s)=Kps+Kis3+10s2+(20+Kp)s+Ki\frac{X(s)}{R(s)} = \frac{K_ps+K_i}{s^{3} + 10s^{2}+(20+K_p)s +K_i}

Kp = 30;
Ki = 70;
C = pid(Kp,Ki)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

Matalb&Simulink Control Tutorials笔记3-PID控制器设计
我们减小了比例增益(KpK_p),因为积分还减少了上升时间并增加了过冲(同比例项的作用)。上述响应表明,在这种情况下,积分控制器消除了稳态误差。

比例-积分-微分控制

X(s)R(s)=Kds2+Kps+Kis3+(10+Kd)s2+(20+Kp)s+Ki\frac{X(s)}{R(s)} = \frac{K_ds^{2}+K_ps+K_i}{s^{3} + (10+K_d)s^{2}+(20+K_p)s +K_i}

Kp = 350;
Ki = 300;
Kd = 50;
C = pid(Kp,Ki,Kd)
T = feedback(C*P,1);

t = 0:0.01:2;
step(T,t)

Matalb&Simulink Control Tutorials笔记3-PID控制器设计

设计PID的一般提示

在为给定系统设计PID控制器时,请按照下面显示的步骤获得所需的响应。

  1. 获得开环响应并确定需要改进的内容
  2. 添加比例控制以改善上升时间
  3. 添加微分控制以减少过冲
  4. 添加积分控制以减少稳态误差
  5. 每次调整的增益KpK_pKIK_I以及KDK_D直到你获得所需的整体响应。

最后,请记住,如果不需要,您不需要将所有三个控制器(比例,微分和积分)实现到单个系统中。例如,如果PI控制器满足给定的要求(如上例所示),那么您不需要在系统上实现派生控制器。保持控制器尽可能简单。

可以在以下链接中找到在实际物理系统上调整PI控制器的示例。这个例子也开始说明实现控制的一些挑战,包括:控制饱和,积分器卷绕和噪声放大。

自动PID调整

(GUI)pidTuner