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

合集下载

模糊控制查询表的MATLAB实现

模糊控制查询表的MATLAB实现

万方数据
模糊控制查询表的MATLAB实现
O 0 0 0 0 0 0 O 0 0 0 0.5 1】: B=[1 O.5 0 0 0 0 0 O 0 O 0 O 0:
0 0.5 1 0.5 0 0 0 O 0 O 0 0 0: 0 0 0 0.5 1 0.5 O 0 0 0 0 0 0: 0 0 0 O 0 0.5 1 O.5 0 0 0 0 0: 0 0 0 0 O O 0 0.5 1 O与O 0 0: 0 O 0 O O O 0 0 0 O.5 1 0.5 0: O O O 0 O 0 O O O O 0 O.5 1】: R=【7 7 7 6 6 5 4;
本文提供一个实际工业控制的模糊查询表的MATLAB实 现过程,模糊PI模型如图1。
图1模糊PI控制器模型 如图1,模糊控制器的输入量采用实际被控制量与给定量 的偏差e和偏差变化率ec,参数整定机构采用增量型调整原 理,输出为比例系数增量△KP和积分时间增量△Ti,再经式KP= KP0+△KP和式T.=T一△Ti计算得到PI控制器的比例系数KP和 积分时间值TI。 2模型输入输出模糊控制规则表 2.1定义输入输出变量的隶属度矢量表 一般情况下,输入量偏差e和偏差变化率△e以及输出变量 △KP和△Ti的离散论域都设定为13个量化等级{一6,一5,一4,一3, 一2,一1,0,1,2,3,4,5,6l。为方便MATLAB编程,对相关的变量 选择进行一些改变。原先的输入变量偏差e和偏差变化率ec的 量化等级卜6,一5,一4,一3,一2,一1,0,1,2,3,4,5,6}改写为{1,2,3, 4,5,6,7,8,9,10,11,12,13}。而输出变量△KP和△Ti得量化等
表3用数字语言值表示的△TI模糊控制规则
△TI

第4章模糊控制matlab实现

第4章模糊控制matlab实现

参数a和c确定三角 形的“脚”,而 参数b确定三角形 的“峰”
第4章模糊控制matlab实现
4.1.3 FIS数据结构管理函数 1. addmf
功能:将隶属度函数添加到FIS 格式:a=addmf(a,’varType’,
varIndex,’mfName’,’mfType,mfParams) addmf函数有6个变量 (1)a: 工作空间中的FIS结构变量名 (2)varType: 要添加的隶属度函数的变量类型 (3)varIndex: 要添加的隶属度函数的变量编号 (4)mfName: 新添加的隶属度函数名 (5)mfType: 新隶属度函数的类型 (6)mfParams: 指定隶属度函数的参数向量
第4章模糊控制matlab实现
取水位误差e和误差变化率ec作为模糊控制器的 输入变量。其中:e=r-y(误差=设定值-测量值)。 选取误差e的论域范围:[-1¸+1],3个语言变量 值为:negative、zero、positive,它们的隶属度函 数均取gaussmf;水位变化率ec的论域也为: ¸+0.1],3个语言变量值为:negative、zero、 positive,它们的隶属度函数均取gaussmf;确定输 出变量数为1个,名为u,其论域为[-1¸+1],5 个语言变量值为close-fast、close-slow、no-chang、 open-slow、open-fast,隶属度函数选为trimf。
第4章模糊控制matlab实现
4.1 认识实验
4.1.1 GUI(图形用户界面) 工具箱函数 1. anfisedit
功能:打开ANFIS编辑器的GUI 格式: anfisedit(‘a’)
anfisedit(a) anfisedit 说明:利用anfisedit函数打开ANFIS编辑器的GUI, 从中可装入数据集合并训练ANFIS。 anfisedit(‘a’)可从磁盘中装入名为的FIS文件,并打开 ANFIS编辑器。利用anfisedit(a)可按同样的方式打开 FIS结构变量a。

2基于MATLAB的位置跟踪系统模糊控制仿真

2基于MATLAB的位置跟踪系统模糊控制仿真

