PID调节功能块FB41总结

发布时间:2023-08-03
在刚接触pid时候感觉很头疼,fb41功能块繁多的输入输出以及帮助里面非常专业的解释看得我眼冒金星,头昏眼花,真的是不知道如何入手,后来使用几次以后发现,原来只是填填变量的事(我们的pid就是简单的控制,还没有涉及切换、加泵以及减泵等复杂问题),正好最近有时间,就汇总了一下fb41的端子说明(基本来自大家技术论坛的分享),就当做个笔记吧。
1、fb41的方框图(fb41的端口作用逻辑图,看懂这个基本就都会了)
2、规格化(个人感觉不是必须要规格化,整个fb41功能块统一量纲就行了)
pid参数中重要的3个变量,给定值(sp_int),反馈值(pv_in)和输出值(lmn)都是用0.0~100.0之间的实数表示。
因此,需要将模拟输入转换为0.0~100.0的数据,或将0.0~100.0的数据转换为模拟输出,这个过程称为规格化
规格化的方法:(即变量相对所占整个值域范围内的百分比 对应与27648数字量范围内的量)
对于给定值(sp_int)和反馈值(pv_in),执行:变量*100/27648,然后将结果传送到pv-in和sp-int
对于输出变量 ,执行:lmn*27648/100,然后将结果取整传送给pqw即可。
3、一般使用循环中断组织块调用fb41,一般不用ob1,因为ob1的扫描周期不是确定的。
4、fb41的输入输出参数
in
<1、com_rst:bool,初始化fb41。设置为1时,积分微分的累计清零。不会自动复位,需要程序复位com_rst。一般使用如下:
可以在ob100、ob101、ob102里面写两句话
an “com_rst” //如果初始化标志位是0
s “com_rst” //将初始化标志位置1
在ob1的最后写上两句话,复位初始化标志位
a “com_rst” //如果初始化标志位1
r “com_rst” //将初始化标志位复位
pid的初始化可以通过在ob100中调用一次,将参数com-rst置位,当然也可在别的地方初始化它,关键的是看程序需要;
<2、man_on:bool,设置为0为自动调整;设置为1为手动调整;这里会涉及到一个自动和手动模式的切换问题:无扰动切换
pid调节器在自动→手动、或手动→自动的瞬间,pid的输出是不变化的。
从手动切换到自动,自不用说,但是从自动到手动会出现明显跳动,一般可以这样处理:从自动切换到手动增加一个斜坡处理。将自动时的输出换算成比例值,一直加载在man口上,切换后,通过斜坡,将man口上的值由原来的值过度到手动比例设定值。
此端口和<11处的man口配合使用。
<3、pvper_on:bool,过程值选择,此值与pv_in和pv_per有关系
设置为1时,直接将piw(监测实际值端口)输入pv_per口
设置为0时:将转化后、滤波后且规格化后(等处理过的)数据输出pv_in口
<4、p_sel、i_sel以及d_sel:bool,比例、积分、微分作用的选择,设置为0,相应部分不起作用。
<5、int_hold:bool,积分保持,设置为1时,积分不累加,一般不设置。
<6、i_itl_on:bool,积分初值给定;
i-itlval:real,积分初值。
当i_itl_on设置为1时,使用i-itlval变量积分初值;当i_itl_on设置为0时,积分初始值为0。一般当发现pid功能的积分值增长比较慢或系统反应不够时可以考虑使用积分初值;此功能很少用到。
<7、cycle:time,pid采样周期。
<8、sp_int:real,pid的设定值。
<9、pv_in :real,pid的反馈值。数据类型为real,显然是处理后的数值,见<3。
<10、pv_per:word,pid的反馈值。数据类型为word,显然直接piw输入,见<3。
<11、man:real,手动模式的输入端口。
<12、gain:real,比例增益。
<13、ti:time,积分时间。
<14、td:time,微分时间。
<15、tm_lag:time,多长时间开启微分,由于微分会削弱达到稳定值时间,可以延时启动微分。通常不设置。
<16、deadb_w:real,死区宽度。现场监控达到设定值后,并不稳定到设定值,如果出现小范围浮动,会出现执行器来回动作问题,可以考虑用死区来降低灵敏度。此值为百分数。
<17、lmn_hlm、lmn_llm:real,输出值上下极限。此处需要搭配<19处使用,即保证lmn_hlm*lmn_fac=100,程序中默认lmn_hlm为100.0,lmn_fac为1.0,所以可以不用去设置。如果想设置,需要保证上面的公式。
<18、pv_fac、pv_off:real,pv_fac=传感器的量程/100。只有在pvper_on为1时起作用,目的为统一单位;为零时,需要规格化,单位已经统一,所以此处无用。
<19、lmn_fac、lmn_off:real,输出值的量程。
<20、disv:real,允许的扰动量,串级系统使用,一般不设置;
out
<1、lmn:real,输出实际值占满量程的百分比。
<2、lmn_per:word,pqw输出
<3、qlmn_hlm、qlmn_llm:bool,qlmn_hlm:输出最大值时输出1;qlmn_llm:输出最小值时输出1,可以作为工、变频切换(例如一台泵工频,一台泵要求变频,调节恒压时)的点位来用。
<4、lmn_p、lmn_i、lmn_d:real,pid输出中p、i、d的分量。三者的和为输出值。
<5、pv:real,实际压力值
<6、er:real,偏离值,设定值与实际值之差。
以上部分加入了自己的想法,如有错误望各位大侠批评指导。
上一个:金桔是属于芸香科的植物
下一个:投标澄清函要如何写?

如何取消华为手机桌面布局锁定(华为手机如何取消桌面布局锁定设置)
hp电脑进入bios(hp如何进入bios设置)
工程初步验收及竣工验收区别有哪些?
三星note5 刷了国行怎么恢复港行,怎么把三星note5刷回以前的版本
2020年国产电脑操作系统有哪些哪个好用(国产电脑操作系统哪个系统最好用)
平板厂商排名(平板电脑品牌)
龙门镖局情话(龙门镖局友情出演人员)
三相异步电动机滚动轴承安装方法
盆栽多头菊种植要点
如何栽培芍药?