對DSP芯片進行編程來實現(xiàn)模糊邏輯控制器
發(fā)布時間:2007/4/23 0:00:00 訪問次數(shù):993
你可以采用現(xiàn)成的標準微處理器來構(gòu)建模糊邏輯系統(tǒng)。傳統(tǒng)的微處理器對于大多數(shù)應(yīng)用來說是足夠的,即使是模糊邏輯,但對于需要可預(yù)測且非?焖夙憫(yīng)時間的高安全性系統(tǒng)來說則未必。當傳統(tǒng)處理器不夠快時,數(shù)字信號處理器(DSP)可能正是你的系統(tǒng)所需要的。
DSP是具有指令集和面向算術(shù)運算特性的專用微處理器,其最初只是用在信號處理應(yīng)用。現(xiàn)在,隨著DSP軟件開發(fā)工具種類的增加和質(zhì)量的提升,這種處理器變得越來越流行。DSP如今在成本上與通用微處理器也能競爭。今天,任何可以受益于高速乘法/累加 (MAC)運算的應(yīng)用都可以考慮采用DSP。
本文將闡述模糊邏輯系統(tǒng)的組成部分,并給出如何采用DSP來實現(xiàn)的實例。
模糊邏輯基礎(chǔ)
Lotfi Zadeh被認為是模糊邏輯的創(chuàng)立者,他在1965年的一篇文章中提出了布爾數(shù)學(xué)體系集合論的擴展,將二元擴展到多值。他的模糊邏輯集合論是一種廣義的經(jīng)典集合論,是對非精確性的極好表述。模糊邏輯的優(yōu)勢在于它可以在不采用數(shù)學(xué)方法的情況下使你能準確地描述一個過程或行為。
布爾數(shù)學(xué)體系集合既可以是真,也可以是假,而模糊集合可以具有部分的這種隸屬關(guān)系。例如,圖1給出了一個布爾變量。在布爾表中,對于6英尺來說“高”是真,而低于6英尺則為假,但在圖2中,模糊變量的高既不是真也不是假,它具有可變的真假隸屬關(guān)系。布爾變量通常被稱為明確的集合(crisp set),模糊變量成為模糊集合。模糊集合行為類似于其對應(yīng)的明確集合。舉例來說,模糊邏輯采用“與”、“或”、“非”以及補數(shù)運算。“與”處理是取輸入量中的小者,“或”處理是取輸入量的較大者,補數(shù)運算是用1減去輸入值。>
控制器的組件
任何基于模糊邏輯的控制器具有三個組件:模糊化器(fuzzifier)、規(guī)則庫和去模糊化器。在將一個明確(數(shù)字)輸入轉(zhuǎn)變成模糊值并對該值進行處理,然后再將模糊值轉(zhuǎn)變成明確值輸出的過程中,每個組件扮演著重要的角色。盡管模糊控制器的實現(xiàn)不盡相同,他們都具有這三個基本部分。
模糊化器獲取一個明確輸入值,并根據(jù)是否需要將其進行縮放來轉(zhuǎn)換成模糊值,并轉(zhuǎn)變?yōu)槎嘀祵嶓w(entity)?s放處理將輸入域映射到所有變量都采用的一些內(nèi)部格式。該多值實體是將輸入值與其對應(yīng)的輸入集合進行比較的結(jié)果,并對該值進行映射處理以反應(yīng)出其隸屬關(guān)系特性。
規(guī)則庫從前一級取得輸入值,并將其與每個相關(guān)語句的區(qū)間相加。規(guī)則庫由一系列一個或多個IF-THEN語句組成。每個語句依次組成了兩個部分:條件(antecedent),在關(guān)鍵字then的左邊;結(jié)果(consequent),在then的右邊。一個語句可能具有一個或更多的antecedent和consequent。典型的規(guī)則語句看起來就像這樣:
IF antecedent1 . . . antecedentN THEN
consequence1 . . . consequenceN
條件和結(jié)果都采用條件形式變量,這里的變量是條件的輸入變量或結(jié)果的輸出變量。結(jié)果的條件部分是一個模糊隸屬函數(shù),如“冷”、“暖和”、“熱”。規(guī)則庫對來自模糊化器的數(shù)據(jù)與規(guī)則進行比較。當它遇到一個條件是真,就觸發(fā)語句的結(jié)果動作。
以電梯為例,規(guī)則庫可能就像:
IF門打開AND速度為零 AND距離可以忽略 THEN電機轉(zhuǎn)速為0
IF 門關(guān)閉AND速度慢 AND 距離大THEN電機轉(zhuǎn)速最大
IF 門關(guān)閉AND速度中等 AND距離一般 THEN電機轉(zhuǎn)速一般
IF 門關(guān)閉AND 速度快AND 距離一般THEN電機轉(zhuǎn)速一般
這個例子有四個規(guī)則,每個規(guī)則有四個變量:門、電機、速度、距離(到選定層)。每個規(guī)則有三個條件和一個結(jié)果,總共有十種情況組成了四個變量的隸屬關(guān)系集合。例如,速度具有變量0、慢、中等和快速?勺兙嚯x具有以下四個值:忽略、很小、一般、大。門要么開要么就是關(guān)閉。對于各種隸屬集合,電機轉(zhuǎn)速具有0、最小、平均和最大四個變量。
Lotfi Zadeh被認為是模糊邏輯的創(chuàng)立者,他在1965年的一篇文章中提出了布爾數(shù)學(xué)體系集合論的擴展,將二元擴展到多值。他的模糊邏輯集合論是一種廣義的經(jīng)典集合論,是對非精確性的極好表述。模糊邏輯的優(yōu)勢在于它可以在不采用數(shù)學(xué)方法的情況下使你能準確地描述一個過程或行為。
布爾數(shù)學(xué)體系集合既可以是真,也可以是假,而模糊集合可以具有部分的這種隸屬關(guān)系。例如,圖1給出了一個布爾變量。在布爾表中,對于6英尺來說“高”是真,而低于6英尺則為假,但在圖2中,模糊變量的高既不是真也不是假,它具有可變的真假隸屬關(guān)系。布爾變量通常被稱為明確的集合(crisp set),模糊變量成為模糊集合。模糊集合行為類似于其對應(yīng)的明確集合。舉例來說,模糊邏輯采用“與”、“或”、“非”以及補數(shù)運算!芭c”處理是取輸入量中的小者,“或”處理是取輸入量的較大者,補數(shù)運算是用1減去輸入值。>
控制器的組件
任何基于模糊邏輯的控制器具有三個組件:模糊化器(fuzzifier)、規(guī)則庫和去模糊化器。在將一個明確(數(shù)字)輸入轉(zhuǎn)變成模糊值并對該值進行處理,然后再將模糊值轉(zhuǎn)變成明確值輸出的過程中,每個組件扮演著重要的角色。盡管模糊控制器的實現(xiàn)不盡相同,他們都具有這三個基本部分。
模糊化器獲取一個明確輸入值,并根據(jù)是否需要將其進行縮放來轉(zhuǎn)換成模糊值,并轉(zhuǎn)變?yōu)槎嘀祵嶓w(entity)。縮放處理將輸入域映射到所有變量都采用的一些內(nèi)部格式。該多值實體是將輸入值與其對應(yīng)的輸入集合進行比較的結(jié)果,并對該值進行映射處理以反應(yīng)出其隸屬關(guān)系特性。
規(guī)則庫從前一級取得輸入值,并將其與每個相關(guān)語句的區(qū)間相加。規(guī)則庫由一系列一個或多個IF-THEN語句組成。每個語句依次組成了兩個部分:條件(antecedent),在關(guān)鍵字then的左邊;結(jié)果(consequent),在then的右邊。一個語句可能具有一個或更多的antecedent和consequent。典型的規(guī)則語句看起來就像這樣:
IF antecedent1 . . . antecedentN THEN
consequence1 . . . consequenceN
條件和結(jié)果都采用條件形式變量,這里的變量是條件的輸入變量或結(jié)果的輸出變量。結(jié)果的條件部分是一個模糊隸屬函數(shù),如“冷”、“暖和”、“熱”。規(guī)則庫對來自模糊化器的數(shù)據(jù)與規(guī)則進行比較。當它遇到一個條件是真,就觸發(fā)語句的結(jié)果動作。
以電梯為例,規(guī)則庫可能就像:
IF門打開AND速度為零 AND距離可以忽略 THEN電機轉(zhuǎn)速為0
IF 門關(guān)閉AND速度慢 AND 距離大THEN電機轉(zhuǎn)速最大
IF 門關(guān)閉AND速度中等 AND距離一般 THEN電機轉(zhuǎn)速一般
IF 門關(guān)閉AND 速度快AND 距離一般THEN電機轉(zhuǎn)速一般
這個例子有四個規(guī)則,每個規(guī)則有四個變量:門、電機、速度、距離(到選定層)。每個規(guī)則有三個條件和一個結(jié)果,總共有十種情況組成了四個變量的隸屬關(guān)系集合。例如,速度具有變量0、慢、中等和快速?勺兙嚯x具有以下四個值:忽略、很小、一般、大。門要么開要么就是關(guān)閉。對于各種隸屬集合,電機轉(zhuǎn)速具有0、最小、平均和最大四個變量。