实验二 基于MATLAB 的位置跟踪系统模糊控制仿真一、实验目的及要求1.能针对某系统(如二阶系统),设计出能够跟踪某一位置曲线的模糊控制器; 2.能够用MATLAB 软件中的M 文件实现模糊控制器;3.能够用MATLAB 软件的Simulink 工具实现位置跟踪系统,其中控制器由M 文件实现的模糊控制器提供。

二、仪器、设备微型计算机(安装有 MATLAB 软件) 1台 三、实验任务 针对一个二阶系统 s50s 400)(2+=s G试设计模糊控制器,实现其控制输出为正弦信号0.8sin(10t)。

四、利用MATLAB 的Simulink 模块实现位置跟踪系统的模糊控制五、利用MATLAB 的M 文件实现位置跟踪系统的模糊控制器仿真 1. 模糊控制器的设计步骤1) 模糊控制器的结构二输入、单输出的模糊控制器是最常见的结构形式。

System fuzzf: 2 inputs, 1 outputs, 49 rulesec (7)图2-1 模糊控制器的结构示意图2) 定义输入输出模糊集对误差E 、误差变化EC 及控制量u 的模糊集及其论域定义如下:E 、EC 和u 的模糊集均为: {}PB PM PS Z NS NM NB ,,,,,,E 、EC 的论域均为:{-3,-2,-1,0,1,2,3} u 的论域为:{-4.5,-3,-1.5,0,1,3,4.5}3) 定义输入输出隶属函数模糊变量误差E 、误差变化EC 及控制量u 的模糊集和论域确定后,需对模糊语言变量确定隶属函数,确定论域内元素对模糊语言变量的隶属度。

4) 建立模糊控制规则根据人的经验,根据系统输出的误差及误差的变化趋势来设计模糊控制规则。

模糊控制规则语句构成了描述众多被控过程的模糊模型。

5) 建立模糊控制表模糊控制规则可采用模糊规则表2-1来描述,共49条模糊规则,各个模糊语句之间是或的关系,由第一条语句所确定的控制规则可以计算出u1。

如何利用Matlab进行模糊控制

如何利用Matlab进行模糊控制

如何利用Matlab进行模糊控制引言近年来,随着科技的不断发展,模糊控制作为一种重要的控制方法,在各个领域得到了广泛的应用。

而Matlab作为一款功能强大的数学工具软件,对于模糊控制的实现提供了便捷的支持。

本文将介绍如何利用Matlab进行模糊控制,以及其在实际应用中的优势和局限性。

一、模糊控制简介模糊控制是一种基于模糊逻辑的控制方法,它通过将模糊规则应用于控制系统,使其能够对不确定性和模糊信息进行处理。

与传统的精确控制方法相比,模糊控制更适用于处理复杂系统或无法精确建模的系统。

二、Matlab中的模糊控制工具箱Matlab提供了专门的模糊控制工具箱,可以方便地实现模糊控制系统的建模、仿真和优化等操作。

在Matlab的模糊控制工具箱中,主要包括两个核心部分:模糊推理引擎和模糊控制器。

1. 模糊推理引擎模糊推理引擎是模糊控制系统的核心部分,它负责根据输入和模糊规则,对系统进行推理和输出控制量。

在Matlab中,可以使用命令"newfis"来创建一个新的模糊控制系统,然后通过定义输入和输出变量、设定隶属函数和模糊规则等步骤,来构建一个完整的模糊控制系统。

2. 模糊控制器模糊控制器是模糊控制系统的具体实现,它将模糊推理引擎与输入输出之间的映射关系结合起来。

在Matlab中,可以使用命令"newfis"创建一个新的模糊控制系统,然后使用"addInput"和"addOutput"来添加输入和输出变量,最后通过设定隶属函数和模糊规则等步骤,来实现模糊控制器的搭建。

三、模糊控制的实际应用模糊控制在实际应用中有着广泛的应用领域,例如机器人控制、汽车导航、电力系统等。

下面将以一个模拟小车控制的实例来介绍如何利用Matlab进行模糊控制。

假设有一个小车需要根据距离和角度来控制其行驶方向和速度。

首先要定义输入和输出变量,这里我们将距离划分为近、中、远三个模糊集,角度划分为左、中、右三个模糊集,行驶方向划分为左转、直行、右转三个模糊集,行驶速度划分为慢、中、快三个模糊集。

