MATLAB模糊控制器

        说明:以下例子均来自此书——《MATLAB/Simulink系统仿真超级学习手册》石良臣 matlab2018a ,仅作为读书笔记。

1、

MATLAB模糊控制器_第1张图片

2、

MATLAB模糊控制器_第2张图片

系统结构显示区:显示系统的输入输出个数以及模糊规则条数。

模糊逻辑区:显示并可编辑模糊逻辑预算、模糊推理、聚合和反模糊化方法。

3、菜单栏

 4、

MATLAB模糊控制器_第3张图片

 MATLAB模糊控制器_第4张图片

 5、编辑FIS的维数。

MATLAB模糊控制器_第5张图片

6、编辑FIS输入输出变量的名称

 MATLAB模糊控制器_第6张图片

 7、编辑FIS的名称

方法一:File——Export——To Workspace ,(暂时将FIS保存于工作空间,在命名)。

方法二:File——Export——To File,(将FIS保存至文件,这种方式不易丢失数据)。

MATLAB模糊控制器_第7张图片

 8、编辑模糊逻辑推理的具体算法。

(1)Mamdani型

MATLAB模糊控制器_第8张图片

 二、隶属函数编辑器

1、MF编辑器界面介绍

MATLAB模糊控制器_第9张图片

 MATLAB模糊控制器_第10张图片

 2、Mamdani型MF编辑

(1)编辑输入变量的论域和显示范围

MATLAB模糊控制器_第11张图片

(2)增加覆盖输入变量模糊子集的数目

方法一:Edit——Add MFs,

MATLAB模糊控制器_第12张图片

 方法二:Edit——Add Custom MF

MATLAB模糊控制器_第13张图片

 (3)编辑隶属函数曲线

(4)删除模糊子集

3、Sugeno型MF的编辑

不同:Mamdani型输出的是模糊子集;Sugeno型输出的是线性函数。

三、模糊规则编辑器

模糊规则就是输入变量和输出变量之间的模糊蕴含关系,编辑模糊规则之前

,必须先完成模糊系统的结构、模糊推理的类型和输入变量的模糊化编辑。

1、Rule编辑器界面简介

 MATLAB模糊控制器_第14张图片

 MATLAB模糊控制器_第15张图片

 MATLAB模糊控制器_第16张图片

 2、模糊规则的格式

(1)语言型

每行末尾必须写上(p),p在区间[0,1]上,表示该条规则的权重。

例如:

 (2)符号型

例如:

 (3)索引型

MATLAB模糊控制器_第17张图片

 3、模糊规则的编辑

(1)添加模糊规则

MATLAB模糊控制器_第18张图片

(2)修改模糊规则

MATLAB模糊控制器_第19张图片

 (3)删除模糊规则

MATLAB模糊控制器_第20张图片

例题11-1

规律:

如果食物难吃,则小费很少;

如果餐厅服务一般但食物好吃,则小费比较接近平均;

如果餐厅服务很好而食物好吃,则小费会很多;

如果餐厅服务很好而食物难吃,则小费比较接近平均。

创建过程:

        (1)创建一个新的模糊推理系统

在MATLLAB命令窗口中输入fuzzy,按回车键确认。

MATLAB模糊控制器_第21张图片 

         (2)确定模糊推理系统的结构(默认Mamdani)

MATLAB模糊控制器_第22张图片

(三个都修改名称)

MATLAB模糊控制器_第23张图片

 (3)编辑模糊逻辑推理的具体算法(一般默认)

 MATLAB模糊控制器_第24张图片

 (4)编辑输入、输出变量

MATLAB模糊控制器_第25张图片

 MATLAB模糊控制器_第26张图片

 MATLAB模糊控制器_第27张图片

 (5)编辑模糊规则

MATLAB模糊控制器_第28张图片

 MATLAB模糊控制器_第29张图片

 MATLAB模糊控制器_第30张图片

 MATLAB模糊控制器_第31张图片

 (6)退出并保存模糊推理系统

MATLAB模糊控制器_第32张图片

 MATLAB模糊控制器_第33张图片

 MATLAB模糊控制器_第34张图片

 MATLAB模糊控制器_第35张图片

