模糊控制实验演示教学.docx

上传人:b****3 文档编号:1365651 上传时间:2022-10-21 格式:DOCX 页数:16 大小:231.92KB
下载 相关 举报
模糊控制实验演示教学.docx_第1页
第1页 / 共16页
模糊控制实验演示教学.docx_第2页
第2页 / 共16页
模糊控制实验演示教学.docx_第3页
第3页 / 共16页
模糊控制实验演示教学.docx_第4页
第4页 / 共16页
模糊控制实验演示教学.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

模糊控制实验演示教学.docx

《模糊控制实验演示教学.docx》由会员分享,可在线阅读,更多相关《模糊控制实验演示教学.docx(16页珍藏版)》请在冰豆网上搜索。

模糊控制实验演示教学.docx

模糊控制实验演示教学

中南大学

模糊控制课程实验报告

 

学生姓名:

彭雄威

指导教师:

袁艳

学院:

信息科学与工程学院

学号:

114611167

实验一:

本系统设计基于MATLAB图形模糊推理系统,设计步骤如下:

打开MATLAB,输入指令fuzzy,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Mamdani模糊推理系统。

(1)增加一个输入变量,将输入变量命名为E、Ec,将输出变量命名U。

这样就建立了一个两输入单输出的模糊推理系统。

如图1.1所示。

图1.1增加一个输入变量

(2)设计模糊化模块:

设计隶属度函数论域范围

图3.2设计水位误差E模块

 

3.3设计水位误差Ec模块

图3.4设计水位输出U模块

(4)模糊控制器的规则设计

(5)通过观察器观察规则情况

在菜单view中的rules和surface选项分别对应得是规则观测器和曲面观测器。

图3.7规则观测器

图3.6曲面观测器

(6)保存编辑好的FIS文件

实验二:

利用MATLAB软件的M文件编辑器和实验一所生成的fuzzf.FIS文件,在M文件编辑器中输入:

a=readfis('fuzzf');

evalfis([-0.5,-0.07;-0.5,0;-0.5,0.07;0,-0.07;0,0;0,0.07;0.5,-0.07;0.5,0;0.5,0.07],a)

便可得fuzzf.FIS文件的模糊控制查询表,其中的数据在水位误差E的论域为[-11],误差变化Ec的论域为[-0.10.1]内可以任意取值。

a=readfis('fuzzf')

a=

name:

'fuzzf'

type:

'mamdani'

andMethod:

'min'

orMethod:

'max'

defuzzMethod:

'centroid'

impMethod:

'min'

aggMethod:

'max'

input:

[1x2struct]

output:

[1x1struct]

rule:

[1x5struct]

a=readfis('fuzzf');

evalfis([-0.5,-0.07;-0.5,0;-0.5,0.07;0,-0.07;0,0;0,0.07;0.5,-0.07;0.5,0;0.5,0.07],a)

ans=

-0.2000

-0.4444

-0.4667

0.1363

-0.0014

-0.2271

0.4000

0.4412

0.1333

实验三

利用MATLAB软件的M文件编辑器(也可选择C语言)完成模糊控制查询表的计算。

注意:

全部工作都由程序实现,不利用FIS文件,不使用Fuzzy工具箱,包括模糊关系矩阵的求取及模糊推理、模糊判决。

表1偏差E的赋值表

e

E

-6

-5

-4

-3

-2

-1

0

1

2

3

4

5

6

NB

1

0.8

0.7

0.4

0.4

0.1

0

0

0

0

0

0

0

NM

0.2

0.7

1

0.7

0.3

0

0

0

0

0

0

0

0

NS

0

0.1

0.3

0.7

1

0.7

0.2

0

0

0

0

0

0

NO

0

0

0

0

0.1

0.6

1

0

0

0

0

0

0

PO

0

0

0

0

0

0

1

0.6

0.1

0

0

0

0

PS

0

0

0

0

0

0

0.2

0.7

1

0.7

0.3

0.1

0

PM

0

0

0

0

0

0

0

0

0.2

0.7

1

0.7

0.3

PB

0

0

0

0

0

0

0

0

0.1

0.4

0.7

0.8

1

表2偏差变化率Ec的赋值表

ec

Ec

-6

-5

-4

-3

-2

-1

0

1

2

3

4

5

6

NB

1

0.7

0.3

0

0

0

0

0

0

0

0

0

0

NM

0.3

0.7

1

0.7

0.3

0

0

0

0

0

0

0

0

NS

0

0

0.3

0.7

1

0.7

0.3

0

0

0

0

0

0

O

0

0

0

0

0.3

0.7

1

0.7

0.3

0

0

0

0

PS

0

0

0

0

0

0

0.3

0.7

1

0.7

0.3

0

0

PM

0

0

0

0

0

0

0

0

0.3

0.7

1

0.7

0.3

PB

0

0

0

0

0

0

0

0

0

0

0.3

0.7

1

