模糊控制介紹及Matlab模糊控制工具箱使用

目錄

  • 一、模糊控制的產生

  • 二、模糊邏輯的理論基礎

  • 三、模糊控制Matlab工具箱示例

  • 四、模糊控制的基本思想

  • 五、模糊控制器的基本結構

  • 六、模糊控制器的優缺點

一、模糊控制的產生

在傳統控制領域,對於明確系統有強而有力的控制能力,即被控系統的動態信息越詳細,越能達到精確控制的目的。然而,在多變數、非線性的複雜系統中,往往難以完全描述系統的動態信息。此時,傳統的控制理論則顯得無能為力,而有經驗的專家或工作人員仍能根據長期實踐觀察和操作經驗進行有效控制。

據此引申,是否可將人的操作經驗總結為若干條控制規則以避開複雜模型的建立過程?

模糊控制最重要的特徵是反應人們的經驗及推理規則,而這些經驗和推理規則是通過自然語言來表達的,如「水溫上升過快,則關小燃氣閥」。在控制系統初期,由於對系統缺乏了解,控制效果可能不好,但若干次探索后終能實現預期的控制,這就是經驗對模糊控制系統的重要性。由於模糊控制實質上是用計算機去執行人的控制策略,因而可以避開複雜模型的建立,對人們關於某個控制問題的成功和失敗經驗加工,總結出知識,從中提煉出控制規則,實現複雜系統的控制。

Advertisements

PS: 「模糊」是人類感知萬物,獲取知識,思維推理,決策實施的重要特徵。「模糊」比「清晰」所擁有的信息量更大,更符合客觀世界。

二、模糊邏輯的理論基礎

模糊邏輯是指模仿人腦不確定性的概念判斷和推理思維,對於定性的知識和經驗,藉助隸屬度概念、模糊集合,來處理模糊關係。模糊邏輯實質上是要對模糊性對象進行精確描述和處理。

模糊邏輯的目的是將一個輸入空間映射到一個輸出空間,主要要靠一系列的if-then規則。這些規則包含變數和描述這些變數的形容詞,被平行評估,因此它們的順序不重要。在進行模糊推理之前,先要定義好輸入和輸出變數以及描述它們的形容詞。模糊推理的流程如下圖所示。

模糊推理流程

2.1、模糊集合

普通情況下,元素a屬於集合A(1)或不屬於集合A(0),如下圖所示,星期一和星期三都是工作日,而蘋果和星星則不是。這就是經典集合,完全包括或完全不包括某個元素。

Advertisements

而模糊集合沒有明確的界限,把只取0和1二值的普通集合概念推廣到在[0,1]區間上無窮多值的模糊集合概念,並用「隸屬度」這一概念來精確刻畫元素和模糊集合之間的關係。如星期五既是工作日,但下午或晚上又像休息日,因此星期五並不完全屬於工作日。

模糊集合

2.2、隸屬度函數

在經典集合下,周一至周日是否屬於工作日如下左圖所示,而模糊集合下,周一至周日屬於工作日的隸屬度可以用一連續曲線表示,如右圖所示,此時這條曲線上的每一點定義了當前時刻屬於工作日的程度,這條曲線稱為隸屬度函數。隸屬度曲線有不同的形式,常見的有三角形、梯形、高斯分佈形、S形等。

工作日隸屬度函數

以一年春夏秋冬四個季節為例,每個季節的隸屬度函數如下:

春夏秋冬四季隸屬度函數

2.3、邏輯運算

邏輯運算是模糊推理的基礎,我們先看一下基本的邏輯運算。

基本邏輯運算

基本邏輯運算示意圖

由於模糊邏輯用隸屬度函數表示元素屬於集合的程度,當隸屬度為0或1時,可以採用上面的基本邏輯運算;當隸屬度在(0,1)之內時,需要對邏輯運算修改一下,一種方法是用min、max、1-A代替and、or、not。