MATLAB模糊控制器_第36张图片

 完成。

 四、模糊规则观察器

任意编辑器窗口“view”打开。

MATLAB模糊控制器_第37张图片

 MATLAB模糊控制器_第38张图片

 五、曲面观察器

任意编辑器窗口“view”打开。

MATLAB模糊控制器_第39张图片

 当输入变量多余两个时,只能把两个之外的变量取成定值,显示在Ref,Input参量输入右侧的编辑框内,也可以在此编辑框内设置其他变量的取值。

例11-2

利用命令“fuzzy tipper”输出MATLAB自带图像,打开输出变量曲线观察器,分别研究每个输入变量对输出变量的影响。

解:

(1)输入变量service对输出变量tip的影响

在X(input)编辑框内选择service,在Y(input)编辑框内选择-none-,就可以得到tip关于service的关系曲线:

 MATLAB模糊控制器_第40张图片

(2)输入变量food对输出变量tip的影响

在X(input)编辑框内选择food,在Y(input)编辑框内选择-none-,就可以得到tip关于food的关系曲线:

MATLAB模糊控制器_第41张图片

六、模糊系统设计实例

当一个系统的内部结构不清楚,无法建立其数学模型时,如果它具有局部线性的特点并能进行分段描述,就可以用Sugeno型模糊进行描述。

例:11-3一个系统,其输入为x和y,输出为u,根据大量的输入、输出数据,分析得出了四条模糊规则:

Rule: if x is x1 then u=u1=x+0.5;

Rule: if x is x2 and y is y1 then u=u2=-0.2x+3y+1;

Rule: if x is x2 and y is y2 then u=u3=0.3x+0.4y+5;

Rule: if x is x3 and y is y3 then u=u4=0.7x+0.1y-0.6;

输入变量x∈[0,20],y∈[-5,15],x1,x2,x3为涵盖输入变量x论域的模糊子集,y1,y2为涵盖输入变量y论域的模糊子集。

解:

(1)创建一个新的模糊推理系统

MATLAB模糊控制器_第42张图片

 (2)确定模糊系统的结构

MATLAB模糊控制器_第43张图片MATLAB模糊控制器_第44张图片

 (3)编辑模糊逻辑推理的具体算法

 MATLAB模糊控制器_第45张图片

 (4)编辑输入、输出变量

MATLAB模糊控制器_第46张图片

 双击输入输出变量x1

MATLAB模糊控制器_第47张图片

X2

 MATLAB模糊控制器_第48张图片

X3

MATLAB模糊控制器_第49张图片

 Y1

 MATLAB模糊控制器_第50张图片

Y2

MATLAB模糊控制器_第51张图片

 U1

MATLAB模糊控制器_第52张图片

 U2

MATLAB模糊控制器_第53张图片

 U3

MATLAB模糊控制器_第54张图片

 U4

MATLAB模糊控制器_第55张图片

 (5)编辑模糊规则

MATLAB模糊控制器_第56张图片

(6)观察模糊推理过程

由于本例中没有用到OR或方法,所以它对输出结果没有影响。而另外两个模糊逻辑推理算法的不同会导致输出结果大不相同。

(7)观察整个论域上输出变量与输入变量之间的关系

 MATLAB模糊控制器_第57张图片

 MATLAB模糊控制器_第58张图片

 七、11.4模糊控制系统仿真

1、MATLAB函数

(1)打开模糊推理系统GUI的函数

(2)对FIS进行操作的函数

2、FIS与模糊逻辑控制器连接

(1)把FIS导入工作空间

如:sFIS=readfis(‘sFIS’)

如:readfis——回车——选中文件。

如:

MATLAB模糊控制器_第59张图片

 (2)将FIS嵌入模糊控制器模块

MATLAB模糊控制器_第60张图片

 MATLAB模糊控制器_第61张图片

3、模糊控制系统仿真的基本步骤:

(1)创建FIS文件;

(2)建立FIS文件与模糊控制器的连接;

(3)构建模糊控制系统的仿真模型;

(4)进行系统仿真。

八、构建模糊控制系统仿真模型的方法,并对仿真模型进行仿真。

