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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > NLX230型模糊控制器及其嵌入式應(yīng)用研究

          NLX230型模糊控制器及其嵌入式應(yīng)用研究

          ——
          作者:黃曉林 (湖北汽車工業(yè)學(xué)院 電子信息系 湖北 十堰 442002) 時間:2007-01-26 來源:《國外電子元器件》 收藏

          1 引言

          在自動控制領(lǐng)域,模糊控制理論及其應(yīng)用的研究取得了很大的進(jìn)展,美國neuralogix公司推出的nlx230型單片模糊控制器是一種可編程的超大規(guī)模集成模糊邏輯微處理器fmc(fuzzy micro controller),根據(jù)模糊邏輯原理對輸入條件進(jìn)行模糊邏輯運算,得到最優(yōu)的動作,通過執(zhí)行并行操作控制輸出,其處理速度高達(dá)30m規(guī)則/秒,具有與計算機的接口電路、與外接eeprom的接口電路和晶體振蕩器接口電路,可廣泛應(yīng)用于過程嵌入式控制、模式匹配,人工智能,機器人及專家系統(tǒng)。

          2 nlx230的設(shè)計特點與工作原理

          模糊邏輯在控制領(lǐng)域的應(yīng)用原理是利用模糊邏輯器件通過"項"和"規(guī)則"去構(gòu)造任意復(fù)雜的線性和非線性函數(shù),再根據(jù)輸入狀態(tài)經(jīng)過模糊推理,找到最佳的輸出動作值并應(yīng)用于控制過程,從而使模糊邏輯獲得類似于人類專家似然推理的能力。

          nlx230基于條件用模糊邏輯規(guī)則計算出優(yōu)化的輸出操作。輸入值在用戶定義的隸屬函數(shù)中按適合的程度排序。為了實施有效的數(shù)字化,采用1個線性對稱隸屬函數(shù)或最簡單的最大/最小模糊參考方法,規(guī)則決定了在輸入時所需的狀態(tài)集,每一規(guī)則至多包含16個項,每1個項與1個"清晰"輸入/模糊隸屬函數(shù)配對。1個當(dāng)前值是對用戶在某一規(guī)則下的輸出值合計的修改。對于所有的輸入和輸出,輸入排序與規(guī)則處理是并行的。單片式24位寬的規(guī)則存儲器最多可存64個規(guī)則,所有輸入都可共享這些規(guī)則。根據(jù)需要每個輸出可以被編程為最多用64個規(guī)則,任一個輸出所用的規(guī)則個數(shù)是其他規(guī)則所用的規(guī)則的剩余數(shù)。模糊邏輯原理的高效數(shù)字化實現(xiàn)使nlx230在低價格下獲得高處理速度(30m規(guī)則/秒)。

          2.1 距離測量的相似判決原理

          nlx230型單片模糊集成控制器利用模糊邏輯元件將輸入與隸屬度函數(shù)結(jié)合起來,確定輸入對于被選定的隸屬函數(shù)中心值的距離,通過距離測量進(jìn)行相似決策。由于最佳隸屬函數(shù)的形狀與系統(tǒng)中傳感器特性、控制響應(yīng)及其他動態(tài)特性有關(guān),因而確定最佳隸屬函數(shù)形狀往往是很困難的(當(dāng)然,在某些情況下可以根據(jù)經(jīng)驗確定)。nlx230型單片模糊控制器在設(shè)計上采取了一種新的方法,不依賴隸屬函數(shù)的形狀和確值輸入與隸屬函數(shù)的交點,而且測算出輸入與選定的隸屬函數(shù)的中心點的距離,其原理如圖1所示。不考慮隸屬函數(shù)的區(qū)間和輸入的單調(diào),而測量輸出與中間位置的距離,距離用中心位置減去輸入,忽略符號。確值輸入xa離中心點越遠(yuǎn),其隸屬值越低,反之,其隸屬值越高。當(dāng)確值輸入xa正好位于中心點位置時,則隸屬值最大。

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

          有二種不同類型的隸屬函數(shù),對于第一種隸屬函數(shù),確值輸入離中心點愈近,隸屬值愈大,如果確值輸入落入隸屬函數(shù)的寬度范圍之外,那么隸屬值最小。對于第二隸屬函數(shù),當(dāng)確值輸入落入隸屬函數(shù)的寬度范圍之內(nèi)時隸屬值最小。距離測量的優(yōu)點有二:其一是使設(shè)計者在保留重要信息的同時不必決定復(fù)雜隸屬函數(shù)的形狀;其二是這種方法提供了相似判決的簡單途徑。

          2.2 確值輸入向模糊邏輯量的轉(zhuǎn)換

          確值輸入向模糊邏輯量的轉(zhuǎn)換是通過測量距離的相似判決模糊邏輯單元實現(xiàn)的,在相似判決模糊邏輯單元內(nèi)求取隸屬值的電路結(jié)構(gòu)如圖2所示。模糊邏輯單元內(nèi)被選定的隸屬函數(shù)中心點值和確值輸入送進(jìn)減法器計算出差值ac,該差值與隸屬函數(shù)寬度值相比較,只有當(dāng)差值在寬度范圍內(nèi)時,隸屬值計算器才輸出結(jié)果(該結(jié)果等于從允許的最大隸屬值中減去差值ac,如圖1所示),否則,隸屬值計算器輸出將被置零或置最小值。隸屬值實際上是1個模糊邏輯量,用μ(或d)表示。

          3 nlx230的內(nèi)部結(jié)構(gòu)和引腳功能

          nlx230型模糊控制器的內(nèi)部結(jié)構(gòu)如圖3所示,它由模糊輸入選擇器,16個模糊單元、最小和最大比較器、規(guī)則寄存器、輸出寄存器和定時控制等部分組成,完成模糊推理運算并作出控制決策。

          3.1 模糊輸入選擇器和模糊單元

          8選1多路選擇器控制n lx230中16個模糊單元的每個單元的輸入。模糊單元求取輸入量對用戶所定義的隸屬函數(shù)的隸屬度。每個模糊單元從8個外部輸入中任選1個作為輸入數(shù)據(jù)(1個模糊單元只能訪問1個輸入數(shù)據(jù))。把模糊單元組態(tài)構(gòu)成輸出反饋到輸入的形式,可不處理外部輸入。把一個輸入同1個隸屬函數(shù)聯(lián)系起來構(gòu)成1個項,nlx230最多可支持16個項。每個模糊單元的結(jié)構(gòu)如圖2所示,含有1個16位的項寄存器,包括8位的中心值、5位的寬度值及3位的輸入選擇組態(tài)(完成對8個外部輸入中任1個輸入的選擇)。每個模糊單元計算輸入值與用戶定義的中心點的距離,完成輸入確值量到模糊邏輯量的轉(zhuǎn)換。這樣,每1個模糊單元與1個8位中心位置相聯(lián),計算出距離后,其結(jié)果與用戶定義的寬度相比較,5位的寬度值代表輸入離中心位置的最遠(yuǎn)距離,如果輸入的距離小于或等于此寬度,那么輸入被認(rèn)為是隸屬函數(shù)的一部分,距離的求補得到隸屬函數(shù)度。求補就是30減去距離(30是最大寬度,)輸入離中心越近,隸屬值越高,落在寬度內(nèi)的隸屬值被傳到最小比較器來進(jìn)行規(guī)則處理。

          當(dāng)輸入等于中心值時,模糊單元輸出最大值31;當(dāng)輸入落在寬度范圍以外時,模糊輸出值為0,表示完全沒有關(guān)系。

          3.2 最小值比較器和最大值比較器

          nlx230的最小值比較器是由高流通量的神經(jīng)元網(wǎng)路執(zhí)行的,以適合高速的數(shù)據(jù)量。64條規(guī)則分別存儲在64個規(guī)則寄存器中,每個規(guī)則寄存器字有24位,其前16位分別用來完成每個模糊單元的輸出對最小比較器的使能。每個規(guī)則位固定對應(yīng)1個模糊單元。當(dāng)1個規(guī)則位被置1,則此規(guī)則包含該項,相應(yīng)的模糊單元輸出可與其他置1的規(guī)則位相比較以找出最小項。

          某個規(guī)則的最小項一旦被找到,就儲存在nlx230最大值比較器的暫存寄存器中,對應(yīng)被處理的每一規(guī)則經(jīng)處理所得最小項與暫存于最大值寄存器中的值進(jìn)行比較,去小存大;當(dāng)處理完所有規(guī)則,最大值寄存器中的結(jié)果是所有最小項中的最大值,該值對應(yīng)的規(guī)則為取勝規(guī)則,代表1個"模糊"邏輯各結(jié)果的和。取勝規(guī)則的當(dāng)前值(動作值)送到模糊量與確值量的轉(zhuǎn)換單元(輸出寄存器),經(jīng)轉(zhuǎn)換處理后進(jìn)行模糊控制。

          當(dāng)前值定義在每個規(guī)則寄存器字的8個保留位,代表輸出動作值所需的修正量,動作修正值是1個8位二進(jìn)制補碼值為-128~127。從規(guī)則寄存器字來的8位動作修正值與用戶定義的初值相加。例如,初始值為100,動作修正值為-5,則輸出為95。

          3.3 規(guī)則寄存器和輸出寄存器

          規(guī)則寄存器用于存放控制規(guī)則,nlx230最多可存放64條規(guī)則。輸出寄存器為總線使能方式,只要處理了所有的規(guī)則,規(guī)則寄存器的8位補碼修正值與初始值之和,飽和算數(shù)運算使輸出位取模128(當(dāng)前值使輸出高于或低于界限-128和127),輸出即由模糊量轉(zhuǎn)換為確值量,模糊控制器在輸入下一組數(shù)據(jù)的同時輸出結(jié)果數(shù)據(jù)。

          3.4 nlx230的引腳功能

          nlx230采用40引腳雙列直插式封裝,如圖4所示。rst是系統(tǒng)復(fù)位腳,低電平有效。di0-di7是8位數(shù)據(jù)輸入口。vss是地。sk是串行時鐘腳,用于將組態(tài)數(shù)據(jù)打入fmc(m/s=0時,該腳輸出)。cs是片選,與m/s和r/w聯(lián)用使能串行數(shù)據(jù)輸入/輸出(m/s=1時輸出,m/s=0時輸入)。di是串行數(shù)據(jù)輸入腳。do是串行數(shù)據(jù)輸出腳。m/s是主/從模式選擇(m/s=1時為主動模式;m/s=0時為伺服模式)。r/w是讀/寫輸入腳,僅用于伺服模式(r=1為讀;w=0為寫)。nc是空腳,必須接地。xi為晶體振蕩器輸入腳。xo為晶體振蕩器輸出腳。clk是緩沖系統(tǒng)時鐘輸出腳。stb是選通腳,與ma0-ma2聯(lián)用以選通輸入/輸出數(shù)據(jù)。ma2是輸入/輸出多路傳輸?shù)刂?輸出腳。ma1是輸入/輸出多路傳輸?shù)刂肺?輸出腳。ma0是輸入/輸出多路傳輸?shù)刂肺?輸出腳。do7-do0為數(shù)據(jù)輸出腳。vdd是+5v電源腳。


          4 nlx230模糊控制器的工作模式

          nlx230模糊控制器的工作模式有模糊單元模式、輸入模式、輸出模式及輸入輸出擴(kuò)展應(yīng)用。

          4.1 模糊單元模式

          在模糊單元模式下有二種方式,典型應(yīng)用為模糊單元的輸出表示每一個輸入接近中心位置的程度;另一種方式是將nlx230組態(tài)成為不包含模糊單元,通過使用不包含模糊單元的工作方式可用輸入與中心位置的距離來加權(quán)規(guī)則項。

          4.2 輸入模式

          nlx230的輸入即可以是來自8個分時多路輸入引腳的信號又可以是輸出的內(nèi)部反饋信號,二種輸入模式通過輸入組態(tài)寄存器選擇。

          4.3 輸出模式

          nlx230的每個輸出可以配置為立即輸出和累加輸出二種組態(tài)。在立即輸出模式中,由取勝規(guī)則(該規(guī)則帶有最大的最小項)所特指的動作值加上初始值。對nlx230的工作周期,原始的初始值都被用來計算輸出。在累加輸出模式中,1個輸出的新值是加了新動作值(此動作值由獲勝規(guī)則所決定)的現(xiàn)在值。在這個模式中,新輸入值被保留作為初始我用于下1個輸出值的計算。用戶定義的原始初始值僅在復(fù)位后計算第一個輸出值時被使用。

          4.4 擴(kuò)展

          多個nlx230級聯(lián)使用能夠擴(kuò)展輸入、輸出、模糊單元和規(guī)則的數(shù)目。

          4.5 時鐘

          1個外部時鐘源從xi引腳輸入可直接驅(qū)動nlx230。nlx230也包含了1個有源振蕩器電路用于時鐘的發(fā)生。clk提供了所需的時鐘輸出。

          5 nlx230的操作方式

          nlx230的操作模式通過初始化完成。復(fù)位引腳m/s可設(shè)置2種不同結(jié)構(gòu)的操作方式:主動方式(nlx230自動從外部eeprom中讀取數(shù)據(jù))和從動方式(nlx230等待外部邏輯電路讀寫數(shù)據(jù))。

          5.1 主動方式

          主動方式是在復(fù)位引腳由"1"變?yōu)?0"和m/s為"1"時使nlx230開始1個自動卸載周期。nlx230通過時鐘sk的發(fā)生、片選使能和地址(do)的發(fā)生來尋址2048位的串行eeprom。nlx230輸出串行時鐘(sk)并維持片選(cs),接著出現(xiàn)"讀標(biāo)志",7位地址在do輸出引腳出現(xiàn),nlx230立即開始在di引腳輸入16位數(shù)據(jù),該過程持續(xù)進(jìn)行到nlx230已經(jīng)輸入128個數(shù)據(jù)字(16×28=2048),之后片選失效。這個組態(tài)周期的下1個工作是由nlx230處理出現(xiàn)在輸入引腳(di0-di7)上的數(shù)據(jù)。

          5.2 從動(伺服)方式

          m/s為"0"時,nlx230處于從動(伺服)模式,由外部控制邏輯提供sk、cs、r/w等信號。在sk上升沿之前,維持r/w為低電平和cs為高電平以觸發(fā)卸載過程。然后,在sk的上升沿由di引腳輸入數(shù)據(jù)。所有數(shù)據(jù)位(2048)順序?qū)懭牒螅琧s變?yōu)榈碗娖?;在sk的上升沿之前,保持r/w和cs信號為高電平以觸發(fā)加載過程。然后,在sk的上升沿由do引腳輸出數(shù)據(jù)。所有數(shù)據(jù)位(2048)被順序讀出后,cs變?yōu)榈碗娖?。在串行卸載或加載周期之后,需要一個復(fù)位信號(保持為低電平)以清除內(nèi)部數(shù)據(jù)通道。


          6 應(yīng)用接口

          6.1 nlx230接口功能

          nlx230有8個時分多路復(fù)用輸入腳和8個多路復(fù)用輸出腳。內(nèi)部連接輸出到輸入可以得到反饋路徑、外部晶體振蕩器或pc電路;輸入和輸出計數(shù)的1個時鐘輸出;為使外部數(shù)據(jù)輸入信號同步的1個幀信號;串行eeprom接口由數(shù)據(jù)輸入(di)、片選(cs)、時鐘(sk)和讀寫(r/w)引腳組成。當(dāng)nlx230與微機接口時,只需di、cs、do、sk和r/w引腳即可。

          6.2 數(shù)據(jù)接口電路

          nlx230與微處理器(或單片機)接口只需5個引腳信號:di、cs、do、sk、r/w。圖5所示為典型的控制系統(tǒng)數(shù)據(jù)接口,74373作為輸入/輸出數(shù)據(jù)鎖存器,其個數(shù)與輸入/輸出個數(shù)相同。nlx230用于典型的輸入/輸出為8個8位數(shù)值的多路復(fù)用控制系統(tǒng)。mux地址腳ma(2:0)、選通腳stb及動態(tài)輸入或輸出通道的譯碼由nlx230提供。nlx230提供所有必要的信號,由典型幀時序圖可顯示時間關(guān)系。輸入值從di(7:0)輸入的同時輸出也在do(7:0)進(jìn)行。

          7 應(yīng)用實例

          應(yīng)用實例是玩具電動汽車自動駕駛控制系統(tǒng)。根據(jù)輸入由nlx230提供決策輸出,由控制規(guī)則控制不同路面環(huán)境下的速度與方向。nlx230的開發(fā)系統(tǒng)ads230由軟、硬件二部分組成,主要功能是將應(yīng)用系統(tǒng)的控制規(guī)則寫成控制規(guī)則文件,并轉(zhuǎn)換為有關(guān)寄存器的內(nèi)容寫入nlx230的規(guī)則寄存器。

          7.1 標(biāo)號定義

          df:前方;dr:右方;dl:左方;ve:速度;ro:路面;di:方向;ft:油門;br:剎車;le:左;ei:右;st:直;df-cl:接近前方;df-fa:遠(yuǎn)離前方;dr-fa:遠(yuǎn)離右方;dl-fa:遠(yuǎn)離左方;ve-sl:低速;ve-me:中速;ve-fa:高速;ra-we:路面滑;ro-me:路面適度;th-sl:抵擋;th-me:中擋;th-fa:高擋;br-of:不剎車;al-a:提示躲避;al-v:提示速度;si-r:右信號;si-l:左信號;br-lt:關(guān)油門;sp-i:速度變高;ac:累加;im:立即;yes:是;no:不是;is:是;in:包含;ex:不包含;then:則;and:并且;lb:反饋。

          輸入/輸出定義如表1所示。項的定義如表2所示。


          7.2 規(guī)則定義










          8 結(jié)束語

          在模糊控制方面,nlx230型模糊控制器與單片機相比,具有推理速度快、功能強大、應(yīng)用靈活和控制效果好等特點,因此,可廣泛應(yīng)用于過程嵌入式控制、模式匹配、人工智能、機器人及專家系統(tǒng)。



          關(guān)鍵詞:

          評論


          相關(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); })();