问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何利用matlab将模糊逻辑转化为查询表

发布网友 发布时间:2022-06-25 20:34

我来回答

1个回答

热心网友 时间:2024-11-02 11:34

第一步:利用matlab模糊控制工具箱设计模糊控制器。
1、在matlab命令窗口中输入 fuzzy ,产生如下窗口。

2、确定模糊控制器结构,即根据具体的系统确定输入、输出量。
这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。输入变量的添加通过 Edit -> Add Variable -> Input 实现。

3、语言值及隶属函数的确定。
首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZE,PS,PM,PB},并设置输入输出变量的论域,例如我们设置误差E、误差变化EC的论域为[-6 6],控制量U的论域为[-10 10];然后为模糊语言变量选取相应的隶属度函数。通过 Edit -> Membership Functions 打开隶属度函数编辑器,然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-6 6],添加隶属函数的个数为7。(注:隶属度函数编辑器初始时已为每个变量定义了3个隶属函数,再通过 Edit -> Add MFs 添加隶属函数时,个数选择4即可)
4、模糊控制规则的制定。
对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则。
5、解模糊。
模糊控制器的输出量是一个模糊集合,通过解模糊化方法判决出一个确切的精确量,解模糊化方法很多,我们这里选取重心法。

6、保存建立的模糊控制器。

File -> Export -> To File,文件名为 fuzzy_control。

第二步:建立Simulink模型。

1、在matlab命令窗口中输入simulink,产生如下窗口。

2、新建模糊控制器模型,样式如下。

3、在matlab命令窗口下输入 fuzzy = readfis('fuzzy_control') ,将之前建立的模糊控制器加载到工作空间,并将Fuzzy Logic Contrtoller的参数设置为fuzzy。
4、保存该模型,命名为 fuzzy_model

第三步:系统测试界面的设置。

1、通过 Tools -> System Test -> Launch System Test 进入系统测试界面。
2、添加测试模型。
鼠标选中Main Test ,菜单栏 Insert -> Test Element -> Simulink ,选择第二步中建立的模型 fuzzy_model 。
3、变量定义。
在Test Vectors 项里定义两个测试向量,变量名分别为 input1、input2,input1 = [-6:1:6], input2 = [-6:1:6];在Test Variables 里定义测试变量,变量名为output。
4、变量映射。
把测试向量input1、input2分别映射到模糊控制器的输入口 in1、in2,做为输入测试信号。把测试变量 output 映射到模糊控制器输出口out1。设置后的界面如下:
输入测试向量到模糊模型输入口映射:

5、测试数据保存。

在测试界面点Save Results项,设置如下:

6、运行测试,注意在Main Test(169 Iterations)(169次迭代,运算代价),等待测试结束。
第四步:模糊控制查询表的生成
1、系统测试结果保存在 stresults.ResultsDataSet.output 中,为169*1 cell的单元数组。(注:单元cell为 [n*1 double] 结构,表示系统被测试了n次)。
2、在matlab命令窗口下输入 test_data = stresults.ResultsDataSet.output ,将测试结果另存在变量 test_data 中。
3、测试结果格式转换。
由于所建的二维查询表为13行13列,所需的数据应该为13*13 double数组,但因为test_data为 169*1 cell 的单元数组,无法直接作为表格数据输入,因此需先进行格式转换。
在matlab命令窗口下输入 table_data = Cell2Array( test_data , 1 , 13 , 13 ) ,调用Cell2Array函数,取每个单元数组中的第一行元素,即第一次测试数据,返回结果保存在 table_data 中。
源码如下:
4、新建二维查询表模型,样式如下:

5、点开二维查询表进行如下设置:

6、点 Edit 按钮,即可查看所生成的表格。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑文件编辑好如何发送给微信如何把电脑上的文件发到微信上 笔记本电脑上的文件发送到微信怎么把电脑里的文件传到手机微信 我每天早晨吃米糊放白糖有害吗? 吃糖太多对我有好处么! 适合明年工作计划开头的句子 让人耳目一新的年度工作计划开头句子锦集五十四句 个人年度工作计划开头优美句子 让上司眼前一亮的工作计划开头语收藏四十一句 工作计划开头 怎么写工作计划开头 新干线0系电动列车的运行设备 matlab 在神经网络 模糊控制 白熊龙的身高是多少米? [宇多田光]_-_ 光 Hikari (LRc歌词 宇多田光的《Hikari》 歌词 Vivid -光-Hikari的中文歌词,求翻译一下,不要翻译器 有什么动画片里的人叫做HIKARI[光]的 李氏选字辈取名 汽车保险返现是什么意思?- 问一问 使用酒店入住软件,同一人登记了两次,登记在了同一个房间会有什么影响吗... 中国有哪些少数民族歌手 网上说让我加导师就能争钱是骗人的吗? 广告扇子哪里做的比较好? 今天买了个无线中继器器,怎么用手机设置IP地址是192.168.8.2谢谢各位... 微信上加导师赚钱是真的吗? 我买了个中继器,静态ip怎么设置 ...关注或支付宝号的,导师带你用一部手机赚钱的。赚钱真的这么... iphone6plus可以连接电视吗 iPhone 6 puls 怎么连接电视 农历1989年一月二十日是阳历的几月几号? 是什么星座的?幸运数字及星座... 1989年农历2月25日是什么星座? ...但是总是一个大姐做,我们只是去吃,这样我想蹭饭吗? ...早就只剩形式了什么意思,难道说别人的同学聚会我也能去蹭饭... 我说我去蹭饭男生不让我去 为什么还发位置给我 唐山市人才市场近期招聘会安排是怎么样的? 读了夏天里的成长想都哪首古诗? 在线考试怎么防止作弊? 考试系统防作弊怎么样?对设备要求高吗? 5座私家车拆座椅怎么处罚 世界十大最高运动员名单 世界最高的篮球运动员是谁?身高多少? 篮球运动员的最高身高? 世界上跳的最高的运动员是谁? 史上最高的篮球运动员是谁? 有谁知道世界上最高的篮球运动员是多高吗? 世界身高最高男女运动员? 沈阳华润置地翡翠城装修多少钱一平z? 华润翡翠城为什么不能上就近入学 华润置地翡翠城适合哪种收入的人居住 华润置地翡翠城一期交通方便吗?应该怎么过去? 华润置地翡翠城一期怎么样?好不好?值不值得买?