邏輯運算 - min max替代

邏輯運算 - min max替代示意圖

2.4、if-then 規則

模糊集和模糊運算是模糊推理的對象和動作,if-then規則用於形成模糊推理的條件語句。最簡單的if-then規則:if x is A then y is B。「x is A」是前提,「y is B」是結論。比如:if service is good then tip is average。這裡的good是一個模糊輸入,average是模糊輸出。

if-then規則可以有兩個輸入:if x is A and y is B then z is C。

當有多個規則時,需要綜合考慮各個規則的處理結果,一種方法是取各個規則處理結果的最大值,還有一種方法:probor(a,b)=a+b-ab.

三、模糊控制Matlab工具箱示例

以一個在飯店付小費比例的問題為例,輸入是服務員服務質量[0,10]和飯菜可口程度[0,10],輸出是小費百分比[5,25]。付小費的三個法則:

• if the service is poor or the food is rancid then tip is cheap;

• if the service is good then tip is average;

• if the service is excellent or the food is delicious then tip is generous。

3.1、在Matlab命令行窗口輸入fuzzy,打開模糊控制工具箱

模糊控制工具箱

3.2、增加一個輸入變數,更改輸入和輸出變數名稱

增加輸入變數

更改輸入輸出名稱

3.3、雙擊輸入變數模塊,設置輸入和輸出變數的隸屬函數

設置輸入變數隸屬度函數

設置輸出變數隸屬度函數

3.4、雙擊中間的白色方框,編輯 if-then 規則

編輯 if - then 規則

3.5、點擊View,查看最後的模糊控制結果

查看模糊控制結果

模糊控制輸入輸出對應關係

模糊控制輸入輸出表三維顯示

四、模糊控制的基本思想

將測量得到的被控對象的狀態經過模糊化介面轉化為自然語言描述的模糊量,然後根據人類的語言控制規則,經模糊推理得到輸出控制量的模糊取值,再經解模糊化介面轉化為執行機構能接收的精確量。

五、模糊控制器的基本結構

模糊控制器基本結構

模糊控制器包括五部分:

1)變數定義:定義控制器輸入和輸出的語言變數,一般控制問題的輸入變數有系統的誤差E和誤差變化率EC,輸出變數為執行器的控制量U。

2)模糊化:將精確數值以適當比例轉換到自然語言變數的論域上,利用口語化變數來描述,通常將E、EC、U劃分為{正大(PB)、正中(PM)、正小(PS)、零(ZO)、負小(NS)、負中(NM)、負大(NB),這裡的口語化變數稱為模糊子集合},根據各語言值的隸屬函數得到精確數值的隸屬度。隸屬函數常見的有正態分佈型、三角型、梯型等。

3)規則庫:由若干條根據專家經驗總結的規則組成,按照「if(E is PB)and(EC is NS)then(U isPB)」的形式表達。

控制規則的產生方式:

• 根據專家特定領域的經驗知識,反覆實驗和修正形成;

• 根據操作人員的成功操作模式形成;

• 根據設定目標,應用自適應學習演算法,增加或修改控制規則;

4)模糊推理:根據模糊輸入和規則庫,用模糊推理方法得到模糊輸出;

5)解模糊:將得到的模糊輸出轉換為明確的控制信號

六、模糊控制器的優缺點

優點:

1)設計時不需建立被控對象的完整數學模型,簡化系統設計複雜性;

2)用語言式的模糊變數描述系統,便於使用自然語言進行人機對話;

3)魯棒性、適應性、容錯性較佳,尤其適用於非線性時變、滯后、模型不完全系統的控制。

缺點:

1)確立模糊化和清晰化的方法時,缺乏系統的方法,主要靠經驗和試湊;

2)總結模糊控制規則有時比較困難;

3)控制規則一旦確定,不能在線調整,不能很好地適應情況變化;

4)不具有積分環節,因而穩態精度不高。

Advertisements

你可能會喜歡