專利名稱:執(zhí)行模糊邏輯運(yùn)算的數(shù)字處理器及其執(zhí)行方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及一數(shù)字處理器,并特別涉及執(zhí)行模糊邏輯運(yùn)算的數(shù)字處理器。
由于可得到的信息具有不精確、模糊和不完整性,數(shù)字處理系統(tǒng)中開(kāi)發(fā)出模糊邏輯以克服傳統(tǒng)的控制和決策技術(shù)難以解決的問(wèn)題。模糊邏輯綜合了模糊集和專家系統(tǒng)的思想,并用它們作為建模和控制復(fù)雜過(guò)程的工具。因此,在控制和決策過(guò)程中提供了一種方法,使數(shù)字處理器模仿人的直覺(jué)感知。按照可以從零(“假”或隸屬關(guān)系為零),到1(“真”或隸屬關(guān)系為1)的真實(shí)程度或隸屬度,模糊集允許任何條件下的表達(dá)式。
一模糊邏輯控制機(jī)包括三大塊一模糊化塊,一規(guī)則評(píng)價(jià)塊和一解模糊化塊。模糊化塊引入幾個(gè)外部輸入并把它們與多個(gè)預(yù)先確定的隸屬函數(shù)(每個(gè)隸屬函數(shù)為一模糊集)相比較,以確定在每個(gè)隸屬函數(shù)中每個(gè)輸入的隸屬度。一且確定了輸入的隸屬度,按照規(guī)則集,規(guī)則評(píng)價(jià)塊確定對(duì)輸入的適當(dāng)響應(yīng)。用IF、AND和THEN表達(dá)式構(gòu)成規(guī)則。AND運(yùn)算執(zhí)行MIN功能(在其中選擇最小值)。一個(gè)典型的規(guī)則可能表達(dá)如下IF溫度很高AND加熱器輸出一般,THEN把加熱器的輸出調(diào)為最小。
模糊評(píng)價(jià)系統(tǒng)的每一規(guī)則均在規(guī)則評(píng)價(jià)塊的順序塊中實(shí)現(xiàn)。當(dāng)執(zhí)行幾個(gè)規(guī)則時(shí),在規(guī)則評(píng)價(jià)塊中邏輯地相加順序塊的輸出,以綜合所有規(guī)則的結(jié)果。邏輯“求和”運(yùn)算是MAX功能(在其中確定多個(gè)順序塊的最大值)。接著解模糊化塊把規(guī)則評(píng)價(jià)塊的輸出轉(zhuǎn)換為外部系統(tǒng)使用的格式。
通常,按照推理機(jī)的速度、適用性和價(jià)格,模糊邏輯推理機(jī)的執(zhí)行變化很大。推理速度是對(duì)模糊邏輯推理機(jī)的輸入改變,模糊邏輯推理機(jī)的輸出需要多長(zhǎng)時(shí)間改變的度量。適應(yīng)性是推理機(jī)如何構(gòu)成以取得最優(yōu)操作和價(jià)格的度量。模糊推理機(jī)的幾個(gè)例子包括Om-ron FP—3000數(shù)字模糊處理器,Aptronix FIDE軟件推理機(jī)和Hiroyu-ki Watanabe等人的VLSI模糊邏輯控制器。
Omron FP—3000數(shù)字模糊處理器是64管腳的集成電路,在24MHZ運(yùn)算頻率時(shí),對(duì)于5個(gè)輸入,2個(gè)輸出和20個(gè)規(guī)則的在0.65微秒內(nèi)執(zhí)行一個(gè)完整的模糊推理。在該實(shí)現(xiàn)中,并行地處理數(shù)字模糊處理器的輸入。對(duì)于每個(gè)輸入,順序地執(zhí)行規(guī)則直至評(píng)價(jià)了所有的規(guī)則。使用重心(center of gravity)技術(shù)或最大值(max—height)技術(shù),執(zhí)行解模糊運(yùn)算。在數(shù)字處理技術(shù)中這些技術(shù)已經(jīng)公知,所以在這里不詳細(xì)討論。
Watanabe設(shè)計(jì)的VLSI模糊邏輯控制器是84管腿的集成電路,在36MHZ的時(shí)鐘頻率下,對(duì)于102個(gè)規(guī)則能每微秒執(zhí)行80條推理。該模糊芯片包括一主接口,一模糊器,一推理機(jī)和一解模糊器。使用一個(gè)三級(jí)的供給系統(tǒng)以增加輸入從模糊器至解模糊器的推理速度。使用主接口以在開(kāi)始時(shí)把規(guī)則裝入存儲(chǔ)器,然后在推理運(yùn)算中使用。模糊器包括存儲(chǔ)隸屬函數(shù)值的大的計(jì)數(shù)器尋址的RAM。每個(gè)隸屬函數(shù)使用RAM的32字節(jié)。運(yùn)算中,每64時(shí)鐘周期采樣一次輸入,輸入被用作包含隸屬關(guān)系值的開(kāi)始地址。對(duì)于規(guī)則評(píng)價(jià)來(lái)說(shuō),在一個(gè)時(shí)間上,只有一個(gè)隸屬關(guān)系值出現(xiàn)在推理機(jī)。且所有隸屬關(guān)系值提供給規(guī)則塊時(shí),就執(zhí)行MIN和MAX運(yùn)算。解模糊化為外部系統(tǒng)提供了規(guī)則評(píng)價(jià)運(yùn)算的結(jié)果。
象Aptronis′sFIDX的模糊邏輯推理機(jī)的軟件實(shí)現(xiàn)匯集了用在各種常規(guī)微控制器的規(guī)則和隸屬函數(shù)。在FIDX實(shí)現(xiàn)中,微控制器類型的選擇將確定規(guī)則的數(shù)量、隸屬函數(shù)的形狀和分辨率以及輸入和輸出數(shù)。由于順序地執(zhí)行所有的推理運(yùn)算,當(dāng)規(guī)則或隸屬函數(shù)相加時(shí),將增加推理時(shí)間。對(duì)于一典型的8位微控制器,計(jì)算一個(gè)隸屬函數(shù)的一個(gè)模糊輸入的隸屬關(guān)系值需要88個(gè)CPU時(shí)鐘周期。在4MHZ總線速度上,對(duì)于每個(gè)輸入,有7個(gè)隸屬函數(shù)的兩個(gè)輸入系統(tǒng)的模糊化時(shí)間需要300微秒以執(zhí)行每個(gè)規(guī)則。
也許上述的現(xiàn)有技術(shù)系統(tǒng)的主要缺點(diǎn)是推理速度。模糊邏輯推理機(jī)的純軟件實(shí)現(xiàn)的執(zhí)行速度慢是由于它不采用通常存在于模糊推理機(jī)中的任何并行處理特點(diǎn)。Omron和Watanabe的模糊推理機(jī)的兩硬件實(shí)現(xiàn),一定程度上采用了并行處理的優(yōu)點(diǎn)。Omron和Watanabe實(shí)現(xiàn)的兩種結(jié)構(gòu)需要輸入模糊化塊和規(guī)則評(píng)價(jià)塊共享的電路。因此,經(jīng)過(guò)公用電路的所有信號(hào)的路徑必須是串行的,從而需要更多的時(shí)間以執(zhí)行模糊推理運(yùn)算??渴褂霉┙o操作技術(shù),Watanabe部分地克服上述問(wèn)題。所有三種系統(tǒng)的推理速度是基于輸入數(shù)量、規(guī)則數(shù)量和隸屬函數(shù)的數(shù)量。隨著系統(tǒng)的大小和復(fù)雜度的增加,推理時(shí)間將增大。
本發(fā)明實(shí)現(xiàn)了上述的需要。相應(yīng)地,在第一實(shí)施例中,提供了一執(zhí)行模糊邏輯運(yùn)算的方法,它包括接收第一輸入信號(hào)和解碼第一輸入信號(hào)用以在第一隸屬函數(shù)存儲(chǔ)器中訪問(wèn)第一多個(gè)存儲(chǔ)單元的步驟。從第一多存儲(chǔ)單元的第一單元處檢索的一元格式第一模糊輸入值。第一模糊輸入值指示在第一隸屬函數(shù)中第一輸入信號(hào)的隸屬度。使用第一模糊輸入值,選擇地執(zhí)行了第一邏輯函數(shù)以提供第一最小值,使用第一最小值選擇地執(zhí)行了第二邏輯函數(shù),以提供第一最小值。
本發(fā)明第二實(shí)施例中,提供了一數(shù)字處理器。數(shù)字處理器包括接收第一輸入信號(hào)和解碼第一輸入信號(hào)以提供第一解碼信號(hào)的第一地址譯碼器。數(shù)字處理器還包括有第一多存儲(chǔ)單元的第一存儲(chǔ)器。把第一存儲(chǔ)器連接到第一地址譯碼器以接收第一解碼信號(hào)。以用第一解碼信號(hào)指示的第一多存儲(chǔ)單元的第一單元處,以一元格式,第一存儲(chǔ)器提供了第一模糊輸入值。使用第一模糊輸入值,第一邏輯電路選擇地執(zhí)行第一邏輯函數(shù)。第一邏輯電路被連接到第一存儲(chǔ)器用以接收第一模糊輸入值,并且第一邏輯電路提供了第一最小值。使用第一最小值,第二邏輯電路選擇地執(zhí)行了第二邏輯函數(shù)。第二邏輯電路被連接到第一邏輯電路用以接收第一最小值。第二邏輯電路提供了第一輸出值。
通過(guò)下面與附圖一起進(jìn)行的詳細(xì)描述,應(yīng)更清楚本發(fā)明的這些和那樣的特征和優(yōu)點(diǎn)。應(yīng)明白附圖并不用以表示本發(fā)明所僅有的格式。
圖1按照本發(fā)明,以框圖形式說(shuō)明了一個(gè)模糊推理系統(tǒng);圖2以部分邏輯框圖形式說(shuō)明了圖1的規(guī)則評(píng)價(jià)模塊;圖3以流程圖的形式說(shuō)明了按照本發(fā)明的執(zhí)行模糊推理運(yùn)算的方法;以及圖4以圖表形式,說(shuō)明了在一個(gè)模糊推理系統(tǒng)隸屬函數(shù)中決定隸屬度的步驟。
本發(fā)明提供了一個(gè)模糊推理機(jī),它能以最短的時(shí)間,高精度地執(zhí)行模糊邏輯運(yùn)算。本模糊推理機(jī)結(jié)構(gòu)的高速度是通過(guò)在一元數(shù)字系統(tǒng)上而不是在傳統(tǒng)的二進(jìn)制系統(tǒng)上執(zhí)行所有模糊邏輯運(yùn)算而實(shí)現(xiàn)的。因?yàn)樵谝辉到y(tǒng)上,本模糊推理機(jī)執(zhí)行所有的模糊化和規(guī)則評(píng)價(jià)步驟,所以執(zhí)行這些步驟的所需時(shí)間與信號(hào)通過(guò)邏輯門電路形成模糊推理機(jī)的時(shí)間相等。在執(zhí)行模糊化和規(guī)則評(píng)價(jià)的步驟中,不需要涉及到需要時(shí)鐘或時(shí)標(biāo)的電路,因此,模糊推理機(jī)不受用時(shí)鐘可以表示的速度的限制。模糊推理機(jī)只受邏輯電路的內(nèi)部延遲所限制。
比較起來(lái),現(xiàn)有技術(shù)中的每種方案都涉及一系列接近用以模糊化多個(gè)輸入,然后把規(guī)則庫(kù)(rule base)用到所得到的多個(gè)模糊輸入。因此,用以模糊化和計(jì)算每個(gè)輸入的總推理時(shí)間與輸入隸屬函數(shù)數(shù)量和規(guī)則庫(kù)內(nèi)規(guī)則數(shù)量成正比。本模糊推理機(jī)的結(jié)構(gòu)具有并行的特性,因此,大大地減少了模糊化和計(jì)算每個(gè)輸入的總推理時(shí)間。模糊推理機(jī)的模糊化模塊中,每個(gè)隸屬函數(shù)的第一輸入的隸屬關(guān)系值的計(jì)算是與其它所有輸入并行進(jìn)行的。然后模糊化的輸入被同時(shí)地提供給模糊接口機(jī)的規(guī)則評(píng)價(jià)模塊。規(guī)則評(píng)價(jià)模塊接收到多個(gè)并行輸入,并且以并行方式產(chǎn)生多個(gè)模糊輸出。
還有,當(dāng)定義每個(gè)多輸入隸屬函數(shù)的特性時(shí),本發(fā)明的模糊化模塊可以非常靈活。在本發(fā)明的本實(shí)施例中,輸入隸屬函數(shù)可以是模糊推理機(jī)用戶所希望的任何特性。在本發(fā)明的一個(gè)實(shí)施例中,在開(kāi)發(fā)模糊推理系統(tǒng)中,可以用RAM或EPROM構(gòu)成模糊化模塊。然后在硅片上用ROM作最后設(shè)計(jì)。還有,本發(fā)明的規(guī)則評(píng)價(jià)模塊靈活地定義了模糊規(guī)則庫(kù)。本發(fā)明可以提供任何數(shù)量的規(guī)則、輸入和輸出,數(shù)量只受可使用硅片面積所限制。還可以容易的增加或減少模糊隸屬關(guān)系的分級(jí)數(shù)量。MAX和MIN判斷的邏輯最優(yōu)化導(dǎo)致規(guī)則評(píng)價(jià)模塊使用最小數(shù)量的電路面積,因此,降低了本發(fā)明的造價(jià)。還有,規(guī)則評(píng)價(jià)模塊還可以與軟件推理機(jī)一起作用。規(guī)則評(píng)價(jià)模塊與典型的CPU循環(huán)所要求相比,只需用較短的時(shí)間評(píng)價(jià)一個(gè)規(guī)則庫(kù),因此,大大地減少了模糊判斷時(shí)間和規(guī)則基內(nèi)的多個(gè)規(guī)則之間的依靠性。還有,在本發(fā)明中,并行地同時(shí)提供所有模糊輸出。下面將詳細(xì)地討論本發(fā)明的模糊邏輯系統(tǒng)的運(yùn)算。
另外,在對(duì)本發(fā)明實(shí)現(xiàn)的下述描述中,術(shù)語(yǔ)“肯定”和“否定”及它們各種語(yǔ)法形成的使用,是為了避免當(dāng)處理“正高(activehigh)”和“正低(active Low)”邏輯信號(hào)時(shí)引起的混亂?!肮嵌ā庇靡园堰壿嬓盘?hào)或寄位器位變?yōu)檫壿嫛罢妗睜顟B(tài)?!胺穸ā庇靡园堰壿嬓盘?hào)或寄存器位變?yōu)檫壿嫛凹佟睜顟B(tài)。
圖1說(shuō)明一個(gè)模糊邏輯推理系統(tǒng)10。模糊邏輯推理系統(tǒng)10包括一個(gè)模糊化模塊12和一個(gè)規(guī)則評(píng)價(jià)模塊26。模糊化模塊12包括多個(gè)隸屬函數(shù)電路14、24和25。包括在隸屬函數(shù)電路14的是一個(gè)地址譯碼器16和一個(gè)具有多個(gè)存儲(chǔ)單元(MF1—1到MF1—32)18到20的隸屬函數(shù)RAM 17。同時(shí)多個(gè)隸屬函數(shù)電路24和25的余下部分沒(méi)有詳細(xì)的示出,但應(yīng)明白每個(gè)隸屬函數(shù)電路是同隸屬函數(shù)電路14的結(jié)構(gòu)相似的。
隸屬函數(shù)電路14接收8位的輸入1信號(hào)。提供輸入1信號(hào)至譯碼器16。存儲(chǔ)單元(MF1—1)18連接到規(guī)則評(píng)價(jià)模塊26,用以選擇地提供一個(gè)“I1mf1out”信號(hào)。還有,至存儲(chǔ)單元(MF1—32)20的多個(gè)存儲(chǔ)單元的每個(gè)余下部分被連接到規(guī)則評(píng)價(jià)模塊26,用以選擇地提供I1mf1out信號(hào)。多個(gè)存儲(chǔ)單元(這里沒(méi)詳細(xì)示出)的每個(gè)余下部分提供的每個(gè)輸出分別用“I1mf2out”到I1mfNout”標(biāo)記。
相似地,隸屬函數(shù)電路24接收一個(gè)8位的輸入2信號(hào)。提供輸入2信號(hào)至一個(gè)譯碼器。隸屬函數(shù)電路24的隸屬函數(shù)RAM提供多個(gè)輸出,分別用“I2mf2out”到“I2mfNout”標(biāo)記。同樣,隸屬函數(shù)電路25接收一個(gè)8位的輸入I信號(hào)。提供輸入I信號(hào)到一個(gè)譯碼器。隸屬函數(shù)電路25的隸屬函數(shù)RAM提供多個(gè)輸出,分別用“IImf2out”到“IImfNout”標(biāo)記。應(yīng)注意這里“N”表示可能的隸屬函數(shù)的數(shù)字。“I”表示輸入到模糊推理系統(tǒng)10的信號(hào)的數(shù)字。
響應(yīng)于所接收到的I1mf1out到I1mfNout每個(gè)信號(hào),I2mf1out到I2mfNout每個(gè)標(biāo)號(hào),和IIMf1out到IImfNout的每個(gè)信號(hào),規(guī)則評(píng)價(jià)模塊26提供了多個(gè)分別用O1mf1out到OImfNout標(biāo)記的信號(hào)。
圖2中更詳細(xì)地示出了規(guī)則評(píng)價(jià)模塊26。規(guī)則評(píng)價(jià)模塊26常包括一個(gè)“與”(AND)門28,一個(gè)AND門30,一個(gè)AND門32,一個(gè)“或”(OR)門34,一個(gè)OR門36和一個(gè)OR門38。應(yīng)明白,對(duì)于規(guī)則評(píng)價(jià)模塊26的所有輸入,需要相似結(jié)構(gòu)的AND和OR門。但是為了簡(jiǎn)單和清楚起見(jiàn),圖2中沒(méi)有包括這些門電路。
規(guī)則評(píng)價(jià)模塊26內(nèi),16位的I1mf1out信號(hào)被提供到AND門28的第一輸入,且16位的I1mf2out信號(hào)被提供到AND門30的第一輸入。從I1mf3out(沒(méi)示出)到I1mfNout的余下部分信號(hào)被連接到AND門,但在圖2中沒(méi)示出。
AND門28的輸出被提供到OR門34的第一輸入。AND門30的輸出被提供到OR門34的第二輸出和OR門38的第一輸入。把AND 門32的輸出提供給OR門38的第二輸出。OR門36連接到圖1的模糊化模塊12,用以接收I1mfNout和I2mfNout信號(hào)。OR門34提供O1mf1out信號(hào),OR門36提供O1mfNout信號(hào)且OR門38提供OImfNout信號(hào)。
下面將更詳細(xì)地順序討論本發(fā)明每個(gè)實(shí)施例的運(yùn)行。
本模糊推理機(jī)10以最少的時(shí)間、高精度執(zhí)行模糊邏輯操作。模糊推理機(jī)10所得到的高速度歸功于在一元數(shù)字系統(tǒng)內(nèi)執(zhí)行所有模糊邏輯操作的結(jié)構(gòu),而不是使用傳統(tǒng)的二進(jìn)制系統(tǒng)。由于在一元格式內(nèi)模糊推理機(jī)完成所有的模糊化和規(guī)則評(píng)價(jià)步驟,執(zhí)行這些步驟所需的時(shí)間等于該信號(hào)穿過(guò)形成于模糊推理機(jī)10的模糊化模塊12和規(guī)則評(píng)價(jià)模塊的邏輯門電路的時(shí)間。在執(zhí)行模糊化和規(guī)則評(píng)價(jià)步驟過(guò)程中,不涉及需要時(shí)鐘或時(shí)令的電路,因此,模糊推理機(jī)10不受可被記錄的速度所限制。模糊推理機(jī)10只受邏輯電路中的內(nèi)在延遲所限制。
模糊推理操作中,模糊化是第一步,它是由模糊推理機(jī)10的模糊化模塊12執(zhí)行的。在模糊化步驟中,模糊化模塊12把一個(gè)輸入值轉(zhuǎn)換為N個(gè)模糊隸屬關(guān)系值,這里N是定義在輸入空間的隸屬關(guān)系值的數(shù)字。然后,在模糊推理操作的模糊規(guī)則評(píng)價(jià)步驟使用該N個(gè)模糊隸屬關(guān)系值。在該發(fā)明的本實(shí)施例中,每個(gè)隸屬函數(shù)用32個(gè)存儲(chǔ)單元表示。因此,當(dāng)有256個(gè)可能輸入時(shí),32位輸入將訪問(wèn)一個(gè)特別的隸屬函數(shù)。隸屬函數(shù)RAM(比如17)的地址譯碼器(比如16)將決定32位輸入的哪個(gè)塊訪問(wèn)存儲(chǔ)在隸屬函數(shù)RAM的每個(gè)隸屬函數(shù)。不訪問(wèn)32位存儲(chǔ)單元的這個(gè)塊的輸入的隸屬關(guān)系值將缺省為零。
圖1示出了模糊化模塊12的綜合框圖。模糊化模塊12接收一個(gè)用戶定義的8位二進(jìn)制輸入(這里指Input1到InputI),并且相應(yīng)于輸入分別提供16位一元值的隸屬關(guān)系值(分別用I1mf1out…I1mfNout,I2mf1out…I2mfNout…,和IImf1out…IImfNout標(biāo)記)。數(shù)字隸屬關(guān)系值N也是由用戶定義的。模糊化模塊12包括一個(gè)多輸出RAM存儲(chǔ)器(象17),對(duì)于每個(gè)多輸入信號(hào),塊大小為32*NX16。操作中,存儲(chǔ)器部分14譯碼輸入信號(hào),存儲(chǔ)器部分24譯碼輸入2倍號(hào),并且存儲(chǔ)器部分25譯碼輸入I信號(hào)。把模糊化模塊的每個(gè)輸入提供給相應(yīng)于隸屬函數(shù)RAM的地址譯碼器。例如,輸入1信號(hào)輸入到存儲(chǔ)器部分14的地址譯碼器16。相似地,輸入2信號(hào)輸入到存儲(chǔ)器部分24的地址譯碼器,且輸入I信號(hào)輸入到存儲(chǔ)器部分25的地址譯碼器。地址譯碼器把多個(gè)輸入信號(hào)變換為每個(gè)隸屬函數(shù)的32個(gè)連續(xù)存儲(chǔ)區(qū)。例如,在存儲(chǔ)器部分14,在第1隸屬函數(shù)的輸入1信號(hào)的第一隸屬關(guān)系值存儲(chǔ)在MF1—1—存儲(chǔ)單元18,并且在第1隸屬函數(shù)的輸入1信號(hào)的最后隸屬關(guān)系值存儲(chǔ)在存儲(chǔ)單元MD1—32。基于提供給隸屬函數(shù)RAM的輸入信號(hào)的一個(gè)值,32個(gè)存儲(chǔ)器單元的一個(gè)或0將被儲(chǔ)存在相應(yīng)于那相隸屬函數(shù)的RAM中。例如,對(duì)于存儲(chǔ)器部分14的第一隸屬函數(shù),I1mf1out是16位輸出。模糊化模塊12的所有輸出作為規(guī)則判斷模塊20的輸入。
模糊化模塊12的設(shè)計(jì)把模糊化時(shí)間減至最小,因此把模糊推理機(jī)10所要求的總模糊推理時(shí)間減為最小。在本發(fā)明該實(shí)施例中,模糊化模塊12的輸入(輸入1,輸入2到輸入I)都是8位二進(jìn)制數(shù)。第1輸入信號(hào)輸入1被地址譯碼器16譯碼去訪問(wèn)多個(gè)隸屬函數(shù)。已譯碼的輸入1信號(hào)被賦予相應(yīng)于第一隸屬函數(shù)的第一隸屬關(guān)系值。相似地,對(duì)于每個(gè)隸屬函數(shù),已譯碼的輸入1信號(hào)被賦于相應(yīng)于多個(gè)隸屬函數(shù)的每一個(gè)的隸屬關(guān)系值。在本實(shí)施例中,把隸屬函數(shù)存儲(chǔ)在象17的多部分RAM中,它是可訪問(wèn)的,用以指示輸入信號(hào)的隸屬關(guān)系值。在多個(gè)隸屬函數(shù)中的每一個(gè)中當(dāng)確定了輸入1信號(hào)的隸屬關(guān)系值時(shí),從多個(gè)存儲(chǔ)單元的一個(gè)輸出每個(gè)隸屬關(guān)系值。以16位一元數(shù)存儲(chǔ)隸屬關(guān)系值,從而在每個(gè)隸屬函數(shù)中有1 6個(gè)可能的隸屬關(guān)系級(jí)。選擇這種一元表示法,用以增加在下面部分描述的規(guī)則評(píng)價(jià)模塊的速度。表1示出了十進(jìn)制和二進(jìn)制數(shù)的一元表示法。
圖4給出了一個(gè)例子,能夠說(shuō)明模糊化操作。圖4示出了一個(gè)輸入的模糊化處理的典型例子。假設(shè)在該例中,8位輸入代表熱傳感器的一個(gè)輸出,該熱傳感器的熱范圍從最冷(二進(jìn)制值為00000000)到最熱(二進(jìn)制值為11111111)。輸入空間(用X軸表示)被分為跨越輸入值的所有可能范圍的5個(gè)隸屬函數(shù)特冷(EC),中等程度冷(MC),室溫(RT),中等程度熱(MH)和特?zé)?EH)。一個(gè)特別輸入的隸屬關(guān)系值(用Y軸表示)可以從0隸屬關(guān)系(一元值為0000000000000000)變化到完全隸屬關(guān)系(一元值為1111111111111111),在它們之間有14個(gè)級(jí)別。圖4所示的隸屬函數(shù)的形狀是通過(guò)存儲(chǔ)在隸屬函數(shù)RAM(象圖1的隸屬函數(shù)RAM17)的32個(gè)連續(xù)一元值多個(gè)集合所形成的。再一次參考圖1,通過(guò)隸屬關(guān)系函數(shù)RAM(以圖1的存儲(chǔ)器部分14的地址譯碼器16為例的地址譯碼邏輯,確定每個(gè)隸屬關(guān)系函數(shù)的開(kāi)始值。完成該例的存儲(chǔ)器要求為160×16位,且具有5個(gè)并行輸出口。圖2示出了5個(gè)一元輸出值(相當(dāng)于5個(gè)隸屬函數(shù)中的隸屬關(guān)系值)。
模糊推理操作的下一步需要按預(yù)定系統(tǒng)規(guī)則評(píng)價(jià)已模糊化的輸入。對(duì)于一個(gè)特別的模糊應(yīng)用,規(guī)則評(píng)價(jià)要一個(gè)用戶定義的規(guī)則庫(kù)。規(guī)則使用IF/THEN語(yǔ)句的格式。遵循IF語(yǔ)句的論證稱為條件,遵循THEN語(yǔ)句的論證稱為結(jié)果。隸屬函數(shù)中一個(gè)給定輸入的隸屬關(guān)系值由一個(gè)模糊輸入(模糊化模塊12的輸出)表示。如果給定規(guī)則有多個(gè)條件,規(guī)則必須指定它們應(yīng)相“與”或相“或”,以確定在結(jié)果上的效果。規(guī)則評(píng)價(jià)模塊26的第一級(jí)AND陣列完成條件的“與”運(yùn)算。需要“或”運(yùn)算的條件用“或”陣列處理。條件處理的輸出是每個(gè)獨(dú)立規(guī)則的輸出。然后這些輸出必須施加到每個(gè)規(guī)則定義的結(jié)果。結(jié)果進(jìn)行“或”運(yùn)算以產(chǎn)生模糊輸出(O1mf1out到OImfNout)。對(duì)結(jié)果的“或”運(yùn)算是用規(guī)則評(píng)價(jià)模塊26的第二級(jí)“或”陣列執(zhí)行的。
執(zhí)行模糊化步驟以后,圖1的規(guī)則評(píng)價(jià)模塊26執(zhí)行模糊推理處理的規(guī)則評(píng)價(jià)步驟。如圖1所示,模糊化模塊12提供模糊輸入(I1mf1out到IImfNout)至規(guī)則評(píng)價(jià)模塊26。規(guī)則評(píng)價(jià)模塊26的輸出作為模糊輸出并提供給一個(gè)解模糊器(這里未示出)。還可以使用一個(gè)軟件解模糊器以執(zhí)行解模糊化過(guò)程。圖2說(shuō)明了規(guī)則判斷模塊26的內(nèi)部電路。從模糊化模塊12處接收的模糊輸入(I1mf1out到I-ImfNout)被提供給按用戶所定的規(guī)則庫(kù)的“與”陣列(“與”門28、30和32),以在模糊輸入上執(zhí)行“求最小”(MIN)功能。在一元數(shù)值上執(zhí)行“與”功能時(shí)與MIN功能相同。然后“與”陣列的輸出遺送到“或”陣列(“或”門34、36和38),以在數(shù)據(jù)上執(zhí)行“求極大”(MAX)功能。在一元數(shù)值上執(zhí)行“或”功能時(shí)與MAX功能相同?!盎颉标嚵械妮敵鎏峁┫到y(tǒng)的模糊輸出。(O1mf1out到OImfNout)。每個(gè)模糊輸出都是表示特別輸出隸屬函數(shù)中系統(tǒng)輸出的隸屬關(guān)系的一元數(shù)值。
作為例子,圖2提供了遵循下列規(guī)則的邏輯電路方程1IF(I1mf1out AND IImf1out)THEN O1mf1out方程2IF(I1mf2out AND I2mf1out)THEN(O1mf1out ANDOImfNout)方程3IF(I2mf1out AND I1mfNout)THEN OImfNout方程4If(I1mfNout OR I2mfNout)then O1mfNout第一規(guī)則(方程1),通過(guò)“與”門28(圖2)把模糊輸入I1mf1out與模糊輸入IImf1out相“與”。使用“或”門34(圖2),該規(guī)則的輸出施加到O1mf1out輸出隸屬函數(shù)。第二規(guī)則(方程2)中,用“與”門30把模糊輸入I1mf2out與模糊輸入I2mf1out相“與”。方程2展示了一個(gè)規(guī)則如何作用在一個(gè)以上的輸出隸屬函數(shù)上。結(jié)果O1mf1out和OImfNout的相“與”不需要任何附加的“或”或“與”陣列。使用“與”門32,方程3把I2mf1out和IImfNout相“與”。方程3與方程1非常相似。應(yīng)注意到通過(guò)把影響公開(kāi)結(jié)果的條件組合的單一的規(guī)則,能減少邏輯電路。這種減少導(dǎo)致使用很少的硬件而不用兼顧模糊推理系統(tǒng)10的操作。最后一個(gè)規(guī)則(方程4),用“或”門36把I1mfNout和I2mfNout信號(hào)相“或”。方程4提供了在其中模糊輸入直接影響模糊輸出的一個(gè)例子。
圖3給出一個(gè)用以總結(jié)模糊化模塊12和規(guī)則評(píng)價(jià)模塊26運(yùn)行的流程圖。圖3中,給模糊化模塊26提供了一個(gè)數(shù)字輸入。然后該數(shù)定輸入被譯碼為多個(gè)隸屬函數(shù)RAM地址。對(duì)于每個(gè)隸屬函數(shù),當(dāng)?shù)刂酚行r(shí),將觸發(fā)隸屬函數(shù)RAM且輸出相應(yīng)的已模糊的輸入。如果地址無(wú)效,對(duì)于那個(gè)隸屬函數(shù)的模糊化的輸入將為零。以圖1所示的那樣,以一元格式輸出該模糊輸入,并且順序地提供給規(guī)則評(píng)價(jià)模塊26。
規(guī)則評(píng)價(jià)模塊26中,按照系統(tǒng)的規(guī)則庫(kù),把模糊輸入提供給第一級(jí)“與”陣列(28、30和32)。然后“與”陣列的輸出施加到按照用戶定義規(guī)則庫(kù)的第二級(jí)“或”陣列(34、36和38)?!盎颉标嚵械妮敵鰹橐辉袷降哪:敵?,且準(zhǔn)備解模糊化。
總之,本發(fā)明提供了一種最短時(shí)間內(nèi),以高精確定執(zhí)行模糊邏輯操作的模糊推理機(jī)。在一元數(shù)字系統(tǒng)中而不是常規(guī)的二進(jìn)制數(shù)字系統(tǒng)中執(zhí)行所有模糊邏輯操作,實(shí)現(xiàn)了本模糊推理機(jī)結(jié)構(gòu)的高速度。由于模糊推理機(jī)以一元格式執(zhí)行了所有的模糊化和規(guī)則評(píng)價(jià)步驟,執(zhí)行這些步驟的所有時(shí)間等于該信號(hào)穿過(guò)形成模糊推理機(jī)的時(shí)間。執(zhí)行模糊化和規(guī)則評(píng)價(jià)步驟中不涉及需要時(shí)鐘或時(shí)令的電路。因此,模糊推理機(jī)不被能在其中記時(shí)的速度所限制,該模糊推理機(jī)只受邏輯電路其內(nèi)的內(nèi)部延遲所限制。
還有,當(dāng)定義多個(gè)輸入隸屬函數(shù)的每一個(gè)形狀時(shí),本發(fā)明的模糊化模塊非常靈活。在本實(shí)施例中,輸入隸屬函數(shù)可以是模糊推理機(jī)用戶所希望的任何形狀。本發(fā)明的一個(gè)實(shí)施例中,在開(kāi)發(fā)模糊推理系統(tǒng)時(shí),使用RAM和EPROM可以構(gòu)成模糊化模塊。然后用ROM,以在硅片上的最終設(shè)計(jì)。還有,在RAM中儲(chǔ)存隸屬函數(shù)值,允許用戶有能力使隸屬關(guān)系函數(shù)為任意形狀。電路組裝之前,要求用戶定義隸屬函數(shù)與軟/硬件仿真的界線,減少模糊化模塊內(nèi)的地址譯碼邏輯的大小和復(fù)雜程度。因此,RAM地址譯碼可以是用戶的特定邏輯塊,并且對(duì)于每個(gè)應(yīng)用,通過(guò)綜合技術(shù),可以重生RAM地址譯碼。本發(fā)明模糊化模塊的另一優(yōu)點(diǎn)是能并行地訪問(wèn)給定輸入的所有隸屬函數(shù)的隸屬關(guān)系值。模糊化模塊的大小依靠于輸入的數(shù)量和用戶需要的每個(gè)輸入的隸屬函數(shù)數(shù)量。
還有,本發(fā)明的規(guī)則判斷模塊靈活地定義了一個(gè)模糊規(guī)則庫(kù)。本發(fā)明可以提供任何數(shù)量的規(guī)則、輸入和輸出,該數(shù)量只受可用硅片面積所限制。模糊隸屬關(guān)系的級(jí)數(shù)可以容易地增強(qiáng)或減少。MAX和MIN推理的邏輯最優(yōu)化導(dǎo)致規(guī)則評(píng)價(jià)模塊使用最小可能數(shù)量的電路面積,因此降低了本發(fā)明的造價(jià)。還有,還可以與軟件推理機(jī)一起作用規(guī)則評(píng)價(jià)模塊。規(guī)則評(píng)價(jià)模塊與典型CPO循環(huán)相比,可以用較短的時(shí)間判斷規(guī)則庫(kù),因此,大大地減少了模糊推理時(shí)間與規(guī)則庫(kù)中的規(guī)則數(shù)量的依靠性。還有,本發(fā)明中,同時(shí)并行地提供了所有的模糊輸出。本發(fā)明的模糊邏輯系統(tǒng)的運(yùn)行將在下面順序地詳細(xì)討論。
這里所描述的本發(fā)明的實(shí)現(xiàn)僅僅作為例子。然后,執(zhí)行這里所描述功能的其它很多實(shí)現(xiàn)也存在。本發(fā)明公開(kāi)的模糊化結(jié)構(gòu)中的另一種實(shí)現(xiàn)包括加倍隸屬函數(shù)的表面寬度功能而不用增加RAM的附加位?!安豢紤]”地址譯碼器輸入的不重要位可以實(shí)現(xiàn)該能力。通過(guò)“不考慮”附加位,也可以增大隸屬函數(shù)的表面寬度。本發(fā)明的另一種可選擇的實(shí)現(xiàn)可以包括加RAM的附加位以增大隸屬函數(shù)的寬度。因此,通過(guò)犧牲少量的電路面積,模糊推理系統(tǒng)可以有更多的功能。本發(fā)明的另一種實(shí)現(xiàn)中,二進(jìn)制數(shù),一元數(shù)或包圍模糊化模塊的系統(tǒng)所需的二進(jìn)制編碼十進(jìn)制數(shù)數(shù)表示輸入和輸出。
還有,可以使用可偏程邏輯陣列完成規(guī)則庫(kù)和隸屬函數(shù)的地址譯碼器,從而在硅片上完成電路之前,可以檢測(cè)和調(diào)試用戶的電路。
隸屬函數(shù)RAM還可能需要一個(gè)至讀/寫(xiě)數(shù)據(jù)總線的接口,通過(guò)主CPU和能重新組織存儲(chǔ)在RAM的一元值和內(nèi)部CPU,用以初始化數(shù)據(jù)。還有,還能實(shí)現(xiàn)驅(qū)動(dòng)規(guī)則評(píng)價(jià)模塊的輸出預(yù)先充里反轉(zhuǎn)的數(shù)據(jù)總線。由于CPU訪問(wèn)的數(shù)據(jù)頻率和規(guī)則塊訪的模糊輸出的不同,所以需要該兩種總線。
另外,模糊推理機(jī)的第二實(shí)施例最好至少有一個(gè)狀態(tài)控制寄存器(這里未示出),以讓CPU或主處理器相應(yīng)于象模糊化完成和規(guī)則塊完成的特別事件。在模糊化完成操作中??梢蕴峁┓从?位輸入已被模糊化的一狀態(tài)位,并且在規(guī)則塊完成的操作中,可以提供一反映已準(zhǔn)備規(guī)則評(píng)價(jià)模塊26的輸出用以進(jìn)一步處理的狀態(tài)位。通過(guò)讀/寫(xiě)CPU口,其它附加特點(diǎn)可包括輸入超范圍(根據(jù)外部用戶的系統(tǒng)定義),檢查有效隸屬函數(shù)定義的一元數(shù)據(jù)錯(cuò)誤,以及隸屬函數(shù)出錯(cuò)。
還有,盡管本模糊推理機(jī)結(jié)構(gòu)包括模糊化和規(guī)則生成的硬件實(shí)現(xiàn)。這些模塊也可用軟件實(shí)現(xiàn)。硬件和軟件的折衷選擇包括運(yùn)行和價(jià)格兩方面。
如果用軟件實(shí)現(xiàn)模糊化模塊,采樣的數(shù)字輸入檢查隸屬函數(shù)的存儲(chǔ)邊界值。為了比較這些值,用RAM存儲(chǔ)器中的可寫(xiě)寄存器的使能位替代存儲(chǔ)器選擇信號(hào)。軟件只使能相應(yīng)于隸屬函數(shù)(它可作用在模糊化輸出)的RAM存儲(chǔ)位。相似地,如果用軟件完成規(guī)則評(píng)價(jià)模塊,當(dāng)模糊化完成事件發(fā)生時(shí),CPU將實(shí)現(xiàn)中斷。通過(guò)該信號(hào),一元模糊輸出還可以進(jìn)入數(shù)據(jù)寄存器。通過(guò)裝入有存儲(chǔ)數(shù)據(jù)(在讀/寫(xiě)寄存器中)的累加器,十六位一元寄存器值可以被最大化和最小化。寄存器可以是雙口寄存器,用以允許激發(fā)和檢測(cè)獨(dú)立于真實(shí)模糊的輸出的規(guī)則塊。這可以在規(guī)則評(píng)價(jià)模塊26的輸入處,加權(quán)模糊值。
還有,盡管當(dāng)前設(shè)計(jì)需要8位并行輸入數(shù)據(jù),如果用模數(shù)轉(zhuǎn)換器。并行一元運(yùn)算或串行一元/二進(jìn)制。輸入數(shù)據(jù)格式可以是模擬的。當(dāng)把串行輸入數(shù)據(jù)提供給模糊推理機(jī)時(shí),用一分享數(shù)據(jù)輸入總線,對(duì)于多控制系統(tǒng),可以定義推理機(jī)地址的協(xié)議。
另外,在該發(fā)明的當(dāng)前實(shí)施例中不包括解模糊器,因?yàn)闆](méi)有其它外部系統(tǒng)當(dāng)前使用一元格式,所以必須提供一解模糊器。解模糊時(shí)間大約為一微秒,且使用一元—二進(jìn)制—模擬的方法,或?qū)?yīng)于二進(jìn)制算法中的二進(jìn)制數(shù)的一元格式,解模糊輸出可以為模擬的。
本發(fā)明模糊推理機(jī)的當(dāng)前實(shí)施例的靈活和快速,允許在不同的微型控制器結(jié)構(gòu)內(nèi)實(shí)現(xiàn)。這些微型控制器可包括多個(gè)中央處理單元,DMA和與推理機(jī)共享功能和數(shù)據(jù)的協(xié)處理器??梢栽赗OM或RAM存儲(chǔ)器件中,以及更復(fù)雜的開(kāi)發(fā)系統(tǒng)中,實(shí)現(xiàn)模糊推理機(jī)。
盡管在這里描述了本發(fā)明的原理,對(duì)本領(lǐng)域的技術(shù)人員很清楚,描述僅僅作為例子,并不是對(duì)本發(fā)明范圍的限制。相應(yīng)地,通過(guò)附加的權(quán)利要求,覆蓋了本發(fā)明的所有變換,該變換在本發(fā)明的精神范圍內(nèi)。
權(quán)利要求
1.執(zhí)行模糊邏輯運(yùn)算的一種方法,包括步驟接收第一輸入信號(hào);譯碼第一輸入信號(hào),以訪問(wèn)第一隸屬函數(shù)存儲(chǔ)器內(nèi)的第一多存儲(chǔ)單元;以一元格式從第一多存儲(chǔ)單元的第一單元處檢索第一模糊輸入值,第一模糊輸入值指示第一隸屬函數(shù)中第一輸入信號(hào)的隸屬度;使用第一模糊輸入值選擇地執(zhí)行第一邏輯函數(shù)以提供一個(gè)第一最小值;以及使用第一最小值選擇地執(zhí)行第二邏輯函數(shù)以提供一第一輸出值。
2.根據(jù)權(quán)利要求1的方法,其特征在于,輸入信號(hào)不包括在第一隸屬函數(shù)時(shí),該第一模糊輸入值等于零。
3.根據(jù)權(quán)利要求1的方法,還包括步驟接收第二輸入信號(hào);譯碼第二輸入信號(hào),以訪問(wèn)第二隸屬函數(shù)存儲(chǔ)器內(nèi)的第一多個(gè)存儲(chǔ)單元;從第二隸屬函數(shù)存儲(chǔ)器的第一多存儲(chǔ)單元的第一單元檢索以一元格式的第二模糊輸入值;第二模糊輸入值指示第二隸屬函數(shù)中第二輸入信號(hào)的隸屬度;使用第一模糊輸入值和第二模糊輸入值選擇地執(zhí)行第一邏輯函數(shù),以提供第二最小值;以及使用第一最小值選擇地執(zhí)行第二邏輯函數(shù)以提供第二輸出值。
4.一數(shù)字處理器,其特征在于第一地址譯碼器用以接收第一輸入信號(hào)并譯碼該第一輸入信號(hào)以提供第一譯碼信號(hào);第一存儲(chǔ)器有第一多存儲(chǔ)單元,連接到該第一地址譯碼器的該第一存儲(chǔ)器用以接收第一譯碼信號(hào),該第一存儲(chǔ)器從用第一譯碼信號(hào)指示的第一多存儲(chǔ)地址的第一地址處提供一元格式的第一模糊輸入值;使用第一模糊輸入值,第一邏輯裝置選擇地執(zhí)行第一邏輯函數(shù),連接到該第一存儲(chǔ)器的第一邏輯裝置用以接收該第一模糊輸入值,并且該第一邏輯裝置提供第一最小值;以及使用第一最小值,第二邏輯裝置選擇地執(zhí)行第二邏輯函數(shù),連接到該第一邏輯裝置的該第二邏輯裝置用以接收該第一最小值,并且該第二邏輯裝置提供第一輸出值。
5.根據(jù)權(quán)利要求4的數(shù)字處理器,其中第一存儲(chǔ)器(13)其特征在于通過(guò)第二多存儲(chǔ)單元,連接到第一地址譯碼器的該第一存儲(chǔ)器用以接收第一譯碼信號(hào);從用第一譯碼信號(hào)指示的該第二多存儲(chǔ)地址的第一地址處,該第一存儲(chǔ)器提供一元格式的一第二模糊輸入值。
6.根據(jù)權(quán)利要求4的數(shù)字處理器,進(jìn)一步特征在于第二地址譯碼器用以接收第二輸入信號(hào)并解碼該第二輸入信號(hào)以提供第二譯碼信號(hào);以及第二存儲(chǔ)器有第一多存儲(chǔ)單元,連接到該第二地址譯碼器的該第二存儲(chǔ)器用以接收該第二譯碼信號(hào),從用該第二譯碼信號(hào)指示的該多存儲(chǔ)地址的第一地址處,該第二存儲(chǔ)器提供以一元格式的一第二模糊輸入值。
7.根據(jù)權(quán)利要求4的數(shù)字處理器,其特征在于,從用第一譯碼信號(hào)指示的該多存儲(chǔ)地址的第二地址處,該第一存儲(chǔ)器提供以一元格式的一第二模糊輸入值。
8.根據(jù)權(quán)利要求7的數(shù)字處理器,其特征在于,第一邏輯裝置執(zhí)行的第一邏輯函數(shù)決定第一模糊輸入值和第二模糊輸入值哪個(gè)較小,并把該較小值作為第一最小值。
9.執(zhí)行模糊邏輯運(yùn)算的一種方法。包括步驟接收第一輸入信號(hào);譯碼該第一輸入信號(hào)用以訪問(wèn)在第一隸屬函數(shù)存儲(chǔ)器的第一多存儲(chǔ)單元,該第一多存儲(chǔ)單元相應(yīng)于第一隸屬單元函數(shù);從該第一多存儲(chǔ)單元的第一單元處檢索一元格式的第一模糊輸入值,該第一模糊輸入值指示第一隸屬函數(shù)內(nèi)的該第一輸入信號(hào)的隸屬度;同時(shí)譯碼該第一輸入信號(hào)以訪問(wèn)第一隸屬函數(shù)存儲(chǔ)器內(nèi)的第二多存儲(chǔ)單元,該第二多存儲(chǔ)單元相應(yīng)于第二隸屬函數(shù);從該第二多存儲(chǔ)單元的第一地址處檢索一元格式的第二模糊輸入值,該第二模糊輸入值指示在第二隸屬函數(shù)內(nèi)的該第二輸入信號(hào)的隸屬度;使用該第一模糊輸入值和第二模糊輸入值選擇地執(zhí)行第一邏輯函數(shù),以提供第一最小值;以及使用該第一最小值和該第二模糊輸入值選擇地執(zhí)行第二邏輯函數(shù),以提供第一輸出值。
10.根據(jù)權(quán)利要求9的方法,進(jìn)一步包括步驟同時(shí)地譯碼接收第二輸入信號(hào);譯碼該第二輸入信號(hào),以訪問(wèn)在第二隸屬函數(shù)存儲(chǔ)器內(nèi)的第一多存儲(chǔ)單元;從在第二隸屬函數(shù)存儲(chǔ)器內(nèi)的第一多存儲(chǔ)單元的第一單元處檢索一元格式的第二模糊輸入值,該第二模糊輸入值指示第二隸屬函數(shù)內(nèi)的該第二輸入信號(hào)的隸屬度;使用第一模糊輸入值和第二模糊輸入值,選擇地執(zhí)行該第一邏輯函數(shù)以提一第二最小值;以及使用該第一最小值選擇地執(zhí)行該第二邏輯函數(shù)以提供一第二輸出值。
全文摘要
一模糊推理機(jī)(10)以最短的時(shí)間高精度地執(zhí)行模糊邏輯運(yùn)算。該模糊推理機(jī)(10)包括譯碼輸入信號(hào)以訪問(wèn)存儲(chǔ)單元(18、20)的一模糊化模塊(12)。被訪問(wèn)時(shí),該存儲(chǔ)單元為規(guī)則評(píng)價(jià)模塊(26)提供一元件。該規(guī)則評(píng)價(jià)模塊(26)順序地處理該一元值。由于該模糊邏輯運(yùn)算使用一元值而不用傳統(tǒng)的二進(jìn)制數(shù),執(zhí)行模糊邏輯運(yùn)算的時(shí)間等于信號(hào)通過(guò)形成規(guī)則評(píng)價(jià)模塊(26)的邏輯門電路(28、30、32、34、36和38)所需的時(shí)間。
文檔編號(hào)G06N7/04GK1117619SQ95102710
公開(kāi)日1996年2月28日 申請(qǐng)日期1995年3月20日 優(yōu)先權(quán)日1994年3月25日
發(fā)明者基思·E·金納克, 約瑟夫·P·馬利奧科, 霍恩格·K·奎恩, 戴維·A·佩納 申請(qǐng)人:摩托羅拉公司