基于單片機模糊推理的洗衣機控制系統設計
依次類(lèi)推,可以寫(xiě)出其他規則,如表1所示。本文引用地址:http://dyxdggzs.com/article/190014.htm
為了提高響應速度、縮小資源開(kāi)銷(xiāo),規則表(即知識庫)的獲取采用離線(xiàn)計算的方式獲取,將其固化到單片機的程序存儲器中。洗衣機工作時(shí),采用查表法,從規則表中找到對應規則,從而進(jìn)行模糊判斷和推理。推理時(shí)可采用最大最小推理法或者最大乘積推理法。兩種方法的推理結果在面積形式上有所差別,但差別不大。
在模糊推理結束之后,我們得到的是以模糊子集表示的水流強度和洗滌時(shí)間的校正量,它不能直接調節水流和洗滌時(shí)間,還需要進(jìn)行反模糊化。
3.3 反模糊化
輸出反模糊化就是要將語(yǔ)言表達的模糊量恢復到精確的數值,即要根據輸出模糊子集的隸屬度計算出確定的值。反模糊化采用質(zhì)心法。質(zhì)心法對于輸出變量模糊子集三角形定義,其匯編語(yǔ)言編程相當復雜。為簡(jiǎn)化編程,輸出變量模糊子集采用單值定義。這樣反模糊化過(guò)程編程就大為簡(jiǎn)化。
3.4 軟件設計
洗衣機模糊控制系統的軟件主要包括以下6個(gè)功能模塊:系統初始化功能模塊、信號檢測與處理模塊、模糊推理模塊、中斷處理模塊、顯示輸出模塊、過(guò)載報警模塊。
所有模糊推理在洗滌之前都已執行完畢。所以在程序進(jìn)行完功能設置之后就開(kāi)始啟動(dòng)信號檢測模塊,開(kāi)始一系列檢測工作,以確定模糊推理的先件條件(輸入變量值),然后進(jìn)行模糊推理,確定洗滌時(shí)間及水流強度等輸出量。在推理完成后就開(kāi)始洗滌工作。在洗滌過(guò)程中,如果發(fā)生故障,則系統自動(dòng)報警并進(jìn)入相應的中斷處理模塊。主程序框圖如圖5所示。
3.5 查表程序編制
圖6表示三輸入二輸出模糊控制系統的查表法過(guò)程。離線(xiàn)設計得到一查詢(xún)表用于在線(xiàn)運行,可以提高運算速度和精度。查詢(xún)表體現了模糊控制算法的最終運行結果。在每一采樣時(shí)刻,對采樣值ei、ej、ek進(jìn)行量程轉換(即乘以量化因子K1、K2和K3)然后進(jìn)行量化(即將輸入的物理信號值轉換為輸入論域上的點(diǎn)),再通過(guò)查詢(xún)表查到輸出的控制作用,它也是輸出論域上的點(diǎn),再分別乘以比例因子K4和K5進(jìn)行量程轉換,就得到了要求的物理量。
由于模糊規則表有3個(gè)輸入量構成了一張三維數據表,假設規則表以三維數組a[i][j][k]和b[i][j][k]的形式存儲,并且各維變量定義如下:
i=0,1,2分別代表負載偏小、中等、偏大;
j=0,1,2分別代表質(zhì)料棉織品偏多、中等棉和化纖各半、化纖織品偏多;
k=0,1,2分別代表負載偏低、中等、偏高;
評論