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日 下午11:54

相关推荐

发表回复

登录后才能评论