实验二模糊控制实验实验目的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]时的输出结果xD e g r e e o f m e m b e r s h ipzD 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:1001x(k)=(k-1)*0.10;if x(k)>=0&x(k)<50y1(k)=0; y2(k)=0; y3(k)=0; y4(k)=0; y5(k)=0;elsey1(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);endendhold onplot(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 peopleclear all;close all;for k=1:1:2001x(k)=(k-1)*0.10;if x(k)>=0&x(k)<50y1(k)=0;elsey1(k)=1/(1+(1/((x(k)-50)/5)^2));endendplot(x,y1,'b');xlabel('x years');ylabel('degree of membership');hold onfor k=1:1:2001x(k)=(k-1)*0.10;if x(k)>=0&x(k)<25y2(k)=1;elsey2(k)=1/(1+((x(k)-25)/5)^2);endendplot(x,y2,'g');xlabel('x years');ylabel('degree of membership');for k=1:1:2001x(k)=(k-1)*0.10;if x(k)>=0&x(k)<25y3(k)=1;elsey3(k)=1/(1+((x(k)-25)/5)^2)^2;endendplot(x,y3,'m');xlabel('x years');ylabel('degree of membership');hold onfor k=1:1:2001x(k)=(k-1)*0.10;if x(k)>=0&x(k)<25y(k)=0;else if x(k)>25&x(k)<50y4(k)=1-1/(1+((x(k)-25)/5)^2)^2;elsey4(k)=1-1/(1+(1/((x(k)-50)/5)^2))^2;endendendplot(x,y4,'r');xlabel('x years');ylabel('degree of membership');仿真结果见图2图2 3 模糊矩阵合成仿真程序(1)(P。
Q)oR;clear all;close all;P=[0.6,0.9;0.2,0.7];Q=[0.5,0.7;0.1,0.4];R=[0.2,0.3;0.7,0.7];S=[0.1,0.2;0.6,0.5];%Compound of P and Q and Rfor i=1:2for j=1:2PQ(i,j)=max(min(P(i,:),Q(:,j)'));endendfor i=1:2for j=1:2PQR(i,j)=max(min(PQ(i,:),R(:,j)'))endend结果见图3图3(2)(PUQ)。
S;clear all;close all;P=[0.6,0.9;0.2,0.7];Q=[0.5,0.7;0.1,0.4];R=[0.2,0.3;0.7,0.7];S=[0.1,0.2;0.6,0.5];for i=1:2for j=1:2PQ(i,j)=max(P(i,j),Q(i,j)')endendfor i=1:2for j=1:2PQS(i,j)=max(min(PQ(i,:),S(:,j)')) endend运行结果见图4图4(3)(PoS)U(QoS);clear all;close all;P=[0.6,0.9;0.2,0.7];Q=[0.5,0.7;0.1,0.4];R=[0.2,0.3;0.7,0.7];S=[0.1,0.2;0.6,0.5];%Compound of A and B and Cfor i=1:2for j=1:2PS(i,j)=max(min(P(i,:),S(:,j)')); endendfor i=1:2for j=1:2QS(i,j)=max(min(Q(i,:),S(:,j)')); endendfor i=1:2for j=1:2PSQS(i,j)=max(PS(i,j),QS(i,j)')endend运行结果见图5图5 4 模糊推理仿真程序思考题2-9clear allclose alla=[0.5;1;0.1]b=[0.1;1;0.6]c=[0.4;1]for i=1:3for j=1:3ab(i,j)=min(a(i),b(j));%求Dendendt1=[];for i=1:3t1=[t1;ab(i,:)'];end%求DT;for i=1:9for j=1:2r(i,j)=min(t1(i),c(j));endend%求Ra1=[1;0.5;0.1]b1=[0.1;0.5;1]for i=1:3for j=1:3ab1(i,j)=min(a1(i),b1(j)); %求D1 endendt2=[];for i=1:3t2=[t2;ab1(i,:)'];endfor i=1:9for j=1:2d(i,j)=min(t2(i),r(i,j));c1(j)=max(d(:,j))endendc1运行结果见图6图6。