APP下载

基于FANUC RX3iPAC 模糊控制算法的研究

2011-06-09张运波

关键词:变化率C语言模糊控制

王 征,张运波,刘 洋,栾 鑫

(1.长春工程学院工程训练中心;2.电气与信息工程学院,长春130012)

0 引言

随着当今工业化大生产时代的发展,可编程自动化控制器(PAC)得到了更加广泛的应用。它具有控制功能强、可靠性高、使用灵活方便、易于扩展等一系列优点,尤其是现代的可编程自动化控制器,其功能已经大大超过了逻辑控制的范围,还包括运动控制、闭环过程控制、数据处理等[1]。它不仅可以取代传统的继电—接触器控制系统,还可以进行复杂的生产过程控制。本文以GE-FANUC公司的RX3i系列PAC为平台,运用其支持C语言程序开发的特点,介绍了一种闭环模糊控制算法。

1 算法的总体设计方案

本模糊控制算法的设计是将闭环模糊智能控制程序置于定时中断响应程序之中,而将与开光量控制相关的程序以及中断设置等初始化信息置于中断服务程序之外的主程序中,由此形成的智能控制算法主程序框架结构如图1所示。在程序设计中使用的间隔定时器是采用RX3i的延时断开定时器OFDT。系统启动后间隔定时器开始计时,当到达采样周期时,中断主程序,并开始执行中断响应程序。与此同时,定时器OFDT的当前值再次返回到设定值状态开始计时。程序通过重复上述过程,实现按照采样周期进行数据的采集和处理。

图1 主程序框架结构图

当主程序进入中断响应周期后,系统会调用RX3i的模糊控制程序,如图2所示。其工作过程分为3个阶段,即输入采样、模糊控制和输出刷新3个阶段。其各阶段实现的功能是:

(1)输入采样阶段:在输入采样阶段,RX3i以中断方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中相应的单元内,惊醒A/D转换。输入采样结束后,转入用户程序执行和输出刷新阶段。

(2)模糊控制阶段:RX3iCPU将A/D转换后的采样数据按模糊控制算法依次完成滤波、偏差与偏差变化率的运算、查表和控制量计算,并根据逻辑运算的结果刷新输出线圈在I/O映象区中对应位的状态。

(3)输出刷新阶段:RX3i通过模拟输出模块按照I/O映象区内对应的状态将存储数据完成D/A转换,并刷新所有的输出锁存电路,再经输出电路驱动相应的外设,完成闭环模糊智能控制的功能。

图2 RX3i模糊控制程序中断周期示意图

完成上述3个阶段称作一个中断响应周期。在整个程序运行期间,RX3i的CPU以一定的扫描速度重复执行上述3个阶段。

2 FANUC RX3i控制器

GE-FANUC公司的RX3i控制器是创新的可编程自动化控制器,它是中、高端过程和离散控制应用的新一代控制器,其主要特点是具有单一的控制引擎和通用的编程环境,提供应用程序在多种硬件平台上的可移植性和真正的各种控制选择的交叉渗透。

RX3iCPU采用Intel 300MHz的处理器,运算能力大大增强。支持多种通用的模拟量(每个通道可以配置电压、电流、热电偶、电阻式温度监测器、应力计和电阻器等)。具有32K模拟输入/输出和最高达5兆字节的数据存储[2]。RX3i的10兆字节全部可配置用户存储器,足够在CPU中存储并运行所有的程序机器文件。尤其值得关注的是RX3i CPU能够支持多种语言编程,不仅支持传统的梯形图语言和指令表语言,而且还支持高级语言C语言编程[3]。这使得RX3i可以利用C语言进行较复杂算法的智能控制编程操作,使开发程序的编写更加灵活方便,开发过程得以简化,有效提高了运行的质量。

3 模糊控制算法方案

RX3i模糊控制程序的算法主要包括数据采集及A/D转换、数字滤波以及偏差与偏差变化率的运算、查表和控制量的计算等部分组成。下面我们依次地加以介绍。

3.1 数据采集及A/D转换

在控制系统中,经传感器和变送器输出的标准信号首先要直接与RX3i的模拟量输入模块的A/D转换器相连接。RX3i的每个输入通道的A/D转换器可接受的输入范围为-10~+10V电压。通过输入跳线,单独的通道同样可以用于4~20mA的电流输入。此时,模拟量输入模块按比例对输入数据进行A/D转换,-10V对应于-32 000,+10V对应于+32 000,如图3所示。每位的分辨率是5 mV或者20mA,对于4~20mA的电流输入可对应于1~5V的电压输入进行转化。最后将输入的电流或电压转变成内在的数字量,数字数据以16位的二进制数形式存储在RX3i的CPU中[4]。

图3 A/D转换缩放比例图

3.2 数字滤波

由于原始信号在传送和转换的过程中可能会产生噪声和接收干扰,这不仅会降低整个控制系统的精度和可靠性,甚至会淹没真实信号,所以除了在硬件上采取必要的措施之外,软件上也要通过数字滤波消除这些无用信号的影响。本算法采用平均值滤波作为实现数字滤波的方法。它的软件设计方法为:

(1)在RX3i中建立若干个数据存储区,本算法中按n个数据量进行平均值滤波;

(2)建立一种类似于队列的特殊线性表数组数据结构。它只允许在队列的前端进行删除操作,而在队列的后端进行插入操作。它遵循FIFO原则,即先入先出原则。进行插入操作的端称为队尾,进行删除操作的端称为队头[5]。

