通用模糊控制器在PLC 上的实现

供稿:贝加莱工业自动化(中国)有限公司

  • 关键词:通用模糊控制器,PLC
  • 作者:齐 蓉,林 辉,李玉忍,谢利理
  • 摘要:介绍采用离线计算、在线查表插值的方法实现通用模糊控制器在PLC 上实现的设计方法。提出增量式/ 位置式模糊控制输出算法、带死区的模糊控制算法以及二元三点插值法来改善通用模糊控制器的性能,通过控制表和在线部分直接下载到PLC 的CPU 模块中的方法,来满足通用性的要求。这种PLC 通用模糊控制器可作为控制系统的一部分,也可用于控制过程分析、仿真和开发模糊控制系统的工具。

1  引 言
  
  现代控制系统中的模糊控制能方便地解决工业领域中常见的非线性、时变、大滞后、强耦合、变结构、结束条件苛刻等复杂问题。可编程控制器以其高可靠性、编程方便、耐恶劣环境、功能强大等特性很好地解决了工业控制领域普遍关心的可靠、安全、灵活、方便、经济等问题,这两者的结合,可在实际工程中广泛应用。该文研究了通用模糊控制器在PLC上实现的几种算法,用离线计算、在线查表插值的方法实现模糊控制。
  为了满足不同执行机构对控制量形式的要求,采用增量式/ 位置式模糊控制输出的算法,在增量式模糊控制输出时,可实现手动与自动之间的无扰动切换。为了消除由于频繁动作引起的振荡,采用了带死区的模糊控制算法。此外,一般的在线查表模糊控制器中存在着模糊量化取整环节,即当误差E与误差变化率EC 不等于模糊语言值(例如NB ,NM,NS ,ZO ,PS ,PM或PB) 时, E 和EC 取整,这时从查询表中查到的控制量U 只能近似地反映模糊控制规则,因此产生误差。由于量化误差的存在,不仅使模糊控制器的输出U 不能准确地反映其控制规则,而且会造成调节死区,在稳态阶段,使系统产生稳态误差,甚至会产生颤振现象。文中提出的二元三点插值法可从根本上消除量化误差和调节死区, 克服由于量化误差而引起的稳态误差和稳态颤振现象。图1 —1 给出了通用模糊控制器的基本组成结构。

2  通用模糊控制器在PLC 上的设计实现
2.1  离线部分设计
  离线部分的算法设计主要包括以下内容:选择模糊输入、输出变量的论域范围及模糊变量子集类型;确定各模糊变量的隶属函数类型;精确输入、输出变量的模糊化;制定模糊控制规则;确定模糊推理算法;模糊输出变量的去模糊化;按所需的格式保存计算结果生成查询表。

图1—1  通用模糊控制器基本结构图


  实际应用中广泛采用的二维模糊控制器多选用受控变量和输入给定的偏差E 和偏差变化率EC 作为输入变量,因为它已能够比较严格的反映受控过程中输入变量的动态特性,可满足大部分工程需要,同时也比三维模糊控制器计算简单, 模糊控制规则容易理解。对于多变量模糊控制器可利用模糊控制器本身的解耦特点,通过模糊关系方程分解,在控制器结构上实现解耦, 即将一个多输入多输出(MI —MO) 的模糊控制器,分解成若干个多输入单输出(MI —SO) 的模糊控制器,这样就可采用单变量模糊控制器的设计方法。该文研究了二维通用模糊控制器的设计。为了便于由用户在线控制时决定是增量式输出还是位置式输出,输出变量取调节量的变化U ,这也有利于通过对调节量变化U 的调整, 使系统偏差减少。
  由于模糊控制器的控制品质受控制器输出方式的影响,对不同的受控对象提供位置式输出和增量式输出这两种选择方式。位置式输出算法的缺点是输出的u (k) 对应的是执行机构的实际位置,如果计算机出现故障,会引起由于u (k) 的大幅度变化而导致执行机构位置的大幅度变化。如果采用增量式算法时,计算机输出的是控制增量Δu (k) 对应的本次执行机构位置(例如阀门开度) 的增量,图2 —1 为增量式输出模糊控制系统框图, 阀门实际位置的控制量即控制量增量的积累