表3推理语言规则表

Ec

E

NB

NM

NS

O

PS

PM

PB

NB

PB

PB

PB

PB

PM

O

O

NM

PB

PB

PB

PB

PM

O

O

NS

PM

PM

PM

PM

O

NS

NS

NO

PM

PM

PS

O

NS

NM

NM

PO

PM

PM

PS

O

NS

NM

NM

PS

PS

PS

O

NM

NM

NM

NM

PM

O

O

NM

NS

NS

NS

NS

PB

O

O

NM

NS

NS

NS

NS

表4控制量U的赋值表

U

-6

-5

-4

-3

-2

-1

0

1

2

3

4

5

6

NB

1

0.7

0.3

0

0

0

0

0

0

0

0

0

0

NM

0.3

0.7

1

0.7

0.3

0

0

0

0

0

0

0

0

NS

0

0

0.3

0.7

1

0.7

0.3

0

0

0

0

0

0

O

0

0

0

0

0.3

0.7

1

0.7

0.3

0

0

0

0

PS

0

0

0

0

0

0

0.3

0.7

1

0.7

0.3

0

0

PM

0

0

0

0

0

0

0

0

0.3

0.7

1

0.7

0.3

PB

0

0

0

0

0

0

0

0

0

0

0.3

0.7

1

程序如下:

clc;

clear;

E=[1,0.8,0.7,0.4,0.1,0,0,0,0,0,0,0,0;

0.2,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0;

0,0.1,0.3,0.7,1,0.7,0.2,0,0,0,0,0,0;

0,0,0,0,0.1,0.6,1,0,0,0,0,0,0;

0,0,0,0,0,0,1,0.6,0.1,0,0,0,0;

0,0,0,0,0,0,0.2,0.7,1,0.7,0.3,0.1,0;

0,0,0,0,0,0,0,0,0.2,0.7,1,0.7,0.3;

0,0,0,0,0,0,0,0,0.1,0.4,0.7,0.8,1]%%8*13

EC=[1,0.7,0.3,0,0,0,0,0,0,0,0,0,0;

0.3,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0;

0,0,0.3,0.7,1,0.7,0.3,0,0,0,0,0,0;

0,0,0,0,0.3,0.7,1,0.7,0.3,0,0,0,0;

0,0,0,0,0,0,0.3,0.7,1,0.7,0.3,0,0;

0,0,0,0,0,0,0,0,0.3,0.7,1,0.7,0.3;

0,0,0,0,0,0,0,0,0,0,0.3,0.7,1]%%7*13

U=[1,0.7,0.3,0,0,0,0,0,0,0,0,0,0;

0.3,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0;

0,0,0.3,0.7,1,0.7,0.3,0,0,0,0,0,0;

0,0,0,0,0.3,0.7,1,0.7,0.3,0,0,0,0;

0,0,0,0,0,0,0.3,0.7,1,0.7,0.3,0,0;

0,0,0,0,0,0,0,0,0.3,0.7,1,0.7,0.3;

0,0,0,0,0,0,0,0,0,0,0.3,0.7,1]%%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

foriii=1:

13%偏差E的模糊值控制

forjjj=1:

13%偏差率EC的模糊值控制

forii=1:

8%偏差E的模糊规则控制

forjj=1:

7%偏差变化率EC的模糊规则控制

A_rulelist=rulelist(ii,jj);%查模糊规则表

%******计算C1A'************

A=E(ii,:

);%取A'

C_A=U(A_rulelist,:

);%取Ci

fori=1:

13%求R1A

forj=1:

13

if(A(i)>C_A(1,j))

Ra(i,j)=C_A(1,j);

else

Ra(i,j)=A(i);

end

end

end

AA=zeros(1,13);%取AA=A'如AA=[1,0,0,0,0,0,0,0,0,0,0,0,0];

%AA(1,iii)=E(ii,iii);

AA(1,iii)=1;

fori=1:

13%先取小

forj=1:

13

if(AA(j)>Ra(j,i))

A_qux(j,i)=Ra(j,i);

else

A_qux(j,i)=AA(j);

end

end

end

fori=1:

13%再取大,,,求和CiA

max=A_qux(1,i);

forj=1:

13

if(max

max=A_qux(j,i);

end

end

CiA(i)=max;

end

%********CiA计算完毕*********

%*******计算CiB'*************

B=EC(jj,:

);%取B'?

?

?

C_B=U(A_rulelist,:

);%取Ci?

?

?

fori=1:

13%求R1B

forj=1:

13

if(B(1,i)>C_B(1,j))

Rb(i,j)=C_B(1,j);

else

Rb(i,j)=B(1,i);

end

end

end

BB=zeros(1,13);%取BB=B'如BB=[1,0,0,0,0,0,0,0,0,0,0,0,0];

%BB(1,jjj)=EC(jj,jjj);

BB(1,jjj)=1;

fori=1:

13%先取小

for

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1