一個基本的模糊邏輯控制系統[24]~[26]可由(圖 2.2)來觀察到,
主要的組成部分有四部分:
一. 模糊化(Fuzzifier)
二. 模糊規則庫(Fuzzy Rule Base)
三. 模糊推論器(Fuzzy Inference Engine)
四. 解模糊化(Defuzzifier)
圖 2.2 模糊邏輯控制器之基本架構
當系統藉由感測器(Sensor)把明確的外界資訊輸入(X),藉 由模糊化將之轉化為模糊資訊,經由控制器的模糊推論器,根據所得 到的模糊資訊,以及在模糊規則庫中預先存放設計者主觀擬定的法
則,模擬人類思考決策的模式,解決其問題。最後解模糊化則將模糊 推論器所推論出的模糊資訊,轉化為外界所能接受的明確資訊(u)。
2.2.1 模糊化模糊化模糊化模糊化
對於受控目標系統而言,由感測器所量測到的資訊通常是一個明 確的數值。然而模糊邏輯控制器則是採用語言化的條件式規則為控制 策略。因此,為了能讓受控系統與語言化的條件式規則資訊相結合,
模糊化處理將是量測資訊進入模糊邏輯控制器所必要的步驟。
為了達到模糊化的功能,首先應根據受控系統輸出/入變數的變 動範圍決定語言變數的確定論域。接著再由設計者依據專家知識自行 決定論域的模糊分割(Fuzzy Partition)數量。確定了模糊分割的數量 後,便能將語言變數的論域適當地切割成數個模糊集合。以控制系統 為例,對於一個控制系統而言,通常是以誤差量(e)作為輸入語言 變數,其論域中模糊集合的標識可定義為: NB(Negative Big)、
NM(Negative Medium)、NS(Negative Small)、ZO(Zero)、PS
(Positive Small)、PM(Positive Medium)、PB(Positive Big)。
而這些模糊集合可以採用的歸屬函數種類很多,如(圖 2.3)所 示 。一般較 常使用 的有三角 形歸屬 函數( Triangular Membership Function)、高斯歸屬函數(Gaussian Membership Function)和梯形
具有較快的計算速度而且模糊化的效果與高斯函數相當,因此,三角 形的歸屬函數最常被採用。
圖 2.3 歸屬函數圖形
在決定語言變數的歸屬函數時,必須注意以下的因素:
(1) 嚴謹性︰
不同形狀所定義的歸屬函數,所產生的控制效果,會有很大的差 別的。換言之,如果控制者要求較嚴謹,則必須選擇斜率較陡的,以 便於當論域稍微有變動時能作明顯的表現。
(2) 涵蓋性︰
當我們在考慮歸屬函數涵蓋的程度時,原則上是讓論域中的每一 元素,所對應的歸屬值不可太低,如此方能考慮到每一元素。
(3) 重疊性︰
對於歸屬函數之間的重疊程度,一般而言重疊的程度越大時,模 糊控制器對系統的行為變化將有較好的適應性。但原則上仍不可過於 重疊以免兩個歸屬函數的值很難被區分。
2.2.2 模糊規則庫模糊規則庫模糊規則庫模糊規則庫
模糊規則庫是由一群以 IF-THEN 型式,所組成的條件式語句模 糊規則,並以語句之方式來命令受控系統,使其達到所須控制的目 的,而建立模糊規則庫須注意事項如下:
(一) 完全性(Complete):即每次輸入的語句變數之模糊集合,至少要 觸發一條規則;不可沒有規則可觸發,否則會產生不正常的模 糊關係。
(二) 一致性(Consistent):即表示如有兩條規則其前件部相同,則其後 件部也要相同,如後件部不相同則表示不符合一致性的要求。
(三) 連續性(Continuous):每相鄰的兩條規則之後件部,須有重疊的 區域,
則此稱為規則庫的連續性。
將許多的模糊規則組合成一個規則庫,而其中 IF X 1isA 的部分1 稱為前件部,而 THEN YisB 部分則稱為後件部。其模糊規則庫表1 示方式如下:
R1:IF X1 is A1 ,THEN Y is B1
R2:IF X1 is A2,THEN Y is B2
︴
Rn−1:IF X 1 is An−1,THEN Y is Bn−1;
Rn:IF X 1 is An,THEN Y is Bn。
2.2.3 模糊推論器模糊推論器模糊推論器模糊推論器
Fuzzy推論(Fuzzy Inference) [24]~[26]是根據知識庫保存的規則和 給予的事實推導出新的結論。而在模糊邏輯推論最常用的有以下三 種:
[1]前向推論(Forward Reasoning):
規則:IF X is A THEN Y is B 事實:X is A’
結論:Y is B’
t–基準(T-norms)(R(1) ∩R(2) ∩⋯R(m)):
圖 2.4 Mamdani 模糊模式示意圖
2.
Sugeno 模式模式模式模式模糊推論工場Sugeno 模糊模式是從已知的輸入-輸出資料中,有 系統地求出所需要的IF-THEN 規則之前件部與後件部。即從已知的 輸入-輸出資料中,有系統性地取得模糊規則的一種方法。且Sugeno 模式在前件部IF-THEN規則中,與Mamdani 模式架構相同,在後件 部則是採用函數轉換表示,Sugeno 模糊模式如圖2.5
圖 2.5 Sugeno 模糊模式示意圖 2.2.5 解模糊化解模糊化解模糊化解模糊化
解模糊化[24]~[26]與模糊化恰好相反,解模糊化是將經由模糊推 論工場後的模糊集合轉為明確的數值。而解模糊化則由以下三個準則 決定:
(1) 合理性:明確數值其所代表的模糊集合應是合理的,或其歸屬度 值為較高的。
(2) 計算簡單:便利於模糊控制問題上之使用。
(3) 連續性:模糊推論工場輸出的模糊集合之形狀,即使有稍許變 化,明確值的位置變化也不會太大。
常見的方法有重心法(Center of Area Defuzzification ;COA)、最 大平均法(Mean of maxima Defuzzification;MOD)及中心平均值解
模糊化法(Center Average Defuzzification)。
(2) 最大值之平均值(Middle of Maxima Defuzzification)
因為B y'( )往往是不規則形的,我們從左邊開始沿著B y'( )之山幾向右 攀爬,當爬到第一個最高點時,此點在Y軸上之投影即為y*值,如 圖2.7。
其中h(B)叫做模糊集合B y'( )之高度。
當爬到最後一個最高點時,此點在Y軸上之投影即為y*值,如圖2.7。
{ }
Ly y y h y
y *
Y
* max YB'( ) (B')
∈ ∈ = ∆=
= (2.6)
所謂的最大值之平均解模糊化法即為(2.11)式及(2.12)式之平均值即 可,如圖2.8。
2
*
*
* y F y L
y = + (2.7)
圖2.7 最大值之平均值投影圖 第一個最高點
∗
yF yL∗
最後一個最高點
圖2.8 最大值之平均值示意圖
(3) 中心平均值解模糊化法(Center Average Defuzzification)
此法或稱為高度解模糊化法(Height Defuzzification),特別針對的形狀
圖2.9 中心平均值示意圖
) ( B
2h )
( B
1h
y*
p1 p2
第 第 第
第3章 章 章. 旋轉式倒單擺系統分析及軟體之 章 旋轉式倒單擺系統分析及軟體之 旋轉式倒單擺系統分析及軟體之 旋轉式倒單擺系統分析及軟體之 架構
架構 架構 架構
3.1. 動態方 動態方 動態方 動態方程式 程式 程式 程式
如圖3-1所示為旋轉式倒單擺數學模型,其中 G為轉動中心或質
心(Mass Center),g 為重力加速度,M 為旋轉臂之重量,m 為倒
單擺桿之重量,L為旋轉臂之一半長度,l為倒單擺桿之ㄧ半長度,IL 為旋轉臂之質量慣性矩(Mass of inertia)及馬達轉動時對旋轉臂所造 成之輸入扭矩(Torque)以 µ 代表。以此系統來分析描述其動能(Kinetic Energy, T)及位能(Potential Energy, VP),再將所求得之動能、位能 代入 Lagrange’s function:La=T-VP後,依序對倒單擺桿之角度 α、旋 轉臂之角度 θ 以Lagrange’s equation 計算之,進而獲得所要的非線性 動態方程式(nonlinear dynamics equation)。
為了進一步分析此系統動態特性,必須先建立系統的數學模式,
根據參考文獻[27],可得(3.1)、(3.2)滑車倒單擺非線性方程式:
圖 3.1 旋轉式倒單擺系統之力系分析 (Gravitational Acceleration) 。 依 據 Lagrange’s function 可 得
(
θ θ αα α)
α α得
道倒單擺桿角度 α、倒單擺桿角速度 α'和旋轉臂角度 θ、旋轉臂角速 度 θ'是相關的,兩者並不是獨立互不相關,因此本論文將試著從這方 面出發來解決倒單擺系統直立與定位控制的問題。
表 2.1 旋轉式倒單擺系統之參數設定
系統參數 設定數值 單位
旋轉臂之重量 M 0.09 Kg 倒單擺之重量 m 0.15 Kg 旋轉臂長度 L 0.4 m 倒單擺桿之ㄧ半長度 l 0.095 m
旋轉臂之寬度 a 0.07 m
重力 g 9.8 m / sec
第 第 第
第4章 章 章. 粒子群演算法 章 粒子群演算法 粒子群演算法 粒子群演算法
粒子群演算法 (Particle Swarm Optimization) [9]簡稱 PSO,為
Kennedy與 Eberhart於 1995 年所提出,為受到鳥群的覓食行為所啟
發。PSO的概念源自於群體行為理論,每一個體經過特別的傳遞訊息 方式,將所得到的資訊提供給群體並做交流,使整個團體朝同一方向 而去,藉此搜尋到食物。
一群鳥再隨機搜尋食物。這個區域裡只有一塊食物。所有的鳥都 不知道食物再哪裡,但他們知道目前距離食物還有多遠,那麼找到食 物的最佳策略是什麼?最簡單的方法就是找尋距離食物最近的鳥之 周圍區域及根據自己本身飛行的經驗判斷食物的所在。
4.1. 演算法介紹 演算法介紹 演算法介紹 演算法介紹
粒子群演算法與基因演算法類似,為一種基於迭代演算的最
佳化搜尋工具,屬於演化式計算與隨機搜尋法中的一種。PSO演算法 初始化為一群隨機粒子(隨機解),然後通過迭代找到群體最佳解。在 每一次演化迭代中,粒子透過兩個最佳值-個體最佳值(Pid)與群體最佳
I. 演算法特性
.每個問題解都想像成一隻鳥,稱為“Particle”。
.每個Particle都有一個 fitness function判斷目前位置的好壞。
.每一個Particle能記得所搜尋到最佳位置。
.每一個 Particle還有一個速度以決定飛行的距離與方向。
4.2. 速度更新公式 速度更新公式 速度更新公式 速度更新公式
在 PSO 演化的程序中每個粒子都有一個速度以決定移動的距離 與方向,而每個粒子都能判斷目前位置的好壞,並且能記得所搜尋到 的最佳位置,經過特別的傳遞訊息方式,將所得到的資訊提供給群體 並做交流,藉此搜尋到最佳解。速度的更新公式如下:
(4-1)
(4-2) 其中
V
id :每一Particle 在第d 維之速度i:Particle之編號 、 d:維度
W:Inertia Weight
c
1、c
2:學習常數Rand( ):一介於0 至1 的亂數
p
id :每一Particle到目前為止,所求得的最佳解1 () ( ) 2 () ( )
id id id id gd id
V = ×W V + ×c Rand × p −x + ×c Rand × p −x
id id id
x = x + V
p
gd:所有Particle 到目前為止,所求得的最佳解x
id :每一 Particle目前之所在本論文採用初始族群為10,W為0.9,
c
1、c
2為1.5及 0.5 [29]。0 < (
c
1 +c
2) < 4 (4-3) (c
1 +c
2)/2 - 1 < W < 1 (4-4) 如能滿足公式(4-3)及(4-4),則PSO演算法將能穩定收歛。4.3. 演算法流程介紹 演算法流程介紹 演算法流程介紹 演算法流程介紹[28]
1. Initial:
將群族做初始化,以隨機的方式求出每一Particle 之初始位置與
速度。
2. Evaluation:
依據fitness function計算出fitness value以作為判斷每Particle之 好壞
x
id 。3. Fine the pid:
找出每一Particle 到目前為止的搜尋過程中最佳解,這個最佳解
我們將之稱為 pid(Pbest)。
4. Fine the pgd:
我們稱之為 pgd(Gbest)。 5. Update the Velocity:
依據(4-1)與(4-2)更新每一個 Particle 之速度與位置。回到步驟 2.
繼續執行,直到獲得一個令人滿意的結果或符合終止條件為止。
圖4.1 PSO 演化流程圖
演算法流程示意:
圖 4.2 搜尋過程-最初狀態
圖 搜尋過程-經過 代
圖4.2 搜尋過程-經過50 代
圖 4.5 搜尋過程-經過 500代
第
圖 5.1 歸屬函數圖
5.2 模糊控制器設計 模糊控制器設計 模糊控制器設計 模糊控制器設計
此控制器會以倒單擺角度為控制的準則,當角度大於90至180 度或小於-90至-180 度時,則使系統變不穩定做甩上的動作;而角度介 於90 度與-90度之間則利用平行分散補償(PDC)做直立定位的動作。
圖5.2 Simulink 模擬圖
圖5.3 控制器模擬圖 Gin3及 Gin4值同為[1 -2 3 4]
圖 5.4 PDC控制器設計圖
圖 5.5 2000代 PSO模擬圖
F1=[-64.839 -6.0179 -14.809 -8.1682]
F2=[-123.49 -5.3274 34.483 5.9411]
F3=[11.575 9.1775 -280.04 211.19]
5.3 模擬 模擬 模擬 模擬結果 結果 結果 結果
X1為角度 α
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-0.4 -0.2 0 0.2 0.4 0.6 0.8 1
時 時(sec)
角角(rad)
圖 5.6 45度(0.7854 rad)倒單擺角度X1
X3為角度 θ
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-0.2 0 0.2 0.4 0.6 0.8 1 1.2
時 時(sec)
角角(rad)
圖 5.7 45度(0.7854 rad)旋轉盤角度X3
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -0.8
-0.6 -0.4 -0.2 0 0.2 0.4
時 時(sec)
角角(rad)
圖 5.8 -45度(-0.7854 rad)倒單擺角度X1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -1.2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2
時時(sec)
角角(rad)
圖 5.9 -45度(-0.7854 rad)旋轉盤角度X3
0 2 4 6 8 10 12 14 16 18 20 -2
0 2 4 6 8 10 12
時 時(sec)
角角(rad)
圖5.10 135度(2.3562 rad)倒單擺角度 X1
0 2 4 6 8 10 12 14 16 18 20 -20
-15 -10 -5 0 5
時 時(sec)
角角(rad)
圖5.11 135度(2.3562 rad)旋轉盤角度X3
0 2 4 6 8 10 12 14 16 18 20 -12
-10 -8 -6 -4 -2 0 2
時 時(sec)
角角(rad)
圖5.12 -135度(-2.3562 rad)倒單擺角度 X1
0 2 4 6 8 10 12 14 16 18 20 -5
0 5 10 15 20
時 時(sec)
角角(rad)
圖5.13 -135度(-2.3562 rad)旋轉盤角度 X3
圖5.13 -135度(-2.3562 rad)旋轉盤角度 X3