图2—1  增量式输出模糊控制系统框图

  模糊控制算法的实现是通过模糊推理所得, 但该结果是一个模糊矢量, 不能直接用于控制被控对象,必须转换为一个执行机构可以接受的精确量。将所有可能输入状态的非模糊输出以同样方法计算后形成如表2 —1 所示的查询表,该表以数据模块形式存入计算机程序中,当一组输入给定时,可由该表查出相应的输出值。该方法将复杂的模糊计算融进查询表中,在实际使用时节省计算时间,并使控制变得简单明了。

表2 —1  表格形式的查询表

2.2  在线部分设计
  计算机离线运算得到的模糊控制器的总控制表经过系统在线反复调试、修改,最后以数据模块形式存入PLC 系统内存中,由一个查询该表的子程序管理。查询子程序的流程如图2 —2 所示,图中fielde 、fieldec 及fieldu 分别表示误差E、误差变化率EC 和控制量U 的论域范围。由流程图可知,控制器的调节方式有手动和自动两种, 输出方式有增量式和位置式输出两种。如果输出方式选择为增量式输出,则可以实现手动调节方式到自动调节方式的无冲击切换。

2.2.1  二元三点插值
  给定矩型域上n×m 个结点(xi , yj) 的函数值zij = (xi , yj) ,其中i = 0 ,1 , ⋯, n - 1; j = 0 ,1 , ⋯, m -1 ,在两个方向上的坐标分别为x0 < x1 < ⋯< xn - 1 ,y0 < y1 < ⋯< ym - 1 ,利用二元三点插值公式可计算出指定插值(u , v) 处的函数近似值w = z( u , v) 。表2 —1 用函数形式表示为Uij = f(Ei , ECj) , 其中i =1 ,2 , ⋯, k1 ; j = 1 ,2 , ⋯, k2 。设某个采样周期的输入为E、EC ,则需求出U = f(E , EC) 的值。
  采用二元三点插值法运算相当于E与EC 在其论域内的分档数趋于无穷大, 这样不仅能够满足表2—1 所给出的查询表制定的控制规则,而且还在控制规则表内的相邻分档之间以线性插值方式补充了无穷多个新的、经过细分的控制规则, 更加充实完善了原来的控制规则,并从根本上消除了量化误差和调节死区, 克服了由于量化误差而引起的稳态误差和稳态颤振现象,显著改善了系统的性能,尤其是稳态性能。

图2 —2  在线控制流程图

2.2.2  带死区的模糊控制算法
  为了避免控制动作过于频繁,消除由于频繁动作引起的震荡,带死区的控制算法是一个好的解决办法。

  上式中,死区e0 是一个可调节的参数, 其具体数值可根据实际控制对象由实验确定。若e0 值太小,使控制动作过于频繁,达不到稳定被控对象的目的;若e0 值太大,则系统将产生较大的滞后。
  带死区的模糊控制器的系统结构如图2 —3 所示,此控制系统实际上是一个非线性系统。即当|e( k) | ≤|e0| 时,模糊控制器输出为零;当|e(k) | >|e0| 时,模糊控制器有适当的输出。

图2 —3  带死区的模糊控制器系统结构

3  应用实例
  电机调速控制系统见图3—1 ,模糊控制器的输入变量为实际转速与转速给定值之间的差值e 及其变化率ec , 输出变量为电机的电压变化量u 。图3—2 为电机调试输出结果, 其横坐标为时间轴, 纵坐标为转速。当设定转速为2 000r/ s 时,电机能很快稳定运行于2 000r/ s ;当设定转速下降到1 000r/ s时,转速又很快下降到1 000r/ s 稳定运行。

图3 —1  电机调速控制系统结构示意图

图3 —2  电机调速过程

4  小 结
  通用模糊控制器在PLC 上的实现采用了二维模糊控制结构,这种结构能确保系统的简单性和快速性。它的输入为系统误差E和误差变化率EC ,因此它具有类似于常规PD 控制器的功能和良好的动态特性。在实际应用中证实,系统响应速度快,超调量很小,稳态精度高。为了获得更好的静态性能,应加入模糊积分单元,构成PID 模糊控制器。



发布时间:2012年1月31日 10:03  人气:  
相关链接

我有需求