转自maitd
https://blog.csdn.net/qq_33243369/article/details/78702912
用PID好多次了,用来做过智能车,用来做过四轴.PID不难理解,不难应用,网上也有许多介绍PID的帖子文章什么的,有介绍原理公式的,有讲怎么调节的,资料特别多,我就不写那些陈腔滥调了,我写点感觉网上大多数的帖子没涉及到的或是没有着重指出的,初学者容易忽略,但又挺重要的地方.##一.区别PID公式和调节口诀常用的是位置式和增量式公式分别如下:
一.区别PID公式和调节口诀
常用的是位置式和增量式公式分别如下:
位置式连续
位置式离散
注意此时Kp=Kp, Ki=KpT/Ti, Kd=Kp/TTd
增量式
Kp,Ki,Kd和上式含义一致
以及PID调节口诀
参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低4比1
一看二调多分析,调节质量不会低
我觉得需要注意的地方是这个调节口诀它只适用与连续位置式PID公式,也就是第一个公式,首先 比例度盘=1/Kp, 积分时间=Ti, 微分时间=Td,但我们平时不会去用连续式的公式啊,所以在用PID调节口诀的时候注意它里面说的各个参数是什么意思,如果将对应离散PID的公式代入这个口诀那么这个口诀应该是这样的:
参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大(Kp减小)
曲线漂浮绕大湾,比例度盘往小扳(Kp增大)
曲线偏离回复慢,积分时间往下降(Ki增大)
曲线波动周期长,积分时间再加长(Ki减小)
曲线振荡频率快,先把微分降下来(Kd增大)
动差大来波动慢。微分时间应加长(Kd减小)
理想曲线两个波,前高后低4比1
一看二调多分析,调节质量不会低
二.控制PID的执行周期(T)
虽然在离散化的公式里这个地方这个参数隐藏了,但注意它只是被隐藏了,但还是还会发生作用,看一下离散位置PID公式里那几个参数的公式,是不是它会影响参数的大小啊.
所以在应用第二个第三个PID公式时执行周期一定是要确定的,不能变更的,一T变更那么参数就得跟着变了,注意是T变了,参数就得相应的去变化,而不是一直不变,但如果此时你的参数维持不变的话,显然这组参数已经不是当前的最优参数了.
举个例子,有一个取样周期为1的PID和一个取样周期为10的PID控制同一个的执行元件,若此时参数还采取一样,它的控制效果显而易见是不会一样的.所以要控制执行周期,最好能将Ki=KpT/Ti, Kd=Kp/TTd,这个公式直接应用,公式变为:
我推荐用这个公式,在控制好T,或者获取T的实际值,代入,调节Ti和Td.许多开源四轴的控制一般是用这个公式的.
三.积分环节的限幅
我不推荐做智能车啥的用增量式PID,说是简化了运算,但现在的单片机啥的运算能力和频率都挺强的,又不是51那个时代了,所以减那一点实在没什么作用.此外用增量式PID,不好去做积分限幅的,只能对每次的输出做限制,但对积分的限幅没什么作用.
有时候当误差量e(k)比较大,而e(k)-e(k-1)要小的多的时候,系统有较大的迟滞的时候(感觉是)要防止积分的饱和.就是当系统的输出一直摇摆,不会收敛,而且摇摆的频率比较缓慢,那么我感觉可能是饱和,得限制下积分了.也就是
这个环节的累积值大小做限幅.
我感觉用的时候可以最后加积分环节,看一下系统的稳态误差,如果没稳态误差,我就直接不加了,如果有的话,那么看一下稳态误差的大小在什么范围,积分限幅也就大致限制在那个范围了.
四.微分环节的滤波
当系统容易收到高频信号的干扰时,微分作用会将高频信号的扰动放大(自控课本上说的),高频信号变化的较快,而微分是去求误差的变化率,所以有高频扰动信号,就会被微分作用给放大,建议对微分环节做低通滤波,通常是一阶低通滤波,讲低通滤波的帖子文章挺多的,我就不写了.
五.关于各种自适应PID
包括什么神经网络PID,模糊PID,遗传算法优化PID等等,本质上都是对参数的统计和优化,但通常这些算法运算量时挺大的,写肯定可以写出来,但这个在一些嵌入式设备上运行的效率速度不是很好,会占很大的运行速度,而且要搞清楚各种自适应PID的使用范围,比如模糊PID适用于过程控制,控制个温度什么的,它不适合用来做运动控制,控制电机什么的,因为计算量较大,在单片机上还有可能会参数迟滞什么的.做个智能车类的小东西,还是用不上这些方法的,单纯PID就够了,论文里的一些自适应PID方法,不一定都是经过实际检验的,可能只是在MATLAB里做了个仿真.所以我感觉不能全信.