模拟控制器的设计实例洗衣机的模糊控制.docx

上传人:b****2 文档编号:943504 上传时间:2023-04-30 格式:DOCX 页数:13 大小:301.66KB
下载 相关 举报
模拟控制器的设计实例洗衣机的模糊控制.docx_第1页
第1页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第2页
第2页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第3页
第3页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第4页
第4页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第5页
第5页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第6页
第6页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第7页
第7页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第8页
第8页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第9页
第9页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第10页
第10页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第11页
第11页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第12页
第12页 / 共13页
模拟控制器的设计实例洗衣机的模糊控制.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模拟控制器的设计实例洗衣机的模糊控制.docx

《模拟控制器的设计实例洗衣机的模糊控制.docx》由会员分享,可在线阅读,更多相关《模拟控制器的设计实例洗衣机的模糊控制.docx(13页珍藏版)》请在冰点文库上搜索。

模拟控制器的设计实例洗衣机的模糊控制.docx

模拟控制器的设计实例洗衣机的模糊控制

模拟控制器的设计实例——洗衣机的模糊控制

传统的洗衣机都是人们用肉眼观看后,根据人的经验来调整洗衣时间和用水量,而模糊控制就是以人对被控对象的控制经验为依据而设计的控制器,这样就能实现控制器模拟人的思维方式来控制洗衣机。

以模糊洗衣机的设计为例其控制是一个开环的决策过程,模糊控制按以下步骤进行。

1.模糊控制器的结构

选用单变量二维模糊控制器。

控制器的输入为衣物的污泥和油脂,输出为洗涤时间。

2.定义输入、输出模糊集

将污泥分为3个模糊集:

SD(污泥少),MD(污泥中),LD(污泥多);取值范围为[0,100]。

3.定义隶属函数

选用如下隶属函数

采用三角形隶属函数可实现污泥的模糊化。

Matlab实现污泥隶属度函数的设计,其仿真程序为0001.m

Closeall;

N=2;

x=0:

0.1:

100;

fori=1:

N+1

f(i)=100/N*(i-1);

end

u=trimf(x,[f

(1),f

(1),f

(2)]);

figure

(1);

plot(x,u);

forj=2:

N

u=trimf(x,[f(j-1),f(j),f(j+1)]);

holdon;

plot(x,u);

end

u=trimf(x,[f(N),f(N+1),f(N+1)]);

holdon;

plot(x,u);

xlabel(‘x’);

ylabel(‘Degreeofmembership’);

污泥程序仿真结果:

将油脂分为三个模糊集:

NG(无油脂)MG(油脂中)LG(油脂多),取值范围为[0,100]

选用如下隶属度函数

采用三角形隶属函数实现油脂的模糊化。

Matlab实现油脂隶属度函数的设计,其仿真程序为0002.

Closeall;

N=2;

x=0:

0.1:

100;

fori=1:

N+1

f(i)=100/N*(i-1);

end

u=trimf(y,[f

(1),f

(1),f

(2)]);

figure

(1);

plot(y,u);

forj=2:

N

u=trimf(y,[f(j-1),f(j),f(j+1)]);

holdon;

plot(y,u);

end

u=trimf(y,[f(N),f(N+1),f(N+1)]);

holdon;

plot(y,u);

xlabel(‘y’);

ylabel(‘Degreeofmembership’);

油脂程序仿真结果:

将洗涤时间分为五个模糊集:

VS(很短)S(短)M(中等)L(很长)取值范围为[0,60]

 

选用如下隶属函数

采用三角形隶属函数实现洗涤时间的模糊化,其Matlab仿真程序如下:

Closeall;

Z=0:

0.1:

60;

U=trimf(z,[0,0,10]);

Figure

(1);

Plot(z,u);

U=trimf(z,[0,10,25]);

holdon;

plot(z,u);

U=trimf(z,[10,25,40]);

holdon;

plot(z,u);

U=trimf(z,[25,40,60]);

holdon;

plot(z,u);

U=trimf(z,[40,60,60]);

holdon;

plot(z,u);

xlabel(‘z’)

ylabel(“Degreeofmembership”);

洗涤时间仿真程序结果:

4.建立模糊控制规则

根据人的操作经验设计模糊规则,模糊规则设计的标准为:

“污泥越多,油脂越多,洗涤时间越长”;“污泥适中,油脂适中,洗涤时间适中”;“污泥越少,油脂越少,洗涤时将越短”。

5.建立模糊控制表

根据模糊规则设计标准,建立模糊规则表

模糊洗衣机的洗涤规则

洗涤时间z

污泥x

NG

MG

LG

y

SD

VS*

M

L

MD

S

M

L

LD

M

L

VL

第*条规则为:

“IF衣物污泥少且没有油脂THEN洗涤时间很短”。

模糊推理:

分以下几步进行

(1)规则匹配:

假定当前传感器测得的信息

(污泥)=60,

(油脂)=70,分别代入所属的隶属函数中,求隶属度为

通过上述4种隶属度,可得到4条匹配的模糊规则

