北航智能控制模糊控制作业.docx

上传人:b****6 文档编号:3327280 上传时间:2022-11-21 格式:DOCX 页数:14 大小:518.22KB
下载 相关 举报
北航智能控制模糊控制作业.docx_第1页
第1页 / 共14页
北航智能控制模糊控制作业.docx_第2页
第2页 / 共14页
北航智能控制模糊控制作业.docx_第3页
第3页 / 共14页
北航智能控制模糊控制作业.docx_第4页
第4页 / 共14页
北航智能控制模糊控制作业.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

北航智能控制模糊控制作业.docx

《北航智能控制模糊控制作业.docx》由会员分享,可在线阅读,更多相关《北航智能控制模糊控制作业.docx(14页珍藏版)》请在冰豆网上搜索。

北航智能控制模糊控制作业.docx

北航智能控制模糊控制作业

模糊控制查询表的MATLAB实现

北京航空航天大学机械工程及自动化学院(北京100191)

一作业要求

以双输入—单输出系统为例,画出模糊控制算法程序流程图,计算出模糊控制器的查询表。

假设控制器输入为误差e和误差变化率ec,输出为控制量u,其基本论域分别为[emin,emax],[ecmin,ecmax],[umin,umax],对应的语言变量E、EC和U的论域为{-6,-5,…,-1,0,1,…,5,6},E、EC和U都选7个语言值{NB,NM,NS,Z,PS,PM,PB},各语言值的隶属函数采用三角函数,其分布可用表1-1表示,控制规则如表1-2所示。

注意:

u的去模糊化要采用与你的学号ID的奇偶性对应的方法,设ID=奇数者用最大隶属度法,ID=偶数者用重心法;要有计算查询表时的必要计算步骤,不能只给出最后结果。

表1-1语言变量E、EC和U的赋值表

表1-2模糊控制规则表

二模糊控制查询表和控制算法流程图

2.1模糊控制查询表

(1)模糊控制算法

一般双输入—单输出模糊控制器的控制规则可写成条件语句:

式子中,

为定义在误差、误差变化率和控制量论域X、Y、Z、上的模糊集合。

上述条件可以用一个模糊关系

描述,即

的隶属度函数为:

当误差及误差变化分别取模糊集

时,控制器输出的变化量

根据模糊推理合成规则可得:

的隶属度函数为:

(2)模糊算法选择

模糊推理用Mamdani推理方法,输出信息的模糊判别用最大隶属度法。

模糊控制查询表的实现,先根据模糊条件推理得出模糊条件所决定的模糊关系

,模糊推理关系为:

将所有的模糊关系

利用“或”放入关系组合在一起,即

整个系统的控制规则的模糊关系。

再根据新的模糊集

,求出控制器的输出变化量

,即

最后根据最大隶属度法求的模糊判决结果。

所有的判决结果组成了模糊控制查询表。

最后建立输入变量输出变量的三维曲面。

2.2程序结构说明

