好文档 - 专业文书写作范文服务资料分享网站

S7-300 PLC中FB41 PID算法程序设计毕业设计 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

S7-300 PLC中 FB41 PID 算法程序设计

3.3 积分部分的近似部分

设执行PID控制功能块的时间间隔(即PID控制的采样周期)为T,第n次PID

s运算时的时间为Ts,因为PID程序运行时为Ts常数,可以将t=Tsn,时PID控制器的输入量ev(Tsn)简写为ev(n),输出量mv(Tsn)简写为mv(n)。

式(1)中的积分对应于图中曲线ev(t)与坐标轴包围的面积,一般用矩形积分来近似精确积分,每块矩形的面积为ev(jTs)Ts。为了书写方便,将ev(jTs)简写

n为ev(j),各块矩形的总面积为Ts?ev(j)。当Ts较小时候,积分的误差不大。

j?1 根据资料分析所得,FB41中的积分算法是在矩形积分基础上进行改进而得到的梯形积分算法。运用梯形积分,可以减少残差,提高积分项的运算精度。其计算公式为:

k?t0edt??i?1e(i)?e(i?1)2 (3)

在自主设计的算法中,积分作用投入时首先判断是否使用积分初始值,然后判断是否使用手动输出,手动输出时候积分值 := Last_Lmn - Panteil - DISV 。Diff积分增量:= ( rCycle / rTi积分时间浮点值 ) * ( ErKp 本周期比例偏差值+ Last_P 上周期比例偏差值) * 0.5。积分值Ianteil=Diff积分增量+Last_I上周期积分量。 此外FB41积分算法中还运用到了抗积分饱和。因为长时间出现偏差或偏差较大,计算出的控制量有可能溢出,或小于零。所谓溢出就是PLC运算得出的控制量mv(t)超出D/A转换器所能表示的数值范围。例如西门子常用的D/A转换模块SM332的数据范围为0000H至6000H(H表示十六进制)。一般执行机构有两个极限位置,如调节阀全开或者全关。设mv(t)为6000H时,调节阀全开;反之,mv(t)为0000H时,调节阀全关。为了提高运算精度,通常采用双字节或浮点数计算PID差分方程式。如果执行机构已到极限位置,仍然不能消除偏差时,由于积分作用,尽管计算PID差分方程式所得的运算结果继续增大或减少,但执行机构已无相应的动作,这就称为积分饱和。当出现积分饱和时,势必使超调量增加,控制品质变坏。作为防止积分饱和的办法之一,可以对计算出的控制量mv(t)限幅,同时把积分作用切除。在FB41中,则有: 当mv(t)<0000H时,取mv(t)=0,积分增量为0 当mv(t)>6000H时,取mv(t)=6000H,且积分增量为0

3.4微分部分的近似部分

式(1)中的微分用差分来近似,即令

dev(t)dt?ev(t)t?ev(n)?ev(n?1)

T10

s (4)

S7-300 PLC中 FB41 PID 算法程序设计

式中ev(n-1)是第n-1次采样时的误差值. 分析所得,FB41中运用的是不完全微分。

标准的PID控制式中,对具有高频扰动的生产过程,微分作用响应过于灵敏,容易引起控制过程的振荡,降低调节品质。尤其是PLC对每个控制回路输出时间是短暂的,而驱动执行机构动作又需要一定时间,如果输出较大,在短暂时间内执行机构达不到应有的开度,会使输出失真。为了克服这一缺点,同时又要使微分作用有效,可以在微分部分增加一阶惯性滤波,以平缓输出值的剧烈变化。设滤波时间常数为T,在FB41中,

fTf对应于微分操作的延迟时间TM_LAG。因此,FB41中微分部分的差分近似式为:

dev(t)dt?ev(t)t?ev(n)?ev(n?1)

Ts?Tf (5)

