打印

PID控制

[复制链接]
楼主: wenfengcom
手机看帖
扫描二维码
随时随地手机跟帖
41
已注册| | 2007-10-19 14:19 | 只看该作者 回帖奖励 |倒序浏览

LS,上面的讨论已经说得很明白了啊

说白了,可以直接把计算出的数值当成占空比。


如果直接过去总是>100%,说明P/I/D参数设置不合理,调节它到合理范围内,就可以得到一个比较好的控制范围和控制结果。

TO  IceAge:
下面的说法对不对?

已注册 发表于 2007-10-19 13:09 侃单片机 ←返回版面    

38楼: 到也是,PWM电压可以直接折算到P/I/D三个参数里面 

//d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2)) 的结果是pid 的增
//量,最终的占空比为 R(0) = R(1) + d(t) = 我前面说的原型公式



是这个意思吗?!
公式: d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2))计算出的值是增量,需要折算到位置量输出,也就是:R(0) = R(1) + d(t) 
 
 

使用特权

评论回复
42
会流泪的鱼| | 2007-10-19 14:44 | 只看该作者

我来了,不过现在没时间看

晚上我会上来问的!!
已注册 顶着,别让这帖深下去了

使用特权

评论回复
43
wenfengcom|  楼主 | 2007-10-19 18:39 | 只看该作者

占空比

如果通过PID计算出的结果为dt,占空比100%时dt为100,那么50%时dt为多少啊?

使用特权

评论回复
44
wenfengcom|  楼主 | 2007-10-19 19:03 | 只看该作者

感谢IceAge的热情回答

非常感谢IceAge的热情回答,有一个疑问,你说D=dt/UPWM,即占空比等于PID计算结果除以PWM端电压,但是市场上出售的温控器接固态继电器控制温度,PWM端的电压可以任意接啊,固态继电器并不是接的某一种特定的电压啊,那么这个Upwm不是不确定了吗,那怎么办啊,Upwm等于多少啊?

使用特权

评论回复
45
已注册| | 2007-10-19 19:45 | 只看该作者

TO wenfengcom

//如果通过PID计算出的结果为dt,占空比100%时dt为100,那么50%时dt为多少?

错,应该是d(t)=1则占空比为100%,d(t)=0.5则占空比为50%

//D=dt/UPWM,即占空比等于PID计算结果除以PWM端电压,但是市场上出售的温控
//器接固态继电器控制温度,PWM端的电压可以任意接啊,固态继电器并不是接的
//某一种特定的电压啊,那么这个Upwm不是不确定了吗,那怎么办啊,Upwm等于多
//少啊?

理解还是错的,在上面已经明确了,是PWM控制极电压,看见我的那个图了吗?
是PWM波形的幅值电压,是定值,这个值只是要定值就行,是多少其实无所谓,因为P/I/D三参数可以同比放大这个值。


TO  IceAge:我在38楼的理解对吗?

已注册 发表于 2007-10-19 13:09 侃单片机 ←返回版面    

38楼: 到也是,PWM电压可以直接折算到P/I/D三个参数里面 

//d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2)) 的结果是pid 的增
//量,最终的占空比为 R(0) = R(1) + d(t) = 我前面说的原型公式



是这个意思吗?!
公式: d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2))计算出的值是增量,需要折算到位置量输出,也就是:R(0) = R(1) + d(t) 

使用特权

评论回复
46
IceAge| | 2007-10-19 21:10 | 只看该作者

Re:

"d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2))计算出的值是增量,需要折算到位置量输出,也就是:R(0) = R(1) + d(t) "
是的,这种算法是迭代算法,对于温度控制来说,没有必要。

Duty = V/Vpwm, 这里的Vpwm 是电源电压,可以是固定的,也可以是变动的。若是固定的,则可把 Vpwm 折算入PID 系数里。比如:

Duty = V/Vpwm = PID_1(E)/Vpwm = PID_2(E) = PID_2(Wo - Wi)
where PID_2 = PID_1/Vpwm