Matlab-的-Fuzzy-工具箱实现模糊控制(rulelist的确定)

Matlab-的-Fuzzy-工具箱实现模糊控制(rulelist的确定)

引用如何在MATLAB下把模糊推理系统转化为查询表(原创)Matlab 2009-12-26 22:05:01 阅读161 评论0 字号:大中小订阅引用foundy的如何在MATLAB下把模糊推理系统转化为查询表(原创)李会先摘要:该文论述了将MATLAB下调试成功的模糊逻辑转换为查询表的一种技巧,这种技巧不直接使用MATLAB的矩阵计算方法,操作者多数情况下只需点击鼠标就可完成任务,效率比较高,该方法使用MATLAB下的系统测试工具,收集构造查询表所需的数据资料,文中以MATLAB中的水位模糊控制演示模型为例,把该系统的模糊控制推理模块用在其基础上生成的查询表代替后再进行水位控制仿真,控制效果与模糊推理模块在线推理控制是一致的。

关键词:模糊控制;查询表;MATLAB;Simulink; 系统测试Abstract:This article discuss a skill that make a translation from fuzzy logic system to Lookup Table in Matlab,It doesn't use matrix computing, user need only to drag and draw the mouse completing this task,It's a efficiency method which to collect data for Lookup Table construction from a fuzzy controller by SystemTest Toolbox in Matlab,in the article,I will discuss the skill by a demo which is the Water Level Control in Tank in the Fuzzy logic Toolbox,at last,I simulate the Water Control in Tank instead of the Fuzzy Controller with the Lookup Table which I have constructed,the test results is verywell.Keywords: Fuzzy Logic, Matlab,Simulink,Lookup Table,SystemTest1. 引言在MATLAB/Simulink下,构建模糊逻辑系统模型和调试其推理规则都是很方便的[3][4],我们当然不希望在MATLAB下的仿真工作仅仅用于仿真目的,如果实际产品设计能继承仿真的工作成果,将事半功倍。

matlab计算模糊控制表

matlab计算模糊控制表

