《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于MATLAB环境下的模糊推理程序化方法

基于MATLAB环境下的模糊推理程序化方法

2008-12-11
作者:陈秀真 白连平

  摘 要: 介绍了在MATLAB环境下,实现模糊推理" title="模糊推理">模糊推理的程序化的方法,解决了由于增加模糊量化论域而产生的复杂计算问题,为模糊控制" title="模糊控制">模糊控制的研究和应用提供了方便的条件。
  关键词: 模糊控制 近似推理 模糊推理程序化


  模糊控制具有不依赖对象的数学模型、鲁棒性强、能够很好地克服传动系统中模型参数变化和非线性等不确定因素的优点,因此,模糊控制在实际控制系统中得到广泛应用。模糊控制器" title="模糊控制器">模糊控制器普遍采用的是离线进行模糊推理产生的模糊控制表,然后把控制表存储在单片机中进行在线查表控制,但模糊推理计算量大,这给模糊控制器的设计和调整带来了许多困难。此外,模糊控制存在的一个较大的缺点是稳态精度不高。为此,人们提出了许多改进的方法[1],其中最直接的方法是增加模糊量化论域。但是,当量化论域中元素、控制规则的条数很多时,模糊推理计算控制表的运算量大大增加。本文在MATLAB环境下,研究了模糊推理算法,研制了模糊推理程序。只要给出模糊控制器的输入和输出量的隶属函数" title="隶属函数">隶属函数矩阵、控制规则矩阵、模糊量的特征向量" title="特征向量">特征向量矩阵,运行该程序就可得到模糊控制表。该软件使用方便,为模糊控制的研究和应用提供了方便的条件。
1 模糊推理概述
  在模糊控制中,关键是要求得模糊关系矩阵,应用最多的是离线进行模糊推理产生控制表,模糊推理是模糊控制器的核心。这里以两入一出、采用CRI推理方法及重心法解模糊的模糊控制器为例,简要介绍模糊推理过程。


  这里需要指出的是,把笛卡儿乘积看作一个n×1与一个1×m的矩阵合成。计算结果是n×m模糊阵,而( Ai×Bi)T1表示把这个n×m模糊阵按行“拉直”成nm元模糊行向量,再转置成nm元模糊列向量;(A*×B*)T2的含义是:把A*×B*这个n×m模糊阵按行“拉直”成nm元模糊行向量。
2 基于MATLAB实现模糊推理程序设计
  在MATLAB环境下,充分利用其矩阵处理能力[2],可实现“∨—∧”、“∨—· ”及 “∧—⊕”模糊算子运算、重心法(或最大隶属度法)解模糊。由于模糊推理过程涉及到合成、求模糊关系及解模糊运算等,采用自定义函数实现各个功能的模块化。图1为主函数程序框图;图2为求模糊关系程序框图;图3为解模糊程序框图;图4为合成程序框图。


  运行此程序,只要输入矩阵A和B及相应矩阵C、控制矩阵Q、特征向量矩阵A*和B*及输出量化论域矩阵QF,就能得到模糊控制表。
3 计算实例
3.1 常规模糊控制器
  下面以常规模糊控制器为例来验证此程序的正确性。在常规模糊控制器中,输入语言变量偏差E、偏差变化率CE、输出语言变量控制量U的赋值表及E、CE→U的控制规则表见文献[3]。文献[3]中的原控制表如表1所示,利用本文编制的模糊推理程序(采用“∨—∧”算子、最大隶属度解模糊)得到的控制表如表2所示。


  在表1、表2中最上面一行为输入量误差E的量化等级,最左一列为输入量误差变化CE的量化等级。表1与表2中的数据存在差异,这是因为表1中的带*的数据均是修正后的结果。这一点可以通过特征展开近似推理方法[4]进行验证。具体验证方法如下:
  以表1的第10行第7列为例,即E*=(0、0、0、0、0、0、1、0、0、0、0、0、0、0)、CE*=(0、0、0、0、0、0、0、0、0、1、0、0、0)为其特征向量、由特征展开近似推理方法[4]的式:
  
  可计算出α3=0.3、α4=1、β5=0.7、β6=0.7、β7=0.1、(α3∧β5)U4=0.3U4、(α3∧β6)U3=0.3U3、(α3∧β7)U3=0.1U3、(α4∧β5)U3=0.7U3、(α4∧β6)U2=0.7U2、(α4∧β7)U2=0.1U2、由其余50条规则得到的αi或βj总有一个为0,故这一对模糊输入得到的模糊输出为:
  U=0.3U4∪0.7U3∪0.3U3∪0.1U3∪0.7U2∪0.1U2
   =(0、0.14、0.49、0.7、0.49、0.56、0.7、0.3、0.15、0、0、0、0、0、0)
  经过解模糊得到精确输出为:
  u=((-4)+(-1))/2=-2.5
3.2 增加模糊量化论域的模糊控制器
  以增加模糊量化论域的模糊控制器为例进行模糊推理,计算出控制表。取误差E、误差变化CE和控制量U的量化论域均为:
  {-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10}
  取误差E、误差变化CE和控制量U的模糊论域均为:
   {NVB,NB,NM,NS,NVS,ZO,PVS,PS,PM,PB,PVB}
  误差E、误差变化CE和控制量U的隶属函数均如图5所示。


  借鉴常规模糊控制器设计经验,得到语言控制规则表、如表3所示。表中共有121条控制规则,其中一些规则可以合并。但利用计算机进行推理计算,这些规则就没必要合并了。


  利用研制的模糊推理计算程序,采用“∨—?”得到的E,CE→U控制表,如表4所示。在表中最上面一行为误差E的量化等级,最左一列为误差变化CE的量化等级。
4 仿真结果
  这里以对象
  

  为例,分别使用表2、表4中的数据构成模糊控制器,响应曲线如图6中曲线1、2所示,其中采样周期 T=0.1s。从图6中可以看出,增加模糊量化论域的模糊控制器的稳态精度明显提高。


  此程序方便地实现了模糊推理的功能,免去了手工计算的麻烦。而且,不论变量的量化等级为多大,只要给定模糊控制器的输入和输出量的隶属函数矩阵、控制规则矩阵、模糊量的特征向量矩阵,运行该软件就可快速地获得相应的模糊控制表。另外,该软件可实现“∨—∧”、“∨—· ”、 “⊕—∧”模糊算子运算及重心法、最大隶属度原则模糊判决方法。因此,本文为模糊控制的研究和应用提供了方便的条件。
参考文献
1 吴介一.提高模糊控制器精度的研究.控制理论与应用,1996;113(2):264~267
2 薛定宇. 控制系统计算机辅助设计——MATLAB语言及应用. 清华大学出版社,1997.5
3 何 平,王鸿绪.模糊控制器的设计及应用. 科学出版社:1997.1:202~206
4 陈永义,陈图云. 特征展开近似推理方法. 辽宁师范大学学报(自然),1984.3:40~42

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。