在MATLAB中建立基本的模糊控制器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、模糊控制器是什么?

二、建立模糊控制器的方法

方法一.基于模糊逻辑工具箱建立

方法二.基于m文件编写代码建立模糊控制器

总结

前言

随着模糊控制理论的不断完善,模糊控制器得到了越来越多的应用,本文就介绍了如何在MATLAB建立基本的模糊控制器。

一、模糊控制器是什么?

模糊控制器是模糊控制的核心部件,该控制器是为了解决传统控制器存在的不足而设计的,诸如传统PID控制器。

二、建立模糊控制器的方法

方法一.基于模糊逻辑工具箱建立

步骤:

1、在命令行输入fuzzy打开模糊逻辑工具箱,结构图如下:

《在MATLAB中建立基本的模糊控制器》

 2、点击File->New Fis选择模糊控制器类型,分为Mamdani和Sugeno(T-S型)。

3、分别点击input1和output1设定各自的论域、模糊子集及隶属度函数形状。

4、点击Edit->Rules添加模糊规则。

方法二.基于m文件编写代码建立模糊控制器

步骤:

1、利用newfis函数建立模糊推理系统。

a=newfis('fuzzf')

2、利用addvar函数向模糊推理系统(FIS)添加语言变量。

a=addvar(a,'input','E',[-10*f1,10*f1]); %输入1:误差(E)

3、利用addmf函数向模糊推理系统(FIS)的语言变量添加隶属度函数,代码举例如下。

a=addmf(a,'input',1,'NB','trimf',[-13.33*f1,-10*f1,-6.66*f1]); 
a=addmf(a,'input',1,'NM','trimf',[-10*f1,-6.66*f1,-3.34*f1]);
a=addmf(a,'input',1,'NS','trimf',[-6.66*f1,-3.34*f1,0]);
a=addmf(a,'input',1,'ZO','trimf',[-3.34*f1,0,3.34*f1]);
a=addmf(a,'input',1,'PS','trimf',[0,3.34*f1,6.66*f1]);
a=addmf(a,'input',1,'PM','trimf',[3.34*f1,6.66*f1,10*f1]);
a=addmf(a,'input',1,'PB','trimf',[6.66*f1,10*f1,13.33*f1]);

以上是输入变量代码,输出同理,只是将input改为output。

4、利用rulelist函数建立模糊规则。

rulelist=[1 1 1 1 1;
    1 2 1 1 1;
    1 3 2 1 1;
    1 4 2 1 1;
    1 5 3 1 1;
    1 6 3 1 1;
    1 7 4 1 1;]

5、利用addrule函数向模糊推理系统(FIS)的语言变量添加规则。

a=addrule(a,rulelist); 

6、利用setfis函数设置模糊系统的属性。

a1=setfis(a,'DefuzzMethod','mom'); 

7、利用writefis函数将模糊推理系统(FIS)保存到磁盘上。

writefis(a1,'fuzzf'); 

8、利用readfis函数从磁盘装入一个FIS。

a2=readfis('fuzzf');

9、利用zeros函数全零矩阵。

Ulist=zeros(7,7);

10、利用evalfis函数完成模糊推理计算 。

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

11、利用画图函数进行输入和输出变量隶属度函数及模糊控制器结构的图像输出。

完整代码资源下载:MATLAB编码形成模糊控制器

总结

以上就是今天要讲的内容,本文仅仅简单介绍了模糊控制器的建立,希望对大家有所帮助。

    原文作者:峰回路转99A
    原文地址: https://blog.csdn.net/weixin_39329913/article/details/124693386
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