模糊推理结果

洗涤时间z

污泥x

NG

MG(3/5)

LG(2/5)

y

SD

0

0

0

MD(4/5)

0

LG(1/5)

0

(2)规则触发

由表3-2可知,被触发的规则有4条,即

Rule1:

IFyisMDandxisMGTHENzisM

Rule2:

IFyisMDandxisLGTHENzisL

Rule3:

IFyisLDandxisMGTHENzisL

Rule4:

IFyisLDandxisLGTHENzisVL

(3)规则前提推理

在同一条规则内,前提之间通过“与”的关系得到规则结论。

前提的可信度之间通过取小运算,得到每一条规则总前提的可信度为

规则1前提的可信度为:

min(4/5,3/5)=3/5

规则2前提的可信度为:

min(4/5,2/5)=2/5

规则3前提的可信度为:

min(1/5,3/5)=1/5

规则4前提的可信度为:

min(1/5,2/5)=1/5

由此得到洗衣机规则前提可信度表,即规则强度表

规则前提可信度

洗涤时间z

污泥x

NG

MG(3/5)

LG(2/5)

y

SD

0

0

0

MD(4/5)

0

3/5

2/5

LD(1/5)

0

1/5

1/5

(4)将上述两个表进行“与”运算

得到每条规则总的可信度输出

规则总的可信度

洗涤时间z

污泥x

SG

MG(3/5)

LG(2/5)

y

ND

0

0

0

MD(4/5)

0

min(

min(

LD(1/5)

0

min(

min(

(5)模糊系统的输出

模糊系统总的输出为各条规则可信度推理结果的并集,即

=

[11]

可见,有3条规则被触发。

(6)反模糊化

模糊系统总的输出

实际上是3个规则推理结果的并集,需要进行反模糊化才能得到更精确的推理结果。

下面以最大平均法为例,进行反模糊化。

洗衣机的模糊推理过程如图3-4和图3-5所示。

由图可知,洗涤时间隶属度最大值为

代入洗涤时间隶属度函数中的

,得到规则前提隶属度

与规则结论隶属度

的交点,即

得到

采用最大平均值法,可得精确输出为

即所需要的洗涤时间为25分钟。

 

洗衣机的3个规则被触发

仿真实例采用Matlab中模糊控制工具箱等的模糊命令设计洗衣机模糊控制系统。

采用本节隶属函数按上述步骤设计。

,反模糊化采用重心法,模糊推理结果为33.6853。

利用模糊命令ruleview可实现模糊控制的动态仿真

洗衣机模糊控制系统仿真程序如下:

closeall:

a=newfis(‘fuzz-wash’);

a=addvar(a,‘input’,‘x’,[0,100]);%FuzzyStain

a=addmf(a,‘input’,1,‘SD’,‘trimf’,[0,0,50]);

a=addmf(a,‘input’,1,‘MD’,‘trimf’,[0,50,100]);

a=addmf(a,‘input’,1,‘LD’,‘trimf’,[50,100,100]);

a=addvar(a,‘input’,‘y’,[0,100]);%FuzzyAxunge

a=addmf(a,‘input’,2,‘NG’,‘trimf’,[0,0,50]);

a=addmf(a,‘input’,2,‘MG’,‘trimf’,[0,50,100]);

a=addmf(a,‘input’,2,‘LG’,‘trimf’,[50,100,100]);

a=addvar(a,‘output’,‘z’,[0,60]);%FuzzyTime

a=addmf(a,‘output’,1,‘VS’,‘trimf’,[0,0,10]);

a=addmf(a,‘output’,1,‘S’,‘trimf’,[0,10,25]);

a=addmf(a,‘output’,1,‘M’,‘trimf’,[10,25,40]);

a=addmf(a,‘output’,1,‘L’,‘trimf’,[25,40,60]);

a=addmf(a,‘output’,1,‘VL’,‘trimf’,[40,60,60]);

rulelist=[11111:

12311:

13411:

21211:

22311:

23411:

31311:

32411:

33511];

a=addrule(a,rulelist);showrule(a)%showfuzzy

rulebaseal=setfis(a,‘DefuzzMethod’,‘mom’);%Defuzzy

writefis(al,‘wash’);%Savetofuzzyfile“washfis”a2=readfis(‘wash’);

figure

(1);

plotfis(a2);

figure

(2);

plotmf(a,‘intput’,1);

figure(3);

plotmf(a,‘intput’,2);

figure(4);

plotmf(a,‘output’,1);

ruleview(‘wash’);%DynamicSimulation

x=60;y=70;

z=evalfis([x,y],a2)%Usingfuzzyinference

采用本节隶属函数按上述步骤设计

,反模糊化采用重心法,模糊推理结果为33.6853。

利用模糊命令ruleview可实现模糊控制的动态仿真

洗衣机的组合输出及反模糊化

 

图3-6动态仿真模糊系统

通过上述内容,得出理论数值与仿真数值非常接近,所以设计的是符合理论和实际的。

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2