第一范文网 - 专业文章范例文档资料分享平台

基于matlab的模糊控制器的设计与仿真

来源:用户分享 时间:2025/10/6 20:47:16 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

基于MATLAB的模糊控制器的设计与仿真 第5页 共11页

a=newfis('fuzzy'); f1=1;

%设置误差e与隶属度函数 a=addvar(a,'input','e',[-6 6]);

a=addmf(a,'input',1,'NB','trapmf',[-6 -6 -5 -3]); a=addmf(a,'input',1,'NS','trapmf',[-5 -3 -2 0]); a=addmf(a,'input',1,'ZR','trimf',[-2 0 2]); a=addmf(a,'input',1,'PS','trapmf',[0 2 3 5]); a=addmf(a,'input',1,'PB','trapmf',[3 5 6 6]); f2=1;

%设置误差变化率ec与隶属度函数 a=addvar(a,'input','ec',[-6 6]);

a=addmf(a,'input',2,'NB','trapmf',[-6 -6 -5 -3]); a=addmf(a,'input',2,'NS','trapmf',[-5 -3 -2 0]); a=addmf(a,'input',2,'ZR','trimf',[-2 0 2]); a=addmf(a,'input',2,'PS','trapmf',[0 2 3 5]); a=addmf(a,'input',2,'PB','trapmf',[3 5 6 6]); f3=1.5;

%设置控制量u与隶属度函数 a=addvar(a,'output','u',[-3 3]);

a=addmf(a,'output',1,'NB','trapmf',[-3 -3 -2 -1]); a=addmf(a,'output',1,'NS','trimf',[-2 -1 0]); a=addmf(a,'output',1,'ZR','trimf',[-1 0 1]); a=addmf(a,'output',1,'PS','trimf',[0 1 2]); a=addmf(a,'output',1,'PB','trapmf',[1 2 3 3]); %建立控制规则表 rulelist=[1 1 5 1 1; 1 2 5 1 1; 1 3 4 1 1; 1 4 4 1 1; 1 5 3 1 1;

2 1 5 1 1; 2 2 4 1 1; 2 3 4 1 1; 2 4 3 1 1; 2 5 3 1 1;

3 1 4 1 1; 3 2 4 1 1; 3 3 3 1 1; 3 4 3 1 1; 3 5 2 1 1;

基于MATLAB的模糊控制器的设计与仿真 第6页 共11页

4 1 4 1 1; 4 2 3 1 1; 4 3 3 1 1; 4 4 2 1 1; 4 5 2 1 1;

5 1 3 1 1; 5 2 3 1 1; 5 3 2 1 1; 5 4 2 1 1; 5 5 1 1 1;];

a=addrule(a,rulelist);

a1=setfis(a,'DefuzzMethod','mom');%设置去模糊化方法 writefis(a1,'fuzzf'); a2=readfis('fuzzf'); Ulist=zeros(7,7); for i=1:7 for j=1:7

e(i)=-4+i; ec(j)=-4+j;

Ulist(i,j)=evalfis([e(i),ec(j)],a2); end end

%绘制FIS系统图形 figure(1); plotfis(a2); figure(2);

plotmf(a,'input',1); figure(3);

plotmf(a,'input',2); figure(4);

plotmf(a,'output',1);

以上程序可得内部原理图如图4(a)所示,输出U的隶属度函数如图4(b)所示,输入E的隶属度函数如图4(c)所示,输入EC的隶属度函数如图4(d)所示:

基于MATLAB的模糊控制器的设计与仿真 第7页 共11页

图4(a) 内部原理图 图 4(b)输出U的隶属度函数

图4(c)输入E的隶属度函数 图4(d)输入EC的隶属度函数

由此,就得到了模糊控制器fuzzy

图 4 6.3.2 利用图形用户界面(GUI)建立模糊推理器(FIS)

在利用 Simulink图形化工具平台设计模糊控制系统模型并进行系统仿真之前 ,同样要先建立相应的模糊推理器 ,这可以通过图形用户界面(GUI)来建立。利用 GUI建立 FIS的过程如下: 1)进入FIS编辑器

在MATLAB的Command Window窗口下,输入fuzzy。此时弹出FIS编辑器,如图5所示:

图5 FIS编辑器

基于MATLAB的模糊控制器的设计与仿真 第8页 共11页

首先,确定模糊控制器的类型和结构。这里选用二输入一输出的模糊控制器。在FIS编辑窗口,选中edit——add variable——input,即可增加一个输入。

2)编辑输入、输出变量的隶属度函数

在FIS编辑器窗口,双击输入模块,在弹出的隶属度函数编辑窗口分别对输入、输出函数进行编辑。输入e的隶属度函数如图6所示:

图6 输入e的隶属度函数

3)编辑模糊控制规则

在窗口中选中edit——rules,进入控制规则编辑器。根据表1所提供的模糊控制规则在编辑器中编写规则,如图7所示:

图7 模糊控制规则

搜索更多关于: 基于matlab的模糊控制器的设计与仿真 的文档
基于matlab的模糊控制器的设计与仿真.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c20ik021rk47b3ef98ncs_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top