基于Matlab的模糊查询表生成方法探讨

2014-05-16 09:54叶伊莎
实验室研究与探索 2014年5期
关键词:模糊控制偏差向量

叶伊莎, 任 佳

(浙江理工大学自动化系,浙江杭州 310018)

基于Matlab的模糊查询表生成方法探讨

叶伊莎, 任 佳

(浙江理工大学自动化系,浙江杭州 310018)

模糊查询表是模糊控制器的一种离线对等表格,该表描述了输入的偏差、偏差变化量与控制的输出之间一一对应的关系。为便于相关专业的本科生深入了解模糊查询表,进一步学习掌握模糊查询表并进行拓展应用,本文对基于Matlab的模糊查询表三种生成方法进行了探讨。本文以简单的单回路控制系统为例,分别阐述了逐个代入计算法、TOOL测试向量生成法和M文件编译法这三种模糊查询表的生成方法。通过探讨与仿真,对三者的优缺点进行了简单的总结。

Matlab;模糊查询表生成;探讨;仿真

0 引言

模糊控制[1-2]是基于模糊推理的智能控制的简称,它借助于模糊数学模拟人的思维方法,将操作员的经验加以总结,运用语言变量和模糊逻辑理论进行推理和决策,实现对复杂对象的控制。模糊查询表是模糊控制器的一种离线对等表格,该表描述了输入的偏差、偏差变化量与控制的输出之间一一对应的关系。它通过事先将模糊论域内的输入值遍历而得到的相应输出值制作成表,从而可以在实际运行时代替实际的模糊控制器,能够大大节省运算的时间。利用模糊查询表可以方便地实现模糊控制在各种控制平台的应用[3],如单片机,可编程逻辑控制器(PLC),集散控制系统(DCS)等,因此,深刻理解模糊查询表的作用,并能熟练获取模糊控制器对应的模糊查询表对模糊控制器的实际应用和推广至关重要。

为便于相关专业的本科生在在学习模糊控制时能够更加清晰深入地了解模糊查询表,进而拓展模糊控制在各种控制平台中的应用,本文对基于Matlab的模糊查询表生成方法进行详细的探讨与阐述,便于大家在日后应用中进行参考。

基于Matlab[4-6]的模糊查询表的生成方式有三种:逐个代入计算法[1]、TOOL测试向量生成法[7]和 M 文件编译法[8-9]。本文将就这三种模糊查询表生成法作详细介绍。

以简单的单回路控制系统为例[10-12],其被控对象为2/(5s+1)。设模糊控制输入的偏差E和偏差的变化EC的模糊论域为[-3 3],输出U的模糊论域为[-1 1]。现已利用Simulink搭建并定义运行完成该模糊控制系统仿真图,如图1所示。

图1 单回路模糊控制仿真图

1 逐个代入计算法

逐个代入计算法顾名思义就是将输入值逐个代入模块从而得到对应输出的一种方法。该方法是三个方法中最简单的一种。只需利用图1中定义好的模块(复制Fuzzy Logic Controller模块),对应连接输入输出如图2所示。

输入X和Y的定义域均为[-3 3],将X={-3,-2,-1,0,1,2,3}和Y={-3,-2,-1,0,1,2,3}分别取值,代入Constant模块,设定仿真终止时间为0.02,运行该Simulink模型,同时记录Display模块中的数值,将得到的值制作成表格,即为模糊查询表。本次运行生成的表格如表1所示。

图2 逐个代入计算法图

表1 逐个代入计算法得到的模糊查询表

2 TOOL测试向量生成法

TOOL测试向量生成法同样是利用了图1中所定义好的模块(复制Fuzzy Logic Controller模块),对应的输入输出连接如图3所示,命名为Test。两个输入模块Constant的值可以定义为A=0,B=0。

图3 TOOL测试向量生成法图(Test文件)

在Test文件的菜单栏选择Tools→System Test...之后会跳出 SystemTest界面,命名为 T.test。选中Main Test在菜单栏选择 Insert→Test Element→Simulink,再在出现界。Open a model选择 Test.mdl文件作为Simulink model。

在 Test Vectors新建 TestVector1[-3∶1∶3].TestVector2[-3∶1∶3],当然,为了使模糊曲线更加光滑,步长可以缩短。在Test Variables新建的命名为Out。

在如图4所示界面Define Model Overrides选择New Mapping→Select Block to add...之后,会跳出Test.mdl文件界面,鼠标左键 Constant,分别选择Simulink Data和System Test Data相应的选项。同理新建Constant1。Map Simulink Data to Test Variables选择 New Mapping→Outport Signal,同样分别选择Simulink Data和System Test Data相应的选项(设置后的界面如图4所示)。

