OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11370|回复: 17

PID参数如何整定

[复制链接]

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
发表于 2014-6-27 23:31:40 | 显示全部楼层 |阅读模式
5金钱
我是做智能小车,用PWM波控制小车的速度,然后用霍尔开关检测小车的速度,我想用PID增量式算法 通过闭环控制 在经过检测小车两轮的速度,运用PID算法使小车能够直线行走,准确拐弯,本人菜,我想求问怎么来确定比例增益 积分时间常数 微分时间常数

最佳答案

查看完整内容[请看2#楼]

一言难尽, 简而言之, 控制转向一般用位置式PD(也有用PID的), 控制速度一般用增量式PI(也可以加D). 注意别忘了限制最大最小输出!!! 参数设置要根据具体对象而定. 一般原则如下: 这里先假设系统参数如下:     输入数据(如温度值,代表被控对象的指标)范围 = [0,1]     输出数据范围[OutMin,OutMin] = [-1,1]     控制周期dt=1ms     系统时 ...
___诺现在就觉得失望无力,未来那么远该怎么扛。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-2-28
在线时间
8 小时
发表于 2014-6-27 23:31:41 | 显示全部楼层
一言难尽, 简而言之, 控制转向一般用位置式PD(也有用PID的), 控制速度一般用增量式PI(也可以加D). 注意别忘了限制最大最小输出!!!

参数设置要根据具体对象而定. 一般原则如下:
这里先假设系统参数如下:
    输入数据(如温度值,代表被控对象的指标)范围[InMin,InMax] = [0,1]
    输出数据范围[OutMin,OutMin] = [-1,1]
    控制周期dt=1ms
    系统时间常数为T=3s


-----------------------------------------------------------------------------------------------------------------------------------------------------------------
对于位置式PD,  OutVal = P*(InNew-InSet) + D*(InNew-InOld);
参数调节:
    1. 一般先调P, 初次设参数时, 估计单独的"P*(InNew-InSet)"能使输出达到最大. 此处建议初始值P = (OutMax-OutMin)/(InMax-InMin). 然后修改参数P已达到一个较好效果, 很可能达不到要求, 调到效果无法明显改善为止. 
    2. 接着调D, 先注意InOld很可能不是上一次采集的值, 可能是10次甚至20次前的值(视情况而定), 以削弱随机误差的影响.  若采用上面的计算式, D一般设置成P的好几倍, 初始设定, 可设置成3P.
    最后, 修改轮流修改PD参数,已达到最优.
    S:一般经过几次修改后, 再改参数效果就不明显, 这种情况,可能的原因有两种:   1. 参数改的幅度太小.   2. 确实到极限了.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
对于增量式PI,  这种方式一般用于控制大滞后的系统, OutVal += P*(InNew-InOld) + I*(InNew-InSet) ;
注意:
    1. 后面乘的是偏差的微分(差分), I后面乘的使偏差, 这是因为这个方程本质上是实现的积分(累加),  偏差的微分(差分
)经过积分(累加)后就是偏差对应P, 而偏差经过积分(累加)后就对应I.
    2. 后续代码记得限制OutVal∈[OutMin,OutMax]
    3. 此处的InOld一般是上一次采集的数据,不必是多次前的, 用多次之前的数据反而会降低系统的实时性, 因为理论上积分可以削弱随机误差的影响.  然而控制系统实际情况难以完全用理论概括, 具体实现视情况而定!!!

参数调节:
    1. 先调I参数,  关于初始值的设置, 一般I*(InNew-InSet)能使OutVal在T内达到最大值(T为被控对象的时间常数). , 则初始值可设置为I=(OutMax-OutMin)/(InMax-InMin)*dt/T=[1-(-1)]/(1-0) * 0.001/3=0.00066666666666667!
    2. 接着P参数, 类似位置式P, 初始值P=(OutMax-OutMin)/(InMax-InMin).
    最后就是以PI参数为基础, 进行调节, 而调节的各种技巧, 实在是太多, 总之一句话 "好看的就是好的".  另外调参数还得看具体指标.

X, 不小心写了这么多, 以上仅为个人经验&观点, 如有雷同纯属巧合!!!

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-6-27 23:32:54 | 显示全部楼层
帮顶....
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-6-28 00:26:22 | 显示全部楼层
PID三个参数要自己去试的,PID算法很短,但是难就难在调试这三个参数很费时间的
开往春天的手扶拖拉机
回复

使用道具 举报

3

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-5-10
在线时间
0 小时
发表于 2014-6-29 12:37:46 | 显示全部楼层
整定我倒是做过几次,不好弄,你说的时间常数是这样的:在精确自动化控制领域,根据香农采样定理时间常数是有个习惯经验值的,网上都好搜的,我只记得炉温控制大约为18s.在实际控制时,比如转速,都是默认所有的常数为1来做的。因为不同的常数对应的参数是不同的,但是控制结果却是相似的。
回复

使用道具 举报

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
 楼主| 发表于 2014-6-29 22:06:49 | 显示全部楼层
回复【3楼】zuozhongkai:
---------------------------------
a.确定比例增益P 
确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。 
这是网上找的  这个 系统出现振荡 我们要怎么观察呢  
要不然自己去式 要怎么确定P 值I值 D值是否达到了比较理想的情况呢
___诺现在就觉得失望无力,未来那么远该怎么扛。
回复

使用道具 举报

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
 楼主| 发表于 2014-6-29 22:12:15 | 显示全部楼层
回复【4楼】李晓:
---------------------------------
您好哈  使系统对阶跃输入的响应达到临界状态,这时记下比例系数、临界振荡周期为Tu,根据您说的那公式,就可以由这两个基准参数得到不同类型控制器的参数     但是这临界状态要怎么判断呢
___诺现在就觉得失望无力,未来那么远该怎么扛。
回复

使用道具 举报

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
 楼主| 发表于 2014-6-29 22:21:22 | 显示全部楼层
回复【3楼】zuozhongkai:
---------------------------------
PID控制器参数整定的方法很多,目前使用比较广泛的是振荡法。在这种方法中,先只采用比例控制,然后使KP从0 增加到临界值Kr这里临界值是指系统首次出现持续振荡时的增益值   
持续振荡?什么是持续振荡啊? 我们怎么判断出现持续振荡啊
___诺现在就觉得失望无力,未来那么远该怎么扛。
回复

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-1-17
在线时间
0 小时
发表于 2014-6-30 12:28:32 | 显示全部楼层
回复【7楼】__小黑先生:
---------------------------------
震荡就是在目标值附近一会儿去大,一会儿取小。

有整定PID的口诀。可以去查一查。

整体说来,P是一个粗调参数,I是消除小误差(注意积分抗饱和),D是抗干扰。
---------------------------------------------------------------------
另外,如果环境允许,可以利用全局寻优算法来整定最佳PID参数。

很多优秀的全局寻优算法均是和控制系统独立,也就是不用管具体的系统模型,也可以以100%的概率收敛于全局最佳参数。

但是全局寻优的普遍缺点是整定速度较慢。
回复

使用道具 举报

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
 楼主| 发表于 2014-7-2 12:38:04 | 显示全部楼层
回复【8楼】卧虎藏龙:
---------------------------------
真是谢啦  
还有那个采样周期 是不是指看我们定时多长时间进行一次PID调整速度   这个时间就是采样周期吗
___诺现在就觉得失望无力,未来那么远该怎么扛。
回复

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-1-17
在线时间
0 小时
发表于 2014-7-2 18:13:48 | 显示全部楼层
回复【9楼】__小黑先生:
---------------------------------
就是多久采集一次反馈信号嘛,可以在采集到反馈信号的时候,马上进行调整。
回复

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2612
金钱
2612
注册时间
2011-1-25
在线时间
176 小时
发表于 2014-7-2 19:26:51 | 显示全部楼层
不是有首儿歌唱得好嘛?
一直努力就很好。
回复

使用道具 举报

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
 楼主| 发表于 2014-7-3 22:47:15 | 显示全部楼层
回复【11楼】qq942266575:
----------------------------
 哪首呢
___诺现在就觉得失望无力,未来那么远该怎么扛。
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-7-22 00:30:10 | 显示全部楼层
若用PID 的话,一般先整定P,然后是I,最后是D,系数的话依次越来越小,一般是这样,D微分系数可以增强系统动态响应,过大易让系统回复【7楼】__小黑先生:
---------------------------------
出现连续震荡而不是失控的情况,介于稳定和不稳定之间
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-7-22 00:33:20 | 显示全部楼层
回复【10楼】卧虎藏龙:
---------------------------------
回复【9楼】__小黑先生:
---------------------------------
9楼正解,采样周期T,和要确定的系数有关的,必须先固定周期再调其他参数,这个参数调整最好是用原子的USMART 调试插件,很方便
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-3-9
在线时间
2 小时
发表于 2015-3-12 10:31:23 | 显示全部楼层
帮顶  加油
回复

使用道具 举报

4

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-9-17
在线时间
20 小时
发表于 2015-8-9 20:42:38 | 显示全部楼层
回复【14楼】kassandra:
---------------------------------
USMART 是什么东西啊
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2015-8-12 13:14:33 | 显示全部楼层
回复【17楼】加菲老爷:
---------------------------------
就是一个可以通过串口调用用户函数的嵌入式程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表