打印

请教位置式PID加入积分分离的疑问

[复制链接]
3789|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LO单片机VE|  楼主 | 2011-6-21 12:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 LO单片机VE 于 2011-6-21 12:47 编辑

各位大虾:我想请教一个关于PID方面的问题。就是PID位置式输出加入积分分离法,设定一闸值ε,当|e(k)|>ε时,应该是去掉积分项的(就是在积分项里乘上一个“0”或“1”的系数),只有PD(这个我理解);但是我不理解的是这时侯积分累加值是否还继续累加,还是停止累加(等|e(k)|<ε时再继续累加),还是把积分累加值清零?

相关帖子

沙发
zjp8683463| | 2011-6-21 12:56 | 只看该作者
就是Ti系数=0.用一个if就可以了
实际效果是停止累加

使用特权

评论回复
板凳
zjp8683463| | 2011-6-21 17:58 | 只看该作者
不清零,把积分系数Ti设为0.

使用特权

评论回复
地板
LO单片机VE|  楼主 | 2011-6-21 20:52 | 只看该作者
zjp8683463您好:
您说的积分系数Ti设为0是否是我只要在积分项上乘上一个系数“0”就可以了,积分累加值不清零,也不累加,等|e(k)|<ε后再在原来的积分累加值上继续累加,是这样吗?

使用特权

评论回复
5
highgear| | 2011-6-21 20:55 | 只看该作者
方法很多,除了4楼的方法,另一个简单的方法就是停止积分器的累加 ---- 很简单的软件问题。

使用特权

评论回复
6
zjp8683463| | 2011-6-21 21:19 | 只看该作者
乘0干什么,用个if来设Ti的值就行了

使用特权

评论回复
7
LO单片机VE|  楼主 | 2011-6-21 23:00 | 只看该作者
回7楼:
是不是这样:当|e(k)|>ε时,Ti=0,这时积分项就为0,失去作用;当|e(k)|<ε时,Ti再恢复原来的值,这时积分项起作用。如果不是这个意思,还请具体举个例子说明一下,谢谢。

使用特权

评论回复
8
zjp8683463| | 2011-6-22 08:06 | 只看该作者
本帖最后由 zjp8683463 于 2011-6-22 08:07 编辑

PI控制的话,
detau(k)=kp【e(k)-e(k-1)】+ki*e(k)
u(k)=u(k-1)+detau(k)
根据公式,你把Ki设成0就行了。

使用特权

评论回复
9
LO单片机VE|  楼主 | 2011-6-22 08:43 | 只看该作者
我用的不是增量式PID,是位置式PID输出;所以在积分项是Ki*积分累加值,不过按照9楼的举例分析,他们的处理方法应该是一样的吧。当|e(k)|>ε时,Ki=0,积分累加值暂停累加(累加值不清零);当|e(k)|<ε时,Ki恢复原值,积分累加值继续累加。

使用特权

评论回复
10
zjp8683463| | 2011-6-22 12:14 | 只看该作者
10# LO单片机VE

我的公式就是位置式的,有2个公式。只不过是为了MCU计算快捷,使用了增量式。
如果直接位置式,那么u(k)=Kp*e(k)+Sigma【Ki*e(i)】
同样只要把当前的Ki=0即可。累积出来的数不清零,也就是不再累积。

使用特权

评论回复
11
LO单片机VE|  楼主 | 2011-6-22 20:50 | 只看该作者
13# zjp8683463

我认为这两个公式有区别:Sigma【e(i)】是偏差累加量,是多次偏差量的和,如果写成Sigma【Ki*e(i)】是把Ki*偏差进行了累加.实际上Ki是不应该累加的,他只是一个系数,应该写成Ki*Sigma【e(i)】才对。

使用特权

评论回复
12
LO单片机VE|  楼主 | 2011-6-23 15:26 | 只看该作者
13# zjp8683463

我今天早上看到你有回帖,是两个公式展开后的比较最终结果是一样的,我理解了,谢谢。但是那个帖子怎么不见了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

44

帖子

0

粉丝