图4 Properties-sinmulink设置

选择Save Results→New Mapping,设置相应选项。如图5所示。

图5 Properties-Save Results设置

设置完毕后Run,需要等待一定的时间。运行结束Tools→Test Results Viewer绘制图像。在如图6所示界面设置XAxis和YAxis→Plot。绘制后的的图像如图7所示。保存图像,命名为Plot.mat。

图6 设置X Axis和Y Axis

图7 Plot图像

返回Matlab主界面,打开Plot.mat。在Workspace中选择stresults<1*1 struct>→variable→Out就可以看到如图8所示矩阵。

图8 Workspace中Out的输出矩阵

再次利用了图1中所定义好的模块(复制Fuzzy Logic Controller模块),新建文件对应的输入输出连接如图9所示。鼠标左键双击Lookup Table(2-D)模块,在出现的界面中输入如图10所示数据,点击Edit,立刻出现如图11所示Lookup Tables(2-D)模糊查询表。

图9 Lookup Table(2-D)图

图10 Lookup Table(2-D)编辑

图11 Lookup Table(2-D)生成模糊查询表

3 M文件编译法

M文件编译法是相对来说比较深入的一种,它需要对模糊规则[13-14]、模糊关系[15]以及模糊输入输出有一定的知识储备。

首先要定义输入的偏差和输入的偏差的变化量,分别为A、B,它们分别为13×13的矩阵,矩阵值由图1中Fuzzy Logic Controller内所定义的模糊规则而定。关系矩阵根据事先定义的模糊控制规则得出。

下述为通过M文件生成模糊查询表的具体程序与部分解析:

由上述M语言程序运行后所得出的查询表如表2所示。为便于与逐个代入计算法和Tool工具生成法得到的查询表相对比,经整理,提取后得出如表3所示的简易查询表。

表2 M文件编译法得到的模糊查询表

表3 整理后M文件编译法得到的模糊查询表

4 结语

上述为基于Matlab的三种生成模糊查询表的方法:逐个代入计算法、TOOL测试向量生成法和M文件编译法的简单探讨。其中,逐个代入计算法设计简单,但数值需要一个个手动输入,且得到的数值须人工填入预先设计的表格,从而得到模糊查询表,其实现效率低下。TOOL测试向量生成法直接利用Matlab现有的推理系统,在Lookup Table(2-D)得到模糊查询表。但是该操作有一定的软件版本要求(如本文在Matlab2007版操作),版本过高的Matlab中无法通过Test Results Viewer绘制图像,导致无法得出相应的查询表。M文件编译法是从最基本的模糊查询原理出发,进行语言编译的一种方法。该方法要求应用者具备一定的编程基础。从三种方法得出的模糊查询表来对比分析,逐个代入计算法和TOOL测试向量生成法得出的模糊查询表结果一致,但与M文件编译法得出的模糊查询表有一定的偏差。这是因为逐个代入计算法和TOOL测试向量生成法得到的查询表都和测试向量的维数有关,当进一步细分输入论域的语言值,增加模糊控制规则,例如从原来的7*7矩阵增加到9*9矩阵后,用逐个代入计算法和TOOL测试向量生成法得出的模糊查询表便会更加接近于M文件编译法生成的模糊查询表。如果输入语言值继续细分、模糊控制规则数量继续增加,三种方法得出的模糊查询表之间的误差将不断减小直至趋近于零。

[1] 巩敦卫,孙晓燕.智能控制技术简明教程[M].北京:国防工业出版社,2010.

[2] 崔 涛,赵 莉.模糊控制理论和应用的发展概况[J].自动化仪表,2002,23(7):1-3.

CUI Tao,ZHAO Li.The Developing Survey of the Theory and Application of Fuzzy Control[J].Automation Instrumentation,2002,23(7):1-3.

[3] 李友善,李 军.模糊控制理论及其在过程控制中的应用[M].北京:国防教育出版社,1993.

[4] 李祖欣.MATLAB在模糊控制系统设计和仿真的应用[J].系统仿真学报,2003(1):132-143.

LI Zu-xin.Application of MATLAB in the Design and Simulation of Fuzzy Control System[J].Journal of System Simulation,2003(1):132-134.

[5] 刘革辉,单杰峰,郑楚光.Matlab软件中的Fuzzy Logic工具箱在模糊控制系统仿真中的应用[J].计算机仿真,2000,17(5):69-72.

