s7-300 fb41 pid调试记录

1.使用s7-300的fb41块作pid运算,fb41在ob35块中调用,ob35是定时100ms执行(即call的间隔周期),fb41的cycle参数也设置为100ms(即采样周期,比如对pv值采样)--cycle的值需要设置的<=ob35的执行周期,默认100ms
fb41的比例系数Kp单位%,积分时间Ti单位ms,微分时间Td单位ms。
1.Kp的确定
使能Kp,禁止TI,禁止Td,参数位置如下
1为使能,0为禁止
s7-300 fb41 pid调试记录_第1张图片
然后把p从小向大调,比如先设定为kp=25,然后观察系统是否会震荡:
fb41是位置型算法,如果此时sp=22,pv的23,冷水阀,此时cv会输出kp*(23-22)=25X1=25即会保持输出开度为25%,当然pv的如果下降,开度就会减小
在kp=25的情况下,看pv和cv是否会震荡,
如果震荡了,则减小kp,直到不震荡,记下此时kp
(如果不震荡,则加大kp,直到有点震荡,记下此时kp)
然后取kp*70%的值作为一个最终的kp
填入这个kp,接着调试Ti
2.Ti的确定
fb41的Ti是积分时间(在分母上),不是积分系数,所以Ti越大,积分作用越弱。
使能Ti,然后填入一个较大的Ti值,比如3000.观察pv cv是否会震荡:
(在上一步调出的Kp值,已经让系统不震荡了。所以需要这一步使用几分的作用让系统刚震荡刚不震荡。)
如果此时系统震荡了,说明积分作用较强,则加大Ti以减弱积分作用,直到系统刚不震荡
(如果此时系统不震荡,说明积分作用较弱,则减小Ti以增强积分作用,直到系统刚震荡)
此时得到一个Ti值,将Ti*150%作为最终的Ti值。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.为什么只有比例作用,会存在稳态误差?
因为此时的阀门输出cv=kp*(sp-pv)。

2.kp Ti Td的参数位置:
s7-300 fb41 pid调试记录_第2张图片

3.fb41在ob35中调用,如果ob35的中断时间是100ms,肉眼也看不出与fb41在ob1中调用的不同,因为cv一直在输出。如果ob35的中断时间时间设为2000ms
在硬件组态中设置,如图
s7-300 fb41 pid调试记录_第3张图片

那么就很明显看出,fb41会每隔2000ms执行一次,cv则每隔2000ms输出一次。

4.在设置积分时间Ti时,如果设置为0,则积分作用最强,一下子就会输出。设置Ti比较大虽然可以减弱Ti的作用,但是Ti仍然在作用。所以在调试P的时候不如直接禁掉Ti,这样就完全排除了积分的作用。

http://wenku.baidu.com/view/ec5072114431b90d6c85c74e.html

你可能感兴趣的:(c,算法)