第三章 工具箱設計
3.3 以布穀鳥搜尋演算法設計之工具箱
21
本節與前一節所介紹的工具箱功能大同小異,兩種工具箱差別在所使用的演 算法不相同。我們將僅介紹以布穀鳥搜尋演算法設計補償器之工具箱特有的功 能,有關重覆功能的部分不再贅述。工具箱介面如圖 3.4 所示,包含有功能表 列 File 以及 plant, unit-step response, lead-lag compensator, cuckoo parameter settings, flight, abandon, Nyquist plot 和 display 等區塊,還有顯示視窗 trace, save, clear 和 Link 按鍵等幾個部分。接下來主要針對 cuckoo parameter settings, flight 和 abandon 做介紹。
圖3.4:以布穀鳥搜尋演算法設計之工具箱介面 cuckoo search parameter settings
size: 巢的個數
epoch: 使用 CS 演算法次數 tolerance: 容忍值;預設為 1.0e-5。
max count: 滿足演算法是否終止條件之連續次數。當目前世代與前一個
22
世代的目標函數值相差之絕對值小於容忍值連續發生之次 數到達設定次數,則終止演算法;預設為 20。
max generation: 巢演化世代之最大次數;預設為 100。
random seed: 設置隨機亂數的起始點;預設為 1。
flight
step size: 飛行距離
Cauchy: 預設尺規 (scale) 為 1
Normal: 預設標準差 (standard deviation) 為 1 Levy: 預設尺規 (scale) 為 0.1
Yang: 預設參數 α 為 1.5 Hsieh: 預設參數 α 為 1.5
Mantegna: 預設參數 α 為 1.5、c 為 1、n 為 10。
McCulloch: 預設參數 α 為 1.5、β 為 0、c 為 1 及 n 為 0。
abandon
usual: 以設定的門檻並使用原始 Yang and Deb 論文之方法丟 棄巢
worst: 以設定的比例丟棄最糟的巢
probability: 欲丟棄巢的比例或門檻;預設為 0.25。
23
第四章 範例示範
本工具箱可以顯示開迴路系統、單位回授系統的分析結果,以及超前落後補 償器設計和其回授系統的執行結果。本章以兩個範例說明 (一) 以粒子群聚最佳 化演算法設計之工具箱; (二) 以布穀鳥搜尋演算法設計之工具箱的操作。
【例題 4.1】
令開迴路系統之轉移函數為 1/s
(
s+1)
。 開迴路系統分析:開迴路系統如下圖所示
u y
將轉移函數展開成 1/(s2+ s+0) 可得分子為 1,分母為 s2+ s+0。
在工具箱的 plant 區塊,輸入資料如下:
開迴路轉移函數分子:plant num = [1.0]
開迴路轉移函數分母:plant den = [1.0, 1.0, 0.0]
在工具箱的 unit-step response 區塊,輸入資料如下:
單位步階響應之時間:initial time = 0, final time = 20, time step = 0.01
點選 display 區塊中 open-loop plant 區域的 unit-step response 按鈕可執行
(
1)
) 1
( = + s s s h
24
開迴路系統時域分析,其結果如圖 4.1 所示。
圖 4.1:例題 4.1 開迴路系統之時域分析結果
由上面結果可知此系統無零點,而極點為 -1 及 0,因此為不穩定系統。其 步階響應如圖 4.2 所示。
圖 4.2:例題 4.1 開迴路系統之步階響應圖
25
點選 display 區塊中 simple closed-loop system 區域的 unit-step response 按鈕可執行單位回授系統時域分析,其結果如圖 4.3 所示。
26
圖 4.3:例題 4.1 單位回授系統之時域分析結果
由上面結果可知此系統無零點,而極點為 -0.5+0.866j 及 -0.5-0.866j,
因此為穩定系統。其步階響應如圖 4.4 所示。
圖 4.4:例題 4.1 單位回授系統之步階響應圖
接著我們來做頻域分析及繪製其奈奎斯特圖 (Nyquist plot)。在工具箱的
27
Nyquist plot 區 塊 的 transfer 部 分 有 兩 個 選 項 分 別 為 loop gain 和 return difference。在此先選擇 loop gain 並點選 range status 設定其奈奎斯特圖的 x 軸 及 y 軸的範圍。其餘包括 tolerance, delta initial, delta tolerance, delta step, reduce, w start, w end, iteration max 等各參數值,設計者可以依實際需求自行設定,本範 例使用預設值,如圖 4.5 所示。
圖 4.5:例題 4.1 單位回授系統之頻域分析及奈奎斯特圖參數設定
點選 display 區塊中 simple closed-loop system 區域的 Nyquist plot 按鈕可 執行單位回授系統的頻域分析 (結果如圖 4.6 所示) 及繪製其奈奎斯特圖 (如圖 4.7 所示)。
28
圖 4.6:例題 4.1 單位回授系統之頻域分析結果
圖 4.7:例題 4.1 單位回授系統之奈奎斯特圖
另外,在 transfer 的部分,我們也可以選擇 return difference 來進行頻域分 析 (圖 4.8) 及繪製其奈奎斯特圖 (圖 4.9)。
29
圖 4.8:例題 4.1 單位回授系統之頻域分析結果
圖 4.9:例題 4.1 單位回授系統之奈奎斯特圖
超前落後補償器設計及其回授系統分析:
(一) 以粒子群聚最佳化演算法設計之工具箱分析
30 compensator 及 PSO parameter settings 區塊設定相關參數值,其參數設定如下:
超前落後補償器參數: tolerance: 1e-05 max count: 20 max generation: 100
vlim: [-1, 1]
31
圖 4.10:例題 4.1以粒子群聚演算法設計之超前落後補償器設計及其回授系統分 析的參數設定
使 用 工 具 箱 File 功 能 表 列 的 Save parameters 功 能 , 並 以 檔 案 名 稱 PSO_example1 將上列參數資料儲存成 txt 檔,其檔案內容如圖 4.11 所示。
32
圖 4.11:例題 4.1以粒子群聚演算法設計之超前落後補償器設計及其回授系統分 析參數的 txt 檔內容
如設定值已經有儲存過,可以點選本工具箱選擇 File 功能表列之 Load parameters 功能讀取參數資料,讀取檔案參數如圖 4.12 所示。
33
圖 4.12:例題 4.1 以粒子群聚演算法設計之從 txt 檔讀取超前落後補償器設計 及其回授系統分析的參數
參數設定完成後點選 display 區塊中 compensated system 區域的 run 按鈕 可執行超前落後補償設計。執行結果如圖 4.13 所示。
34
圖 4.13:例題 4.1 以粒子群聚演算法設計之執行超前落後補償器設計的結果
執行完畢可得到一組超前落後補償器之最佳參數解:
optimal K = 67.176 optimal alpha = 20.0 optimal beta = 1.0
35
圖 4.14:例題 4.1 以粒子群聚演算法設計之工具箱執行補償回授系統的時域分 析結果
圖 4.15:例題 4.1 以粒子群聚演算法設計之補償回授系統的步階響應圖
接著我們來做頻域分析及繪製其奈奎斯特圖。在工具箱的 Nyquist plot 區塊 的 transfer 部分,選擇 loop gain 並點選 range status 設定其奈奎斯特圖的 x 軸 為 [−1.5,0.0] 及 y 軸為 [−2.0,2.0],其他參數使用預設值。點選 compensated
36
system 區塊中的 Nyquist plot 按鈕可執行行補償回授系統頻域分析 (結果如圖 4.16 所示) 及繪製其奈奎斯特圖 (如圖 4.17 所示)。
圖 4.16:例題 4.1 以粒子群聚演算法設計之執行補償回授系統的頻域分析結果
圖 4.17:例題 4.1 以粒子群聚演算法設計之補償回授系統的奈奎斯特圖
點選 display 區塊中 compensated system 區域的 pole-zero patterns 按鈕,
37
可繪製開迴路系統及補償器之零點-極點圖 (如圖 4.18 所示) 與補償回授系統之 零點-極點圖 (如圖 4.19 所示)。
圖 4.18:例題 4.1 以粒子群聚演算法設計之開迴路系統及補償器的零點-極點圖
圖 4.19:例題 4.1 以粒子群聚演算法設計之補償回授系統的零點-極點圖
(二) 以布穀鳥搜尋演算法設計之工具箱分析
因為兩種工具箱差別在於使用的演算法不相同,所以我們將以相同的範例操 作本工具箱超前落後補償回授系統的相關功能。其參數設定如下:
38
開迴路轉移函數分子:plant num = [1.0]
開迴路轉移函數分母:plant den = [1.0, 1.0, 0.0]
單位步階響應之時間:initial time = 0, final time = 20, time step = 0.01
超前落後補償器參數:
] 100 , 40
∈[
K , α∈[1,20], β∈[1,1], zlead∈[2,5], zlag∈[5,5].
最小化之代價函數參數:
1 =1
w , w2 =1, yss =1。 weight = [1, 1], set point = 1.0.
布穀鳥搜尋演算法參數:
size: 40 epoch: 100 tolerance: 1e-05 max count: 20 max generation: 100
random seed: 1 飛行方式:
本範例選擇 McCulloch 方法當飛行方式,各參數使用預設值。其預設 值如下,step size = 1.0, α = 1.5, β = 0, c = 1, n = 0.
丟棄巢的方法:
本範例選擇 usual,並以 probability = 0.05 丟棄巢。
其設定結果如圖 4.20 所示。
39
圖 4.20:例題 4.1以布穀鳥搜尋演算法設計之超前落後補償器設計及其回授系統 分析的參數設定
我們也可以利用 Save parameters 功能,將參數設定值儲存成 txt 檔,待日 後需要時使用 Load parameters 功能讀取參數資料;其檔案內容如圖 4.21 所示。
40
圖 4.21:例題 4.1以布穀鳥搜尋演算法設計之超前落後補償器設計及其回授系統 分析的參數檔案內容
參數設定完成後點選 display 區塊中 compensated system 區域的 run 按鈕 可執行超前落後補償設計。執行結果如圖 4.22 所示。
41
圖 4.22:例題 4.1 以布穀鳥搜尋演算法設計之執行超前落後補償器設計的結果
執行完畢可得到一組超前落後補償器之最佳參數解:
optimal K = 67.176 optimal alpha = 20.0 optimal beta = 1.0 optimal zlead = 2.0 optimal zlag = 5.0
因為 alpha = 20.0 > 1,beta = 1,所以可以知道此補償器為單級超前補償器,其 轉移函數為
42
43
圖 4.24:例題 4.1 以布穀鳥搜尋演算法設計之補償回授系統的步階響應圖
接著我們來做頻域分析及繪製其奈奎斯特圖。在工具箱的 Nyquist plot 區塊 的 transfer 部分,選擇 loop gain 並點選 range status 設定其奈奎斯特圖的 x 軸 為 [−1.5,0.0] 及 y 軸為 [−2.0,2.0],其他參數使用預設值。點選 display 區塊 中 compensated system 區域的 Nyquist plot 按鈕可執行補償回授系統頻域分析 (結果如圖 4.25 所示) 及繪製其奈奎斯特圖 (如圖 4.26 所示)。
44
圖 4.25:例題 4.1 以布穀鳥搜尋演算法設計之執行補償回授系統的頻域分析結 果
圖 4.26:例題 4.1 以布穀鳥搜尋演算法設計之補償回授系統的奈奎斯特圖
45
點選 display 區塊中 compensated system 區域的 pole-zero patterns 按鈕,
可繪製開迴路系統及補償器之零點-極點圖 (如圖 4.27 所示) 與補償回授系統之 零點-極點圖 (如圖 4.28 所示)。
圖 4.27:例題 4.1 以布穀鳥搜尋演算法設計之開迴路系統及補償器的零點-極點 圖
圖 4.28:例題 4.1 以布穀鳥搜尋演算法設計之補償回授系統的零點-極點圖
結果討論:
46
綜合上述結果,單位回授系統與兩種演算法設計之超前落後補償回授系統結 果比較如表 4.1 與圖 4.29 所示。
表 4.1:例題 4.1 單位回授系統與兩種演算法設計超前落後補償回授系統之結果 比較
單位回授系統 單級超前補償回授系統 單級超前補償回授系統
演算法 粒子群聚最佳化演算法 布穀鳥搜尋演算法
最佳代價函數值 0.9538 0.9538
向量餘裕 0.6813 0.9538 0.9538
增益餘裕 (db) Inf Inf Inf
相位餘裕 (deg) 51.8273 68.844 68.844
穩態 1 1 1
上升時間 1.64 0.71 0.71
最大過衝量 16.30% 8.618% 8.618%
安定時間 5.29 2.28 2.28
穩態誤差 0 0 0
最佳的 K 67.175 67.175
最佳的 2 2
最佳的
最佳的 20 20
最佳的 z1
z2
α β
47
Nyquist plot: loop gain
real
imaginary
-1.5 -1.0 -0.5 0.0
-2-1012
Nyquist plot: loop gain
real
imaginary
-1.5 -1.0 -0.5 0.0
-2-1012
Nyquist plot: loop gain
real
48
單位步階響應之時間:initial time = 0, final time = 50, time step = 0.01
超前落後補償器參數:
] 20 , 1
∈[
K , α∈[1,50], β∈[1,50], zlead∈[0.05,5], zlag∈[0.05,5].
最小化之代價函數參數:
1 =1
w , w2 =1, yss =1. weight = [1, 1], set point = 1.0.
粒子群聚最佳化演算法參數:
size: 40 w: 0.6 c1: 1.7 c2: 1.7 epoch: 100 tolerance: 1e-05 max count: 20 max generation: 100
vlim: [-1, 1]
random seed: 1
開迴路系統分析:
點選 display 區塊中 open-loop plant 區域的 unit-step response 按鈕可執行 開迴路系統時域分析,其結果如圖 4.30 所示。
49
圖 4.30:例題 4.2 開迴路系統之時域分析結果
由上面結果可知此系統無零點,而極點為 -2, 0, 0,所以為不穩定系統。其 步階響應如圖 4.31 所示。
圖 4.31:例題 4.2 開迴路系統之步階響應圖
單位回授系統分析:
50
點選 display 區塊中 simple closed-loop system 區域的 unit-step response 按鈕可執行單位回授系統時域分析,其結果如圖 4.32 所示。
圖 4.32:例題 4.2 單位回授系統之執行時域分析結果
由 上 面 結 果 可 知 此 系 統 無 零 點 , 而 極 點 為 -2.3312, 0.1656+0.863j 及 0.1656-0.863j,所以為不穩定系統,故無法繪製其奈奎斯特圖 (Nyquist plot)。單 位回授系統之步階響應如圖 4.33 所示。
51
圖 4.33:例題 4.2 單位回授系統之步階響應圖
圖 4.33:例題 4.2 單位回授系統之步階響應圖