之前写了一个关于pid调节的文章,传送门:基于Matlab GUI的PID研究
对于pid调节可以直接使用matlab自带的工具箱,
1、定义一个传递函数
代码语言:javascript复制>> sys = tf(1,[2 3 2])
sys =
1
---------------
2 s^2 3 s 2
Continuous-time transfer function.
2、导入传递函数
3、选择pid控制
4、在结果可以实时看到控制的输出,通过调节系统的响应和鲁棒性,直到满足自己的期望,
5、输出pid的调节参数
6、验证输出结果
代码语言:javascript复制>> pid(6,3,3)
ans =
1
Kp Ki * --- Kd * s
s
with Kp = 6, Ki = 3, Kd = 3
Continuous-time PID controller in parallel form.
>> c = pid(6,3,3)
c =
1
Kp Ki * --- Kd * s
s
with Kp = 6, Ki = 3, Kd = 3
Continuous-time PID controller in parallel form.
>> sys = feedback(c*sys,1)
sys =
3 s^2 6 s 3
-----------------------
2 s^3 6 s^2 8 s 3
Continuous-time transfer function.
>> step(sys)
1、比例(P)系数的调节
比例系数P的调节范围一般是:0.1--100.
如果增益值取 0.1,PID 调节器输出变化为十分之一的偏差值。如果增益值取 100, PID 调节器输出变化为一百倍的偏差值。
可见该值越大,比例产生的增益作用越大。初调时,选小一些,然后慢慢调大,直到系统波动足够小,再调节积分或微分系数。过大的P值会导致系统不稳定,持续振荡;过小的P值又会使系统反应迟钝。合适的值应该使系统有足够的灵敏度但又不会反应过于灵敏,一定时间的迟缓要靠积分时间来调节。
2、积分(I)系数的调节
积分时间常数的定义是,偏差引起输出增长的时间。积分时间设为 1秒,则输出变化 100%所需时间为 1 秒。初调时要把积分时间设置长些,然后慢慢调小直到系统稳定为止。
3、微分(D)系数的调节
微分值是偏差值的变化率。例如,如果输入偏差值线性变化,则在调节器输出侧叠加一个恒定的调节量。大部分控制系统不需要调节微分时间。因为只有时间滞后的系统才需要附加这个参数。如果画蛇添足加上这个参数反而会使系统的控制受到影响。如果通过比例、积分参数的调节还是收不到理想的控制要求,就可以调节微分时间。初调时把这个系数设小,然后慢慢调大,直到系统稳定。