东莞自动化网——东莞市智捷电气自动化公司
|  最新新闻  |   |  技术文章  |   |  本站服务  |   |  三菱产品选型  |   |  安川伺服选型  |  
|  技术文章>>应用实例>>PID程序的实现 打印
PID程序的实现
www.dgzdh.com 2004-05-21  拓创自动化


一般而言,使用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


原作者:www.eengineerarea.com
来 源:www.eengineerarea.com
共有7899位读者阅读过此文

告诉好友

  • 上篇文章:已经没有了
  • 下篇文章:串口通讯示例
  • □- 本周热门文章 □- 相关文章
    PID程序的实现
    网上留言
    友情链接 管理页面
    top
     
    版权所有:东莞市智捷自动化设备有限公司   电话:0769-22331400  传真:22465296