(3)每当程序执行中断处理程序时(即一个采样周期),从A/D转换后的数字数据依次被放进选取的数据存储区里,新输入的数据放到数据区的第一个位置,此前的数据依次向前传送,然后数据区的末尾位置上的数据自动溢出。

(4)在控制系统程序设计中,通过比较对A/D转换后的数据进行限幅滤波。若某次测量受到干扰,使数据明显超出正常范围就应该将此剔除,取而代之一个估计的合理值。

(5)对存储单元内的n个数据求平均值,并把其结果作为本采样周期的采样值,即参与偏差运算的采样值等于当前采样周期的采样值与前N-1个采样周期的采样值进行平均值运算得到的,这样可以大大减小因硬件采样产生的误差[6]。

3.3 偏差与偏差变化率的运算

为了进行模糊控制表查表运算,必须计算偏差和偏差变化率。偏差等于给定值与测量值之差,用e(k)表示,对于偏差变化率的计算,它等于当前数据偏差e(k)与上个中断响应周期的偏差e(k-1)的差值。在RX3i中由于CPU支持C语言程序的编程运算,可以在RX3i的CPU内存中定义整型变量E和EC,因此对于偏差和偏差变化率的计算可以采用直接求取差值的方式,并把所得结果分别赋值给变量E和EC。即E=e[k],EC=e[k]-e[k-1]。所得的结构存储于RX3i的内部存储区中[7]。

3.4 查表程序

智能控制算法中的查表程序是在离线情况下制作模糊规则表,然后将其存入RX3i的存储单元中,系统运行后算法通过在线查表的方式求出控制量的值。下面是查表控制算法的程序设计过程。

(1)通过离线计算取得一个静态的模糊控制表,将其控制表存放到RX3i的内存中。

(2)设计一个二维的FUZZY控制器,其输入为偏差和偏差变化率。以偏差变化率ec为行变量,偏差e为列变量建立模糊规则表,如表1所示。模糊控制表有13行13列,共计169个元素组成。

(3)由于偏差e、偏差变化率ec和控制量u经量化后的整数论域为[-6,6],为了便于查表和减少程序计算量,通过转换论域函数Trans(domain)将论域[-6,6]转化为正论域[0,+12],即e=[0,+12],ec=[0,+12],u=[0,+12]。

表1 模糊规则表

(4)定义数组Fuzzytable[]作为模糊控制表元素的存储区域。将模糊控制表中内部元素以行为基准,按照如表1所示顺序依次进行编号。其中Fuzzytable[0]、Fuzzytable[1]……Fuzzytable[12]对应模糊控制表的第1行,依次类推,每行存有13个元素。设模糊控制表中的存储单元编号为M,由表中可以看出,M 与e和ec之间存在如下规律:M=e+13ec。因此,经量化得到的e和ec通过上式求出存储单元编号M,利用数组Fuzzytable[M]即可查询出模糊控制表中相应单元中存储的数据内容,从而实现了查表的功能。

3.5 控制量的计算

为了实现闭环智能控制器的输出控制,需要获得RX3i的输出控制量U。其控制功能的实现按下述步骤完成:

首先,将经模糊控制表查表得出的数据乘以比例因子Ku,得到控制量的增量Δu。其次,将增量Δu加上事先设置好的固定量C(稳态量)得到控制量U。因此,模糊控制表查表所得数据与控制量之间的关系如式(1)所示。

最后,将计算得到的控制量U存储到指定的存储单元中,并将控制量的值传送到RX3i控制器的模拟量输出模块的输出通道中,完成D/A转换。此时,RX3i的输出端子将模拟量形式的控制量传输给执行机构,实现闭环过程控制系统的功能。

4 算法程序的实现

应用FANUC RX3iPAC平台实现模糊控制算法的便利之处就在于其支持C语言开发的灵活性和可扩展性。由于C语言可跨平台通用,因此对于程序的开发与移植都带来很大的方便。算法的具体描述如下:

5 结语

该模糊控制算法以FANUC RX3i硬件平台为基础,通过数据采集、A/D转换和数字滤波等环节,将采样的数据信息进行偏差与偏差变化率运算,并查询模糊规则表,最终得到输出控制量。算法尤其以C语言为编程主体语言,程序设计灵活方便,易于扩展,并且可移植性和通用性较强,在工业控制领域具有广阔的应用前景。

[1]Fan Xingzhe,Cheng Ning,Zhang Naiyao.Two Fuzzy Cascade Control Schemes of a Triple Inverted Pendulum[A].Institute of Electrical and Electronics Engineers Inc.Proceedings of the 3th World Congress on Intelligent Control and Automation:Vol3[C].Hefei China Sponsor:IEEE.2000:1721-1726.

[2]李澄非.计算智能方法研究及其在流程工业中应用[D].北京:北京化工大学,2007.17-18.

[3]龙迎春.基于PLC的模糊控制器的设计[J].微计算机信息,2006,22(10):21-23.

[4]齐蓉,林辉.通用模糊控制器在PLC上的实现 [J].工业仪表与自动化装置2003(4):23-25.

[5]杨启文.计算知能及其工程应用[D].杭州:浙江大学,2001.25-30.

猜你喜欢

变化率C语言模糊控制
基于电流变化率的交流滤波器失谐元件在线辨识方法
例谈中考题中的变化率问题
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
T-S模糊控制综述与展望
基于模糊控制的PLC在温度控制中的应用
利用基波相量变化率的快速选相方法
基于模糊控制的恒压供水系统的研究
川滇地区地壳应变能密度变化率与强震复发间隔的数值模拟