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 参数,故
popularizing various practical applications with fuzzy control technology as the core.Key words : Fuzzy Control;Fuzzy Control Rules Off-line Query Table;MATLAB
图1 二维温度模糊控制器
61
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
图5 测试向量映射结果
三角函数查询表图6 测试变量映射结果
⑤点击Run 运行测试:
由于测试输入向量input1、input2的取值范围Expression 均为[-6:1:6],因此,Main Test 会进行169次迭代。
(4)查看测试结果:
测试成功,测试结果保存在变量stresults 中。对模糊控制规则查询表的查看有多种方法,这里主要介绍常用的较table_data=reshape(temp,13,13)
MATLAB 命令窗口中显示最终的模糊控制查询结果:
②点击左侧工作区中变量table_data,则模糊控制查询结果以表格的形式显示在命令窗口的上端:
在这个表中,左侧对应E,顶端对应EC,范围均为[1..13],对应理论分析的离散论域范围[-6:1:6]。实际应用此表进行模糊控制查询时,仍然用[1..13],便于查询式编程。
(下转第70页)
函数时,也出现了梯度消失的问题。使用Leaky ReLU 函数时不会出现梯度消失问题,计算效率高,快速收敛,避免了前两
个函数遇到的问题。
[2]姚青,张超,王正,等.分布式移动农业病虫害图像采集与
诊断系统设计与试验[J].农业工程学报,2017,33(S1): 184-191.
③利用二维真值表查看
重新建立二维真值表仿真模型,见图7,二维真值表模块参数设置见图8。与图3的区别在于用二维真值
表取代模糊控制器。
图7 二维真值表仿真模型
图8 二维真值表模块参数设置
点击二维真值表仿真模型工作窗口菜单项Edit → Lookup Table Editor 即可以查看模糊控制规则查询表。
3 结论
鉴于模糊控制的应用越来越广泛,因此,学习如何利用
MATLAB 仿真工具,方便而迅速地建立模糊控制规则离线查询表,对于我们在各种控制平台,应用和推广模糊控制技术定
会带来极大的地帮助。
参考文献
[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.
(上接第61页)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论