实验二-洗衣机模糊推理实验-matlab/python

实验二 洗衣机模糊推理系统实验

一、 实验目的

理解模糊逻辑推理的原理及特点,熟练应用模糊推理。

二、 实验内容

采用Matlad 7.0 的Fuzzy Logic Tool 设计洗衣机洗涤时间的模糊控制。

三、 实验要求

已知人的操作经验为:
“污泥越多,油脂越多,洗涤时间越长”;
“污泥适中,油脂适中,洗涤时间适中”;
“污泥越少,油脂越少,洗涤时间越短”。
模糊控制规则:
1、if(x is SD)and(y is NG)then(z is VS)(1)
2、if(x is SD)and(y is MG)then(z is M)(1)
3、if(x is SD)and(y is LG)then(z is L)(1)
4、if(x is MD)and(y is NG)then(z is S)(1)
5、if(x is MD)and(y is MG)then(z is M)(1)
6、if(x is MD)and(y is LG)then(z is L)(1)
7、if(x is LD)and(y is MG)then(z is M)(1)
8、if(x is LD)and(y is MG)then(z is L)(1)
9、if(x is LD)and(y is LG)then(z is VL)(1)

其中SD(污泥少)、MD(污泥中)、LD(污泥多)、NG(油脂少)、MG(油脂中)、LG(油脂多)、VS(洗涤时间很短)、S(洗涤时间短)、M(洗涤时间中等)、L(洗涤时间长)、VL(洗涤时间很长)。

四、 实验内容

(1) 假设污泥、油脂、洗涤时间的论域分别为 [0,100]、[0,100] 和 [0,120],设计相应的模糊推理系统,给出输入、输出语言变量的隶属函数图,模糊控制规则表和推理结果立体图。

1.污泥隶属函数
在这里插入图片描述
在这里插入图片描述
2.油脂隶属函数
在这里插入图片描述
在这里插入图片描述

3.洗涤时间隶属度函数
在这里插入图片描述
在这里插入图片描述

4.模糊控制规则表
在这里插入图片描述
注:SD(污泥少)、MD(污泥中)、LD(污泥多)、NG(油脂少)、MG(油脂中)、LG(油脂多)、VS(洗涤时间很短)、S(洗涤时间短)、M(洗涤时间中等)、L(洗涤时间长)、VL(洗涤时间很长)。

  1. 推论结果立体图
    在这里插入图片描述

(2)假定当前传感器测得的信息为x (污泥) = 60,y(油脂) = 70,采用模糊决策,给出模糊推理结果,并观察模糊推理得到动态仿真环境,给出其动态仿真环境图。

这里使用python来实现

(1) 模糊匹配
将x=60,y=70带入的隶属度函数中:
在这里插入图片描述

(2)规则触发。被触发的规则有4条:

Rule1:IF x is MD AND y is MG THEN z is M;
Rule2:IF x is MD AND y is LG THEN z is L;
Rule3:IF x is LD AND y is MG THEN z is L;
Rule4:IF x is LD AND y is LG THEN z is VL。

(3)规则前提推理。在同一条规则内,前提之间通过交运算得到规则结论。
在这里插入图片描述

(4)模糊系统总的输出(聚合),取各条规则推理结果的并。
在这里插入图片描述

(5)去模糊化。采用加权平均判决发的方法。根据洗涤时间隶属函数的反函数用相应的隶属度求出时间论域中对应的值。

