MATLAB模糊控制器

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

1、

2、

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

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

3、菜单栏

 4、

 

 5、编辑FIS的维数。

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

 

 7、编辑FIS的名称

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

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

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

(1)Mamdani型

 二、隶属函数编辑器

1、MF编辑器界面介绍

 

 2、Mamdani型MF编辑

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

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

方法一:Edit——Add MFs,

 方法二:Edit——Add Custom MF

 (3)编辑隶属函数曲线

(4)删除模糊子集

3、Sugeno型MF的编辑

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

三、模糊规则编辑器

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

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

1、Rule编辑器界面简介

 

 

 

 2、模糊规则的格式

(1)语言型

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

例如:

 (2)符号型

例如:

 (3)索引型

 3、模糊规则的编辑

(1)添加模糊规则

(2)修改模糊规则

 (3)删除模糊规则

例题11-1

规律:

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

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

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

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

创建过程:

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

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

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

(三个都修改名称)

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

 

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

 

 

 (5)编辑模糊规则

 

 

 

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

 

 

 

 完成。

 四、模糊规则观察器

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

 

 五、曲面观察器

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

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

例11-2

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

解:

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

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

 

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

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

六、模糊系统设计实例

当一个系统的内部结构不清楚,无法建立其数学模型时,如果它具有局部线性的特点并能进行分段描述,就可以用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)创建一个新的模糊推理系统

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

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

 

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

 双击输入输出变量x1

X2

 

X3

 Y1

 

Y2

 U1

 U2

 U3

 U4

 (5)编辑模糊规则

(6)观察模糊推理过程

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

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

 

 

 七、11.4模糊控制系统仿真

1、MATLAB函数

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

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

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

(1)把FIS导入工作空间

如:sFIS=readfis(‘sFIS’)

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

如:

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

 

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

(1)创建FIS文件;

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

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

(4)进行系统仿真。

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

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

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

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

解:

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

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

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

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

 

 

 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为模糊控制规则表。

 

 (4)导入工作空间

 (5)建立仿真模型

 

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

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

 

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

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

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

 

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

 4、Rule观察器

 

 5、Surface观察器

 

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

 

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

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

完结。

  • 47
    点赞
  • 405
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值