系统的模糊控制MATLAB实现Word格式文档下载.docx

上传人:b****3 文档编号:15198732 上传时间:2022-10-28 格式:DOCX 页数:10 大小:131.32KB
下载 相关 举报
系统的模糊控制MATLAB实现Word格式文档下载.docx_第1页
第1页 / 共10页
系统的模糊控制MATLAB实现Word格式文档下载.docx_第2页
第2页 / 共10页
系统的模糊控制MATLAB实现Word格式文档下载.docx_第3页
第3页 / 共10页
系统的模糊控制MATLAB实现Word格式文档下载.docx_第4页
第4页 / 共10页
系统的模糊控制MATLAB实现Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

系统的模糊控制MATLAB实现Word格式文档下载.docx

《系统的模糊控制MATLAB实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《系统的模糊控制MATLAB实现Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

系统的模糊控制MATLAB实现Word格式文档下载.docx

同理,将偏差的变化量ec划分为5个模糊集,负大(NB)、负小(NS)、零(ZO)、正小(PS)、正大(PB),ec为负表示该时刻水位比上一时刻水位小,ec为郑表示该时刻水位比上一时刻水位大,。

设定ec的取值范围为[-3,3],隶属度函数如下。

同样将控制量u划分为5个模糊集,负大(NB)、负小(NS)、零(ZO)、正小(PS)、正大(PB),u为负表示减小控制量,u为正表示增大控制量。

设定u的取值范围为[-4,4],隶属度函数如下。

3、制定模糊规则

模糊规则的制定是模糊控制的核心内容,控制性能的好坏很大程度上由模糊规则决定,本文主要是根据经验来制定相应的规则。

将上述用语言描述的规则转化为“IFA,THENB”的语句如下:

1.If(eisNB)and(ecisNB)then(uisPB)。

2.If(eisNB)and(ecisNS)then(uisPB)。

3.If(eisNB)and(ecisZO)then(uisPB)。

4.If(eisNB)and(ecisPS)then(uisPB)。

5.If(eisNB)and(ecisPB)then(uisPB)。

6.If(eisNS)and(ecisNB)then(uisPB)。

7.If(eisNS)and(ecisNS)then(uisPB)。

8.If(eisNS)and(ecisZO)then(uisPS)。

9.If(eisNS)and(ecisPS)then(uisPS)。

10.If(eisNS)and(ecisPB)then(uisZO)。

11.If(eisZO)and(ecisNB)then(uisPB)。

12.If(eisZO)and(ecisNS)then(uisPS)。

13.If(eisZO)and(ecisZO)then(uisZO)。

14.If(eisZO)and(ecisPS)then(uisNS)。

15.If(eisZO)and(ecisPB)then(uisNB)。

16.If(eisPS)and(ecisNB)then(uisZO)。

17.If(eisPS)and(ecisNS)then(uisPS)。

18.If(eisPS)and(ecisZO)then(uisNS)。

19.If(eisPS)and(ecisPS)then(uisNB)。

20.If(eisPS)and(ecisPB)then(uisNB)。

21.If(eisPB)and(ecisNB)then(uisNB)。

22.If(eisPB)and(ecisNS)then(uisNB)。

23.If(eisPB)and(ecisZO)then(uisNB)。

24.If(eisPB)and(ecisPS)then(uisNB)。

25.If(eisPB)and(ecisPB)then(uisNB)。

4、进行模糊决策

我们最终需要获得的控制量u即为模糊控制的输出,u可由两个输入量(偏差矩阵e和偏差矩阵ec)和模糊关系矩阵R合成得到。

根据制定的模糊规则,通过相应的模糊集合运算,可得到模糊关系集合R。

R定义为:

即:

输出模糊量:

5、控制量的反模糊化

我们模糊决策得到的控制量u是一个矩阵,并不能直接应用在工程上,因此需要将u解释为实际中的特定行为,即反模糊化操作。

目前常用的反模糊化方法有以下几种:

(1)最大隶属度法----计算简单控制要求不高场合

(2)重心法----输出更平滑

(3)加权平均法----工业上应用最广泛

本设计中采用第三种方法:

加权平均法。

6、matlab实现

系统结构如图:

通过matlab集成的模糊控制模块,我们能够更加方便地对应偏差e、偏差量ec和控制量u的关系,并可以调节e和ec在不同值下u的对应输出。

7、系统响应与分析

在系统中,发现随着时间的推移,系统快速到达距离标准位置很近的25左右,继而出现波动情况。

分析出现这种现象的原因是模糊控制的调整太大,需要进行自适应调整,以便系统在到达e接近与0的情况下,仍能继续接近标准位置。

老师,最近有些事,没时间做自适应调整了,对不起啊。

8、代码

clear;

clc;

%对接收阶跃信号的系统进行模糊控制

%%构建模糊控制器

a=newfis('

fuzzytank'

);

%输入量e的模糊化

a=addvar(a,'

input'

'

e'

[-3,3]);

%将偏差e,即当前位置-目标目标,作为观察量(输入量)

a=addmf(a,'

1,'

NB'

zmf'

[-3,-1]);

a=addmf(a,'

NS'

trimf'

[-3,-1,1]);

ZO'

[-2,0,2]);

PS'

[-1,1,3]);

PB'

smf'

[1,3]);

%输入量ec的模糊化

ec'

%将偏差的变化量ec,即e(t)-e(t-1),作为观察量(输入量)

2,'

%输出量的模糊化

output'

u'

[-4,4]);

%选取阀门开度u为控制量

[-4,-2]);

[-4,-2,0]);

[0,2,4]);

[2,4]);

%建立模糊规则

rulelist=[11511

12511

13511

14511

15511

21511

22511

23411

24411

25311

31511

32411

33311

34211

35111

41311

42411

43211

44111

45111

51111

52111

53111

54111

55111];

a=addrule(a,rulelist);

%设置反模糊化算法

a1=setfis(a,'

DefuzzMethod'

mom'

writefis(a1,'

tank'

a2=readfis('

%可代入计算的

figure

(1);

plotfis(a2);

figure

(2);

plotmf(a,'

1);

figure(3);

2);

figure(4);

%展示e、ec和u的对应关系

showrule(a);

ruleview('

%%实时调控

r_t=0;

%初始值r(0)=0;

r_tf=0;

Ulist=0;

r_aim=30;

%目标值

n=50;

%进行100次校核

record=zeros(1,n);

%记录r的变化

fori=1:

n

r_t=r_tf+Ulist;

e=(r_t-r_aim)*0.1;

%获取差值并转化为偏差

ec=(r_t-r_tf)*0.75;

%偏差的变化量的k=0.75;

r_tf=r_t;

Ulist=evalfis([eec],a2);

%输出

record(i)=r_t;

end

t=0:

1:

n-1;

plot(t,record);

%绘制r随时间变化的曲线

xlabel('

时间t'

ylabel('

r(t)'

title('

相应随时间的变化'

感谢下载!

欢迎您的下载,资料仅供参考

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

当前位置:首页 > 高等教育 > 管理学

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

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