基于單片機模糊推理的洗衣機控制系統(tǒng)設計
摘要:為了更好的模仿人工洗滌過程,提高洗衣機的洗滌質量,針對以單片機為核心的洗衣機控制系統(tǒng),引入了模糊推理技術。首先闡述了模糊洗衣機的基本原理,完成了系統(tǒng)硬件設計;在軟件方面,對檢測到的水溫及骯臟度、衣質、衣量等物理量進行模糊化處理,建立了洗滌規(guī)則庫,通過模糊推理,實現(xiàn)對洗滌時間、水流強弱、洗滌劑用量以及脫水時間的自動控制,提高了洗衣機的自動控制和智能化程度。
關鍵詞:單片機;模糊推理;洗衣機;自動控制
模糊控制洗衣機是一種智能型的、真正全自動的洗衣機。它能自動識別衣質、衣量及骯臟程度,自動決定水量,自動投入適量的洗滌劑,從而全部自動地完成整個洗滌過程。洗滌程序是通過模糊推理來決定的,因此有極高的洗滌效能,不僅提高了洗衣機的全自動化程度,而且大大提高了洗衣質量。
1 控制系統(tǒng)基本原理
模糊洗衣機通過對衣質、衣量、衣物骯臟度及初始水位高低情況等輸入量,來決定洗滌時間、水流強弱、洗滌劑用量以及脫水時間等。因此,系統(tǒng)的被控對象主要是洗滌時間、水流強弱、洗滌劑用量及脫水時間等,即輸出量。洗衣機中被控對象的運動規(guī)律極其復雜,很難用數(shù)學語言的形式來表達。而模糊控制無需建立被控對象的數(shù)學模型,因此適用于洗衣機控制。模糊型洗衣機無需人為按鍵設置水位、水流方式、洗滌時間、清洗時間和脫水時間,用戶只需放進待洗衣物,按下啟動鍵,洗衣機便能自動完成洗滌過程,實現(xiàn)了真正的“全自動”。
模糊洗衣機要求控制系統(tǒng)能根據(jù)測得的衣質、衣量情況,確定適當水位、水流強度、洗滌時間、洗滌劑用量,并根據(jù)骯臟度的變化合理地修正洗滌時間,以達到節(jié)水和節(jié)能的目的。
圖1為模糊洗衣機的一般電路構成。模糊控制系統(tǒng)主要由電源電路、洗衣機狀態(tài)控制電路、顯示電路及輸出控制電路等組成。由單片機組成的邏輯控制系統(tǒng)是模糊洗衣機硬件控制系統(tǒng)的核心,也是進行模糊推理的物理基礎。單片機系統(tǒng)對洗衣機狀態(tài)的檢測,是為了提取模糊推理的一些前件狀態(tài),從而得到用于推斷后件結果的先前條件。用于進行模糊推理的前件模糊量包括衣質、衣量、骯臟度及水溫等的有關語言值。
2 控制系統(tǒng)硬件設計
圖2模糊控制系統(tǒng)結構圖。各傳感器的輸出端連接到單片機上,單片機根據(jù)各傳感器檢測到的負載、衣質、水位、水溫以及洗滌劑類型等信息,進行分段評估計算,使其模糊化,再根據(jù)模糊規(guī)則進行推理,最后從規(guī)則庫中查找對應規(guī)則進行模糊判決,從而確定最適當?shù)乃鳌⑺?、洗滌時間、清洗方式及脫水時間。由此可見,模糊洗衣機的控制系統(tǒng)是一個多輸入多輸出的模糊控制系統(tǒng)。
在模糊洗衣機中,骯臟度、衣質和衣量無法直接測量的。在實際中是通過有關電路以及有關洗衣機的動態(tài)過程,并從這個動態(tài)過程在電路中反映出來的有關電信號去進行分析,最終通過模糊化處理得出衣質和衣量的情況。根據(jù)經(jīng)驗,衣質分為棉織品、化纖織品以及二者的混織品,棉織品洗滌更困難,而化纖織品洗滌更容易;衣量多一些,則洗滌過程長一些,反之則短一些。由于骯臟度與洗滌水的污濁度有關,水的污濁度又與水的透光率有關,所以通過光電傳感器來檢測衣物的骯臟度。水位的檢測是用專用的水位傳感器來實現(xiàn)的。水溫則通過熱敏電阻來測量。各傳感器的選擇及測量電路在這里不再贅述。
3 模糊控制的軟件實現(xiàn)
僅就模糊控制原理部分而言,模糊型洗衣機的開發(fā)工作包括:3個輸入變量(骯臟度、農量、衣質)的語言變量值的隸屬函數(shù)的定義,2個輸出變量(洗滌時間、水流強度)的語言變量值的隸屬函數(shù)的定義以及連接3個輸入到兩個輸出的規(guī)則表的制定。
3.1 模糊化
為簡化推理及演算和縮小存儲容量,隸屬度函數(shù)采用最簡單的三角隸屬度函數(shù)。在圖3中,(a)表示負載的隸屬度函數(shù),負載大小由負載傳感器檢測到的脈沖數(shù)決定,負載越大,脈沖數(shù)越少;(b)表示水溫的隸屬度函數(shù);(c)表示衣質的隸屬度函數(shù),由衣質傳感器檢測到的脈沖數(shù)增量來確定。在圖4中,(a)和(b)分別表示輸出量水流強度和洗滌時間的隸屬度函數(shù)。
1)輸入量(分三級)
負載:偏大、中等、偏??;
衣質:棉織品偏多、棉和化纖各半、化纖織品偏多;
水溫:偏高、中等、偏低。
2)輸出量(分五級)
水流強度:特強、強、中等、弱、特弱;
洗滌時間:特長、長、中等、短、特短。
3.2 模糊推理
洗農機模糊控制系統(tǒng)的主要工作就是依據(jù)語言規(guī)則進行模糊推理決策。因此,在進行模糊規(guī)則推理之前,先要確定好語言控制規(guī)則(即知識庫)。語言控制規(guī)則是根據(jù)經(jīng)驗知識來確定的,并在實驗過程中不斷加以修正和完善。它相當于計算機程序設計語言的條件語句:“IF……THEN……”。
根據(jù)輸入量與輸出量的分級組合,對于水流強度和洗滌時間可以用以下27(=3×3×3)條模糊規(guī)則來表示。
規(guī)則一:如果負載偏小,衣質化纖織品偏多,且水溫偏高;那么將水流特弱,洗滌時間特短。
規(guī)則二:如果負載偏大,衣質化纖織品偏多,且水溫偏高;那么將水流中等,洗滌時間中等。
……
依次類推,可以寫出其他規(guī)則,如表1所示。
為了提高響應速度、縮小資源開銷,規(guī)則表(即知識庫)的獲取采用離線計算的方式獲取,將其固化到單片機的程序存儲器中。洗衣機工作時,采用查表法,從規(guī)則表中找到對應規(guī)則,從而進行模糊判斷和推理。推理時可采用最大最小推理法或者最大乘積推理法。兩種方法的推理結果在面積形式上有所差別,但差別不大。
在模糊推理結束之后,我們得到的是以模糊子集表示的水流強度和洗滌時間的校正量,它不能直接調節(jié)水流和洗滌時間,還需要進行反模糊化。
3.3 反模糊化
輸出反模糊化就是要將語言表達的模糊量恢復到精確的數(shù)值,即要根據(jù)輸出模糊子集的隸屬度計算出確定的值。反模糊化采用質心法。質心法對于輸出變量模糊子集三角形定義,其匯編語言編程相當復雜。為簡化編程,輸出變量模糊子集采用單值定義。這樣反模糊化過程編程就大為簡化。
3.4 軟件設計
洗衣機模糊控制系統(tǒng)的軟件主要包括以下6個功能模塊:系統(tǒng)初始化功能模塊、信號檢測與處理模塊、模糊推理模塊、中斷處理模塊、顯示輸出模塊、過載報警模塊。
所有模糊推理在洗滌之前都已執(zhí)行完畢。所以在程序進行完功能設置之后就開始啟動信號檢測模塊,開始一系列檢測工作,以確定模糊推理的先件條件(輸入變量值),然后進行模糊推理,確定洗滌時間及水流強度等輸出量。在推理完成后就開始洗滌工作。在洗滌過程中,如果發(fā)生故障,則系統(tǒng)自動報警并進入相應的中斷處理模塊。主程序框圖如圖5所示。
3.5 查表程序編制
圖6表示三輸入二輸出模糊控制系統(tǒng)的查表法過程。離線設計得到一查詢表用于在線運行,可以提高運算速度和精度。查詢表體現(xiàn)了模糊控制算法的最終運行結果。在每一采樣時刻,對采樣值ei、ej、ek進行量程轉換(即乘以量化因子K1、K2和K3)然后進行量化(即將輸入的物理信號值轉換為輸入論域上的點),再通過查詢表查到輸出的控制作用,它也是輸出論域上的點,再分別乘以比例因子K4和K5進行量程轉換,就得到了要求的物理量。
由于模糊規(guī)則表有3個輸入量構成了一張三維數(shù)據(jù)表,假設規(guī)則表以三維數(shù)組a[i][j][k]和b[i][j][k]的形式存儲,并且各維變量定義如下:
i=0,1,2分別代表負載偏小、中等、偏大;
j=0,1,2分別代表質料棉織品偏多、中等棉和化纖各半、化纖織品偏多;
k=0,1,2分別代表負載偏低、中等、偏高;
數(shù)組a中某元素的值表示水流的某個模糊值(特弱、弱、中等、強、特強分別用數(shù)值0,1,2,3,4來表示);數(shù)組b中某元素的值表示洗滌時間的某個模糊值(特短、短、中等、長、特長分別用數(shù)值0,1,2,3,4來表示)。例如:a[0][2][2]=0且b[O][2][2]=0它代表規(guī)則一,即“如果負載偏小,衣質化纖織品偏多,且水溫偏高時,那么將水流特弱,洗滌時間特短。”同理a[2][2][2]=2且b[0][2][2]=2代表規(guī)則二。依次類推可以得到如下查詢表,如表2所示。
當模糊控制系統(tǒng)主程序調用查表子程序時,通過參數(shù)傳遞,將采集到的輸入量ei、ej、ek經(jīng)量化后得到的模糊量作為實參,分別傳送給查表子程序的形參i、j、k然后通過查找對應數(shù)組元素來確定它所符合的模糊規(guī)則,完成模糊推理。將對應數(shù)組元素的數(shù)值作為子程序的返回值。查表程序如下:
在調用以上查表子程序之后,得到的數(shù)值如果是-1則認為出現(xiàn)故障;正確數(shù)值數(shù)為整數(shù)0到4,必須將其轉化為相應的模糊量,然后再進行乘以相應的比例因子進行量程轉換,得到物理量,這樣就是需要的水流強度和洗滌時間。
4 結論
文中針對以單片機控制為核心的洗衣機控制系統(tǒng),采用模糊控制技術進行優(yōu)化改進,能自動識別衣料、衣量等,更好的模仿人工洗滌過程,實現(xiàn)了一鍵全自動洗衣,提高了洗衣機的智能化程度和洗滌效果。