您现在所在的是:

施耐德电气论坛

回帖:5个,阅读:3678 [上一页] [1] [下一页]
5190
FreeTigerMan
文章数:555
年度积分:165
历史总积分:5190
品牌积分(施耐德):895
注册时间:2002/9/9
发站内信
发表于:2019/8/27 10:36:18
#0楼
说一说经典的PID调节(三)

前面介绍了PID控制的基础理论(班门弄斧缺胳膊少腿版)和一些通用的调试思路。这次以Unity Pro的控制功能块库(前面帖子发过完整英文版)为参考,介绍一下编程中常见的问题和思路。
要做好PID编程,肯定要了解工艺特点,但一般自动化人员都不是工艺专家,所以,就要提前和工艺人员学习了。这一点很重要,自控是为工艺服务的,而且,调试过程中的费用成本和安全保证,也要求我们要对工艺特点有基本的理解,如果可能的话,多和工艺工程师和操作人员一起在手动模式下了解一下工艺的变化特性。了解了工艺特点以后,要用控制的思路把工艺过程描述清楚,最起码的,设定点,控制量,过程量,各个变量的测量取值,单位等等都要搞清楚,向工艺人员了解一些各个变量的变化特点,上下限,死区,误差等等。
有了这些数据,就基本上知道编程的核心内容了。看看Unity Pro控制功能块库的章节,就可以和前面的内容对上了:

信号处理(Conditioning)
延时,积分,滞后,微分,质量流量,死区,线性化,积算,限速等功能块

控制器(Controller)
参数自整定,模式矫正,PIDFF,采样时间,两段控制器,三段控制器等功能块

数学计算(Mathematics)
比较,开平方,乘除,求和等功能块

测量(Measurement)
平均值,死区,查表,上下限等功能块

输出处理(Output Processing)
手动控制、脉宽控制,伺服控制,双执行器控制等功能块

设定值管理(Setpoint management)
斜率控制(Ramp),比率控制(ratio),设定点切换等功能块

一个闭环控制回路至少要有两个现场信号:过程测量值(PV)和PID的控制输出,很多时候还有更多的信号,如执行器反馈值,前馈输入信号等。这些现场信号根据测量原理和传输方式各不相同,都需要根据实际情况做一些预处理,与单位变换,滤波等,极端情况下,可能因为现场干扰,数据经常出现一些虚假的极大值或极小值,这些都可以通过信号处理功能块来去掉。输出值也要根据执行机构的特性来做一些处理,如限位(只让输出值处于某个特定区间),限速(执行机构的机械运动速度不可能高于限定值)等。

现场信号之外,PID控制还需要好多“内部”信号,如上下限,手动设定值等,而且,一般现场都要实现无扰切换,那就要编写一下赋值逻辑,比如,在自动模式时把输出值传给手动设定值,这样在自动切换到手动模式时,阀门收到的输出值不变,就不会动作,在手动模式时把手动设定值传给pid模块的手动输入,同时把pv传给sp,这样在切到自动时就不会造成扰动。这些逻辑,都要在调试前做好。
PID模块有很多设定值,都要按照要求填好,尤其是各种限值,这些都是确保现场安全的,一定要仔细。在投入自动之前,还有一个重要的设定:作用方向,根据现场情况,设定好是正作用,还是反作用,否则南辕北辙的段子就一定会上演。
Unity Pro控制功能块库功能最全的PID块是PIDFF,具备前馈等复杂功能:

附件 PID-Prog.jpg

对于取样时间的设定,如果过程比较慢,可以设定较长的取样时间,如果过程较快,可以不用,每次扫描周期计算一次就行。
参数设置是通过PARA输入的结构变量来设置的,前面提到的作用方向等参数都在里面。

PIDFF有并行模式和混合模式等工作模式,对应不同的特性,需要根据过程特点选择。具体并行模式的内部逻辑如下;

附件 PID-p.jpg



混合模式的内部逻辑如下:


附件 PID-m.jpg



Unity Pro 还有一个自动调整块Autotune,可以和PIDFF配合使用,实现自整定,大家可以根据情况使用,编程不复杂,把Autotune在前,pidff在后,对应关键连接结就可以了,但现场调试一定要了解清楚功能块的动作原理,才能收到好的效果。记住,越是强大的功能块就越需要更多的背景知识才能用好,不要期望通过简单地编程,就可以在不了解工艺控制特性的情况下控制好过程。
[此贴子已经被作者于2019/8/27 10:39:56编辑过]
50
weicy007
文章数:571
年度积分:50
历史总积分:50
品牌积分(施耐德):852
注册时间:2019/4/29
发站内信
发表于:2019/8/30 17:47:00
#1楼
感谢分享,PID不论哪个平台的PLC都少不了。
39261
jint 管理员
文章数:20718
年度积分:771
历史总积分:39261
品牌积分(施耐德):783
注册时间:2007/8/30
发站内信
发表于:2019/8/30 18:23:59
#2楼
这是之前有网友留言说想要这方面的资料多学习一下,果然,还楼主是不是还有续集表情
温馨提示:
电话:0755-26546361
邮箱:blog@gkong.com
微信公众号:工控论坛;微信号gkongbbs;
不定期修改账号密码;不要在多个网站用同一账号密码
可随时站内信联系,工作日可拨打电话或发邮件咨询相关问题
49161
kdrjl 版主
文章数:24262
年度积分:50
历史总积分:49161
品牌积分(施耐德):99
注册时间:2004/2/17
发站内信
2018论坛优秀版主
2017论坛优秀版主
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
我秀我做2014
2013论坛优秀版主
秀秀我的办公桌
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2019/9/1 9:25:58
#3楼
哈哈,见过了。这个PID控制器的使用方法与西门子的传动DCC里的PID用法类似呀。有意思。看来闭环控制的基本原理,全世界通用。
我是你的朋友
5190
FreeTigerMan
文章数:555
年度积分:165
历史总积分:5190
品牌积分(施耐德):895
注册时间:2002/9/9
发站内信
发表于:2019/9/1 22:30:19
#4楼
回复 #3楼 kdrjl
PID当然是通用的,只不过各种应用实现方法不一样而已。PLC里的pid块我觉得还是有些简单,编程要考虑的还是比较多的。
49161
kdrjl 版主
文章数:24262
年度积分:50
历史总积分:49161
品牌积分(施耐德):99
注册时间:2004/2/17
发站内信
2018论坛优秀版主
2017论坛优秀版主
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
我秀我做2014
2013论坛优秀版主
秀秀我的办公桌
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2019/9/2 10:16:44
#5楼
回复 #4楼 FreeTigerMan
从楼上的图例,可以看出,PID功能块已经标准化了。只不过快里面的结构和运算,各家有个家的高招儿。仅此而已。

其实,PID算法,作为古典自控理论,已经在实际应用总非常成熟了。加上标准化的调节器模块,对于使用者而言,就非常方便了。
我是你的朋友

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004