<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于單片機模糊推理的洗衣機控制系統(tǒng)設計

          基于單片機模糊推理的洗衣機控制系統(tǒng)設計

          作者: 時間:2012-08-23 來源:網(wǎng)絡 收藏

          依次類推,可以寫出其他規(guī)則,如表1所示。

          本文引用地址:http://www.ex-cimer.com/article/190014.htm

          e.JPG


          為了提高響應速度、縮小資源開銷,規(guī)則表(即知識庫)的獲取采用離線計算的方式獲取,將其固化到的程序存儲器中。工作時,采用查表法,從規(guī)則表中找到對應規(guī)則,從而進行模糊判斷和推理。推理時可采用最大最小推理法或者最大乘積推理法。兩種方法的推理結(jié)果在面積形式上有所差別,但差別不大。
          結(jié)束之后,我們得到的是以模糊子集表示的水流強度和洗滌時間的校正量,它不能直接調(diào)節(jié)水流和洗滌時間,還需要進行反模糊化。
          3.3 反模糊化
          輸出反模糊化就是要將語言表達的模糊量恢復到精確的數(shù)值,即要根據(jù)輸出模糊子集的隸屬度計算出確定的值。反模糊化采用質(zhì)心法。質(zhì)心法對于輸出變量模糊子集三角形定義,其匯編語言編程相當復雜。為簡化編程,輸出變量模糊子集采用單值定義。這樣反模糊化過程編程就大為簡化。
          3.4 軟件設計
          模糊控制系統(tǒng)的軟件主要包括以下6個功能模塊:系統(tǒng)初始化功能模塊、信號檢測與處理模塊、模塊、中斷處理模塊、顯示輸出模塊、過載報警模塊。
          所有在洗滌之前都已執(zhí)行完畢。所以在程序進行完功能設置之后就開始啟動信號檢測模塊,開始一系列檢測工作,以確定模糊推理的先件條件(輸入變量值),然后進行模糊推理,確定洗滌時間及水流強度等輸出量。在推理完成后就開始洗滌工作。在洗滌過程中,如果發(fā)生故障,則系統(tǒng)自動報警并進入相應的中斷處理模塊。主程序框圖如圖5所示。

          f.JPG


          3.5 查表程序編制
          圖6表示三輸入二輸出模糊控制系統(tǒng)的查表法過程。離線設計得到一查詢表用于在線運行,可以提高運算速度和精度。查詢表體現(xiàn)了模糊控制算法的最終運行結(jié)果。在每一采樣時刻,對采樣值ei、ej、ek進行量程轉(zhuǎn)換(即乘以量化因子K1、K2和K3)然后進行量化(即將輸入的物理信號值轉(zhuǎn)換為輸入論域上的點),再通過查詢表查到輸出的控制作用,它也是輸出論域上的點,再分別乘以比例因子K4和K5進行量程轉(zhuǎn)換,就得到了要求的物理量。

          g.JPG


          由于模糊規(guī)則表有3個輸入量構(gòu)成了一張三維數(shù)據(jù)表,假設規(guī)則表以三維數(shù)組a[i][j][k]和b[i][j][k]的形式存儲,并且各維變量定義如下:
          i=0,1,2分別代表負載偏小、中等、偏大;
          j=0,1,2分別代表質(zhì)料棉織品偏多、中等棉和化纖各半、化纖織品偏多;
          k=0,1,2分別代表負載偏低、中等、偏高;



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();