黃 河 ,劉福華 ,王 信
(1.宜賓職業(yè)技術(shù)學(xué)院 電子信息工程系,四川 宜賓644003;2.宜賓職業(yè)技術(shù)學(xué)院 現(xiàn)代制造工程系,四川 宜賓644003)
模糊控制洗衣機(jī)是一種智能型的、真正全自動(dòng)的洗衣機(jī)。它能自動(dòng)識(shí)別衣質(zhì)、衣量及骯臟程度,自動(dòng)決定水量,自動(dòng)投入適量的洗滌劑,從而全部自動(dòng)地完成整個(gè)洗滌過(guò)程。洗滌程序是通過(guò)模糊推理來(lái)決定的,因此有極高的洗滌效能,不僅提高了洗衣機(jī)的全自動(dòng)化程度,而且大大提高了洗衣質(zhì)量。
模糊洗衣機(jī)通過(guò)對(duì)衣質(zhì)、衣量、衣物骯臟度及初始水位高低情況等輸入量,來(lái)決定洗滌時(shí)間、水流強(qiáng)弱、洗滌劑用量以及脫水時(shí)間等。因此,系統(tǒng)的被控對(duì)象主要是洗滌時(shí)間、水流強(qiáng)弱、洗滌劑用量及脫水時(shí)間等[1],即輸出量。洗衣機(jī)中被控對(duì)象的運(yùn)動(dòng)規(guī)律極其復(fù)雜,很難用數(shù)學(xué)語(yǔ)言的形式來(lái)表達(dá)。而模糊控制無(wú)需建立被控對(duì)象的數(shù)學(xué)模型,因此適用于洗衣機(jī)控制。模糊型洗衣機(jī)無(wú)需人為按鍵設(shè)置水位、水流方式、洗滌時(shí)間、清洗時(shí)間和脫水時(shí)間,用戶只需放進(jìn)待洗衣物,按下啟動(dòng)鍵,洗衣機(jī)便能自動(dòng)完成洗滌過(guò)程,實(shí)現(xiàn)了真正的“全自動(dòng)”。
模糊洗衣機(jī)要求控制系統(tǒng)能根據(jù)測(cè)得的衣質(zhì)、衣量情況,確定適當(dāng)水位、水流強(qiáng)度、洗滌時(shí)間、洗滌劑用量,并根據(jù)骯臟度的變化合理地修正洗滌時(shí)間,以達(dá)到節(jié)水和節(jié)能的目的。
圖1 模糊洗衣機(jī)的電路構(gòu)成Fig.1 Circuit diagram of fuzzy washing machine
圖1 為模糊洗衣機(jī)的一般電路構(gòu)成。模糊控制系統(tǒng)主要由電源電路、洗衣機(jī)狀態(tài)控制電路、顯示電路及輸出控制電路等組成。由單片機(jī)組成的邏輯控制系統(tǒng)是模糊洗衣機(jī)硬件控制系統(tǒng)的核心,也是進(jìn)行模糊推理的物理基礎(chǔ)。單片機(jī)系統(tǒng)對(duì)洗衣機(jī)狀態(tài)的檢測(cè),是為了提取模糊推理的一些前件狀態(tài),從而得到用于推斷后件結(jié)果的先前條件。用于進(jìn)行模糊推理的前件模糊量包括衣質(zhì)、衣量、骯臟度及水溫等的有關(guān)語(yǔ)言值。
圖2模糊控制系統(tǒng)結(jié)構(gòu)圖。各傳感器的輸出端連接到單片機(jī)上,單片機(jī)根據(jù)各傳感器檢測(cè)到的負(fù)載、衣質(zhì)、水位、水溫以及洗滌劑類型等信息,進(jìn)行分段評(píng)估計(jì)算,使其模糊化,再根據(jù)模糊規(guī)則進(jìn)行推理,最后從規(guī)則庫(kù)中查找對(duì)應(yīng)規(guī)則進(jìn)行模糊判決,從而確定最適當(dāng)?shù)乃鳌⑺?、洗滌時(shí)間、清洗方式及脫水時(shí)間。由此可見(jiàn),模糊洗衣機(jī)的控制系統(tǒng)是一個(gè)多輸入多輸出的模糊控制系統(tǒng)[2]。
圖2 模糊洗衣機(jī)控制系統(tǒng)結(jié)構(gòu)框圖Fig.2 Structure diagram of fuzzy washing machine control system
在模糊洗衣機(jī)中,骯臟度、衣質(zhì)和衣量無(wú)法直接測(cè)量的。在實(shí)際中是通過(guò)有關(guān)電路以及有關(guān)洗衣機(jī)的動(dòng)態(tài)過(guò)程,并從這個(gè)動(dòng)態(tài)過(guò)程在電路中反映出來(lái)的有關(guān)電信號(hào)去進(jìn)行分析,最終通過(guò)模糊化處理得出衣質(zhì)和衣量的情況。根據(jù)經(jīng)驗(yàn),衣質(zhì)分為棉織品、化纖織品以及二者的混織品,棉織品洗滌更困難,而化纖織品洗滌更容易;衣量多一些,則洗滌過(guò)程長(zhǎng)一些,反之則短一些。由于骯臟度與洗滌水的污濁度有關(guān),水的污濁度又與水的透光率有關(guān),所以通過(guò)光電傳感器來(lái)檢測(cè)衣物的骯臟度。水位的檢測(cè)是用專用的水位傳感器來(lái)實(shí)現(xiàn)的。水溫則通過(guò)熱敏電阻來(lái)測(cè)量。各傳感器的選擇及測(cè)量電路在這里不再贅述。
僅就模糊控制原理部分而言,模糊型洗衣機(jī)的開(kāi)發(fā)工作包括:3個(gè)輸入變量(骯臟度、衣量、衣質(zhì))的語(yǔ)言變量值的隸屬函數(shù)的定義,2個(gè)輸出變量(洗滌時(shí)間、水流強(qiáng)度)的語(yǔ)言變量值的隸屬函數(shù)的定義以及連接3個(gè)輸入到兩個(gè)輸出的規(guī)則表的制定。
為簡(jiǎn)化推理及演算和縮小存儲(chǔ)容量,隸屬度函數(shù)采用最簡(jiǎn)單的三角隸屬度函數(shù)[3]。在圖3中,(a)表示負(fù)載的隸屬度函數(shù),負(fù)載大小由負(fù)載傳感器檢測(cè)到的脈沖數(shù)決定,負(fù)載越大,脈沖數(shù)越少;(b)表示水溫的隸屬度函數(shù);(c)表示衣質(zhì)的隸屬度函數(shù),由衣質(zhì)傳感器檢測(cè)到的脈沖數(shù)增量來(lái)確定。在圖4中,(a)和(b)分別表示輸出量水流強(qiáng)度和洗滌時(shí)間的隸屬度函數(shù)。
1)輸入量(分三級(jí))
圖3 輸入量的隸屬度函數(shù)Fig.3 Degree membership function of the input value
圖4 輸出量的隸屬度函數(shù)Fig.4 Degree membership function of the output value
負(fù)載:偏大、中等、偏小;
衣質(zhì):棉織品偏多、棉和化纖各半、化纖織品偏多;
水溫:偏高、中等、偏低。
2)輸出量(分五級(jí))
水流強(qiáng)度:特強(qiáng)、強(qiáng)、中等、弱、特弱;
洗滌時(shí)間:特長(zhǎng)、長(zhǎng)、中等、短、特短。
洗衣機(jī)模糊控制系統(tǒng)的主要工作就是依據(jù)語(yǔ)言規(guī)則進(jìn)行模糊推理決策。因此,在進(jìn)行模糊規(guī)則推理之前,先要確定好語(yǔ)言控制規(guī)則(即知識(shí)庫(kù))。語(yǔ)言控制規(guī)則是根據(jù)經(jīng)驗(yàn)知識(shí)來(lái)確定的,并在實(shí)驗(yàn)過(guò)程中不斷加以修正和完善[1,4]。它相當(dāng)于計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的條件語(yǔ)句:“IF……THEN……”。
根據(jù)輸入量與輸出量的分級(jí)組合,對(duì)于水流強(qiáng)度和洗滌時(shí)間可以用以下 27(=3×3×3)條模糊規(guī)則來(lái)表示。
規(guī)則一:如果負(fù)載偏小,衣質(zhì)化纖織品偏多,且水溫偏高;那么將水流特弱,洗滌時(shí)間特短。
規(guī)則二:如果負(fù)載偏大,衣質(zhì)化纖織品偏多,且水溫偏高;那么將水流中等,洗滌時(shí)間中等。
……
依次類推,可以寫出其他規(guī)則,如表1所示。
為了提高響應(yīng)速度、縮小資源開(kāi)銷,規(guī)則表(即知識(shí)庫(kù))的獲取采用離線計(jì)算的方式獲取,將其固化到單片機(jī)的程序存儲(chǔ)器中。洗衣機(jī)工作時(shí),采用查表法,從規(guī)則表中找到對(duì)應(yīng)規(guī)則,從而進(jìn)行模糊判斷和推理。推理時(shí)可采用最大最小推理法或者最大乘積推理法。兩種方法的推理結(jié)果在面積形式上有所差別,但差別不大[5-6]。
表1 全自動(dòng)洗衣機(jī)模糊控制規(guī)則表Tab.1 Fuzzy control rules table of full automatic washing machine
在模糊推理結(jié)束之后,我們得到的是以模糊子集表示的水流強(qiáng)度和洗滌時(shí)間的校正量,它不能直接調(diào)節(jié)水流和洗滌時(shí)間,還需要進(jìn)行反模糊化。
輸出反模糊化就是要將語(yǔ)言表達(dá)的模糊量恢復(fù)到精確的數(shù)值,即要根據(jù)輸出模糊子集的隸屬度計(jì)算出確定的值。反模糊化采用質(zhì)心法。質(zhì)心法對(duì)于輸出變量模糊子集三角形定義,其匯編語(yǔ)言編程相當(dāng)復(fù)雜。為簡(jiǎn)化編程,輸出變量模糊子集采用單值定義。這樣反模糊化過(guò)程編程就大為簡(jiǎn)化。
洗衣機(jī)模糊控制系統(tǒng)的軟件主要包括以下6個(gè)功能模塊:系統(tǒng)初始化功能模塊、信號(hào)檢測(cè)與處理模塊、模糊推理模塊、中斷處理模塊、顯示輸出模塊、過(guò)載報(bào)警模塊。所有模糊推理在洗滌之前都已執(zhí)行完畢。所以在程序進(jìn)行完功能設(shè)置之后就開(kāi)始啟動(dòng)信號(hào)檢測(cè)模塊,開(kāi)始一系列檢測(cè)工作,以確定模糊推理的先件條件(輸入變量值),然后進(jìn)行模糊推理,確定洗滌時(shí)間及水流強(qiáng)度等輸出量。在推理完成后就開(kāi)始洗滌工作。在洗滌過(guò)程中,如果發(fā)生故障,則系統(tǒng)自動(dòng)報(bào)警并進(jìn)入相應(yīng)的中斷處理模塊。主程序框圖如圖5所示。
圖5 控制系統(tǒng)主程序框圖Fig.5 Main program block diagram of control system
圖6 查表過(guò)程示意圖Fig.6 Sketch map of table look-up process
圖6 表示三輸入二輸出模糊控制系統(tǒng)的查表法過(guò)程。離線設(shè)計(jì)得到一查詢表用于在線運(yùn)行,可以提高運(yùn)算速度和精度[7]。查詢表體現(xiàn)了模糊控制算法的最終運(yùn)行結(jié)果。在每一采樣時(shí)刻, 對(duì)采樣值ei、ej、ek進(jìn)行量程轉(zhuǎn)換 (即乘以量化因子K1、K2和K3)然后進(jìn)行量化(即將輸入的物理信號(hào)值轉(zhuǎn)換為輸入論域上的點(diǎn)),再通過(guò)查詢表查到輸出的控制作用,它也是輸出論域上的點(diǎn),再分別乘以比例因子K4和K5進(jìn)行量程轉(zhuǎn)換,就得到了要求的物理量。
由于模糊規(guī)則表有3個(gè)輸入量構(gòu)成了一張三維數(shù)據(jù)表,假設(shè)規(guī)則表以三維數(shù)組a[i][j][k]和b[i][j][k]的形式存儲(chǔ),并且各維變量定義如下:
i=0,1,2分別代表負(fù)載偏小、中等、偏大;
j=0,1,2分別代表質(zhì)料棉織品偏多、中等棉和化纖各半、化纖織品偏多;
k=0,1,2分別代表負(fù)載偏低、中等、偏高;
數(shù)組a中某元素的值表示水流的某個(gè)模糊值(特弱、弱、中等、強(qiáng)、特強(qiáng)分別用數(shù)值 0,1,2,3,4 來(lái)表示);數(shù)組 b 中某元素的值表示洗滌時(shí)間的某個(gè)模糊值(特短、短、中等、長(zhǎng)、特長(zhǎng)分別用數(shù)值 0,1,2,3,4 來(lái)表示)。 例如:a[0][2][2]=0 且 b[0][2][2]=0它代表規(guī)則一,即“如果負(fù)載偏小,衣質(zhì)化纖織品偏多,且水溫偏高時(shí),那么將水流特弱,洗滌時(shí)間特短?!蓖韆[2][2][2]=2且b[0][2][2]=2代表規(guī)則二。依次類推可以得到如下查詢表,如表2所示。
當(dāng)模糊控制系統(tǒng)主程序調(diào)用查表子程序時(shí),通過(guò)參數(shù)傳遞,將采集到的輸入量ei、ej、ek經(jīng)量化后得到的模糊量作為實(shí)參,分別傳送給查表子程序的形參i、j、k,然后通過(guò)查找對(duì)應(yīng)數(shù)組元素來(lái)確定它所符合的模糊規(guī)則,完成模糊推理。將對(duì)應(yīng)數(shù)組元素的數(shù)值作為子程序的返回值。查表程序如下:
……
/*以數(shù)組形式存放的規(guī)則表*/
extern int a[3][3][3],b[3][3][3];
static a[3][3][3]={1,1,1,1,1,1,1,1,0,2,2,2,2,2,2,2,1,1,4,3,3,3,3,2,2,2,2};
static b [3][3][3]={2,2,1,2,1,1,2,1,0,3,2,1,3,2,2,2,2,1,4,3,3,3,3,2,3,2,2};
表2 查詢表Tab.2 Query table
int Current(int i, int j, int k) /* 水流強(qiáng)度 */
{if(i<0||i>2||j<0||j>2||k<0||k>2)
{printf("Error! ");
return(-1); /*數(shù)組越界,故障*/
}
else return(a[i][j][k]);/*返回對(duì)應(yīng)數(shù)組的的值 */
}
int Time(int i, int j, int k) /* 洗滌時(shí)間 */
{if(i<0||i>2||j<0||j>2||k<0||k>2)
{printf("Error! ");
return (-1);
}
else return(b[i][j][k]);
}
在調(diào)用以上查表子程序之后,得到的數(shù)值如果是-1則認(rèn)為出現(xiàn)故障;正確數(shù)值數(shù)為整數(shù)0到4,必須將其轉(zhuǎn)化為相應(yīng)的模糊量,然后再進(jìn)行乘以相應(yīng)的比例因子進(jìn)行量程轉(zhuǎn)換,得到物理量,這樣就是需要的水流強(qiáng)度和洗滌時(shí)間。
文中針對(duì)以單片機(jī)控制為核心的洗衣機(jī)控制系統(tǒng),采用模糊控制技術(shù)進(jìn)行優(yōu)化改進(jìn),能自動(dòng)識(shí)別衣料、衣量等,更好的模仿人工洗滌過(guò)程,實(shí)現(xiàn)了一鍵全自動(dòng)洗衣,提高了洗衣機(jī)的智能化程度和洗滌效果。
[1]賈佩山.全自動(dòng)模糊控制洗衣機(jī)的設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),1998(2):8-9.JIA Pei-shan.Design of automatic fuzzy controlled washing machine[J].Industrial Control Computer,1998(2):8-9.
[2]王力新.模糊系統(tǒng)與模糊控制教程[M].王迎軍,譯.北京:清華大學(xué)出版社,2003.
[3]席愛(ài)民.模糊控制技術(shù)[M].西安:西安電子科技大學(xué)出版社,2008.
[4]王萬(wàn)森.人工智能原理及其應(yīng)用[M].北京:電子工業(yè)出版社,2007.
[5]劉金琨.先進(jìn)PID控制及MATLAB仿真[M].北京:電子工業(yè)出版社,2004.
[6]郭代儀.模糊控制技術(shù)及其在冶金工業(yè)中的應(yīng)用 [M].重慶:重慶大學(xué)出版社,1999.
[7]江和.單片機(jī)查表程序自動(dòng)生成技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(5):36-38.JIANG He.Automatic generation technique of table look-up program based on MCU[J].Microcontrollers&Embedded Systems,2002(5):36-38.