1 引言在自動(dòng)控制領(lǐng)域,模糊控制理論及其應用的研究取得了很大的進(jìn)展,美國NeuraLogix公司推出的NLX230型單片模糊控制器是一種可編程的超大規模集成模糊邏輯微處理器FMC(Fuzzy Micro Controller),根據模糊邏輯原理對輸入條件進(jìn)行模糊邏輯運算,得到最優(yōu)的動(dòng)作,通過(guò)執行并行操作控制輸出,其處理速度高達30M規則/秒,具有與計算機的接口電路、與外接EEPROM的接口電路和晶體振蕩器接口電路,可廣泛應用于過(guò)程嵌入式控制、模式匹配,人工智能,機器人及專(zhuān)家系統。 2 NLX230的設計特點(diǎn)與工作原理模糊邏輯在控制領(lǐng)域的應用原理是利用模糊邏輯器件通過(guò)"項"和"規則"去構造任意復雜的線(xiàn)性和非線(xiàn)性函數,再根據輸入狀態(tài)經(jīng)過(guò)模糊推理,找到最佳的輸出動(dòng)作值并應用于控制過(guò)程,從而使模糊邏輯獲得類(lèi)似于人類(lèi)專(zhuān)家似然推理的能力。 NLX230基于條件用模糊邏輯規則計算出優(yōu)化的輸出操作。輸入值在用戶(hù)定義的隸屬函數中按適合的程度排序。為了實(shí)施有效的數字化,采用1個(gè)線(xiàn)性對稱(chēng)隸屬函數或最簡(jiǎn)單的最大/最小模糊參考方法,規則決定了在輸入時(shí)所需的狀態(tài)集,每一規則至多包含16個(gè)項,每1個(gè)項與1個(gè)"清晰"輸入/模糊隸屬函數配對。1個(gè)當前值是對用戶(hù)在某一規則下的輸出值合計的修改。對于所有的輸入和輸出,輸入排序與規則處理是并行的。單片式24位寬的規則存儲器最多可存64個(gè)規則,所有輸入都可共享這些規則。根據需要每個(gè)輸出可以被編程為最多用64個(gè)規則,任一個(gè)輸出所用的規則個(gè)數是其他規則所用的規則的剩余數。模糊邏輯原理的高效數字化實(shí)現使NLX230在低價(jià)格下獲得高處理速度(30M規則/秒)。 2.1 距離測量的相似判決原理NLX230型單片模糊集成控制器利用模糊邏輯元件將輸入與隸屬度函數結合起來(lái),確定輸入對于被選定的隸屬函數中心值的距離,通過(guò)距離測量進(jìn)行相似決策。由于最佳隸屬函數的形狀與系統中傳感器特性、控制響應及其他動(dòng)態(tài)特性有關(guān),因而確定最佳隸屬函數形狀往往是很困難的(當然,在某些情況下可以根據經(jīng)驗確定)。NLX230型單片模糊控制器在設計上采取了一種新的方法,不依賴(lài)隸屬函數的形狀和確值輸入與隸屬函數的交點(diǎn),而且測算出輸入與選定的隸屬函數的中心點(diǎn)的距離,其原理如圖1所示。不考慮隸屬函數的區間和輸入的單調,而測量輸出與中間位置的距離,距離用中心位置減去輸入,忽略符號。確值輸入Xa離中心點(diǎn)越遠,其隸屬值越低,反之,其隸屬值越高。當確值輸入Xa正好位于中心點(diǎn)位置時(shí),則隸屬值最大。 有二種不同類(lèi)型的隸屬函數,對于第一種隸屬函數,確值輸入離中心點(diǎn)愈近,隸屬值愈大,如果確值輸入落入隸屬函數的寬度范圍之外,那么隸屬值最小。對于第二隸屬函數,當確值輸入落入隸屬函數的寬度范圍之內時(shí)隸屬值最小。距離測量的優(yōu)點(diǎn)有二:其一是使設計者在保留重要信息的同時(shí)不必決定復雜隸屬函數的形狀;其二是這種方法提供了相似判決的簡(jiǎn)單途徑。 2.2 確值輸入向模糊邏輯量的轉換確值輸入向模糊邏輯量的轉換是通過(guò)測量距離的相似判決模糊邏輯單元實(shí)現的,在相似判決模糊邏輯單元內求取隸屬值的電路結構如圖2所示。模糊邏輯單元內被選定的隸屬函數中心點(diǎn)值和確值輸入送進(jìn)減法器計算出差值ac,該差值與隸屬函數寬度值相比較,只有當差值在寬度范圍內時(shí),隸屬值計算器才輸出結果(該結果等于從允許的最大隸屬值中減去差值ac,如圖1所示),否則,隸屬值計算器輸出將被置零或置最小值。隸屬值實(shí)際上是1個(gè)模糊邏輯量,用μ(或d)表示。 3 NLX230的內部結構和引腳功能NLX230型模糊控制器的內部結構如圖3所示,它由模糊輸入選擇器,16個(gè)模糊單元、最小和最大比較器、規則寄存器、輸出寄存器和定時(shí)控制等部分組成,完成模糊推理運算并作出控制決策。 3.1 模糊輸入選擇器和模糊單元8選1多路選擇器控制N LX230中16個(gè)模糊單元的每個(gè)單元的輸入。模糊單元求取輸入量對用戶(hù)所定義的隸屬函數的隸屬度。每個(gè)模糊單元從8個(gè)外部輸入中任選1個(gè)作為輸入數據(1個(gè)模糊單元只能訪(fǎng)問(wèn)1個(gè)輸入數據)。把模糊單元組態(tài)構成輸出反饋到輸入的形式,可不處理外部輸入。把一個(gè)輸入同1個(gè)隸屬函數聯(lián)系起來(lái)構成1個(gè)項,NLX230最多可支持16個(gè)項。每個(gè)模糊單元的結構如圖2所示,含有1個(gè)16位的項寄存器,包括8位的中心值、5位的寬度值及3位的輸入選擇組態(tài)(完成對8個(gè)外部輸入中任1個(gè)輸入的選擇)。每個(gè)模糊單元計算輸入值與用戶(hù)定義的中心點(diǎn)的距離,完成輸入確值量到模糊邏輯量的轉換。這樣,每1個(gè)模糊單元與1個(gè)8位中心位置相聯(lián),計算出距離后,其結果與用戶(hù)定義的寬度相比較,5位的寬度值代表輸入離中心位置的最遠距離,如果輸入的距離小于或等于此寬度,那么輸入被認為是隸屬函數的一部分,距離的求補得到隸屬函數度。求補就是30減去距離(30是最大寬度,)輸入離中心越近,隸屬值越高,落在寬度內的隸屬值被傳到最小比較器來(lái)進(jìn)行規則處理。 當輸入等于中心值時(shí),模糊單元輸出最大值31;當輸入落在寬度范圍以外時(shí),模糊輸出值為0,表示完全沒(méi)有關(guān)系。 3.2 最小值比較器和最大值比較器NLX230的最小值比較器是由高流通量的神經(jīng)元網(wǎng)路執行的,以適合高速的數據量。64條規則分別存儲在64個(gè)規則寄存器中,每個(gè)規則寄存器字有24位,其前16位分別用來(lái)完成每個(gè)模糊單元的輸出對最小比較器的使能。每個(gè)規則位固定對應1個(gè)模糊單元。當1個(gè)規則位被置1,則此規則包含該項,相應的模糊單元輸出可與其他置1的規則位相比較以找出最小項。 某個(gè)規則的最小項一旦被找到,就儲存在NLX230最大值比較器的暫存寄存器中,對應被處理的每一規則經(jīng)處理所得最小項與暫存于最大值寄存器中的值進(jìn)行比較,去小存大;當處理完所有規則,最大值寄存器中的結果是所有最小項中的最大值,該值對應的規則為取勝規則,代表1個(gè)"模糊"邏輯各結果的和。取勝規則的當前值(動(dòng)作值)送到模糊量與確值量的轉換單元(輸出寄存器),經(jīng)轉換處理后進(jìn)行模糊控制。 當前值定義在每個(gè)規則寄存器字的8個(gè)保留位,代表輸出動(dòng)作值所需的修正量,動(dòng)作修正值是1個(gè)8位二進(jìn)制補碼值為-128~127。從規則寄存器字來(lái)的8位動(dòng)作修正值與用戶(hù)定義的初值相加。例如,初始值為100,動(dòng)作修正值為-5,則輸出為95。 3.3 規則寄存器和輸出寄存器規則寄存器用于存放控制規則,NLX230最多可存放64條規則。輸出寄存器為總線(xiàn)使能方式,只要處理了所有的規則,規則寄存器的8位補碼修正值與初始值之和,飽和算數運算使輸出位取模128(當前值使輸出高于或低于界限-128和127),輸出即由模糊量轉換為確值量,模糊控制器在輸入下一組數據的同時(shí)輸出結果數據。 3.4 NLX230的引腳功能NLX230采用40引腳雙列直插式封裝,如圖4所示。RST是系統復位腳,低電平有效。DI0-DI7是8位數據輸入口。VSS是地。SK是串行時(shí)鐘腳,用于將組態(tài)數據打入FMC(M/S=0時(shí),該腳輸出)。CS是片選,與M/S和R/W聯(lián)用使能串行數據輸入/輸出(M/S=1時(shí)輸出,M/S=0時(shí)輸入)。DI是串行數據輸入腳。DO是串行數據輸出腳。M/S是主/從模式選擇(M/S=1時(shí)為主動(dòng)模式;M/S=0時(shí)為伺服模式)。R/W是讀/寫(xiě)輸入腳,僅用于伺服模式(R=1為讀;W=0為寫(xiě))。NC是空腳,必須接地。XI為晶體振蕩器輸入腳。XO為晶體振蕩器輸出腳。CLK是緩沖系統時(shí)鐘輸出腳。STB是選通腳,與MA0-MA2聯(lián)用以選通輸入/輸出數據。MA2是輸入/輸出多路傳輸地址2輸出腳。MA1是輸入/輸出多路傳輸地址位1輸出腳。MA0是輸入/輸出多路傳輸地址位0輸出腳。DO7-DO0為數據輸出腳。VDD是+5V電源腳。 4 NLX230模糊控制器的工作模式NLX230模糊控制器的工作模式有模糊單元模式、輸入模式、輸出模式及輸入輸出擴展應用。 4.1 模糊單元模式在模糊單元模式下有二種方式,典型應用為模糊單元的輸出表示每一個(gè)輸入接近中心位置的程度;另一種方式是將NLX230組態(tài)成為不包含模糊單元,通過(guò)使用不包含模糊單元的工作方式可用輸入與中心位置的距離來(lái)加權規則項。 4.2 輸入模式NLX230的輸入即可以是來(lái)自8個(gè)分時(shí)多路輸入引腳的信號又可以是輸出的內部反饋信號,二種輸入模式通過(guò)輸入組態(tài)寄存器選擇。 4.3 輸出模式NLX230的每個(gè)輸出可以配置為立即輸出和累加輸出二種組態(tài)。在立即輸出模式中,由取勝規則(該規則帶有最大的最小項)所特指的動(dòng)作值加上初始值。對NLX230的工作周期,原始的初始值都被用來(lái)計算輸出。在累加輸出模式中,1個(gè)輸出的新值是加了新動(dòng)作值(此動(dòng)作值由獲勝規則所決定)的現在值。在這個(gè)模式中,新輸入值被保留作為初始我用于下1個(gè)輸出值的計算。用戶(hù)定義的原始初始值僅在復位后計算第一個(gè)輸出值時(shí)被使用。 4.4 擴展多個(gè)NLX230級聯(lián)使用能夠擴展輸入、輸出、模糊單元和規則的數目。 4.5 時(shí)鐘1個(gè)外部時(shí)鐘源從XI引腳輸入可直接驅動(dòng)NLX230。NLX230也包含了1個(gè)有源振蕩器電路用于時(shí)鐘的發(fā)生。CLK提供了所需的時(shí)鐘輸出。 5 NLX230的操作方式NLX230的操作模式通過(guò)初始化完成。復位引腳M/S可設置2種不同結構的操作方式:主動(dòng)方式(NLX230自動(dòng)從外部EEPROM中讀取數據)和從動(dòng)方式(NLX230等待外部邏輯電路讀寫(xiě)數據)。 5.1 主動(dòng)方式主動(dòng)方式是在復位引腳由"1"變?yōu)?0"和M/S為"1"時(shí)使NLX230開(kāi)始1個(gè)自動(dòng)卸載周期。NLX230通過(guò)時(shí)鐘SK的發(fā)生、片選使能和地址(DO)的發(fā)生來(lái)尋址2048位的串行EEPROM。NLX230輸出串行時(shí)鐘(SK)并維持片選(CS),接著(zhù)出現"讀標志",7位地址在DO輸出引腳出現,NLX230立即開(kāi)始在DI引腳輸入16位數據,該過(guò)程持續進(jìn)行到NLX230已經(jīng)輸入128個(gè)數據字(16×28=2048),之后片選失效。這個(gè)組態(tài)周期的下1個(gè)工作是由NLX230處理出現在輸入引腳(DI0-DI7)上的數據。 5.2 從動(dòng)(伺服)方式M/S為"0"時(shí),NLX230處于從動(dòng)(伺服)模式,由外部控制邏輯提供SK、CS、R/W等信號。在SK上升沿之前,維持R/W為低電平和CS為高電平以觸發(fā)卸載過(guò)程。然后,在SK的上升沿由DI引腳輸入數據。所有數據位(2048)順序寫(xiě)入后,CS變?yōu)榈碗娖;在SK的上升沿之前,保持R/W和CS信號為高電平以觸發(fā)加載過(guò)程。然后,在SK的上升沿由DO引腳輸出數據。所有數據位(2048)被順序讀出后,CS變?yōu)榈碗娖。在串行卸載或加載周期之后,需要一個(gè)復位信號(保持為低電平)以清除內部數據通道。 6 應用接口6.1 NLX230接口功能NLX230有8個(gè)時(shí)分多路復用輸入腳和8個(gè)多路復用輸出腳。內部連接輸出到輸入可以得到反饋路徑、外部晶體振蕩器或PC電路;輸入和輸出計數的1個(gè)時(shí)鐘輸出;為使外部數據輸入信號同步的1個(gè)幀信號;串行EEPROM接口由數據輸入(DI)、片選(CS)、時(shí)鐘(SK)和讀寫(xiě)(R/W)引腳組成。當NLX230與微機接口時(shí),只需DI、CS、DO、SK和R/W引腳即可。 6.2 數據接口電路 NLX230與微處理器(或單片機)接口只需5個(gè)引腳信號:DI、CS、DO、SK、R/W。圖5所示為典型的控制系統數據接口,74373作為輸入/輸出數據鎖存器,其個(gè)數與輸入/輸出個(gè)數相同。NLX230用于典型的輸入/輸出為8個(gè)8位數值的多路復用控制系統。MUX地址腳MA(2:0)、選通腳STB及動(dòng)態(tài)輸入或輸出通道的譯碼由NLX230提供。NLX230提供所有必要的信號,由典型幀時(shí)序圖可顯示時(shí)間關(guān)系。輸入值從DI(7:0)輸入的同時(shí)輸出也在DO(7:0)進(jìn)行。 7 應用實(shí)例應用實(shí)例是玩具電動(dòng)汽車(chē)自動(dòng)駕駛控制系統。根據輸入由NLX230提供決策輸出,由控制規則控制不同路面環(huán)境下的速度與方向。NLX230的開(kāi)發(fā)系統ADS230由軟、硬件二部分組成,主要功能是將應用系統的控制規則寫(xiě)成控制規則文件,并轉換為有關(guān)寄存器的內容寫(xiě)入NLX230的規則寄存器。 7.1 標號定義DF:前方;DR:右方;DL:左方;VE:速度;RO:路面;DI:方向;FT:油門(mén);BR:剎車(chē);LE:左;EI:右;ST:直;DF-CL:接近前方;DF-FA:遠離前方;DR-FA:遠離右方;DL-FA:遠離左方;VE-SL:低速;VE-ME:中速;VE-FA:高速;RA-WE:路面滑;RO-ME:路面適度;TH-SL:抵擋;TH-ME:中擋;TH-FA:高擋;BR-OF:不剎車(chē);AL-A:提示躲避;AL-V:提示速度;SI-R:右信號;SI-L:左信號;BR-LT:關(guān)油門(mén);SP-I:速度變高;AC:累加;IM:立即;YES:是;NO:不是;IS:是;IN:包含;EX:不包含;THEN:則;AND:并且;LB:反饋。 輸入/輸出定義如表1所示。項的定義如表2所示。7.2 規則定義 7.2 規則定義 8 結束語(yǔ)在模糊控制方面,NLX230型模糊控制器與單片機相比,具有推理速度快、功能強大、應用靈活和控制效果好等特點(diǎn),因此,可廣泛應用于過(guò)程嵌入式控制、模式匹配、人工智能、機器人及專(zhuān)家系統。 |