裴润有 宏 岩
(长庆油田技术监测中心,西安 710062)
压力测量仪表是工业生产过程中不可缺少的测量设备,大量应用于各种生产中。为了保证压力测量仪表的准确、可靠,必须对压力测量仪表进行定期检定。针对油田压力仪表现场校验的特殊需要,提出开发一种内嵌压力源、能全自动完成校验过程的一体化压力表自动校验系统。对于压力表自动校验系统来说,产生高精度的、稳定的定点压力是整个压力表自动检定系统的关键。本文将 EDA 技术与控制理论相结合,以 FPGA 为硬件核心,提出了一种基于模糊自整定PID(Proportional Integral Derivation) 算法的压力表自动校验系统。
本系统采用基于Altera公司的Cyclone II系列的 EP2C35 FPGA芯片作为校验系统的控制核心,负责与外设的接口控制和自身的逻辑运算。因为标准压力表输出的4~20mA是模拟信号,不能直接输入FPGA,通过AD转换模块,将模拟信号转换成数字信号,FPGA读入压力信号和通过键盘输入的控制命令,通过内部的基于模糊自整定 PID 算法,输出一定的脉冲给步进电机控制器,驱动电机工作产生需要的定点压力,并经过液晶模块实时显示相应的压力数值。下面在系统总体组成框图的基础上简要介绍几个主要部分的方案设计。系统总体组成框图如图1所示。
图1 系统总框图
经过十几年的发展,许多公司都开发出了多种可编程逻辑器件。Altera公司是最大的可编程逻辑器件供应商之一,本设计采用Altera公司的 Cyclone II系列的 EP2C35作为FPGA芯片。该芯片容量为33216个逻辑单元,门电路高达70万门,拥有 484K 片内RAM,具有上百个 I/O 口;除此之外,还提供了锁相环及运行频率能高达250MHz的内嵌乘法器。
选择标准压力表应考虑以下几个因素:首先是压力表的精度,标准压力表的精度应尽可能的高,至少应比被测仪表高两个数量级。其次是标准压力表的可靠性要高,要经久耐用。基于以上原则,我们选择北京康斯特仪表科技有限公司的CONST211系列的数字压力表,测量精度为0.02%FS~0.2%FS。完全满足精密压力测量和一般压力表、精密压力表等压力仪表的校验工作。
产生高精度的、稳定的定点压力是整个压力表自动检定系统的关键,标准压力控制的难点在于如何兼顾压力产生的精度及速度。目前,PID控制一直是比较常用的控制方法,优点在于其稳定性比较好,结构相对简单。但另一方面,对于具有时变或者滞后等特点的复杂系统,PID控制器就难以发挥其特长。模糊控制理论的出现,解决了PID在这方面的弱点。自从模糊控制理论提出以后,其发展非常迅速,但控制规则也随之变得复杂,使得系统的软硬件也相对变得复杂,因此对速度的要求也随之变高了。在EDA(Electronic Design Automation)技术不断发展的基础上,现场可编程门阵列FPGA (Filed Programmable Gate Array)技术也日趋发展成熟。设计的灵活性、集成度和可靠性得到了空前提高。因此利用FPGA技术实现PID控制器及模糊PID控制器具有现实的意义。
模糊PID控制是以模糊集合论,模糊语言变量和模糊逻辑推理为基础的一种数字控制,它以误差e和误差变化ec作为输入,利用模糊控制规则在线对PID参数进行修改,以满足不同误差e和误差变化ec对控制参数的不同要求,使被控对象有良好的动、静态性能。模糊PID控制系统结构框图如图2所示。
图2 模糊PID控制系统结构框图
FPGA 中实现模糊控制可用2种方法:一种是直接用硬件实现模糊算法,但设计复杂,硬件消耗大; 另一种是采用MATLAB离线设计,得出模糊控制表,然后通过快速查表法实现模糊控制。这里采用后者。
图3 快速查表法结构图
快速查表法的基本思想是通过离线计算取得kp、ki、kd的模糊控制表,并将这些模糊控制表存放在内存中。当模糊PID控制器工作时,只需根据当前时刻的误差和误差变化来找出当前时刻的kp、ki、kd的值,快速查表法结构图如图3所示。
快速查表法设计的关键在于kp、ki、kd的模糊控制表,求取模糊控制表的流程如图4所示。
图4 模糊控制表计算流程
快速查表法设计模糊PID控制器的具体步骤如下:
1)确定模糊PID控制器的变量
本设计是一个两输入三输出的系统,选取压力设定值和测量值的误差e和误差变化ec作为输入,PID控制参数kp、ki、kd作为输出。
2)确定论域和量化等级
取误差e和误差变化ec的论域为[-6,6],kp、ki、kd的论域也为[-6,6]。所有语言变量的量化等级都为13级,即{-6,-5,-4,-3,-2,-l,0,1,2,3,4,5,6}。
3)确定模糊子集和隶属度函数
取输入语言变量的模糊子集为负大、负中、负小、零、正小、正中、正大,分别用NB,NM,NS,ZO,PS,PM,PB表示;输出语言变量的模糊子集也为负大、负中、负小、零、正小、正中、正大,分别用NB,NM,NS,ZO,PS,PM,PB表示,隶属度函数如表1所示。
表1隶属度函数
4)确定kp、ki、kd模糊控制规则
模糊控制规则实质上是将技术人员的控制经验加以总结而得出一条条模糊条件语句的集合。确定模糊控制规则的原则是必须保证控制器的输出能够使系统的动静态特性达到最佳。所以模糊控制规则是决定控制器性能的关键因素,一般根据设计者现场经验和专家的经验来设计。kp、ki、kd的模糊控制规则表如表2、表3、表4所示。
表2kp模糊控制规则表
表3ki模糊控制规则表
表4kd模糊控制规则表
5)求取kp、ki、kd模糊控制表
模糊推理方法有Zadeh推理法、Mamdani推理法和Baldwin推理法等,本设计采用Mamdani推理法的Max-Min模糊合成算法进行推理。以kp为例:设系统误差e的量化值为l,误差变化ec的量化值为-2,则由表1可知相应的隶属度值。
对于误差e:
UZO(1)=0.5
UPS(1)=0.5
对于误差变化ec:UNS(-2)=1
根据此输入状态,由kp的模糊控制规则表可知,只有以下两条规则有效:
第一条:如果误差e是ZO且误差变化ec是NS,则控制量kp为PS。
第二条:如果误差e是PS,且误差变化ec是NS,则控制量kp为ZO。
由极大极小推理法可得kp输出模糊集为:
UPS(1,-2)=min(0.5,l)=0.5
UZO(l,-2)=min(0.5,1)=0.5
最后将每一条模糊控制规则得到的模糊子集进行“并”运算,再由重心法计算出kp的精确量。
kp=(1×0.5+2×0.5+3×0.5-1×0.5+0
×0.5+1×0.5)/ (0.5+0.5+0.5+0.5
+0.5+0.5)=1
同样,对输入论域中的所有组合计算出相应的kp的精确量,便可构成kp的模糊控制表,如表5所示。同理,可以计算出ki和kd的模糊控制表。
表5Kp的模糊控制表
硬件系统测试:焊接硬件电路后,分模块进行测试,每个模块焊接完成后,采用自制电源给硬件电路供电。
软件系统测试:采用自下而上调试的方法,先对每个编程模块进行测试,最后组合每个模块的功能进行软件部分整体测试。
整体功能测试:精密压力表实时数据通过AD模块采集进入FPGA,通过按键实现设定压力的输入,启动步进电机实现打压操作,观察打压的过程是否平稳快速,压力是否有超调。
通过对若干组不同量程、不同厂家的压力表的测试,当采用传统PID控制方法时,为了避免超调,kp值一般选择较小,这样打压过程时间不免延长,同时控制精度也很难有保证。当采用模糊PID控制时,控制系统兼顾了压力产生的精度及速度,检定装置在升压或降压时,没有冲击和回程现象,例如压力产生系统在产生20MPa压力时,系统能够实现在30s内压力值单向递增或递减地靠近该点,系统超调量减少,控制精度有较大提高,同时操作时间大大缩短。
本文设计并实现了一种基于FPGA的压力表自动校验系统,设计结合了通用处理器软件设计的灵活性和专用芯片上的运算速度的快速性两个优点,在FPGA上实现了一种较优的PID硬件运算结构。本设计达到压力表检定及不确定度规范要求,作为检定仪器,其具有较高的精度等级,同时操作简单,性能稳定,重复测量能力较强,一定程度的减小了劳动强度,且劳动效率也大大提高,实验结果表明该测量系统具有价格低廉、效率高、适应性强、可靠性好等优点,故有良好的推广和使用价值。
[1] 黄志文,邵平,扈晓兰.基于FPGA的PXI高速数据采集系统设计[J].化工自动化及仪表,2010,37(05):60-63
[2] 程素娥.基于FPGA的智能压力传感器系统[J].化工自动化及仪表,2010,37(08):53-55
[3] 陈世伟,李世平,管京周.指针式电压表精度自动化检定系统的设计与实现[J].计算机测量与控制,2005(11):192-194
[4] 马克文,朱立.检定一般压力表标准器的选择方法[J].计量技术,2005(8):46-46
[5] 李景平.精密压力仪表仪器半自动化检定系统 [J].计量技术,2002(2):37-38
[6] 周爱民.气控压力表检定装置的制作[J].计量技术,2005(6):61-62