文章插图
No.1
PID算法简介
P指的是比例(Proportion) , I指的是积分(Integral) , D指的是微分(Differential) 。在电机调速系统中 , 输入信号为正 , 要求电机正转时 , 反馈信号也为正(PID算法时 , 误差=输入-反馈) , 同时电机转速越高 , 反馈信号越大 。要想搞懂PID算法的原理 , 首先必须先明白P,I,D各自的含义及控制规律:
01
比例P:
比例项部分其实就是对预设值和反馈值差值的放大倍数 。举个例子 , 假如原来电机两端的电压为U0 , 比例P为0.2 , 输入值是800 , 而反馈值是1000 , 那么输出到电机两端的电压应变为U0+0.2*(800-1000) 。从而达到了调节速度的目的 。显然比例P越大时 , 电机转速回归到输入值的速度将更快 , 及调节灵敏度就越高 。从而 , 加大P值 , 可以减少从非稳态到稳态的时间 。但是同时也可能造成电机转速在预设值附近振荡的情形 , 所以又引入积分I解决此问题 。
02
积分I:
积分项部分其实就是对预设值和反馈值之间的差值在时间上进行累加 。当差值不是很大时 , 为了不引起振荡 。可以先让电机按原转速继续运行 。当时要将这个差值用积分项累加 。当这个和累加到一定值时 , 再一次性进行处理 。从而避免了振荡现象的发生 。可见 , 积分项的调节存在明显的滞后 。而且I值越大 , 滞后效果越明显 。
03
微分D:
微分项部分其实就是求电机转速的变化率 。也就是前后两次差值的差而已 。也就是说 , 微分项是根据差值变化的速率 , 提前给出一个相应的调节动作 。可见微分项的调节是超前的 。并且D值越大 , 超前作用越明显 。可以在一定程度上缓冲振荡 。比例项的作用仅是放大误差的幅值 , 而目前需要增加的是“微分项” , 它能预测误差变化的趋势 , 这样 , 具有比例+微分的控制器 , 就能够提前使抑制误差的控制作用等于零 , 甚至为负值 , 从而避免了被控量的严重超调 。
文章插图
对偏差信号进行比例、积分和微分运算变换后形成一种控制规律 。“利用偏差 , 纠正偏差” 。
No.2
参数调整一般规则
由各个参数的控制规律可知 , 比例P使反应变快 , 微分D使反应提前 , 积分I使反应滞后 。在一定范围内 , P , D值越大 , 调节的效果越好 。各个参数的调节原则如下:
PID调试一般原则
a.在输出不振荡时 , 增大比例增益P 。
b.在输出不振荡时 , 减小积分时间常数Ti 。
c.输出不振荡时 , 增大微分时间常数Td 。
No.3
参数调整一般步骤
由于自动控制系统被控对象的千差万别 , PID的参数也必须随之变化 , 以满足系统的性能要求 。这就给使用者带来相当的麻烦 , 特别是对初学者 。下面简单介绍一下调试PID参数的一般步骤:
【PID算法分析及参数调整】01
确定比例增益
P确定比例增益P时 , 首先去掉PID的积分项和微分项 , 一般是令Ti=0、Td=0 , PID为纯比例调节 。输入设定为系统允许的最大值的60%~70% , 由0逐渐加大比例增益P , 直至系统出现振荡;再反过来 , 从此时的比例增益P逐渐减小 , 直至系统振荡消失 , 记录此时的比例增益P , 设定PID的比例增益P为当前值的60%~70% 。比例增益P调试完成 。
02
确定积分时间常数Ti
比例增益P确定后 , 设定一个较大的积分时间常数Ti的初值 , 然后逐渐减小Ti , 直至系统出现振荡 , 之后在反过来 , 逐渐加大Ti , 直至系统振荡消失 。记录此时的Ti , 设定PID的积分时间常数Ti为当前值的150%~180% 。积分时间常数Ti调试完成 。
03
确定微分时间常数Td
微分时间常数Td一般不用设定 , 为0即可 。若要设定 , 与确定P和Ti的方法相同 , 取不振荡时的30% 。
推荐阅读
- 你会调价、会数据分析,但你可能不知道竞价推广还有这么多的优点
- 正山小种的好处大全,客观分析
- 使用wireshark抓包工具,对DHCP、HTTP、DNS的数据包进行分析
- 几种常见的负载均衡算法的工作原理
- 算法分析与设计C++汉诺塔实现
- 如何分析蜘蛛日志?
- 金骏眉红茶营养价值,深度分析
- Python数据分析、挖掘常用工具
- 关于孤立森林算法,看这一篇就够了
- 9天上权重7,百度算法彻底被灰色站占领