11-4一智能仿生人工腿中的执行电机传递函数可表示为

G(s)=6068s(s2+110s+6068)

试建立其闭环系统,并比较PID控制器与模糊控制器对闭环系统的控制性能。

解:

1、建立模糊逻辑控制系统

(1)在MATLAB命令窗口中输入fuzzy,创建一个新的FIS(Mamdani型)。

MATLAB模糊控制器_第62张图片

(2)编辑输入、输出变量

以闭环系统误差e及其de为两个输入变量,被控对象的控制输入u为输出变量。考虑到控制目标为跟踪单位阶跃信号,则e的论域为[-1,1],de的论域为[-1,1]。同时为了满足控制输入的上界限制,取u的论域为[-2,2].。

MATLAB模糊控制器_第63张图片

 MATLAB模糊控制器_第64张图片

 MATLAB模糊控制器_第65张图片

 3)制定、编辑模糊规则

当误差e为NB负大时,无论误差率de如何,控制输入都应该为NB负大,以尽快减小误差。

所以有规则Rule1: if e is NB then u is NB。

当误差e为NS负小时,就要考虑误差率的影响。如果de为NB负大,会导致e更负,所以控制输入仍然应该为NB负大;如果de为ZE零或PS正小,则需要较小的控制输入以帮助误差e恢复至零;如果de为PB正大,则不怎么需要控制输入。所以有下面的规则。

Rule2:if e is NS and de is NB then u is NB。

Rule3:if e is NS and de is NS then u is NB。

Rule4:if e is NS and de is ZE then u is NS。

Rule5:if e is NS and de is PS then u is NS。

Rule6:if e is NS and de is PB then u is ZE。

当误差e接近于零,即为ZE时,主要矛盾集中于稳定性,这时较小的控制输入会更加适合小幅度的调整,所以有下面的规则。

Rule7:if e is ZE and de is NB then u is PS。

Rule8:if e is ZE and de is NS then u is ZE。

Rule9:if e is ZE and de is ZE then u is ZE。

Rule10:if e is ZE and de is PS then u is ZE。

Rulell:if e is ZE and de is PB then u is NS。

对称地可以得出余下的6条规则,表11-18为模糊控制规则表。

MATLAB模糊控制器_第66张图片

 MATLAB模糊控制器_第67张图片

 (4)导入工作空间

MATLAB模糊控制器_第68张图片

 (5)建立仿真模型

MATLAB模糊控制器_第69张图片

 MATLAB模糊控制器_第70张图片

 运行仿真,阶跃响应曲线非常平稳,没有超调量,没有振荡,效果比较好。

MATLAB模糊控制器_第71张图片

 2、利用PID控制器建立仿真模型

 MATLAB模糊控制器_第72张图片

          根据Ziegler-Nichols调参方法,可以确定出一组PID参数:P=66、I=66/0.0403、D=66*0.0101、N=100,这组参数使得闭环系统稳定。

MATLAB模糊控制器_第73张图片

        运行仿真,虽然系统较快地趋于稳定,但产生了多次振荡,超调量很大,且控制输入也较大,不合符实际需求。

MATLAB模糊控制器_第74张图片MATLAB模糊控制器_第75张图片

 3、对被控对象加入随机干扰,再次建立模糊逻辑控制系统。

 MATLAB模糊控制器_第76张图片

        运行仿真,由于随机扰动的加入,响应曲线会一直处于波动状态,但基本稳定在1附近,这说明模糊逻辑控制器有一定的干扰抑制作用。

MATLAB模糊控制器_第77张图片

 4、Rule观察器

 MATLAB模糊控制器_第78张图片

 5、Surface观察器

MATLAB模糊控制器_第79张图片

 MATLAB模糊控制器_第80张图片MATLAB模糊控制器_第81张图片

 八、MATLAB自带模糊控制系统实例

MATLAB模糊控制器_第82张图片

 MATLAB模糊控制器_第83张图片

(结构文件列表)核心:tank=readfis(‘tank’)

        FIS由五个部分组成,即FIS编辑器、隶属函数编辑器、模糊规则编辑器、模糊规则观察器、曲面观察器。

你可能感兴趣的:(simulink,matlab)