否则,就得多一步除法: Duty = V/Vpwm = PID_1(E)/Vpwm






使用特权

评论回复
47
已注册| | 2007-10-19 21:33 | 只看该作者

IceAge一句话又把我说迷糊了……

//Duty = V/Vpwm, 这里的Vpwm 是电源电压,可以是固定的,也可以是变动
//的。若是固定的,则可把 Vpwm 折算入PID 系数里



如果是变动还怎么计算啊?

这个变动可能是怎么个变动法?如果是PWM控制,他的控制极电压随着电路的确定也就确定了啊?怎么还能变动呢?

能不能举个变动的例子说明一下啊 ?

使用特权

评论回复
48
会流泪的鱼| | 2007-10-19 22:55 | 只看该作者

TO IceAge:这个帖子我看了3次!好像有点理解了

 听IceAge一席话真是令我茅塞顿开啊!我对你的景仰有如滔滔江水一发不可收拾.(先拍下马屁,呵呵)


刚才在家里翻箱倒柜找出了一张温控仪的说明书,它P可以在0.0-100.0、I在0-4320、D在0-1200、0-60秒可调,默认是P=3.0、I=250、D=50,采样周期是20秒,就这些参数而言,假设我在设定参数的+-10度之间进行PID控制,公式还是这条:d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2))经过几个周期后设定温度是60.0度,e(0)=55.0、e(1)=55.6、e(2)=55.9 (e直接把温度值代进来应该可以的吧!)有点晚了,明天上班的时候再完成此帖~~~~

使用特权

评论回复
49
IceAge| | 2007-10-20 00:21 | 只看该作者

"他的控制极电压随着电路的确定也就确定了啊"

有时并不是确定的,比如变频器,有时得通过采样或者通过设定来得到Vdc,主要是允许用户施加不同的电源电压。对于你的情况,可能不会采用不同的电源电压,不需要适应各种应用。

这些不要紧,只是多一个除法而已。

使用特权

评论回复
50
wenfengcom|  楼主 | 2007-10-20 08:45 | 只看该作者

r

是不是可以这样理解,只要找到一个系数K,使得dt输出的最大值除以K等于占空比100%,dt输出的最小值除以K为0%,K不一定是PWM控制端电压,只要凑到一个系数K,使得dtmax/k=100%,dtmin=0%,就行了啊?

使用特权

评论回复
51
已注册| | 2007-10-20 08:46 | 只看该作者

TO IceAge

对于变频器,我是这样想的:

**中,一般的变频器是输入电压不同,变频器输出的频率相应的变化,假如用变频器控制一个制冷用的压缩机来实现温度调节(这好象变频空调的使用方式?),如果使用PID调节,此时 E = 设置温度 - 当前实际温度,变频器的输入电压可用PWM的有效值表示(这个可等效过去的把?),占空比不同,PWM的有效值电压也就变化了,所以调节变频器的输入电压也就等同于调节PWM的占空比了,这个时候,PWM的控制极电压应该是一个定值把?不需要改变PWM控制极电压的把?

使用特权

评论回复
52
已注册| | 2007-10-20 08:55 | 只看该作者

TO wenfengcom

你那理解好象也能将就,但我理解的实际意思是:

d(t)对应输出的占空比的关系,其实无所谓,只要你的控制器能让P/I/D三参数可调整,那么实际使用的时候在做参数整定时,只要是合理的参数整定,最后都基本能得到合适的P/I/D参数让他实现PID调节。

例如,对于同样的温度控制仪表设计,这个控制器的P=10,那个控制器设计的P=1,但最后的控制效果是一样的,为什么呢?同比放大就是了,第二个控制器可能在设计的时候,设计者就是把P*10代入运算的,你说,这两个控制器有什么区别呢?

对最后的用户来说,他根本不管你内部如何计算的,你乘1也好,乘1000也好,无所谓,他只是按照整定的方法进行系统控制的整定,最后得到一个P/I/D参数结果就可以,殊途同归也就这意思了。

使用特权

