您好,欢迎来到99网。
搜索
您的当前位置:首页基于MATLAB生成模糊控制规则离线查询表

基于MATLAB生成模糊控制规则离线查询表

来源:99网
网络与信息工程2019.06基于MATLAB生成模糊控制规则离线查询表刘淑荣1,金波2(1.长春工程学院电信与信息工程学院,吉林长春,130012;2.吉林春精密机械厂,吉林长春,130021)摘要:模糊控制是一种基于规则的近似推理的非线性智能控制,在实际控制中得到越来越广泛的应用。模糊控制规则表是模糊控制的核心,采用传统的手工生成方式,计算量较大且容易出错,因此,本文详细讲述如何利用MATLAB仿真工具,方便而迅速地建立模糊控制规则离线查询表,对于推广以模糊控制技术为核心的各种实际应用带来极大的便利。关键词:模糊控制;模糊控制规则离线查询表;MATLABGeneration of fuzzy control rule off-line query table based on MATLABLiu Shurong1,Jin Bo2(1.FacultyofElectrical & Information Engineering, Changchun Institute of Technology,Changchun Jilin,130012; 2.Changchun Precision Machinery Factory,Changchun Jilin,130021)Absrtact:Fuzzy control is a kind of nonlinear intelligent control based on approximate reasoning, which is widely used in practice. Fuzzy control rule table is the core of fuzzy control, If the traditional manual generation method is adopted, the calculation is heavy and error prone.Therefore, this paper describes in detail how to use the MATLAB simulation tool to establish the fuzzy control rule off-line query table conveniently and quickly, which will bring great convenience for popularizing various practical applications with fuzzy control technology as the core.Key words: Fuzzy Control;Fuzzy Control Rules Off-line Query Table;MATLAB

0 引言

模糊控制隶属于智能控制,是一种基于规则的近似推理的非线性智能控制。如果说,传统的控制方式需要被控对象精确的数学模型,而模糊控制则是以人类智能活动的角度为基础实施控制,因此,在实际中,传统控制方法为力的非线性场合,模糊控制却能起到很好的控制作用。因此,实际应用中,由于系统复杂、很难建立精确数学模型的非线性系统,模糊控制已经成为一种最有效的控制方法。

模糊控制规则表是模糊控制的核心,其描述的是输入的偏差、偏差变化量与控制的输出之间的对应关系,采用手工计算方式,量大且费时;采用在线计算方式,往往又影响系统被控对象的实时控制效果。因此,在应用模糊控制时,首先针对输入的不同组合,采用离线计算方式算出相应的控制输出量,构成模糊控制规则查询表,实际控制时再将模糊控制规则查询表嵌入在各种控制平台,如单片机、PLC等,实现离线计算、在线查表,这样,一方面减少了模糊控制的在线运算量,同时又实现了模糊控制的实时控制效果。

实际应用中发现,对模糊控制规则表的生成,在离散论域分档较少的条件下,多采用手工计算,而在离散论域分档较多的条件下,手工计算量太大,用MATLAB软件编程实现,对MATLAB软件的编程能力要求又较高,因此,本文以二维温度模糊控制规则查询表的生成为例来说明如何简单有效的利用MATLAB软件生成模糊控制规则离线查询表。

1 实例分析

应用MATLAB2014a软件说明生成模糊规则离线查询表的过程。

设二维温度模糊控制器[1 2]的输入为温度偏差E和温度偏差变化率EC,输出为温控器输出电压U。模糊控制器模型见图1。

2 模糊控制规则离线查询表生成步骤[3 4 5]

(1)利用模糊逻辑控制工具箱生成温度模糊推理系统在MATLAB2014a命令窗口中输入fuzzy打开模糊控制工具箱,编辑输入输出变量的隶属度函数和模糊控制规则,然后将模糊推理系统保存为mytest.fis。

设温度偏差E、偏差变化率EC和温控器输出电压U的模糊论域为[-6 6],三者的语言变量赋值均为{NB,NM,NS,Z,PS,PM,PB},各语言值的隶属函数均采用三角函数,如图2所示,并根据温度模糊控制规则表1逐条添加模糊控制规则,清晰化采用加权平均法。

(2)建立模糊逻辑控制器的MATLAB-Simulink仿真模型在该模型中,模糊逻辑控制模块需要输入FIS matrix参数,故

图1 二维温度模糊控制器

602019.06首先在MATLAB命令窗口中输入:fuzzycontrol=readfis(‘mytest’)将之前建立的模糊控制推理系统加载到工作空间,再将Simulink仿真模型中模糊逻辑控制模块的参数设置为fuzzycontrol,见图4,并保存该仿真模型为fuzzymodel.mdl。图2 语言变量E、EC和U的赋值表1 温度模糊控制规则表UECNBNMNSZPSPMPBNBNBNBNBNBNMZZNBNBNBNBNBNMZZNSNMNMNMNMZPSPSEZNMNMNSZPSPMPMPSNSNSZPMPMPMPMPMZZPMPBPBPBPBPBZZPMPBPBPBPB图3 模糊逻辑控制器的MATLAB-Simulink仿真模型图4 仿真模型中模糊逻辑控制模块参数设置

(3)测试MATLAB-Simulink仿真模型fuzzymodel①首先添加测试仿真模型:

Simulink环境下,由fuzzymodel窗口中菜单栏Tools→SystemTest→launch SystemTest,进入测试界面。