m a t l a b计算模糊控制表(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--Matlab计算模糊控制表实现程序如下:clc; %清空命令窗口clear; %清空工作空间e=[1,,,,,0,0,0,0,0,0,0,0;,,1,,,0,0,0,0,0,0,0,0;0,,,,1,,,0,0,0,0,0,0;0,0,0,0,,,1,0,0,0,0,0,0;0,0,0,0,0,0,1,,,0,0,0,0;0,0,0,0,0,0,,,1,,,,0;0,0,0,0,0,0,0,0,,,1,,;0,0,0,0,0,0,0,0,,,,,1] %误差的隶属度函数表,8*13的矩阵eb=[1,,,0,0,0,0,0,0,0,0,0,0;,,1,,,0,0,0,0,0,0,0,0;0,0,,,1,,,0,0,0,0,0,0;0,0,0,0,,,1,,,0,0,0,0;0,0,0,0,0,0,,,1,,,0,0;0,0,0,0,0,0,0,0,,,1,,;0,0,0,0,0,0,0,0,0,0,,,1] %误差变化率的隶属度函数表,7*13的矩阵;u=[1,,,0,0,0,0,0,0,0,0,0,0;,,1,,,0,0,0,0,0,0,0,0;0,0,,,1,,,0,0,0,0,0,0;0,0,0,0,,,1,,,0,0,0,0;0,0,0,0,0,0,,,1,,,0,0;0,0,0,0,0,0,0,0,,,1,,;0,0,0,0,0,0,0,0,0,0,,,1] %输出控制量u,7*13的矩阵;rulelist=[1,1,1,1,2,4,4;1,1,1,1,2,4,4;2,2,2,2,4,5,5;2,2,3,4,5,6,6;2,2,3,4,5,6,6;3,3,4,6,6,6,6;4,4,6,7,7,7,7;4,4,6,7,7,7,7] %控制规则表,为8*7=56条规则;for ey=1:13 % 输入变量e的13个取值:-6——6;for eby=1:13 %输入变量eb的13个取值:-6——6;for ex=1:8 % 输入变量e的8个语言变量NB----PB;for ebx=1:7 % 输入变量eb的7个语言变量NB---PB;arule=rulelist(ex,ebx); %取一条规则;C=u(arule,:);%取这条规则的C的隶属度;代表取一行A=e(ex,:);%取这条规则的A的隶属度;代表取一行for i=1:13;for j=1:13;if (A(i)>C(1,j));Ra(i,j)= C(1,j);elseRa(i,j)=A(i);endendend% 算A—C的蕴含关系;AP=zeros(1,13);AP(1,ey)=e(ex,ey);for i=1:13;for j=1:13;if (AP(j)>Ra(j,i));GDA(j,i)= Ra(j,i);elseGDA(j,i)=AP(j);endendend%求合成运算开始的取小;for i=1:13;max=GDA(1,i);for j=1:13;if (max<GDA(j,i))max= GDA(j,i);endendCPA(i)=max;end % 合成运算取大结束;CPA算出来了;arule=rulelist(ex,ebx); %取一条规则;C=u(arule,:);%取这条规则的C的隶属度;代表取一行B=eb(ebx,:);%取这条规则的A的隶属度;代表取一行for i=1:13;for j=1:13;if (B(i)>C(1,j));Rb(i,j)= C(1,j);elseRb(i,j)=B(i);endendend% 算B—C的蕴含关系;BP=zeros(1,13);BP(1,eby)=eb(ebx,eby);for i=1:13;for j=1:13;if (BP(j)>Rb(j,i));GDB(j,i)= Rb(j,i);elseGDB(j,i)=BP(j);endendend%求合成运算开始的取小;for i=1:13;max=GDB(1,i);for j=1:13;if (max<GDB(j,i))max= GDB(j,i);endendCPB(i)=max;end; % 合成运算取大结束;CPB算出来了;for i=1:13if(CPA(i)>CPB(i))CP(i)=CPB(i);elseCP(i)=CPA(i);endend % 第一个CP1计算结束;将来C是56*13的矩阵;CB((ex-1)*7+ebx,:)=CP;endendfor i=1:13;max=CB(1,i);for j=1:56;if(max<CB(j,i))max=CB(j,i);endendU(i)=max;end %56个CP整理结束;sumFZ=0;sumFM=0;for i=1:13;sumFZ=sumFZ+(i-7)*U(i);sumFM=sumFM+U(i);endcore=sumFZ/sumFM;UB(ey,eby)=core; % 一个控制表中的元素算出来了endendUB=round(UB*100)/100;%保留两位display(UB);程序运行结果如下:程序结果分析:综合MATLAB程序运算出来的结果和智能控制理论与技术(孙增圻)第二版上的结果,完全一致,证明程序运算结果正确!。

Matlab 的 Fuzzy 工具箱实现模糊控制(rulelist的确定)

Matlab 的 Fuzzy 工具箱实现模糊控制(rulelist的确定)

引用如何在MATLAB下把模糊推理系统转化为查询表(原创) Matlab 2009-12-26 22:05:01 阅读161 评论0 字号:大中小订阅引用foundy的如何在MATLAB下把模糊推理系统转化为查询表(原创)李会先摘要:该文论述了将MATLAB下调试成功的模糊逻辑转换为查询表的一种技巧,这种技巧不直接使用MATLAB的矩阵计算方法,操作者多数情况下只需点击鼠标就可完成任务,效率比较高,该方法使用MATLAB下的系统测试工具,收集构造查询表所需的数据资料,文中以MATLAB中的水位模糊控制演示模型为例,把该系统的模糊控制推理模块用在其基础上生成的查询表代替后再进行水位控制仿真,控制效果与模糊推理模块在线推理控制是一致的。

关键词:模糊控制;查询表;MATLAB;Simulink; 系统测试Abstract:This article discuss a skill that make a translation from fuzzy logic system to Lookup Table in Matlab,It doesn't use matrix computing, user need only to drag and draw the mouse completing this task,It's a efficiency method which to collect data for Lookup Table construction from a fu zzy controller by SystemTest Toolbox in Matlab,in the article,I will discuss the skill by a demo which is the Water Level Control in Tank in the Fuzzy logic Toolbox,at last,I simulate the Water Control in Tank instead of the Fuzzy Controller with the Lookup Table which I have constructed,the test results is verywell.Keywords: Fuzzy Logic, Matlab,Simulink,Lookup Table,SystemTest1. 引言在MATLAB/Simulink下,构建模糊逻辑系统模型和调试其推理规则都是很方便的[3][4],我们当然不希望在MATLAB下的仿真工作仅仅用于仿真目的,如果实际产品设计能继承仿真的工作成果,将事半功倍。

实例:MATLABSimulink实现模糊PID控制

实例:MATLABSimulink实现模糊PID控制

实例:MATLABSimulink实现模糊PID控制被控对象:Ts = 0.1;Plant = c2d(zpk([],[-1 -3 -5],1),Ts); %零极点模型,并离散化根据对象Plant,确定PID参数:C0 = pid(1,1,1,'Ts',Ts,'IF','B','DF','B'); % 定义PID结构C = pidtune(Plant,C0) %对PID参数进行优化[Kp, Ki, Kd] = piddata(C); % 输出参数得出PID结构及其参数值:接下来根据求出的PID参数确定GCE、GE 、GCU 和GU的取值:由模糊PID控制结构可得如下等式:Kp = GCU * GCE + GU * GEKi = GCU * GEKd = GU * GCE形式转换如下:GE = 10; %根据模糊控制的论语直接确定GCE = GE*(Kp-sqrt(Kp^2-4*Ki*Kd))/2/Ki=3.4285;GCU = Ki/GE=2.8631;GU = Kd/GCE=2.0138;模糊PID控制系统结构(连续模糊控制器):图中的离散时间积分和微分块直接调用。

模糊控制器输入输出结构:模糊控制器输入输出隶属度函数:模糊控制器规则表:模糊控制器规则曲面图:连续模糊PID控制器,仿真结果:模糊PID控制系统结构(离散模糊控制器):离散模糊控制器查询表:离散模糊PID控制器,仿真结果:主要代码如下:(1)、对象模型:Ts = 0.1;Plant = c2d(zpk([],[-1 -3 -5],1),Ts);(2)、PID参数优化:C0 = pid(1,1,1,'Ts',Ts,'IF','B','DF','B');C = pidtune(Plant,C0)[Kp, Ki, Kd] = piddata(C);(3)、比例因子确定:GE = 10;GCE = GE*(Kp-sqrt(Kp^2-4*Ki*Kd))/2/Ki;GCU = Ki/GE;GU = Kd/GCE;(4)、连续模糊PID控制建立:FIS = newfis('FIS','sugeno');%%% 定义输入E:FIS = addvar(FIS,'input','E',[-10 10]);FIS = addmf(FIS,'input',1,'Negative','gaussmf',[7 -10]); FIS = addmf(FIS,'input',1,'Positive','gaussmf',[7 10]); %%% 定义输入CE:FIS = addvar(FIS,'input','CE',[-10 10]);FIS = addmf(FIS,'input',2,'Negative','gaussmf',[7 -10]); FIS = addmf(FIS,'input',2,'Positive','gaussmf',[7 10]); %%% 定义输出u:FIS = addvar(FIS,'output','u',[-20 20]);FIS = addmf(FIS,'output',1,'Min','constant',-20);FIS = addmf(FIS,'output',1,'Zero','constant',0);FIS = addmf(FIS,'output',1,'Max','constant',20);% 定义规则:%% # If |E| is Negative and |CE| is Negative then |u| is -20 % # If |E| is Negative and |CE| is Positive then |u| is 0% # If |E| is Positive and |CE| is Negative then |u| is 0% # If |E| is Positive and |CE| is Positive then |u| is 20 ruleList = [1 1 1 1 1;... % Rule 11 2 2 1 1;... % Rule 22 1 2 1 1;... % Rule 32 23 1 1]; % Rule 4FIS = addrule(FIS,ruleList);gensurf(FIS) %生成模糊控制器(5)、离散模糊控制器查询表:Step = 2;E = -10:Step:10;CE = -10:Step:10;N = length(E);LookUpTableData = zeros(N);for i=1:Nfor j=1:N% compute output u for each combination of break points LookUpTableData(i,j) = evalfis([E(i) CE(j)],FIS);endend。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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页)。

相关文档
最新文档