评论回复
53
wenfengcom|  楼主 | 2007-10-20 10:56 | 只看该作者

r

也就是说只要不断的调节P,I,D这三个参数,最终使得pid计算结果符合dtmax=100%,dtmin=0%就行,假如能找到到这样的P,I,D三个值,dt的输出可以直接作为占空比,甚至也可以理解为,dt可以乘以或除以任意值,只要能找到P,I,D使得dtmax=100%,dtmin=0%就行,dt乘以或除以什么数无所畏,因为P,I,D三个数可以调节,dt/Upwm,其中的Upwm可以折算到P,I,D这三个参数中,是啊?

使用特权

评论回复
54
会流泪的鱼| | 2007-10-20 11:01 | 只看该作者

可不可以讲下实利啊!!这样讲起来感觉很抽象

使用特权

评论回复
55
wenfengcom|  楼主 | 2007-10-20 11:24 | 只看该作者

r

也就是说,PID计算结果dt可以除以或乘以任意值,例如dt/12,dt/35,然后调节P,I,D这三个值,使得dt/12,dt/35的最大值对应占空比为100%,最小值对应为0%,是这样吗?

使用特权

评论回复
56
会流泪的鱼| | 2007-10-20 11:28 | 只看该作者

昨天那个不能编辑,就新回个帖子吧!!

它P可以在0.0-100.0、I在0-4320、D在0-1200、0-60秒可调,默认是P=3.0、I=250、D=50,采样周期是20秒,就这些参数而言,假设我在设定参数的+-10.0度之间进行PID控制,公式还是这条:d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2))设定的温度是60.0度

头个周期采过来的温度是55.0度,则e(0)=600-550=50、e(1)=0、e(2)=0
R(0)=R(1)+d(t)=0+3*(50-0)+250*50+50*(50-0+0)=150+12500+2500=15150
这样下去感觉R(0)会到很大的值才会变小,也就是说PID设的太大了,或者我觉得它应该要除以一个定值,对应该上面的采样周期,我这样的理解对吗??

还有就这个公式而言:d(t)=p*(e(0)-e(1))+i*e(0)+d*(e(0)-2e(1)+e(2))我记得I好像是相减的也就是 
d(t)=p*(e(0)-e(1))-i*e(0)+d*(e(0)-2e(1)+e(2))

使用特权

评论回复
57
已注册| | 2007-10-20 11:53 | 只看该作者

你们两个人还没明白吗?

已经说的很清楚了啊。

1:只是一个系数问题

2:PWM为控制极电压,如果是采用时间比例输出,也可等价于PWM

3:增量算法要换成位置算法

PS:

可变的PWM电压,我还没弄清楚如何理解,IceAge再给俺讲讲!?


有点体会到所长的说法了:
农民讲习所 发表于 2007-10-19 09:11 侃单片机 ←返回版面    

18楼: 工程中P是要调的 

俗称:PID参数校准。

可以以开环的比例做基本参数,实际在这个参数上调出来。
比例具体多大关系不大,只影响达到平衡的具体时间。

当然你要能算出来就更好。

PID可以想象为一个运放,+-两端一定要达到相等,至于多快和运放参数和反馈参数有关。也存在自激、积分、微分。
 
 

使用特权

评论回复
58
会流泪的鱼| | 2007-10-20 12:01 | 只看该作者

又晕呼呼了!!!

使用特权

评论回复
59
wenfengcom|  楼主 | 2007-10-20 17:36 | 只看该作者

r

PID的计算结果总要转换成占空比进行控制吧,假如PID的计算结果很大很大怎么办,假如PID计算结果为1000~10000,除以Upwm=5还是很大,无法转换成0~100%,怎么办啊?

使用特权

评论回复
60
wenfengcom|  楼主 | 2007-10-21 16:01 | 只看该作者

r

哪位高手在讲一下啊,PID输出结果究竟除以什么,还是不论除什么数都行啊,反正可以调节P,I,D这三个参数?

使用特权

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

本版积分规则