1.	# 1. 污泥隶属度计算  
2.	def Sludge(a):  
3.	    sludge = [0, 0, 0]  # 默认隶属度为0,依次对应SD,MD,LD  
4.	    if a < 0 or a > 100:  
5.	        return (print("输入值有误"))  
6.	    elif 0 <= a <= 50:  
7.	        sludge[0] = (50 - a) / 50  
8.	        sludge[1] = a / 50  
9.	    elif 50 < a <= 100:  
10.	        sludge[1] = (100 - a) / 50    #  40/50  
11.	        sludge[2] = (a - 50) / 50      # 10/50  
12.	    return sludge  
13.	  
14.	# 2. 油脂隶属度计算  
15.	def Grease(a):  
16.	    grease = [0, 0, 0]  # 默认隶属度为0,依次对应NG,MG,LG  
17.	    if a < 0 or a > 100:  
18.	        return (print("输入值有误"))  
19.	    elif 0 <= a <= 50:  
20.	        grease[0] = (50 - a) / 50  
21.	        grease[1] = a / 50  
22.	    elif 50 < a <= 100:  
23.	        grease[1] = (100 - a) / 50   #  30/50  
24.	        grease[2] = (a - 50) / 50   #  10/50  
25.	    return grease  
26.	  
27.	# 3. 规则前提推理,并运算取最小值  
28.	def Rules(a, b):  # a为污泥隶属度,b为油脂隶属度  
29.	    rules_value = [0, 0, 0, 0, 0, 0, 0, 0, 0]  # 依次对应9条规则结果VS,M,L,S,M,L,M,L,VL  
30.	    if a[0] != 0 and b[0] != 0:  
31.	        rules_value[0] = min(a[0], b[0])  # 返回规则下最小值  
32.	    if a[0] != 0 and b[1] != 0:  
33.	        rules_value[1] = min(a[0], b[1])  
34.	    if a[0] != 0 and b[2] != 0:  
35.	        rules_value[2] = min(a[0], b[2])  
36.	    if a[1] != 0 and b[0] != 0:  
37.	        rules_value[3] = min(a[1], b[0])  
38.	    if a[1] != 0 and b[1] != 0:  
39.	        rules_value[4] = min(a[1], b[1])  
40.	    if a[1] != 0 and b[2] != 0:  
41.	        rules_value[5] = min(a[1], b[2])  
42.	    if a[2] != 0 and b[0] != 0:  
43.	        rules_value[6] = min(a[2], b[0])  
44.	    if a[2] != 0 and b[1] != 0:  
45.	        rules_value[7] = min(a[2], b[1])  
46.	    if a[2] != 0 and b[2] != 0:  
47.	        rules_value[8] = min(a[2], b[2])  
48.	    return rules_value  

详细代码下载:https://download.csdn.net/download/hgxiaojiujiu/40088631

程序结果图:
在这里插入图片描述

五、 心得体会

略…

注:这篇文章的部分内容是参考这篇文章的matlab方法和步骤
https://blog.csdn.net/qq_44057443/article/details/92668331?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.no_search_link

  • 31
    点赞
  • 275
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
洗衣机模糊推理实验是一种使用Python编程语言进行的实验,旨在通过模糊逻辑推理的方法,解决洗衣机在不同洗涤条件下的洗涤时间选择问题。 首先,我们需要准备洗衣机的参数数据集,包括水温、衣物种类、污渍程度等。然后,使用Python中的模糊逻辑推理库,如scikit-fuzzy,建立模糊推理的规则集。 接下来,我们将根据不同的参数组合,进行洗涤时间的推理。例如,当水温为40度,衣物种类为棉质,污渍程度为重度,我们可以设定一条规则,如“如果水温为40度且衣物种类为棉质且污渍程度为重度,则洗涤时间为90分钟”。根据这样的规则,我们可以编写Python代码,进行推理过程。 在代码中,我们使用模糊集合来描述参数的取值范围,例如低温水、中温水和高温水,以及轻度、中度和重度的污渍程度。然后,根据输入的参数,使用模糊推理库来计算出洗涤时间的模糊集合,并通过去模糊化过程,得到具体的洗涤时间值。 最后,我们可以通过对不同参数组合进行模拟实验,评估洗涤时间的准确性和效果。根据实验结果,我们可以进一步优化模糊推理的规则集,提高洗衣机洗涤时间选择的准确性和性能。 总之,洗衣机模糊推理实验利用Python编程语言的模糊逻辑推理库,通过建立规则集、模拟实验和优化迭代,解决了洗衣机在不同洗涤条件下洗涤时间选择的问题。这一实验在实际应用中可以提高洗衣机的智能化程度和用户体验,具有一定的研究和应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值