PID程序的实现
作者:东莞智捷电气 加入时间:2005-3-17 16:02:37

 

一般而言,使用PLC进行控制的场合是不需要进行PID编程的,目前PLC中都带有PLC的控制模块,只要对有关的参数进行设置就可以很好的工作了,可谓是“傻瓜式”的控制,这也大大降低了对开发者的要求。但在使用工业板卡的场合,遇到需要进行PID控制的工艺时,如果不是采用组态软件进行开发的话,就必须使用高级语言做出PID的控制程序,这里给出一个最简单的PID控制程序,以对大家有所启发,这里使用的是PID的增量控制式。因为程序比较简单,这里不做进一步的解释,需要说明的是,这个程序虽然简单,但却有着使用性,稍作修改就可以用于工业实际,当然,仍然由进一步修改的余地,比如进行防积分饱和运算、加入滤波处理等等。代码如下: Option Explicit Dim EK1 As Single, EK2 As Single
Dim U As Single
Dim Uk As Single, Uk1 As Single, A As Single, B As Single, C As Single, Ek As Single
Dim Ti As Integer, Td As Integer, Kp As Integer
Dim SP As Single, PV As Single
  Private Sub Timer1_Timer() Ti = Val(Text1) '读取积分时间值 Td = Val(Text2) '读取微分时间值 Kp = Val(Text3) '读取比例值   SP = Val(Text4) '设定值 Text5.Text = Slider1.Value PV = Val(Text5) '模拟的反馈值 If Ti = 0 Then A = Kp * (1 + Td) Else
A = Kp * (1 + 1 / Ti + Td) End If
B = Kp * (1 + 2 * Td)
C = Kp * Td
Ek = SP - PV
  Uk = Uk1 + A * Ek - B * EK1 + C * EK2 If Int(Uk) <= 0 Then Uk = 0 '对输出进行调理,实际使用时灵活掌握。 If Int(Uk) > 1000 Then Uk = 1000 Uk1 = Uk
EK2 = EK1
EK1 = Ek
Text6.Text = Uk '输出显示 End Sub

友情链接 自助链接 管理页面
top
 
版权所有:东莞智捷电气自动化公司   电话:0769-2723100  网页设计:第三D建站资讯网