一般情况下,输入量偏差e和偏差变化率△e以及输出变量U的离散论域为13个量化等级{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。

为方便MATLAB编程,对相关的变量选择进行一些改变。

原先的输入变量偏差e和偏差变化率ec以及输出变量U的量化等级{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}改写为{1,2,3,4,5,6,7,8,9,10,11,12,13}。

转化后语言变量E、EC和U的赋值表如表2-13所示。

输入变量偏差e和偏差变化率ec以及输出变量U的模糊语言值均为{NB,NM,NS,Z,PS,PM,PB}。

为了编程方便,将语言值用数字表示为{1,2,3,4,5,6,7},与模糊语言值相对应。

转化后的模糊控制规则表如表2-2所示。

表2-1语言变量E、EC和U的赋值表

1

2

3

4

5

6

7

8

9

10

11

12

13

1

1

0.5

0

0

0

0

0

0

0

0

0

0

0

2

0

0.5

1

0.5

0

0

0

0

0

0

0

0

0

3

0

0

0

0.5

1

0.5

0

0

0

0

0

0

0

4

0

0

0

0

0

0.5

1

0.5

0

0

0

0

0

5

0

0

0

0

0

0

0

0.5

1

0.5

0

0

0

6

0

0

0

0

0

0

0

0

0

0.5

1

0.5

0

7

0

0

0

0

0

0

0

0

0

0

0

0.5

1

表2-2模糊控制规则表

U

EC

1

2

3

4

5

6

7

 

E

1

1

1

1

1

2

4

4

2

1

1

1

1

2

4

4

3

2

2

2

2

4

5

5

4

2

2

3

4

5

6

6

5

3

3

4

6

6

6

6

6

4

4

6

7

7

7

7

7

4

4

6

7

7

7

7

程序初始化,输入误差Error、偏差变化率ErrorC和控制量Controlvolume的赋值表及模糊控制规则表。

先计算模糊控制隶属度关系矩阵

根据每一条控制规则,查找对应的赋值表当中的向量,然后求的

的值,再求得单条控制语句的模糊关系

的值,单条控制语句的模糊关系模糊关系

与模糊控制隶属度关系矩阵Relationship对应位取大,最终得到

得到

后,再求控制量

根据X、Y论域取不同的元素,查询赋值表得到对应的向量,然后求

的值,再求得控制量

的值,根据最大隶属度法求的判决结果,建立模糊控制器查询表。

最后建立输入变量输出变量的三维曲面。

2.3控制算法流程图

三模糊控制查询表

模糊控制查询表结果如表3-1所示

表3-1模糊控制查询表

U

EC

-6

-5

-4

-3

-2

-1

0

1

2

3

4

5

6

 

E

-6

-6

-6

-6

-6

-6

-6

-6

-6

-4

-4

0

0

0

-5

-6

-6

-6

-6

-6

-6

-6

-6

-4

-4

0

0

0

-4

-6

-6

-6

-6

-6

-6

-6

-6

-4

-4

0

0

0

-3

-6

-6

-6

-6

-6

-6

-6

-6

-4

-4

0

0

0

-2

-4

-4

-4

-4

-4

-4

-4

-4

0

0

2

2

2

-1

-4

-4

-4

-4

-4

-4

-4

-4

0

0

2

2

2

0

-4

-4

-4

-4

-2

-2

0

0

2

2

4

4

4

1

-4

-4

-4

-4

-2

-2

0

0

2

2

4

4

4

2

-2

-2

-2

-2

0

0

4

4

4

4

4

4

4

3

-2

-2

-2

-2

0

0

4

4

4

4

4

4

4

4

0

0

0

0

4

4

6

6

6

6

6

6

6

5

0

0

0

0

4

4

6

6

6

6

6

6

6

6

0

0

0

0

4

4

6

6

6

6

6

6

6

四输入变量输出变量的三维曲面

分别通过Matlab程序及Matlab中的fuzzy工具箱得出输入输出的三维曲面。

通过Matlab程序得出的输入输出三维曲面如图4-1所示。

通过Matlab的fuzzy的工具箱得出的输入输出三维曲面如图4-2所示。

Matlab程序见附件一。

Matlab工具箱Fuzzy建立双输入—单输出模糊系统模型见附件二。

图4-1Matlab程序得出的输入输出三维曲面

图4-2Matlab的fuzzy的工具箱得出的输入输出三维曲面

通过对上述两个输入输出三维曲面的比较,不难看出,两个输入输出三维曲面的形状基本相似,只是在局部有差异。

可以得出结论:

用Matlab程序的建立的模糊控制器正确。

产生两个输入输出三维曲面有差异的原因可能是作业所给的隶属度函数为离散的函数,数据量比较少,得出的结果比较少,则绘制的输入输出三维曲面不够精确。

而用Fuzzy工具箱建立的隶属度函数为连续的函数,数据量比较多,得出的结果比较多,绘制出的输入输出三维曲面较准确。

附件一

Matlab程序

clc;

clear;

%程序初始化,输入误差Error、偏差变化率ErrorC和控制量Controlvolume的赋值表

Error=[10.500000000000

00.510.5000000000

0000.510.50000000

000000.510.500000

00000000.510.5000

0000000000.510.50

000000000000.51

];

ErrorC=Error;%输入误差率ErrorC赋值表与误差Error相同

Controlvolume=Error;%控制量Controlvolume的赋值表与误差Error相同

Rule=[1111244

1111244

2222455

2234566

3346666

4467777

4467777];%模糊控制规则表

Relationship=zeros(169,13);%申请模糊控制的隶属度关系矩阵

U=zeros(13);%申请模糊控制的查询表矩阵

%计算模糊控制隶属度关系矩阵Relationship

fork=1:

7

forl=1:

7

A=Error(k,:

);%取Error的第k行

B=ErrorC(l,:

);%取ErrorC的第l行

C=Controlvolume(Rule(k,l),:

);%根据控制规则表查询控制量的向量

form=1:

13

forn=1:

13

D(n+(m-1)*13)=min(A(m),B(n));%根据模糊算法,求

的值,对应位取小

end

end

forp=1:

169

forq=1:

13

Relationship0(p,q)=min(D(p),C(q));%根据模糊算法,求

的值,对应位取小,即求得单条控制语句的模糊关系

end

end

fori=1:

169

forj=1:

13

Relationship(i,j)=max(Relationship(i,j),Relationship0(i,j));%单条控制语句的模糊关系模糊关系

与模糊控制隶属度关系矩阵Relationship对应位取大,最终得到

end

end

end

end

%计算控制量

forg=1:

13

forh=1:

13

[Y,X]=max(Error);%Y表示Error每列的最大值,X表示Error每列最大值所在的行

E=Error(X(g),:

);%取Error每列最大值所在行向量

F=ErrorC(X(h),:

);%取ErrorC每列最大值所在行向量

fors=1:

13

fort=1:

13

G(t+(s-1)*13)=min(E(s),F(t));%根据模糊算法,求

的值,对应位取小

end

end

forv=1:

13

forw=1:

169

H(w,v)=min(G(w),Relationship(w,v));%根据模糊算法,求

的值,对应位取小

end

end

[Z,W]=max(H);%Z表示

的值

U(g,h)=find(Z>=max(Z),1)-7;%Z的最大值所在的列减7,即用最大隶属度方法得到查询表矩阵

end

end

%输入变量输出变量的三维曲面

xx=[-6-5-4-3-2-10123456];

yy=[-6-5-4-3-2-10123456];

[XX,YY]=meshgrid(xx,yy);

mesh(XX,YY,U')

gridon

axis([-66-66-66])

xlabel('E')

ylabel('EC')

zlabel('U')

附件二

Matlab工具箱Fuzzy建立双输入—单输出模糊系统模型

1.添加E,EC两个输入变量,Defuzzification中选择mom表示最大隶属度法。

图1添加变量

2.添加论域E、EC、U及其隶属度函数

图2添加论域E及其隶属度函数

图3添加论域EC及其隶属度函数

图4添加论域U及其隶属度函数

3.添加控制规则

图5添加控制规则

4.观察设计规则

图6观察设计规则

5.输入变量输出变量的三维曲面

图7输入变量输出变量的三维曲面

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

当前位置:首页 > 小学教育 > 语文

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

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