目录

MATLAB-控制系统设计与仿真-24

MATLAB 控制系统设计与仿真 - 24

PID 控制器分析- 控制器的形式

连续控制器的结构:

https://latex.csdn.net/eq?G%28s%29%3DK_p+%5Cfrac%7BK_i%7D%7Bs%7D+%5Cfrac%7BK_ds%7D%7BT_fs+1%7D

https://latex.csdn.net/eq?T_f 为滤波时间常数,这类PID控制器在MATLAB系统控制工具箱称为并联PID控制器,可由MATLAB提供的pid函数直接输入,格式为:

https://latex.csdn.net/eq?G_c%28s%29%3Dpid%28K_p%2CK_i%2CK_d%2CTf%29%3B

其他类型的控制器也可以由该函数直接输入,例如令 https://latex.csdn.net/eq?K_i%3D0 ,我们可以得到PD控制器

例-1

MATLAB程序

clear all;clc;
num=6;
den=[1 5];
sys=tf(num,den);
step(sys);
hold on;
Gc=pid(50,200,200,20);
sys_cl=feedback(Gc*sys,1);
step(sys_cl);
legend('开环阶跃响应','闭环阶跃响应')

程序运行结果:

https://i-blog.csdnimg.cn/direct/d6c7b39c787d4a50a97522b56795a092.jpeg

标准PID控制器

标准PID控制器的形式为:

https://latex.csdn.net/eq?G_c%28s%29%3Dk_p%5Cleft%20%5C%7B%201+%5Cfrac%7B1%7D%7BT_1s%7D+%5Cfrac%7BT_ds%7D%7B1+%5Cfrac%7BT_d%7D%7BN%7Ds%7D%5Cright%20%5C%7D

在一般实际中,N通常取10就可以取得很好的逼近微分效果。该控制器可由MATLAB函数

https://latex.csdn.net/eq?G_c%3Dpidstd%28K_p%2CT_i%2CT_d%2CN%29 直接输入

离散PID控制器

离散PID控制器的格式为:

https://latex.csdn.net/eq?u_k%3DK_pe_k+K_iT%5Csum_%7Bm%3D0%7D%5E%7Bk%7De_m+%5Cfrac%7BK_d%7D%7BT%7D%28e_k-e_%7Bk-1%7D%29

对其进行z变换,可知离散PID控制器可以写成:

https://latex.csdn.net/eq?G_c%28z%29%3DK_p+%5Cfrac%7BK_iTz%7D%7Bz-1%7D+%5Cfrac%7BT_d%28z-1%29%7D%7BTz%7D

对于积分环节的z变换,做一下补充*****************************

假设 https://latex.csdn.net/eq?y%28k%29%3DK_iT%5Csum_%7Bm%3D0%7D%5E%7Bk%7De_m

https://latex.csdn.net/eq?y%28k+1%29%3DK_iT%5Csum_%7Bm%3D0%7D%5E%7Bk+1%7De_m

https://latex.csdn.net/eq?y%28k+1%29%3DK_iT%5Csum_%7Bm%3D0%7D%5E%7Bk%7De_m+K_iTe%28k+1%29

https://latex.csdn.net/eq?y%28k+1%29%3Dy%28k%29+K_iTe%28k+1%29

对上式做Z变换:

https://latex.csdn.net/eq?Y%28z%29%3D%5Cfrac%7BK_iTz%7D%7Bz-1%7De%28z%29


对于离散系统的PID控制器,我们也可以通过pid和pidstd函数输入,但是我们要加上采样时间T。其调用格式为:

https://latex.csdn.net/eq?G_c%28z%29%3Dpidstd%28K_p%2CK_i%2CK_d%2CN%2CT%29

例-2

MATLAB程序如下:

clear all;clc;
Gc=pidstd(10,20,30,10,0.001);
Gc

程序运行结果如下:

Gc =
 
             1       Ts                 1       
  Kp * (1 + ---- * ------ + Td * ---------------)
             Ti      z-1         (Td/N)+Ts/(z-1)

  with Kp = 10, Ti = 20, Td = 30, N = 10, Ts = 0.001
 
Sample time: 0.001 seconds
Discrete-time PIDF controller in standard form

最后,欢迎大

家有问题给我留言。

另外欢迎小伙伴们点

赞转发加关注

谢大家!!