LIU Ge-jun,SHAN Jie-feng,ZHENG Chu-guang.The Application of Matlab’s Fuzzy Logic Toolbox on Simulation of Fuzzy Control System[J].Computer Simulation,2000,17(5):69-72.

[6] 孙 亮.MATLAB与控制系统仿真[M].北京:北京工业大学出版社,2001.

[7] 鲲鹏展翅.如何在MATLAB下把模糊推理系统转化为查询表(原 创 ). http://brhwww. blog. 163. com/blog/static/618178852010625105559476/

[8] 叶高文.模糊控制查询表的MATLAB实现[J].工业控制计算机,2010,23(11):64-66.

YE Gao-wen.MATLAB realization of Fuzzy Control Query Table[J].Industrial Control Computer,2010,23(11):64-66.

[9] 刘天龙,宁 利,沈文浩.模糊控制查询表的快速获取及在造纸污水过程中的应用[J].造纸科学与技术,2011,30(04):78-82.

LIU Tian-long,Ning Li,SHEN Wen-hao.A Quick Way to Get Fuzzy Control Query Table and Its Application in Papermarking Wastewater Treatment Process[J].Paper Science & Technology,2011,30(04):78-82.

[10] 李 博,龚晓宏.基于MATLAB的模糊控制系统的优化设计与仿真[J].机械工程与自动化,2005,4(02):78-83.

LI Bo,GONG Xiao-hong.Optimization Design and Simulation of Fuzzy ControlSystem Based on MATLAB[J].Mechanical Engineering & Automation,2005,4(02):78-83.

[11] 何致远.模糊控制技术在温度控制实验中的应用[J].实验室研究与探索,1999(6):50-51.

HE Zhi-yuan.Application ofFuzzy-ControlTechnology in an Experiment of Temperature Control[J].Research and Exploration in Laboratory,1999(6):50-51.

[12] 秦绪平,谷善茂.基于模糊PI控制的通风机风量控制[J].电气应用,2008,27(16):34-37.

QIN Xu-ping,GU Shan-mao.Fan’s Wind Rate Control Methods Based on Fuzzy-PI Control[J].Electrotechnical Application,2008,27(16):34-37.

[13] 高宏岩,王建辉,孙盛骐.一种建立模糊控制查询表的简单方法和程序[J].电脑与信息技术,2003(4):47-49.

GAO Hong-yan,WANG Jian-jun,SUN Sheng-qi.A Simple Method and Program of Building the Fuzzy Control Query[J].Computer and Information Technology,2003(4):47-49.

[14] 罗艳蕾.一种模糊控制系统算法模型及查询表的设计[J].现代机械,2003(2):21-23.

LUO Yan-lei.Designing the Model of Calculation and the Figure of Rule for Fuzzy Control System[J].Modern Machinery,2003(2):21-23.

[15] 谷敏强.一类模糊关系方程的求解问题[J].汕头大学学报,2009,23(1):13-21.

GU Min-qiang.Resolution ofSpecialType ofFuzzy Relation Equations[J].Journal of Shantou University,2009,23(1):13-21.

The Discussion of Creating a Fuzzy Lookup Table Based on the Matlab

YE Yi-sha,REN Jia
(Department of Automation,Zhejiang Sci-Tech University,Hangzhou 310018,China)

A fuzzy lookup table is an off-line equivalent form of a fuzzy controller.This table describes one-to-one relationship between the input deviation,the deviation of variation and the output of the control.In order to help undergraduates to understand the Fuzzy Lookup Table deeply,and further expand its application,three methods for obtaining Fuzzy Lookup Table based on Matlab software are introduced based on Matlab software.Taken Taking a single loop control system as an example,successive substitution calculation method,TOOL test vector generation method and m file compiling method are discussed.By means of discussion and simulation,the advantages and disadvantage of each method disadvantages are also summarized.

Matlab;fuzzy lookup table creation;discussion;simulation

TP 273

A

1006-7167(2014)05-0101-06

2013-07-04

浙江理工大学《集散控制系统》系列课程

叶伊莎(1991-),女,本科在读。

任 佳(1977-),女,山西晋中人,博士,副教授。主要研究方向:智能控制,智能优化算法及其应用。

E-mail:jren@zstu.edu.cn

猜你喜欢
模糊控制偏差向量
向量的分解
聚焦“向量与三角”创新题
如何走出文章立意偏差的误区
两矩形上的全偏差
T-S模糊控制综述与展望
基于模糊控制的PLC在温度控制中的应用
向量垂直在解析几何中的应用
基于模糊控制的恒压供水系统的研究
关于均数与偏差
向量五种“变身” 玩转圆锥曲线