PID调节切换停机

有关PID调节程序的问题:
 系统要求:设备起初以设定好的流量恒流量运行(即电机工频50Hz全速运转),运行过程中实时监测系统压力(天长日久系统压力会缓慢上升),当系统压力达到设定好的某一定值P1时,设备立即自动进入恒压力运行(PID调节)方式(即系统变频降速运行,保证压力在设定值P1上下随动)
 程序设计如下:
 刚开机时给变频器提供DC10V(设定调速信号为DC0-10V)调速电压,电机以额定转速运转。
 主程序中用SM0.1调用PID调节子程序,即:
 LD     First_Scan_On:SM0.1
 CALL   过程信号子程序:SBR5
 子程序中装入PID调节参数值并激活全局中断SMB35,中断号为11,即:
 LD     Always_On:SM0.0
 MOVR   0.0, #SPR:LD4
 MOVR   0.0, #P1HR:LD12
 MOVD   0, #SPDI:LD0
 MOVD   0, #P1HDI:LD8
 ITD    P1:VW100, #SPDI:LD0         //P1为设定的定值
 DTR    #SPDI:LD0, #SPR:LD4
 ITD    P1H:VW102, #P1HDI:LD8      //P1H为压力上限
 DTR    #P1HDI:LD8, #P1HR:LD12
 MOVR   #SPR:LD4, VD304
 /R     #P1HR:LD12, VD304
 MOVR   P1调节比例系数:VD1000, VD312   //Kc给定值为0.8
 MOVR   P1调节采样时间:VD1004, VD316   //Ts给定值为5s
 MOVR   P1调节积分时间:VD1008, VD320   // Ti给定值为2min
 MOVR   P1调节微分时间:VD1012, VD324   // Td给定值为0
 MOVB   200, Time_1_Intrvl:SMB35
 ATCH   INT_0:INT0, 11
 ENI
 中断程序运行PID指令:
 Network 1 // P1超调后执行PID调节
 // 将压力1的PV值转换为标准化的实数
 LD     SM0.0
 MOVD   0, LD0
 MOVR   0.0, LD4
 MOVR   0.0, LD12
 MOVD   0, LD8
 ITD    VW22, LD0
 DTR    LD0, LD4
 ITD    VW102, LD8
 DTR    LD8, LD12
 MOVR   LD4, VD300
 /R     LD12, VD300
 Network 2 
 // 压力超调后执行PID指令
 LD     M16.0
 PID    VB300, 0

 Network 3 
 // 将输出值(Mn)转换为16位整数,输出值(Mn)为单极性且非负的数
 LD     SM0.0
 MOVD   0, LD16
 MOVR   0.0, LD20
 MOVR   VD308, LD20
 *R     32000.0, LD20
 ROUND  LD20, LD16
 DTI    LD16, VW240 
 其中M16.0为压力P1达到设定值后置位信号,即M16.0置位,程序会立即执行PID指令,达到由原来恒流量运行方式向恒压力运行方式的切换。

 经过反复调试,PID参数设置以上值后,系统运行能达到要求。
 但是调试过程中有一个问题:
 每次首次进入执行PID指令时,变频器会一路降速直到输出调速信号很小(即输出VW240为一个很小的值,不能使变频器驱动电机工作),但此时变频器仍然在工作,即处于运行状态。停机后(即变频器停止工作),重新启动变频器,此时压力值迅速上升,达到M16.0置位条件,程序立即执行PID指令,即第二次执行PID指令,同样设置的以上参数,系统能按要求运行,压力基本平衡在P1附近。
 有资料说:“实现无扰动切换,转换前必须把当前的控制输出值写入回路表的Mn栏”。于是在主程序里面加以下程序段:
 LD     压力P1超调降流量:M16.0
 EU
 ITD    Qe:VW110, #PIDI:LD16     //Qe:VW110为系统设定流量(小于等于2400)
 DTR    #PIDI:LD16, #P1R:LD20
 MOVR   #P1R:LD20, VD308
 /R     2400.0, VD308         //全速运行(即电机工频50Hz运行)时流量2400
 即给输出值VD308在执行PID指令前写入1.0,在程序监控时也确实看到切换瞬时VD308=1.0,但还是没有解决以上问题。即:
 每次首次进入执行PID指令时,变频器会一路降速直到输出调速信号很小(即输出VW240为一个很小的值,不能使变频器驱动电机工作),但此时变频器仍然在工作,即处于运行状态。停机后(即变频器停止工作),重新启动变频器,此时压力值迅速上升,达到M16.0置位条件,程序立即执行PID指令,即第二次执行PID指令,同样设置的以上参数,系统能按要求运行,压力基本平衡在P1附近。

 

