1、第 4 章 神经模糊控制洗衣机设计20 世纪 90 年代初期,日本松下公司推出了神经模糊控制全自动洗衣机。这种洗衣机能够自动判断衣服的质地软硬程度、衣量多少、脏污程度和性质等,应用神经模糊控制技术,自动生成模糊控制规则和隶属函数,预设洗衣水位、水流强度和洗涤时间,在整个洗衣过程中实时调整这些参数,达到最佳的洗衣效果。4.1 洗衣机的模糊控制洗衣机的主要被控参量为洗涤时间和水流强度,而影响这一输出参量的主要因子是被洗物的浑浊程度和浑浊性质,后者可用浑浊度的变化率来描述。在洗涤过程中,油污的浑浊度变化率小,泥污的浑浊度变化率打。因此,浑浊度及其变化率可以作为控制系统的输入参量,而洗涤时间和水流强度
2、可作为控制量,计系统的输出,实际上,洗衣过程中的这类输入和输出之间很难用一定的数学模型来描述。系统运行过程中具有较大的不确定性,控制过程在很大程度上依赖操作者的经验,这样一来,利用常规的方法进行控制难以奏效。但是,如果利用专家知识进行控制决策,往往容易实现优化控制,这是在洗衣机中引入模糊控制技术的主要原因之一。根据上述的模糊控制基本原理,可得出确定洗涤时间的模糊推理框图如图 4-1 所示。其输入量为洗涤水的浑浊度及其变化率,输出量为洗涤时间。考虑到适当的控制性能需要和简化程序,定义输入量浑浊度的模糊词集为清、较浊、浊、很浊;定义浑浊度变换率的模糊词集为零、小、中、大;定义输出变量洗涤时间的模糊
3、词集为短、较短、标准、长。描述输入输出变量的词集都具有模糊特性,可以用模糊集合表示。因此,模糊概念的问题就转化为求取模糊集合的隶属函数的问题。模糊控制器 F C洗涤时间浑浊度浑浊度变化率图 4-1 确定洗涤时间的模糊推理框图通常定义一个模糊子集,实际上就是确定模糊子集隶属函数形状的过程。将确定的隶属函数曲线离散化,就得到了有限个点上的隶属度,构成了一个相应的模糊子集。如图 4-2 所示,定义的隶属函数曲线表示论域 x 对模糊变量 A 的隶属程度。设定该隶属函数的论域 x 为:x=(-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6)则有: 14,7.053,2.062 AAA )(
4、xA)(x10 . 70 . 20 2 4 6图 4-2 模糊变量 A 的隶属度函数论域 x 中除了 2,3,4,5,6 外,各点的隶属度均为 0.那么模糊变量 A 的模糊子集为A=0.2/2+0.7/3+0.7/5+0.2/6。通过这个例子可以看出,在隶属函数的曲线确定后,就可以很容易的定义出一个模糊变量的模糊子集。洗衣机模糊控制的输入和输出变量的隶属函数如图 4-3 所示,由此可以相继确定它们的模糊子集。0 1 2 3 4 5 610 . 510 . 510 . 50 1 2 3 4 5 60 1 2 3 4 5 6 7 8图 4-3 洗衣机模糊变量隶属函数( a.浑浊度;b.浑浊度变化率
5、;c. 洗涤时间 t)洗衣机的模糊控制规则可以归纳 16 条,如表 4-2 所示。表 4-2 洗衣机的模糊控制规则表浑浊度洗涤时间清 较浊 浊 很浊变化率零很小中大短标准标准标准较短标准长标准标准标准长长标准标准长长4.2 洗衣机的神经网络模糊控制器的设计洗衣机模糊控制的空脏部分框图如图 4-4 所示。模糊控制如图中虚线所示。模糊控制的过程是这样的,首先洗衣机获取的浑浊度信息由传感器送到信息处理单元,分为浑浊度和浑浊度变化率进入模糊控制器,对于输入的模糊量,需要将其转换成模糊变量。通过单片机,利用查表法按照模糊推理法则做出决策,结果被认为是模糊变量,经过去模糊化处理单元,再由执行机构去修改洗涤
6、时间,这样就完成了一次模糊控制算法过程。控制规则决策转换器模糊划分输出浑浊度传感器洗衣机浑浊度浑浊度变化率图 4-4 模糊控制的控制部分框图一般的模糊控制洗衣机将“专家经验”通过模糊控制规则表现出来,运行中通过查表做出控制决策,这比需要操作者设定程序的电脑控制洗衣机前进了一大步。但是,这种洗衣机由于规则进行控制,因此不够理想。而把神经网络和模糊控制相结合,则能够解决这些问题。洗衣机的神经网络模糊控制是利用离线训练好的网络,通过在线计算即可得到最佳输出。这种控制模式的反应速度快,而且神经网络又具有自学习功能和联想能力,对于未在训练中出现的样本,也可以通过联系记忆的功能,做出控制决策,表现非常灵活
7、。洗衣机的神经网络模糊控制器的控制系统中含有多个神经模糊环节,下面介绍本设计中以浑浊度和浑浊度变化率为输入参量来确定洗涤时间的控制器。控制器的控制框图如图 4-5 所示,浑浊度神经网络结构如图 4-6 所示。浑浊度传感器模糊划分转换器神经模糊控制洗衣机浑浊度浑浊度变化率洗涤时间图 4-5 神经网络模糊控制器的控制框图W B K Bx 1x 2.x 1 4输入层 中间层 输出层y 1y 2y 8.图 4-6 浑浊度神经网络结构神经模糊控制器在输入和输出参量的选择,以及模糊论域和模糊子集的确定方面,与一般模糊控制器没有什么区别,只是在推理手段上引入了神经网络。令 x1-x7 为输入量浑浊度的模糊子
8、集,x8-x14 为输入量浑浊度变化率的模糊子集,y1-y7 为输出控制量的模糊子集。从模糊控制规则表 4-2 可以看出,共有 16 条控制规则,每条规则都是一堆样本,则共有 16 对样本。例如,当浑浊度为“清” ,浑浊变化率为“零”时,洗涤时间应该为“短” ,这个样本可以表示为:;Tx0,5.10,.,60Ty0,5.1表 4-3 输入参量的模糊量 输入参量 模糊量1 0.6 0.1 0 0 0 00 0.6 0.6 0 0 0 00 0 0.6 1 0 0 0浑浊度清较浊浊很浊 0 0 0 0 1 0.6 01 0.5 0 0 0 0 00 0.5 1 0.4 0 0 00 0 0 0.4
9、 1 0.6 0浑浊度变化率零很小中大 0 0 0 0 0 0 0.81 0.5 0 0 0 0 0 00.4 0.8 1 0.8 0. 4 0.2 0 00 0 0 0.2 0.6 1 0.6 0.2洗涤时间短较短标准长 0 0 0 0 0 0.2 0.5 0.8其中,x 中的各元素为对应的隶属函数,即模糊子集的赋值。同理可列出其他 15个样本对,并将它们一次送入神经网络进行离线训练,当训练结束后,神经网络已经记忆了模糊控制规则,使用时具有联想记忆功能。如表 4-3 所示,为每一个输入参量的模糊量。4.3 训练结果及输出根据上面的分析和模糊规则可得到网络的训练样本 P 和 T,为使控制器具有
10、预定功能,首先必须根据训练样本对神经网络进行训练。预设训练步数为 1000 次,训练目标误差为 0.001,输入训练网络的代码并运行后可得满意的网络训练结果: 图 4-6 网络误差曲线网络误差曲线如图 4-6 所示,网络经过 202 次训练后,目标误差达到要求值0.001,网络训练成功。网络训练完毕后,需检验其性能是否满足要求;因此,需要对训练好的网络进行验证。神经网络如图4-7所示,本设计中洗衣机的输入浑浊度和浑浊度变化率x经过洗衣机传感器识别后送人神经网络模糊控制器,经过记忆、学习和联想功能,再不断更新权值后,最终输出洗涤时间,则完成了一次智能识别过程。因此,本设计的输出为洗涤时间,可以通
11、过对输入的模糊量进行反复记忆、学习和联想来完成智能识别。洗 衣 机传 感 器已 训 练 好 的神 经 网 络 洗 衣 机浑 浊 度浑 浊 度变 化 率模 糊 控 制洗 涤 时 间图4-7 训练结果和输出训练好的网络需要利用测试数据进行测试,检验网络的智能识别性能是否满足要求。如果满足要求,就可以利用它来解决实际问题。为了保证测试结果的有效性和准确性,本设计使用的测试数据避免与训练数据一致。可输入与训练输入样本类似的数据来检测系统是否能准确完成智能识别输出我们所需要的期望值。利用测试数据对训练好的网络进行训练,测试结果如表4-4所示。表4-4 测试样本及测试结果测试样本P_test输入样本P测试
12、输出样本T_test 目标样本 T对应洗涤时间1 0.6 0.1 0.1 0 0 0 1 0.5 0 0.1 0 0 01 0.6 0.1 0 0 0 0 1 0.5 0 0 0 0 00.9948 0.63160.0280 0.02440.0170 0.11360.0311 0.01491 0.50 00 00 0短1 0.5 0.1 0 0 0 00 0.5 1 0.3 0 0 01 0.6 0.1 0 0 0 00 0.5 1 0.4 0 0 00.0094 0.00660.0078 0.12420.7070 0.99680.5106 0.21790 00 0.2 0.6 10.6 0.
13、2标准0 0.7 0.5 0 0 0 0 1 0.4 0 0.1 0 0 00 0.6 0.6 0 0 0 0 1 0.5 0 0 0 0 00.6469 0.93910.9466 0.65940.2923 0.16740.0385 0.01120.4 0.81 0.84 0.20 0较短0 0.5 0.6 0.1 0 0 00 0.1 0 0.3 1 0.6 00 0.6 0.6 0 0 0 00 0 0 0.4 1 0.6 00.0005 0.00120.0034 0.02780.0554 0.49560.5979 0.78110 00 00 0.20.5 0.8长由上表可见,网络的测试性
14、能满足要求,可以实现模糊控制,完成洗衣机对衣物的浑浊度和浑浊度变化率的智能识别过程,并做出准确的决策。4.4 本章小结 本章研究了神经网络模糊控制的原理和神经控制模糊控制器的设计,并以神经模糊控制洗衣机为例,演示了神经网络在模糊控制中的应用。总的来说,基于神经网络的模糊控制具有以下特点:(1)可以直接从经验中获取知识,自动建立模糊规则和隶属函数。(2)无需查表,节省内存空间,只需通过在线计算,便可得到控制器输出。(3)具有较强的适应能力和联想能力,对于未出现过的样本,神经模糊控制器可通过记忆,联想产生合适的输出量对系统进行控制。第 5 章 总结与展望本设计运用了人工神经网络和典型的神经网络算法
15、BP算法基本知识,参考相关的文献,实现了一个简单的洗衣机智能识别系统。此系统采用了模糊控制手段,能通过输入的模糊参量,如衣物的浑浊度以及浑浊度变化率来实现智能识别及控制,较精确的输出洗衣机的洗涤时间。本设计将神经网络和模糊控制结合,利用离线训练好的网络,通过在线计算得到最佳输出,这种控制模式反应速度快,而且神经网络又具有自学能力和联想能力。对于未在训练中出现的样本,也可以通过联系记忆的功能,做出控制决策,表现非常灵活,很好的解决了一般模糊控制洗衣机的问题。但是本设计中还存在着许多的欠缺和不足,还有待改进。例如,在输入测试样本后,所得的输出结果只能达到较精确,可以进行模糊识别,但是未能达到精确,
16、这样容易使洗衣机在识别过程中造成识别错误,若能提高识别的精确度,改善识别速度,则能大大增进这种洗衣机智能识别系统的性能。附录本论文编程软件为 MATLABR2010a,运行环境为 Intel(R) Pentium(R) Dual CPU T3400 2.16GHz,1G RAM。本论文中代码如下:1.训练网络代码P=1 0.6 0.1 0 0 0 0 1 0.5 0 0 0 0 0;1 0.6 0.1 0 0 0 0 0 0.5 1 0.4 0 0 0;1 0.6 0.1 0 0 0 0 0 0 0 0.4 1 0.6 0;1 0.6 0.1 0 0 0 0 0 0 0 0 0 0 0.8;0
17、 0.6 0.6 0 0 0 0 1 0.5 0 0 0 0 0;0 0.6 0.6 0 0 0 0 0 0.5 1 0.4 0 0 0;0 0.6 0.6 0 0 0 0 0 0 0 0.4 1 0.6 0;0 0.6 0.6 0 0 0 0 0 0 0 0 0 0 0.8;0 0 0.6 1 0 0 0 1 0.5 0 0 0 0 0;0 0 0.6 1 0 0 0 0 0.5 1 0.4 0 0 0;0 0 0.6 1 0 0 0 0 0 0 0.4 1 0.6 0;0 0 0.6 1 0 0 0 0 0 0 0 0 0 0.8;0 0 0 0 1 0.6 0 1 0.5 0 0 0 0
18、 0;0 0 0 0 1 0.6 0 0 0.5 1 0.4 0 0 0;0 0 0 0 1 0.6 0 0 0 0 0.4 1 0.6 0;0 0 0 0 1 0.6 0 0 0 0 0 0 0 0.8;T=1 0.5 0 0 0 0 0 0;0 0 0 0.2 0.6 1 0.6 0.2;0 0 0 0.2 0.6 1 0.6 0.2;0 0 0 0.2 0.6 1 0.6 0.2;0.4 0.8 1 0.8 0.4 0.2 0 0;0 0 0 0.2 0.6 1 0.6 0.2;0 0 0 0 0 0.2 0.5 0.8;0 0 0 0.2 0.6 1 0.6 0.2;0 0 0 0.2
19、 0.6 1 0.6 0.2;0 0 0 0.2 0.6 1 0.6 0.2;0 0 0 0 0 0.2 0.5 0.8;0 0 0 0 0 0.2 0.5 0.8;0 0 0 0.2 0.6 1 0.6 0.2;0 0 0 0.2 0.6 1 0.6 0.2;0 0 0 0 0 0.2 0.5 0.8;0 0 0 0 0 0.2 0.5 0.8;net.trainParam.epochs=1000;net.trainParam.goal=0.001;net,tr=train(net,P,T);net=newff(minmax(P),29,8,tansig,logsig,traingdx);%根据 Kolmogorov 定理,输入层有 14 个节点,所以中间层有 29 个节点%中间层神经元的传递函数为tansig%输出层有 8 个节点,其神经元传递函数为 logsig%训练函数采用traingdx%minmax(P_train)得到矩阵 P_train 的最小和最大值(找到每行的最小和最大,有多少行就有多少对最小和最大)%训练步数为 1000 次%训练目标误差为 0.001%调用算法训练 BP 网络save(aaa.mat, net);%保存训练好的网络在当前工作目录下的 aaa 文件中,net 为网络名