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