最佳答案

使PID指令从手动方式无扰动地切换到自动方式。为了达到无扰动切换,在转变到自动控制前,必须把手动方式下的输出值填入回路表中的Mn栏;

 PID指令对回路表中的值进行下列动作,以保证当使能位正跳变出现时,从手动方式无扰动切换到自动方式:

 
 置设定值(SPn)=过程变量(PVn)
 置过程变量前值(PVn–1)=过程变量现值(PVn)
 置积分项前值(MX)=输出值(Mn)

 另外要进行MX值的检测:

 积分项前值要根据PID运算结果更新。这个更新了的值用作下一次PID运算的输
 入,当计算输出值超过范围(大于1.0或小于0.0),那么积分项前值必须根据下列公式进行调整:

 MX = 1.0 — (MPn + MDn) 【当计算输出Mn > 1.0】
 或
 MX = — (MPn + MDn)        【当计算输出Mn < 0.0】

 
 其中: MX 是调整过的偏差的数值
 MPn 是在采样时间n时回路输出的比例项的数值
 MDn 是在采样时间n时回路输出的微分项的数值
 Mn 是在采样时间n时回路输出的数值

提问者对于答案的评价:
虽然问题任未解决,但我还是感谢您的关注

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc348957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:54
下一篇 2021年7月4日

相关推荐

  • 温度测量提问

    用热电阻+温度变送器+EM235+200 PLC测量温度,编程如何实现?     热电阻是不是应该有一个参数对照表?即:…

    SIMATIC S7-200 2021年7月5日
  • PC-ACESS版本与系统关系?

    请问西门子200 OPC的专家们。200使用的OPC的PC-ACESS的版本与电脑操作系统的关系?因为我使用的PC-ACESS -SP3 在XP上可以…

    SIMATIC S7-200 2021年7月5日
  • 通讯电缆延长

    型号为6ES7 901-3CB30-0XA0的PPI通讯电缆不够长,用普通的网线怎么做延长线? 最佳答案 1,PPI电缆不够长,接个DP头。不需要加硬件,用一对9针的DP…

    SIMATIC S7-200 2020年10月31日
  • EM253位控模块

    请教各位前辈  我做了一个程序是EM253控制伺服电机  要求伺服电机作正反相对运动  用定长GOTO指令 &…

    SIMATIC S7-200 2020年11月1日
  • modbus库

    我现在有一台CPU226 PLC,需要与五台丹佛斯变频器用RS485通信,哪位有modbus库指令谢谢我的邮箱:hangziting@sina.com 最佳答案 已发送 …

    SIMATIC S7-200 2020年11月5日
  • CPU224的输出问题

    CPU224里面下载好一个正确的程序,然后在设备上面调试过也正常的。但是过了几天,设备运到现场后,启动按钮按下去,CPU上面的绿色输出灯却没有亮,送去西门子修,他们说没坏,可是对的…

    SIMATIC S7-200 2021年7月5日
  • 自然对数(LN)和 自然指数(EXP)計算問題?

    请问像自然对数(LN)和 自然指数(EXP)指令可以不用LN 和EXP指令就只用浮点运算就可以计算出大约值吗? 也就是像下面的公式我不用LN&nbsp…

    SIMATIC S7-200 2021年7月5日
  • 程序编译时出现的问题

    我在编完程序后进行编译,然后出现对话框1,我点确定后就出现对话框2,如图片所示,这是为什么呢?希望各位朋友帮忙看看,我不知道怎么传附件,没办法传上程序,我的QQ是421066575…

    2020年10月31日
  • 200的浮点数转换

    各位高工们:请教您们个问题,是这样的,PID反馈回来的实际数据为100.52,我设置的是100.4,那么用怎样的程序把0.02这个数去掉,这个程序要怎要做,可以详细指教吗? 最佳答…

    SIMATIC S7-200 2020年10月31日
  • 请教几个小问题:1,S7200PLC里边实数可以用VD表示,假如是VD200,那它在S7300PLC中对应如何表示?

    请教几个小问题: 1,S7200PLC里边实数可以用VD表示,假如是VD200,那它在S7300PLC中对应如何表示?2,组态王数据词典中变量对点的时候寄存器选择问题,Q…

    SIMATIC S7-200 2021年7月4日

发表回复

登录后才能评论