模糊控制器汇总

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二模糊控制实验

实验目的matlab中的模糊工具箱的使用及模糊控制器的应用

1)用fuzzy工具箱计算P82 2-14,要求求出控制器输出。

2)用FUZZY工具箱完成洗衣机模糊控制器设计要求求出控制器输出。完成模糊控制决策表。

一、用fuzzy工具箱计算P82 2-14,并与手算结果对比。

实验结果如图1-1所示,

图1-1题目2-14的实验结果

二、用FUZZY工具箱完成洗衣机模糊控制器设计。

(1)题目分析:洗衣时间长短实际与衣物的脏污程度有关,太脏了就洗久点,不脏就可以洗快点。

人类的操作经验是由模糊的自然语言描述的,在洗衣机的调节中,人类的操作经验是:

(1)“如果污泥越多,且油脂越多,洗涤时间就越长;”

(2)“如果污泥适中,且油脂适中,洗涤时间就适中;”

(3)“如果污泥越少,且油脂越少,洗涤时间就越短;”

通过分析可以知道这实际是一个开环的控制决策过程:

输入是污泥度x与油污度y,输出是洗涤时间z。在该规则中对这些量进行衡量的是一些模糊词语,“多”、“少”、“长”、“短”。

(2)定义输入、输出模糊集

将污泥x 分为3个模糊集:{SD (污泥少),MD (污泥中),LD (污泥多)} 论域:{0,50,100}

将油脂分为3个模糊集:{NG (油脂少),MG (油脂中),LG (油脂多)} 论域:{0,50,100} 输出模糊集:

将洗涤时间分为5个模糊集:{VS (很短),S (短),M (中等),L (长),VL (很长)}。

论域:{0,10,25,40,60} 单位s 例如:

(3)建立模糊控制器

求:假设当前传感器测得信息为:x0(污泥)=90,y0(油脂)=90 观察控制器的输出。

(4)建立控制决策表 x0=10,20,30,40,50,60,70,80,90,y0=10,20,30,40,50,60,70,80,90,分别取值时,控制器的输出。

(5)改变输入输出变量的模糊值、隶属度函数的曲线、解模糊的方法等,观察控制器三维图以及控制器输出, Maltlab 提供5种反模糊化方法:

1.centroid :面积重心法;

2.bisector :面积等分法;

3.mom :最大隶属度平均法;

4.som :最大隶属度取小法;

5.lom :最大隶属度取大法 三、按照上述要求完成洗衣机模糊控制器设计。 1.下图1-2为洗衣机输入为[90 90]时的输出结果

x

D e g r e e o f m e m b e r s h i

p

z

D e g r e e o f m e m b e r s h i p

图1-2洗衣机模糊控制器输出结果2.建立控制决策表

3. 改变输入输出变量的模糊值、隶属度函数的曲线、解模糊的方法等,观察控制器三维图以及控制器输出。

1)centroid:面积重心法

2)bisector:面积等分法

3)mom:最大隶属度平均法

4)som:最大隶属度取小法

5)lom:最大隶属度取大法

模糊控制实验报告

学院:电气与信息工程学院

专业:控制理论与控制工程

学号:20140201051 姓名:张延丽

实验一模糊控制的理论基础实验

实验目的:

1 练习matlab中隶属函数程序的编写,同时学习matlab数据的表达、格式、文件格式、存盘

2 学习matlab中提供的典型隶属函数及参数改变对隶属度曲线的影响

3 模糊矩阵合成仿真程序的学习

4 模糊推理仿真程序

1隶属函数编程

(1)要求自己编程求非常老,很老,比较老,有点老的隶属度函数。

clear all;

close all;

for k=1:1:1001

x(k)=(k-1)*0.10;

if x(k)>=0&x(k)<50

y1(k)=0; y2(k)=0; y3(k)=0; y4(k)=0; y5(k)=0;

else

y1(k)=1/(1+(1/((x(k)-50)/5)^2));

y2(k)=1/(1+(1/((x(k)-50)/5)^2))^3;

y3(k)=1/(1+(1/((x(k)-50)/5)^2))^2;

y4(k)=1/(1+(1/((x(k)-50)/5)^2))^(0.8);

y5(k)=1/(1+(1/((x(k)-50)/5)^2))^(0.2);

end

end

hold on

plot(x,y,'k');

plot(x,y,'r');

plot(x,y,'b');

plot(x,y,'g');

plot(x,y,'y');

xlabel('X Years');ylabel('Degree of membership');

运行结果见图1

图1

(2)思考题P80 2-2 写出W及V两个模糊集的隶属函数,并绘出四个仿真后的曲线。

%membership function for old people

clear all;

close all;

for k=1:1:2001

x(k)=(k-1)*0.10;

if x(k)>=0&x(k)<50

y1(k)=0;

else

y1(k)=1/(1+(1/((x(k)-50)/5)^2));

end

end

plot(x,y1,'b');

xlabel('x years');ylabel('degree of membership');

hold on

for k=1:1:2001

x(k)=(k-1)*0.10;

if x(k)>=0&x(k)<25

y2(k)=1;

else

y2(k)=1/(1+((x(k)-25)/5)^2);

end

end

plot(x,y2,'g');

xlabel('x years');ylabel('degree of membership');

for k=1:1:2001

x(k)=(k-1)*0.10;

if x(k)>=0&x(k)<25

y3(k)=1;

else

y3(k)=1/(1+((x(k)-25)/5)^2)^2;

end

end

plot(x,y3,'m');

xlabel('x years');ylabel('degree of membership');

hold on

for k=1:1:2001

x(k)=(k-1)*0.10;

if x(k)>=0&x(k)<25

y(k)=0;

else if x(k)>25&x(k)<50

y4(k)=1-1/(1+((x(k)-25)/5)^2)^2;

else

y4(k)=1-1/(1+(1/((x(k)-50)/5)^2))^2;

end

相关文档
最新文档