程序把TM_LAG设置为TM_LAG必须大于或者等于0.5倍的循环时间,不足0.5倍的循环时间时候,TM_LAG自动设置为0.5倍的循环时间。此外,在微分系数中,我把周期乘上了0.5(当然,这里乘上0.0~1.0的任何数值都可以,示情况而定),这是为了减少

微分量的峰值,从而减少输出值对执行机构的冲击,保护了执行机构{4}。

图3 微分延迟说明图

在本设计算法中,微分系数D_XS=rTd / ( 周期rCycle * 0.5 + 微分延迟rTmLag ),微分值= (本周期比例偏差值 ErKp -上周期比例偏差值Last_P ) * 微分系数D_XS。

3.5 PID在FB41中的控制表达式

我们将积分和微分的近似表达式代入式(1)中,第n次采样时控制器的输出为:

mv(n)?

TT?ev(j)?K{ev(n)?TT?TnsDPIj?1s[ev(n)?ev(n?1)]}?Mf (6)

则其传递函数为:

11

S7-300 PLC中 FB41 PID 算法程序设计

MV(s)1

EV(s)?kp(1?TI1s?TTDSfS?1) (7)

在FB41\(连续控制器)中,K、T、T和M分别对应于输入参数GAIN、 TI、

PDTD和积分初始值I_ITLVAL。

例如在对比试验电动调节阀的控制器用位置传感器检测阀门的开度,通过闭环位置随动系统,使阀门的开度与阀门控制器的输入信号(即PID控制器的输出)成正比。

式(1-2)的控制器输出值mv(n)与电动调节阀的阀门开度(即阀芯的位置)相对应,通常我们将它称为PID的位置式算法。

4 仿FB41 PID算法程序设计暨FB41(梯形图)设计

根据以上的分析结果,本次设计使用西门子Step7 V5.5 PLC编程软件进行算法编程。考虑到程序的可读性以及易寻错性,本次设计使用梯形图进行编程。因此我把此算法命名为FB41(梯形图)PID算法。把自动化技术加入文化因子达到教书育人与专业技术教育的双重效果。本算法主要分以下这几大部分:1、程序初始化;2、设定值与过程变量处理;3、PID控制运算;4、控制器输出值的处理

4.1 硬件组态[5]

在硬件组态工具hardware中生成机架(或导轨) ,将CPU模块、电源模块和信号模块插入机架,如图4所示。

STEP7与PLC通信连接的组态:

PC/MPI适配器用于连接运行STEP7的计算机RS-232接口和PLC的MPI接口。PC/MPI适配器上有一个选择传输速率的开关,可选19200bit/s 或38400bit/s。组态时设

置的传输速率应与适配器的传输速率相同。

图4 硬件组态

12

S7-300 PLC中 FB41 PID 算法程序设计

4.2 PLC中位置式FB41(梯形图) PID算法编写

用鼠标在管理器的右侧右击,新建一个功能模块FB41,如图5所示。

在FB41模块中的接口管理器中定义用到的外部接口和内部中间变量。这些接口和中间变在主程序中调用FB41模块是时都能被用户看到,如图6所示。最后按照上述分析及程序流程图(见图9)编程程序(模块程序见附录1)。

程序编写完成后在管理器右侧右击插入一个背景数据块DB41,如图7、8所示。在类型选项中选择实例变量类型,FB41模块。

图5 插入新功能模块

图6 定义变量

13

S7-300 PLC中 FB41 PID 算法程序设计

图7 插入DB块

图8 FB41(梯形图) PID模块的背景数据块

14

S7-300 PLC中FB41 PID算法程序设计毕业设计 - 图文 

S7-300PLC中FB41PID算法程序设计3.3积分部分的近似部分设执行PID控制功能块的时间间隔(即PID控制的采样周期)为T,第n次PIDs运算时的时间为Ts,因为PID程序运行时为Ts常数,可以将t=Tsn,时PID控制器
推荐度:
点击下载文档文档为doc格式
3pun08welk77t6k14cm1
领取福利

微信扫码领取福利

微信扫码分享