选中左侧Main Test,再由测试界面菜单栏 Insert→Test Element→Simulink,在右侧填入已建立的MATLAB-Simulink仿真模型 fuzzymodel。

②其次,添加与仿真模型匹配的输入测试向量和输出测试变量:

选中左侧Test Vectors,右侧单击New新建,添加两个测试向量input1和input2,取值范围Expression均为[-6:1:6];在Test Variables里添加测试变量output。

③将输入测试向量和输出测试变量与仿真模型输入输出进行变量映射:

选中左侧Main Test下Simulink,将测试向量input1、input2分别映射到模糊控制器的输入口In1、In2,见图5。

将测试变量output映射到模糊控制器输出口Out1,见图6。

④最后预先保存测试数据:

选中左侧Main Test下Save results,单击右侧new

网络与信息工程mapping将测试结果保存在测试变量output中。图5 测试向量映射结果图6 测试变量映射结果⑤点击Run运行测试:由于测试输入向量input1、input2的取值范围Expression均为[-6:1:6],因此,Main Test会进行169次迭代。(4)查看测试结果:测试成功,测试结果保存在变量stresults中。对模糊控制规则查询表的查看有多种方法,这里主要介绍常用的较简单的三种方法。①在MATLAB命令窗口查看模糊控制规则查询表在MATLAB命令窗口敲入如下指令:test_data=stresults.ResultsDataSet.output;temp=zeros(169,1);for i=1:169temp(i)=test_data{i}(6);endtable_data=reshape(temp,13,13)

MATLAB命令窗口中显示最终的模糊控制查询结果:

②点击左侧工作区中变量table_data,则模糊控制查询结果以表格的形式显示在命令窗口的上端:

在这个表中,左侧对应E,顶端对应EC,范围均为[1..13],对应理论分析的离散论域范围[-6:1:6]。实际应用此表进行模糊控制查询时,仍然用[1..13],便于查询式编程。

(下转第70页)

61网络与信息工程2.3.3 实验模型参数调试本文以GoogLeNet卷积神经网络模型为基础结合神经计算棒进行监督学习训练,在每次模型训练之前先将数据库中的图像进行分类打标签,然后每种农作物随机选取其80%图片作为训练集,20%作为测试集。主体流程如图4所示,卷积神经网络如图5所示。2019.06使用Leaky ReLU函数并且增加迭代次数、卷积层数以及图像数量时,正确率相对于最初使用的函数明显提高。玉米相对于水稻、小麦而言,其叶片面积较大,处理起来速度较快,精度也比较高。水稻、小麦的叶片比较细长,并且种植比较密集,因此叶片的重叠比较严重,处理速度相对于玉米来说较慢,精度稍微较低,因此需要改进算法,优化程序。4 小结卷积神经网络和图像识别技术已经比较完善,足够工程师进行开发使用,但是能够熟练使用的人并不多,原因就是不知道使用哪些硬件,怎样快速高效的学习。目前图像识别技术主要是对图像进项灰度化处理然后提取特征、分析,在识别之前需要使用大量的图片对模型进行训练,训练好的模型能够自动完成对图像的识别、描述、分类。在农作物病虫害图5 卷积神经网络判断中使用基于卷积神经网络的图像识别技术有利于提高对农作物病虫害判断的效率,降低了农民对病虫害识别的难度,避免因经验不足而诊断错误导致的农药污染与浪费,更有利于及时发现病虫害进行有效的防治。3 分析讨论经过试验得出,使用卷积神经网络来识别农作物病虫害时,识别精度受激励函数、迭代次数、卷积层数及图像数量的影响。当使用Sigmoid函数时,会出现饱和神经元,这些神经元会影响其他神经元权重的更新,导致无法执行网络的反向传播,其计算成本比较高并且输出不以零为中心。使用Tanh函数时,也出现了梯度消失的问题。使用Leaky ReLU函数时不会出现梯度消失问题,计算效率高,快速收敛,避免了前两个函数遇到的问题。

参考文献[1]龚丁禧,曹长荣.基于卷积神经网络的植物叶片分类[J].计算机与现代化,2014(4):12-19.[2]姚青,张超,王正,等.分布式移动农业病虫害图像采集与

诊断系统设计与试验[J].农业工程学报,2017,33(S1): 184-191.

(上接第61页)

③利用二维真值表查看

重新建立二维真值表仿真模型,见图7,二维真值表模块参数设置见图8。与图3的区别在于用二维真值表取代模糊控制器。

MATLAB仿真工具,方便而迅速地建立模糊控制规则离线查询表,对于我们在各种控制平台,应用和推广模糊控制技术定

图7 二维真值表仿真模型

会带来极大的地帮助。

参考文献

[1]罗兵等.智能控制技术[M].北京:清华大学出版社,2011.

[2]刘金琨.智能控制[M].北京:电子工业出版社,2009.[3]李祖欣.MATAB在模糊控制系统设计和仿真的应用[J].

系统仿真学报,2003 (1) :132-143.

[4]叶伊莎等.基于Matlab的模糊查询表生成方法探讨[J].

实验室研究与探索,2014,5:101-106

[5]刘天龙等.模糊控制查询表的快速获取及在造纸污水过程

中的应用[J].造纸科学与技术,2011.30 (04) :78-82.

图8 二维真值表模块参数设置

点击二维真值表仿真模型工作窗口菜单项Edit→ Lookup Table Editor即可以查看模糊控制规则查询表。

3 结论

鉴于模糊控制的应用越来越广泛,因此,学习如何利用

70

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务