More Related Content More from vincent8899 (20) 運用粒子群最佳化之Fpga模糊控制器設計~電機大師黃聰亮教授演講投影片2. 黃 聰 亮 教授
國立臺北教育大學資訊科學系暨研究所 系主任暨所長
美國財務金融管理學院 (AAFM) 院
中華民國國際學術交流學會 理 事
國立臺灣大學電機系 電機博士
國立臺灣大學電機系 電機碩士
國立臺灣大學電機系 電機學士
NEUST State University 企管博士
NEUST State University 教育博士
國立摩納哥皇家大學 (I.U.M.) 財管碩士
September 2008
3. 目錄
摘要
研究動機、目的
文獻回顧
模糊理論介紹
粒子群最佳化演算法介紹
8051 & FPGA & ADC 介紹
模糊控制器設計
結論
Q&A
03/05/12 3
4. 摘要
本論文主要在設計可以自行調整歸屬函數的
模糊控制器,並以 FPGA 晶片搭配微處理機
實現。本論文實用在跟車控制,利用紅外線
感測器來測量目前的位置與障礙物的距離,
模糊控制器將感測到距離計算出車的推力,
決定前進或後退、控制一段時間之後將距離
與速度回傳給微處理機,運用粒子群最佳化
演算法來計算出與建立新的模糊歸屬函數,
交由模糊控制器再次控制車輛運動。
03/05/12 4
5. 研究動機、目的
研究動機
◦ FPGA( 可程式邏輯晶片 ) 日益成熟,運用廣大
,他方便再無需向微處理機寫程式的麻煩、反
映時間快、運用彈性大,運用在模糊控制器上
是相當方便有效率。
◦ 模糊控制器中歸屬函數一般是由專家知識庫中
建立,可是如遇到未知的領域或是未知的性質
,必須透過無數次研究與測試才能建立一套規
則。
研究目的
◦ 微處理機與 FPGA 搭配,藉由粒子最佳化演算
法動態計算與建立新的歸屬函數,讓模糊控制
器達到最佳控制效果。
03/05/12 5
6. 文獻回顧 (1)
應用 FPGA 來實現模糊樹 (Fuzzy tree)[5] 可以簡化微
處理機運算過程與減少運算次數。
將模糊控制器模組化,以 FPGA 完成小模組、小容
量的模糊控制器 [6] 。
利用 Xilinx CX4008-6 PGA 搭配 EPROM 實作完成模
糊控制器 [7] 。
利用 FPGA 晶片完成可調式權重的模糊控制器,運
用在倒單擺車的單擺垂直控制器 [8] 。
03/05/12 6
7. 文獻回顧 (2)
動態產生模糊推論結果的模糊控制器,
運用在停車控制,此改善模糊規則儲存
在記憶體中,減少記憶體空見 的需求
[9] 。
運用模糊控制器在馬達控制上 [10]
[11] 。
利用 PFGA 實作模糊控制器運用在機器
人行為上 [12] 。
利用 FPGA 產生歸屬函數和歸屬值研究
[15][16] 。
03/05/12 7
8. FUZZY 理論介紹
Fuzzy 是一門新興的數學,起源於 1965 年美國加州
柏克萊大學 (Berkeley) 的扎德 (L.A. Zadeh) 教授,在
資訊與控制 (Information and Control) 學術期刊上所
發表的論文 - 模糊集合 (Fuzzy Sets) 。模糊理論實際
上是模糊集合、模糊關係、模糊邏輯、模糊控制、
模糊量測等理論的泛稱。
03/05/12 8
9. FUZZY SET(1)
一般集合論是明確的數值集合,非 0 即
1 ,例如發高燒是 38 度以上,沒發燒
是 38 度以下。此稱為明確集合 (crisp
set) 。
發燒
1( 是 )
沒發燒
0( 否 )
溫度
38 度
03/05/12 9
10. FUZZY SET(2)
Fuzzy Set 則是一般二值邏輯集合擴充多值邏輯,例
如 38 度發燒,那 40 度也是發燒, 41 度也是發燒,
可是 41 度比 38 度嚴重多了, 37 度沒有發燒, 37
度沒有發燒, 36 度是正常,可是接近 38 度人體就
出現發燒臨界點,因此利用多值邏輯更能展現出現
實情境。
中度發燒
正常 還好 微恙輕微發燒 重度發燒
35 36 37 38 39 40
03/05/12 10
11. 歸屬函數定義
在整個全集合中每一元素對某一模糊集合的所屬程
度都賦予一個介於 0 與 1 之間的數值稱之為歸屬函
數 (Membership function) 。
歸屬函數數值定義一般是由專家經驗以及知識來作
為判斷基礎。
有四種標準歸屬函數: Z-type ,, -type(lambda) ,
, -type(pi) 和 S-type 。
Z-Type Pi-Type
Lambda-Type S-Type
03/05/12 11
13. 模糊規則 (1)
在傳統邏輯學中對所有的事實或規則(有
時稱為命題)作判斷,非 1 即 0 ,定義明
確。
例如這世界上
◦ 不是好人,就是壞人。
◦ 不是女人,就是男人。
這樣仍然無法處理其他的情況。
模糊規則是將二元值 (0 , 1) 中,在 0 ,
1 之間,擴展更多的數值。
模糊規則一般由專家系統或是知識庫來建
立模糊規則
03/05/12 13
14. 模糊規則 (2)
模糊規則庫是由一組 If-Then 型式的模
糊規則所組成,這組模糊規則是用以描
述系統的輸入輸出關係。
有三種常見的模糊規則形式:
◦ 語意式模糊規則( Mamdani Fuzzy Rule )
◦ 函數式模糊規則( Sugeno Fuzzy Rule )
◦ Tsukamoto 式模糊規則( Tsukamoto Fuzzy
Rule )
03/05/12 14
15. 語意式模糊規則( Mamdani Fuzzy Rule)
語意式模糊規則又稱為 Mamdani 模糊
規則,典型的語意式模糊規則表示如下
:
前提: x is x0 and y is y0
模糊規則一 : If x is A1 and y is B1
Then z is C1
模糊規則二 : If x is A2 and y is B2
Then z is C2
03/05/12 15
16. Sugeno 模糊規則
前提: x is x0 and y is y0
模糊規則一 : If x is A1 and y is B1Then
f1 ( x, y )
z is
模糊規則二 : If x is A2 and y is B2Then
f 2 ( x, y )
z is
03/05/12 16
17. Tsukamoto 模糊規則
Tsukamoto 把後鑑部之模糊規則限定成只能擁有
單調性 ( 遞增或遞減 ) 的歸屬函數,如此一來,
歸屬函數的反函數便一定存在。
前提: x is x0 and y is y0
模糊規則一 R1 : If x is A1 and y is B1 Then z is C1
模糊規則二 R2 : If x is A2 and y is B2 Then z is C2
03/05/12 17
18. 模糊推論
模糊推論是利用歸屬函數取得各規則的適合程
度。
然後綜合模糊規則的適合度得到適當的推論。
即使規則條件部分的命題不完全一致,也能依
據一致度的高低比較得到合適的推論。
以下即以 Fuzzy 冷氣機舉例說明模糊推論的方
式。
條件規則:
◦ IF 溫度 is 高 , THEN 壓縮機 is 打開
◦ 狀態: 溫度 is 高
◦ 動作: 壓縮機 is 打開
03/05/12 18
19. 模糊推論的方法
模糊推論已廣泛的應用於各個實際系統上,利
用經驗或相關知識所得的規則,轉化為“ IF-
THEN” 的法則形式。大多數的推論並非只有一
個法則,也就是說當遇到一個事實需要推論時
通常有以下幾種推論法:
(1) 邏輯和(比較適合度取 Max. )、邏輯積(比較
適合度取 Min. )、邏輯和 (Max.) 的推論法。
(2) 邏輯積 (Min.) 、邏輯積 (Min.) 、邏輯和 (Max.) 的
推論法。
(3) 邏輯積 (Min.) 、代數積(取適合度的乘積值)
、邏輯和 (Max.) 的推論法
而一般常採用 Mamdani 的 Min.-Max. 的推論法
,也就是第二種方式,如圖 2.6 所示。
03/05/12 19
20. Mamdani 的 Min.-Max. 的推論法
IF 前 件 部 THEN 後件部
歸 X1 is A11 歸 X2 is A21 歸 Y is B1
屬 屬 屬
度 1.0 度 1.0 度1.0 邏輯積
規則一: Min. 計算
1
0.0 0.0 0.0
X1 X2 Y
( a) 規則一的模糊推論
X1 is A12 X2 is A22 Y is B2
歸 歸 歸
屬 屬1 屬1
1 邏輯積
度 度 度
規則二: Min.計算
0 0 0
X1 X2 Y
( b) 規則二的模糊推論
推論結果
1.0
邏輯和
0.0
Y
( c) 二規則模糊推論的結果
03/05/12 20
21. 解模糊化法
解解模糊化 (defuzzification) 法,此用意
在於將模糊推論所得的推論結果量化為
輸出變數的歸屬函數值。因為我們要實
際應用於系統操作,必須將模糊推論所
得到的語意轉化成一明確的輸出值。
解模糊的方式有多種,有面積中心法
(或稱重心法)、最大中心法、最大平
均法,其中以面積中心法較為常用。
03/05/12 21
22. 模糊控制
模糊控制的研究開始於 1970 年代中期,在
1980 年代進入實用化。在模糊控制實用化的研
究目前是以日本最為進步。
最早利用模糊理論來作控制的學者是倫敦大學
的 Mamdani 教授,在 1974 年研究發表中以研
究室所製作的蒸汽引擎模型為對象去驗證模糊
控制 [22] 。
Zadeh 教授提出一含有模糊性的語言記述系統
的方法論,用來表達在處理系統的複雜性與資
料之不完整性的判斷思考等。
一般所用的模糊控制法則大都依據 Mamdani 教
授方式利用“ IF-THEN” 條件命題式的語言性控
制 (linguistic control) 法則。
03/05/12 22
23. 傳統控制的限制
傳統的控制問題常需對真實系統建立數
學模型來作精確的數值形式計算處理。
但是假如遇到較複雜、大型的控制系統
或者與使用者有關的知識經驗等,則必
須花費大量人力、時間去建構數學模型
,甚至有可能因過於繁複而無法建構其
數學模型。
利用簡單的“ IF-THEN” 規則來描述系統
的模糊控制即可達到系統控制的目的。
03/05/12 23
24. 範例 導單擺機器
導單擺是一種手指頂著竹竿維持平衡的
遊戲,人類可以輕易做到此事,但是機
器就不是那麼容易,模糊理論可以輕易
完成這樣的控制。
03/05/12 24
28. STEP 3 定義歸屬函數 (1)
單槓角度輸入值
1 太左 偏左 正中 偏右 太右
歸屬值
0
180 135 120 90 60 45 0
輸入值
03/05/12 28
29. STEP 3 定義歸屬函數 (2)
馬達位移量輸出值
1 最左 略左 正中 略右 最右
歸屬值
0
-10 -5 0 +5 +10
公尺
輸出值
03/05/12 29
30. STEP 3 定義歸屬函數 (3)
輸入數學函式
太左 (x)=1 180<=X<=135 -
太左 (x)=(x-120)/15 135<=x<=120
偏左 (x) =(135-x)/15 135<=x<=120 /
偏左 (x) =(x-90)/30 120<=x<=90
正中 (x)=(120-x)/30 120<=x<=90 /
正中 (x)=(x-60)/30 90<=x<=60
偏右 (x)=(90-x)/30 90<=x<=60 /
偏右 (x)=(x-45)/15 60<=x<=45
太右 (x)=(60-x)/15 60<=x<=45 /
太右 (x)=1 45<=x<=0 -
03/05/12 30
31. STEP 3 定義歸屬函數 (4)
輸出數學函式
最左 (x)=1 x<=-10 -
最左 (x)=-(x-(-5))/5 -10<=x<=-5
略左 (x) =-((-10)-x)/5 -10<=x<=-5 /
略左 (x) =-(x)/5 -5<=x<=0
正中 (x)=((-5)-x)/5 -5<=x<=0 /
正中 (x)=-(x-5)/5 0<=x<=5
略右 (x)=(x)/5 0<=x<=5 /
略右 (x)=-(x-10)/5 5<=x<=10
最右 (x)=-(5-x)/5 5<=x<=10 /
最右 (x)=1 10<=x -
03/05/12 31
32. STEP 4 建立模糊規則
IF 角度 IS 太左 THEN 位移 = 最右
IF 角度 IS 偏左 THEN 位移 = 略右
IF 角度 IS 正中 THEN 位移 = 正中
IF 角度 IS 偏右 THEN 位移 = 略左
IF 角度 IS 太右 THEN 位移 = 最左
03/05/12 32
33. STEP 5 模糊推論 (1)
Max-min 法則來作為推論
當單桿角度偵測到 65 度,符合下列模
糊規則
IF 角度 IS 正中 THEN 位移 = 正中
IF 角度 IS 偏右 THEN 位移 = 略左
03/05/12 33
34. STEP 5 模糊推論 (2)
計算歸屬值
◦ 正中 (x)=(x-60)/30 90<=x<=60 正中 =0.16
◦ 偏右 (x)=(90-x)/30 90<=x<=60 / 偏右 =0.83
單槓角度輸入值
65
歸屬值
1 太左 偏左 正中 偏右 太右
0.83
0.16
0
180 135 120 90 60 45 0
輸入值
03/05/12 34
35. STEP 5 模糊推論 (3)
輸出推論
IF 角度 IS 正中 THEN 位移 = 正
中
IF 角度 IS 偏右 馬達位移量輸出值 = 略
THEN 位移
左1 最左 略左 正中 略右 最右
歸屬值 0.83
0.16
0
-10 -5 0 +5 +10
輸入值
03/05/12 35
36. STEP 6 解模糊化
重心法
x=
∑ x • 馬達位移量( x)
∑ 馬達位移量( x)
− 10 ∗ 0 + −9 ∗ 0.83 + ... + −1 ∗ 0.16 + ... + 4 ∗ 0.16 + 5 ∗ 0
x=
0.83 * 8 + 0.16 * 5
x = −4.6
結論 馬達要向左移動 4.6( 公尺 )
03/05/12 36
38. 粒子群最佳化演算法
粒子群最佳化演算法是 Kennedy 和
Eberhart 於 1995 年時提出,在研究
PSO 的過程中,有各種不同版本出現
[4-9] ,也有收斂及最佳參數選定的探
討文獻 [10-11] 。 PSO 的概念源自群體
行為理論,啟發自觀察鳥群或魚群行動
時,能透過個體間特別的訊息傳遞方式
,使整個團體朝同一方向、目標而去,
是模仿此類生物行為反應來尋求完成群
體最大利益的方法。
03/05/12 38
39. PSO 基本演算模式 (1)
首以均勻分佈 (uniform distribution) 隨
機產生初始粒子群,每一個粒子都是一
個求解問題的侯選解,粒子群會參考個
體的最佳經驗,以及群體的最佳經驗,
選擇修正的方式,經過不斷的修正之後
,粒子群會漸漸接近最佳解。
03/05/12 39
40. PSO 基本演算模式 (2)
以平面例子說明,如圖 2-1 , T 為目標, A ~ E 為搜尋粒子,
初始粒子群分散於各處。此時群體最佳的粒子是離目標 T 最近
的粒子 D ,稱之為 gbest 。假設粒子經過三次移動之後,位置
如圖 2-2 所示,此時群體最佳的粒子則為 E4 。粒子群亦分別紀
錄自身搜尋的最佳紀錄,稱之為 pbest ,如圖 2-2 ,粒子 A 停
駐位置為 A4 ,其自身最佳搜尋紀錄為座標 A3 。
03/05/12 40
41. 粒子群最佳化演算法 (1)
演算法開始時以隨機方式散佈粒子,計算各粒子所得的適合度
(fitness) 來進行演化,而適合度通常是依照目標函數來訂定。在
每一次迭代當中,粒子 Xi 會根據自己過去曾經流覽過的最佳向
量值 Pbesti 以及整個群體曾經瀏覽過的最佳向量值 Gbest ,來
計算粒子的位移向量 Vi ,然後再將粒子向量加上此位移向量作
為下一次迭代的粒子向量值,通常此計算是依照每一個參數維
度 j 分別進行的,公式如下
vij = vij + C1*rand()*(pbestij – Xij) + C2*rand()*(gbestj - Xij) (1)
Xij = Xij + vij (2)
其中 rand() 是一個介於 0 與 1 之間的隨機亂數,整個公式的目
的是要讓 Xi 向 Pbesti 及 Gbest 的合成向量方向移動,以增加改善
Xi 的機會,同時又設計了隨機 (stochastic) 的干擾量,以避免掉
入局部最佳解 (local optimum) 。所以粒子的向量修正原則是取
得鑽探搜尋 (exploitation search) 以及探索搜尋 (exploration
search) 的平衡,符合現代經驗法則 (modern heuristics) 的精神。
03/05/12 41
42. 粒子群最佳化演算法 (2)
出慣性權重式粒子群最佳化演算法
◦ 在原始 PSO 演算法的速度更新式中導入速度慣性
權重 (inertia weighted) 參數 w ,提高了原始 PSO
的收斂速度與函數最佳值搜尋的成功率。
更新公式如下:
◦ 慣性權重參數設置上仍存在著相當模糊的範圍,慣性權重設
定在 0.9 至 0.4 之間可得到較理想的結果。
◦ 慣性權重因子以線性遞減的方式加入速度更新公
式中運算,其效果可使得執行之初粒子有很高的
機會快速進入到較佳解的區域。
03/05/12 42
43. 粒子群最佳化演算法 (3)
壓縮因子的概念
◦ 此壓縮因子可有效控制各個粒子的搜尋軌跡,且
不需刻意限制粒子的最大速度粒子於搜尋過程中
可增加其穩定性,並能確保 PSO 維持一定的收斂
能力。加入壓縮因子的速度更新公式如下:
◦ 壓縮因子 K 是相當重要的限定準則,粒子的 C1 及
C2 必須遵照此限定準則來設定。
◦ 在 C1 及 C2 的設定上,根據文獻 [17] 分別取 2.8
與 1.3 。
03/05/12 43
44. 粒子群最佳化演算法的流程圖
Xi :各粒子所處
的位置。
Vi :各粒子的移動
量。
W :介於 0.4 ~
0.9 的權重常數。
Vmax :各粒子的
最大移動量。
Pbest :個別粒子
所曾經達到的最佳
位置。
Gbest :所有粒子
所曾經達到的最佳
位置。
03/05/12 44
45. 8051 & FPGA 介紹
8051 簡介
MCS-51 是 Intel 所生產的 8051 系列單晶片的總稱
, 在這家族中還有 8051,8751,8031,8032,8052,80C51
等 . 以上這些單晶片雖然在編號上有所不同 , 卻都
是使用相同的 CPU, 指令集 , 只是附加的周邊上有
所不同 , 例如 8751 是內含有 4k ERROM 的
MCS-51 版本 , 而 80C31 式一顆內部無記憶體的省
電 MCS-51 版本 .
目前除了 Intel 生產之外 , 目前也有好幾家公司也
有製造 , 功能上也有增加 , 例如
AMD,PHILPS,ATMEL,DALLS 等 , 其中又以 ATMEL
製造的 AT89C51 不需紫外線清洗 , 而是電子式抹
除 , 十分方便 .
03/05/12 45
46. 8051 特色
4K-byte 的快閃程式記憶體 (Flash Memory)
128-byte RAM 的程式記憶體
32 條 I/O 信號線
2 個 16-bit 的計時器 (Timer)/ 計數器
(Counter)
一個雙向串列埠 (RS-232 Serial Port)
5 個中斷向量功能。
03/05/12 46
48. 8051 外觀接腳圖與說明
1-8 腳: PORT 1 (P1.0 ~ P1.7 )
9 腳: RESET/Vpd ,重置信號
10-17 腳: PORT 3 (P3.0 ~ P3.7)
18-19 腳: XTAL2 , XTAL1
20 腳: Vss ,系統接地腳
21-28 腳: PORT 2 (P2.0 ~ P2.7)
29 腳: PSEN ( 程式儲存致能 )( 負緣觸發 ) :讀取存放在
外部
程式記憶體 (ROM) 指令
30 腳: ALE/PROG( 位址鎖定致能 ) , 8051 燒錄時,用來
接受
燒錄脈波信號
31 腳: EA/Vdd ,當接高電位時,若 PC 小於 4096(4K) ,
執行
內部 ROM 的程式指令,當 PC 大於 4096(4K) ,執行外部
ROM
的程式指令。當接低電位時,強迫 8051 只使用外部 ROM
的程
式指令
32-39 腳: PORT 0 (P0.0 ~ P0.7)
40 腳: Vcc ,系統主要電源,接 +5V 。
03/05/12 48
49. 8051 用途
智慧儀表中的應用 : 單晶片微電腦具有體積小 ,
低功率 , 控制功能強的優點 , 把它做在產品的內
部 , 取代部分老式機械 , 電子零件或裝置零件 ,
可使產品體積縮小 , 功能增強。
工業測控中的應用 : 單晶片微電腦 I/O 線多 , 位
元指令豐富 , 邏輯操作能力強 , 特別適用於即時
控制 , 例如 : 控制柴油發電機 , 船閘控制的應用
, 警報系統的應用等。
計算機網路與通訊技術中的應用 : 單晶片微電
腦具有通訊介面 , 串列自動呼叫應答設備 , 無線
遙控系統中的列車無線通訊中的應用。
03/05/12 49
50. FPGA 介紹
PLD( Programmable Logic Device ) 是可程
式規劃邏輯元件之總稱,凡可讓使用者組
成其邏輯電路功能之所有元件皆為 PLD 元
件。在可程式邏輯元件中。
簡單說是一種裡面建好 AND 和
OR 、 NOT gate 及 Register( 暫存器 ) 陣列
的 IC ,所有的邏輯 function 都可以用
AND OR NOT gate 做完,再加上暫存器
,就可以做加法器、減法器、乘法器 .....
等很多功能。
使用者可以透過 VHDL 或 Verilog 等硬體描
述語言,用燒錄程式燒進去,將 AND 或
OR 及 Register 陣列燒成那樣的 function 。
03/05/12 50
51. FPGA 分類
◦ SPLD(Simple PLD ,小型單純的可程式邏輯
元件 ) 。
◦ CPLD(Complex PLD ,複合型高功能可程式
邏輯元件 )
◦ FPGA( Field Programmable Gate Array ,現
場可規劃邏輯陣列 ) 三大類。
03/05/12 51
52. 架構區分
◦ 一般分為 EEPROM( 或 Flash) 架構: EEPROM 架構
的 PLD 密度小,多用於 5,000 閘以下的小規模設
計,適合做複雜的組合邏輯,如編碼器。
◦ SRAM 架構。 SRAM 架構的 PLD(CPLD/FPGA) ,密
度高,暫存器較多,多用於 10,000 閘以上的大型
設計,適合做複雜的時序邏輯,如實現數位信號
處理等各種演算法。
03/05/12 52
53. 領導廠商
◦ Altera 公司網址 http://www.altera.com.cn/
◦ Xilinx 公司網址 http://www.xilinx.com/
03/05/12 53
54. ASIC 專用積體電路
Application Specific Integrated Circuit 專
用積體電路。顧名思義,此積體電路設
計的需求,即是提供一個在特殊應用場
合上所使用的積體電路元件。
此 ASIC 的目的,一方面可使系統之電
路整合更有效率,並使成本下降,提升
產品的競爭力。另一方面有可以使電路
之設計增加保密性,使得設計不易被盜
拷。
03/05/12 54
55. VHDL 介紹
VHDL 是 Very High Speed Integrated Circuit (VHSIC)
Description Language 的縮寫,簡單的說,它就是一
種專門用來設計硬體電路的語言。
它的起源是 1970 年代至 1980 年代由美國國防部所
贊助的計畫,起初 VHDL 的目的是希望成為描述複
雜電路文件的標準。
1987 年 VHDL 成為 IEEE 1076 standard , 1988 年美
國國防部要求所有要交給國防部的特殊功能積體電
路 (ASIC) 都要用 VHDL 描述,同時 IEEE 1076 的更新
版 IEEE 1164 在同年被採用, 1996 年 IEEE 1076.3 成
為 VHDL 合成電路的最新標準。
03/05/12 55
56. VHDL 優點
方便:用 VHDL 設計電路時可以不必熟記或翻閱各
種電子元件邏輯及其規格的書籍,亦不必使電子電
路侷限在使用呆板的元件或零件組合成數位電子電
路。
硬體軟體化:使用 VHDL 作數位電路設計,只需依
據標準的 VHDL 語言規範,描述複雜的電路系統,
再用一般軟體的模組化觀念,描述數位系統的規格
及功能。
方便除錯:利用軟體 ( 可在 PC 或工作站上執行 ) 將
所寫的 VHDL 編譯合成電子電路,可以驗證功能,
方便除錯,節省時間與成本。
03/05/12 56
57. 其他硬體語言
Verilog HDL 在發展之初,便是企圖能以程式語
言介面( Programming Language Interface,
PLI )為基礎,創造一個以電腦輔助設計為導向
的自動化電路設計環境 ;基於此一原
則, Verilog 便被設計成一種語法極具親和力的
硬體描述語言。
System C 起源約在 1999 年 , 於 2002 年開始用
在 System modeling 上 , 在 2004 年發展出
System verification 的各種方法 . SystemC 也可
以用來寫出可合成電路 , 但是據業界的說法 , 合
成出來的電路效能不好 , 而且語法對於寫慣
VHDL 或 Verilog 的人而言也無法適應。
03/05/12 57
58. RAM 隨機存取記憶體
DRAM(Dynamic RAM) 稱為動態隨機存
取記憶體。
SRAM(Static RAM) 稱為靜態隨機存取記
憶體。
差異:
記憶元 速度 操作 積集度
件
DRA 電容 慢 必須用 高
M REFLASH 電路
更新記憶資料
SRAM 正反器 快 無須額外電路 低
03/05/12 58
61. 理想 3 位元類比對數位轉換器之特性曲線
類比訊號之輸入範圍為 0~1 V 。在此圖中,將輸入
訊號分成 8 個區間,每一區間內所有類比訊號值都
以同一數位碼來表示,且此數位碼通常與該區間之
中間值對應,以上即為類比對數位轉換之基本概念
。
03/05/12 61
62. 類比對數位轉換器分類
數位斜波式類比對數位轉換器 (digital-
ramp ADC)
連續漸進式類比對數位轉換器
(successive approximationADC)
快閃類比對數位轉換器 (flash ADC)
追蹤式類比對數位轉換器
(trackingADC) 。
ADC0804 為連續漸進式類比對數位轉
換器
03/05/12 62
64. ADC0804 工作原理介紹 (2)
當類比訊號輸入時,取樣保持 (sample-and-
hold) 電路先把輸入訊號 Vin 保留住,以避
免其在轉換過程中訊號異動,此時控制邏輯
(control logic) 電路將暫存器 (register) 的所有
輸出位元均重置 (reset) 為“ 0” ,
接著最高有效位元 (most significant bit,MSB)
D7 被設為“ 1” 。此時數位類比轉換器 (digital
to analog converter, DAC) 所輸出的電壓
V(D) 為:
03/05/12 64
65. ADC0804 工作原理介紹 (3)
此輸出電壓為參考電壓 Vref 的一半。
如果輸入電壓 Vin 比 V(D) 高,則 D7 維持在”
1” ,否則將變為” 0” 。接著令次一位元 D6 為
”1” 。
經過 DAC 轉換後可獲得輸出電壓 V(D) ,此
時再將新的 V(D) 與 Vin 比較,若 Vin 比 V(D)
高,則 D6 維持在” 1” ,否則將變為” 0” 。
依此類推,一直到最低有效位元 D0 比完,
如此便可得到完整 D7 到 D0 的數位輸出。
03/05/12 65
68. 建立歸屬函數電路示意圖
模糊歸屬函數由 8051 與 HM6116 組合
,三角形方程式由 C 語言來建立,紅
外線輸入訊號,經過類比轉換成數位資
料,進入模糊推論。
03/05/12 68
69. 資料對應方式
假設輸入資料為 120 ,轉換成二進制為
01111000 。
所以當我們讀取 RAM 120 的位址,讀
出模糊推論值。
模糊推論值為 8Bit ,前 3bit 為模糊集
合代號,後 5Bit 為歸屬值。
03/05/12 69
71. 模糊化電路設計示意圖
RAM 採用兩組,一組為建立歸屬函數
,另一組讓紅外線直接輸入讀取數值。
03/05/12 71
72. 切換器設計
切換器主要是讓 8051 和紅外線能交互使用兩區塊
RAM
當 8051 更新上方的記憶體時,紅外線就使用下方記
憶體。
當 8051 更新下方記體的歸屬函數時,紅外線就使用
上方記憶體。
03/05/12 72
73. 模糊控制電路
模糊控制器接收 RAM 的資料,資料送
至推論電路作推論。
推論採最大最小合成法。推論電路採用
比較器。歸屬度值利用比較器最最小化
。
將歸屬度最小值與觸發輸出模糊集合最
大化合成。
再用權重平均法計算出明確數值。
模糊規則由 VHDL 撰寫,燒錄至由
FPGA 完成。
03/05/12 73
75. 簡化推論電路
本研究採用動態調整歸屬函數,精簡化
之後的電路示意圖。
03/05/12 75
76. 自調變歸屬函數
採用粒子群最佳化演算法來找出最佳的一組
歸屬函數。
為維持最佳收斂能力,本論文採用壓縮因子
式粒子群最佳化演算法,參數 C1 和 C2 設定
2.05
03/05/12 76
77. Matlab 軟體簡介
M AT LAB 是由 M athWorks 公司於 1 984 年推出的數
學軟體,其名稱是由「矩陣實驗室」( M AT rix
LAB ora )所合成。
tory
其發展理念是提供一套非常完善的矩陣運算指令,
但隨著數值運算需的演變, M AT LAB 已成為各種系
統模擬、數位訊號處理、科學目視 (science visua tion)
liza
的標準語言。
M a b 是套應用於科學與工程領域中數值計算、分
tla
析與模擬的應用軟體,結合了數值分析、矩陣運算
及繪圖等功能,功能強大、操作介面簡易。
M a b 全文為 "ma la tory",提供完整的矩陣運
tla trix bora
算指令,將資料元素當成是矩陣來處理,而主要的
用途就是作矩陣式的數學運算。
03/05/12 77
78. Simulink 軟體介紹
Simulink 為建構在 Matlab 環境下的模
擬工具,是一種用來分析與模擬系統動
態特性的軟體。 Simulink 為採用視窗
的方式配合滑鼠的運用,建立及模擬動
態系統模型。藉由圖形化功能方塊的建
立且將各圖形方塊加以連結成一個模擬
系統,用以簡化設計的流程並模擬分析
。
Simulink 在使用上可分成兩個階段:
◦ 模型建立階段
◦ 模型分析階段
03/05/12 78
79. Matlab Simulink 軟體模擬
假設目的地 T ,起始點 S ,車輛模組如下圖。
車輛模組輸入位置和速度。
模糊系統採用 Sugeno 型式。
輸出為馬達所需電壓。
03/05/12 79
83. Matlab 模糊控制器設定
輸入 position & Speed ,個別定義五個模糊
集合。
輸出 馬達電壓。
本論文模糊控制器使用的型式為 Sugeno 型
式,輸出變數是使用 constant 的方式來定義
。
模糊控制器架構
03/05/12 83
87. 控制結果
目標位置定義在 200
cm 。
起始位置定義在 100
cm ,
粒子群最佳化演算法隨
機產生 250 個粒子,迭
代次數設定 500 次,
在速度及位置更新方式
採用壓縮因子式來更新
。
以這些條件來執行軟體
模擬的結果如下:
桃紅色的線條為初始自
己隨意制定的歸屬函數
所產生的控制結果
黃色的線條為經過粒子
群最佳化調整的歸屬函
數所產生的控制結果。
03/05/12 87
95. 結論
由實驗結果可明顯看出雖然震盪次數增加,但是
震盪的距離有明顯的減少,所產生的控制結果與
原始比較,有明顯的改善效果。
除了在推力部分,因調整後的模糊控制器在接近
目標位置時所產生的響應較大,會造成在一開始
發出較強的推力,當接近目標位置後馬上往反方
向施以一個適當的力,使車子可以在短時間內到
達目標位置。雖然從圖中觀察發現推力的變化較
原始控制器所產生的結果來的大,但並未超出馬
達所能提供的推力,在實現上是可行的。
透過本論文所提出的方法,當對於一個未知的問
題時,依據輸出的結果確實可計算出一個最適當
的歸屬函數供模糊控制器使用,並產生出一個良
好的控制結果。
03/05/12 95