模糊控制器汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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