您好, 登录| 注册|
论坛导航
您好, 登录| 注册|
子站:
论坛首页    高校联盟/电子设计大赛
  •  发帖
  • 收藏

简约而不简单的PID
阅读: 785 |  回复: 12 楼层直达

2018/11/13 00:43:29
1
喔喔呜呜
电源币:8 | 积分:4 主题帖:5 | 回复帖:9
LV3
排长

QQ截图20160321155901 感恩!这的确是一份用心的问卷

QQ截图20160321155901 绝弯路!管理员用心整理的


PID是一个很经典的控制算法,工业控制普遍都是PID,为什么呢?我想可能是它比较简单也很成熟,而且稳定(越简单的东西越稳定)。

我第一次接触PID是做一个温度控制,这个项目用于大型农牧业,大概就是通过Zigbee组网和个种传感器采集温度,湿度,有害气体浓度(CO2,CH4等),还应用了GPS,RFID等,子节点采用MSP430+CC2530。当年的我只能看师兄在玩zigbee,RFID。本帖以温度控制为例讲述我所认知的PID,后面会讲讲串级PID如何控制电机。

计划内容如下:位置式PID,增量式PID,串级PID,自整定PID,模糊自适应PID...........PID全家桶(还有专家PID,BP神经网络PID,还有一些改进型的PID算法,我没怎么用过,也不太会

有很多地方我也忘得差不多了,也有没弄清楚的地方,给自己做一份笔记,长期缓慢更新!

标签 经历分享
2018/11/13 13:26:10
2
电源网-璐璐
电源币:1090 | 积分:67 主题帖:210 | 回复帖:1437
LV10
司令
加油,加油,坐等更新!
2018/11/14 21:00:40
3
喔喔呜呜
电源币:8 | 积分:4 主题帖:5 | 回复帖:9
LV3
排长
2018/11/14 21:43:31
4
喔喔呜呜
电源币:8 | 积分:4 主题帖:5 | 回复帖:9
LV3
排长

再说PID之前我的介绍个东西,那就是位式控制算法(有二位式和三位式)个人感觉采用二位式算法的人多一些,特别是对于当年的我,是小白中的小白菜得很,什么都用最简单的。

二位式算法只有两种状态非黑即白、非胖即瘦、非开即关、非0即1(说了一堆废话),由于只有开和关两种状态,所以要么全功率加热要么不加热。由这个特点使得温度值会在目标值上下波动不能稳定,如图1,而且还有一个值得注意的特点就是加热的速度(温升/斜率)基本一样。所以二位式控制算法的效果并不理想,但是在某些要求不高场合也能用。(本帖所有例子都是围绕温度控制,我感觉比较好理解)

 

1

如果是你手动调节温度达到目标温度你应该关注哪些信息才能使温度平稳在目标值附近呢?

如果是我我会这样操作:

1)尽快使温度达到目标值附近(偏低一点)。

2)稍微断开电源一小会大致判断一下温度的惯性。

3)间歇性接通电源保持温度继续逼近目标值。(这就是PWM了)

4)达到目标值后继续观察温度曲线若温度曲线斜率为0或者已经有下降趋势,这时,通过前面的经验判断所需接通时间,使温度在目标值附近小范围波动。

在以上操作过程中就包括了PID的基本思想(如果没看懂或有不恰当的地方欢迎指正交流)下面进入正题.

PID中P为比例系数,I积分系数,D微分系数。

PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPaPaPaPPPP先说比例控制算法

比例比例比例顾名思义是个比例.....哈哈.....

举个栗子:正比例函数y=kx的K即为比例系数(斜率),x的变化率相同时,k大的函数对应的y变化率大(我想我说明白了)。这个比例控制算法就是高配版的二位式算法,那么他高配在哪呢?我认为有两点,第一温度曲线斜率可变(表现出来的结果就是到达目标值的时间缩短了换句话说就是响应速度变快了),第二就是采用pwm控制,使得发出的功率被细分了。

现在呢我从开机就开始接收温度传感器返回的温度值(离散的点)。

设当前温度温度为X,则从开机到当前时间的温度序列为:

那么设目标值温度和当前温度的差值为温差为E,目标值为SV,有 

目标值—当前的温度值=当前时刻温差

当这个温差大于0时表示此时温度未达标

温差小鱼0时 已经超标

温差等于0时 正正好好

那么下面就用公式表示一下吧:(k表示当前时刻)

假设目标温度80℃,当前温度21℃,那么OUT=80-21=59℃,假设Kp=2 ,∴OUT=118   

然后转换成相应的占空比,比例算法就出来了,非常简单吧。

但是有个问题,不知各位发现没发现,当目标值=当前温度值时,会怎么样呢?

显然E=0,所以OUT=0,∴输出占空比一定为0,此时相当于没有控制信号输出,失控了。所以我们要加一个常数b使得有一个微弱信号输出(信号强度需要调试得出结果)公式如下

TIM截图20181114213221

这时会有小伙伴说万一TIM截图20181114213305呢?这不又等于0了吗。欢迎大家讨论留言哈

重点在于你控制的对象,若没有惯性或者说很小则一定要+b,惯性很大的 不加常数b也无所谓。(如果没想明白等我叙述完积分I你一定明白)。到此比例控制算法基本写完了如果有错误或者不足或理解有偏差的地方请批评指正,一起交流进步。

提前放上张图以备不时之需

 

 

2018/11/15 12:52:24
5
gongyuan073
电源币:0 | 积分:3 主题帖:0 | 回复帖:4
LV2
班长
希望能讲解一下参数整定的过程,之前看了好多原理,结果真的要调的时候还是感觉无从下手
2018/11/15 22:43:48
6
lihui710884923
电源币:444 | 积分:1 主题帖:139 | 回复帖:477
LV8
师长
具体在程序中怎么控制啊
2018/11/16 11:54:39
7
喔喔呜呜
电源币:8 | 积分:4 主题帖:5 | 回复帖:9
LV3
排长
会继续更新的,现在有点忙,还有一个月就考试了。写完增量式PID就说整定。我感觉理解每个参数的意义对整定很重要。
2018/11/16 12:13:26
8
喔喔呜呜
电源币:8 | 积分:4 主题帖:5 | 回复帖:9
LV3
排长
我对PID整定的工程经验并不多只做过一些小系统的,我会把我的想法说出来和大家一起交流。我也会讲述一下整定值是如何算出来的,前提的有一个差不多的模型(局限性很大)。
2018/11/17 00:04:44
9
喔喔呜呜
电源币:8 | 积分:4 主题帖:5 | 回复帖:9
LV3
排长

从Word复制会出一些问题所以我直接粘图片了

2018/11/19 23:39:29
10
喔喔呜呜
电源币:8 | 积分:4 主题帖:5 | 回复帖:9
LV3
排长

2018/11/20 09:38:49
11
电源网-璐璐
电源币:1090 | 积分:67 主题帖:210 | 回复帖:1437
LV10
司令
加油,期待下次更新
2018/11/25 18:08:52
12
wsyy1998
电源币:14 | 积分:4 主题帖:14 | 回复帖:42
LV4
连长
期待下次更新
2018/12/15 11:06:02
13
szjlcpcb
电源币:0 | 积分:1 主题帖:16 | 回复帖:6
LV3
排长
顶一下!
客服热线
服务时间:周一至周五9:00-18:00
微信关注
免费技术研讨会
获取一手干货分享

互联网违法不良信息举报

Reporting Internet Illegal and Bad Information
editor@netbroad.com
022-58392381