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