- 智能控制:理论基础、算法设计与应用
- 刘金琨
- 1384字
- 2021-04-02 20:41:56
3.4 模糊控制应用实例——洗衣机的模糊控制
下面以模糊洗衣机洗涤时间的模糊控制系统设计为例进行介绍,其控制是一个开环的决策过程,模糊控制按以下步骤进行。
1.确定模糊控制器的结构
选用单变量二维模糊控制器,控制器的输入为衣物的污泥和油脂,输出为洗涤时间。
2.定义输入输出模糊集
将污泥分为3个模糊集,即SD(污泥少)、MD(污泥中)和LD(污泥多),取值范围为[0,100]。
3.定义隶属函数
选用如下隶属函数
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P58_12395.jpg?sign=1739967162-9D6yGXoEH8izccViwWSB33O2iHmZSU2p-0-d3894e65d69b40e8225c150470271efb)
采用三角形隶属函数可实现污泥的模糊化。采用MATLAB进行仿真,仿真程序见chap3_3.m,仿真结果如图3.11所示。
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P58_3068.jpg?sign=1739967162-QFvOiLd1nwgNOoHuXyxgjznZ9ymUNnBx-0-a09190476ec4c0b250cf1e2ecd2331cc)
图3.11 污泥隶属函数
污泥隶属函数设计仿真程序:chap3_3.m
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P59_12397.jpg?sign=1739967162-Q5GEZbGoUgnM0GARtplAXuYTw2GyTf7Q-0-d672c843efec927c8aef3f8ff2e14d9d)
将油脂分为3个模糊集,分别为NG(无油脂)、MG(油脂中)和LG(油脂多),取值范围为[0,100]。选用如下隶属函数
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P59_12398.jpg?sign=1739967162-Usc8GM1rSSjJAK8ibpqegTG8jxF9NdCW-0-b46a61e1233074d1a15fb2e4b78287fc)
采用三角形隶属函数实现油脂的模糊化,如图3.12所示,仿真程序同chap3_3.m。
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P59_3085.jpg?sign=1739967162-g9PbkwvK0Dg6LsbCcH5fq7z5P0Tc7Qva-0-afa14ee9a4384ede1c05f18f38030a21)
图3.12 油脂隶属函数
将洗涤时间分为5个模糊集即VS(很短)、S(短)、M(中等)、L(长)和VL(很长),取值范围为[0,60],选用如下隶属函数
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P59_12399.jpg?sign=1739967162-Lp0eZUFH77tKvvs2JdLWH9eTXrXlPB2p-0-fb846f471debbbc15cf862eac1ac70e5)
采用三角形隶属函数实现洗涤时间的模糊化,如图3.13所示,仿真程序见chap3_4.m。
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P60_3104.jpg?sign=1739967162-4KYAX5y6vmlPRJGvkMeVo7p9e0qKwctY-0-673d774b1be8d8a5cf4e23451a235c10)
图3.13 洗涤时间隶属函数
采用MATLAB仿真,可实现洗涤时间隶属函数的设计。仿真程序见chap3_4.m。
洗涤时间隶属函数设计仿真程序:chap3_4.m
%Define N+1 triangle membership function clear all; close all; z=0:0.1:60; u=trimf(z,[0,0,10]); figure(1); plot(z,u); u=trimf(z,[0,10,25]); hold on; plot(z,u); u=trimf(z,[10,25,40]); hold on; plot(z,u); u=trimf(z,[25,40,60]); hold on; plot(z,u); u=trimf(z,[40,60,60]); hold on; plot(z,u); xlabel('z)'; ylabel('Degree of membership');
4.建立模糊控制规则
根据人的操作经验设计模糊规则,模糊规则设计的标准为“污泥越多,油脂越多,洗涤时间越长”、“污泥适中,油脂适中,洗涤时间适中”以及“污泥越少,油脂越少,洗涤时间越短”。
5.建立模糊控制表
根据模糊规则的设计标准,建立模糊规则表,如表3.7所示。
表3.7 模糊洗衣机的洗涤规则
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-T61_3249.jpg?sign=1739967162-Rk2Cj8S9Tl3U1nDBTmnQCLg7hbOgx8uV-0-863f2af946514b0cd0f90d874db950b8)
第*条规则为“IF衣物污泥少且没有油脂THEN洗涤时间很短”。
6.模糊推理
模糊推理分以下几步进行。
(1)规则匹配。
假定当前传感器测得的信息为:x0(污泥)=60,y0(油脂)=70,分别代入所属的隶属函数中求隶属度
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P61_12402.jpg?sign=1739967162-5H708d4A46p92d6vAVipHNZxAarBHYOB-0-7d3d2cd73533ddfd31626f196c506be9)
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P61_12403.jpg?sign=1739967162-tyOEegscdOYkPjYz3WcVJReergtfnepl-0-3db532d34067584291f0a245517716b2)
通过上述4种隶属度,可得到4条相匹配的模糊规则,如表3.8所示。
表3.8 模糊推理结果
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-T61_3250.jpg?sign=1739967162-PNrxSOWhIZAwfcrEztG0SPqPADjyORoM-0-0ed3a58f3ac14bba12563383cb3850c5)
(2)规则触发。
由表3.8可知,被触发的规则有如下4条
Rule1:IF y is MD and x is MG then z is M
Rule2:IF y is MD and x is LG then z is L
Rule3:IF y is LD and x is MG then z is L
Rule4:IF y is LD and x is LG then z is VL
(3)规则前提推理。
在同一条规则内,前提之间通过“与”的关系得到规则结论,前提之间通过取小运算,得到每一条规则总前提的可信度:
Rule1前提的可信度为min(4/5,3/5)=3/5
Rule2前提的可信度为min(4/5,2/5)=2/5
Rule3前提的可信度为min(1/5,3/5)=1/5
Rule4前提的可信度为min(1/5,2/5)=1/5
由此得到洗衣机规则前提可信度表,即规则强度表,如表3.9所示。
表3.9 规则前提可信度
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-T62_3528.jpg?sign=1739967162-blppQviL5OuEz1vOfYA1OoQ7vPYskZ4j-0-71df9bf499adbde84713e7d572a9c550)
(4)将上述两个表进行“与”运算。
得到每条规则总的输出,如表3.10所示。
表3.10 规则总的可信度
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-T62_3529.jpg?sign=1739967162-vWGeQlwk9I43T4E4jDZq17gj8VAAai0h-0-ca3bcb12689e425d4a13aa3c5d9ad848)
(5)模糊系统总的输出。
模糊系统总的输出为各条规则推理结果的并,即
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P62_12405.jpg?sign=1739967162-V9I2F0fWUGmEahaWXAzgqhp9JGaO8Zzh-0-01123e8df568bb30d3d7f0b7643fba58)
(6)反模糊化。
模糊系统总的输出μagg(z)实际上是3个规则推理结果的并集,需要进行反模糊化,才能得到精确的推理结果。下面以最大平均法为例,进行反模糊化。
将带入洗涤时间隶属函数中的μM(z),得到规则前提隶属度
与规则结论隶属度μM(z)的交点
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P62_12407.jpg?sign=1739967162-2wbIKRcTcB4mtcwwD2Yh8RXH2Vsf6QUZ-0-6205d2b20fbee3824ad7a07eec5f08f7)
得:z1=19,z2=31。
采用最大平均法,可得精确输出
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P62_12409.jpg?sign=1739967162-Fy1AnKanBX8L3lUgT74y3mDdUxPuEFyw-0-af0879417d990dab02a21725ee14c7d1)
采用MATLAB中模糊控制工具箱可设计洗衣机模糊控制系统。洗衣机模糊控制系统仿真程序见chap3_5.m。
取x=60,y=70,反模糊化采用重心法,模糊推理结果为33.6853。利用命令showrule可观察规则库,利用命令ruleview可实现模糊控制的动态仿真,如图3.14所示。
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P63_3478.jpg?sign=1739967162-stpdMucEVD7WciN5ro5IvfczG5UNQLYX-0-6e52eda1849972d96d8f416d0768b1dc)
图3.14 动态仿真模糊系统
洗衣机模糊控制系统仿真程序:chap3_5.m
![](https://epubservercos.yuewen.com/5343CC/17035792805330906/epubprivate/OEBPS/Images/Figure-P64_12417.jpg?sign=1739967162-tlv1oOEHxrbKJfYZ25DBokvvPXqQoeFe-0-ce31f4292e9d7b885b1721b21fefecde)