吳 敏 徐興雷 尚 猛
1(浙江東方職業技術學院 浙江 溫州 325000)2(溫州職業技術學院 浙江 溫州 325011)3(嶺南大學經營學院 慶尚北 慶山 385141)
隨著自動化技術和航天技術的迅速發展,機械臂的應用范圍也越來越廣。近年來,機械臂已逐漸應用于許多工程領域之中,如搬運機械臂[1]、康復機械臂[2]、農業采摘[3]、3D打印[4]、空間抓捕[5]和微創手術[6]等。由于機械臂一般用于一些高精度工程作業,對于機械臂運動軌跡精度有極為嚴格的要求,因此,國內外學者提出許多不同的機械臂軌跡跟蹤控制策略。例如:王偉等[7]提出一種快速非奇異終端滑模控制的機械臂軌跡跟蹤方法;王勇等[8]提出一種模糊自適應的機械臂軌跡跟蹤方法;劉福才等[9]提出一種間隙補償控制器,對機械臂進行軌跡跟蹤控制;Sun等[10]提出一種自適應運動力跟蹤控制方法;Zhao等[11]提出一種非線性擴張狀態觀測器的雙關節機械臂軌跡跟蹤控制策略;Bauakrif等[12]提出一種迭代學習的軌跡跟蹤策略。以上控制方法有效提高了機械臂的軌跡跟蹤精度,但在實際控制過程中,機械臂受到外負載擾動時,控制精度均受到很大程度的影響。因此,本文選取具有強抗擾動能力的非線性自抗擾控制器對機械臂進行軌跡跟蹤控制。
自抗擾控制器(Active Disturbance Rejection Control,ADRC)[13]區別于其他控制器的優點在于,ADRC不依賴精確的數學模型,具有較強的抗擾動特性,且ADRC具有較高的控制精度和響應速度。但其缺點在于ADRC存在多個耦合參數,傳統的經驗整定法難以整定出合理有效的控制參數,一定程度降低了ADRC的控制精度和抗擾動能力。針對上述問題,Du等[14]提出一種動態慣性權重的自適應粒子群算法對ADRC參數進行在線整定;Zhou等[15]提出一種改進遺傳算法的參數整定策略;海星朔等[16]提出一種改進鴿群算法的參數整定策略;劉福才等[17]提出一種混沌粒子群的參數整定方法。此外,還有入侵雜草算法[18]以及基于萊維飛行的鯨魚優化算法[19]等參數整定策略。但上述整定方法均采用單一機制的優化算法對參數進行在線整定,當被控對象具有較高耦合性和非線性時,難以整定出有效的控制參數。因此,本文提出一種雙種群鯊魚優化算法的參數整定策略。
鯊魚優化算法(Shark Smell Optimization,SSO)[20]是Abedinia等提出的一類新的種群智能優化算法。其優點在于算法所需調整參數少、結構簡單、易于實現,且具有較強的局部搜索能力。算法的缺陷在于易陷入局部最優、早熟收斂,且算法的開發能力和勘探能力極為不平衡。因此,本文提出一種雙種群鯊魚優化算法(Double Population Shark Smell Optimization,DPSSO)。該算法中兩個種群的尋優機制各不相同,其中:種群1的尋優機制用來平衡算法的開發能力和勘探能力;種群2的尋優機制用來有效增加算法跳出局部最優的機率,提高了算法的收斂精度和收斂速度,加強了算法的全局搜索能力。實驗結果表明,DPSSO可以有效整定ADRC參數,提高了控制精度和抗擾動能力,降低了機械臂軌跡跟蹤誤差。
自抗擾控制器由微分跟蹤器(Tracking Differentiator,TD)、擴張狀態觀測器(Extended State Observe,ESO)、非線性反饋控制率(Nonlinear State Error Feedback Control Law,NLSEF)組成。ADRC的控制流程如圖1所示。

圖1 自抗擾控制流程示意圖
圖1中,ω為系統所受外部擾動,TD通過安排過渡過程給出系統輸入的跟蹤量v1以及跟蹤量的微分信號v2,目的是平衡系統響應速度和系統超調的矛盾。其數學表達式為:
(1)

(2)
式中:T為積分步長;y(k)為系統輸出;b0為控制器增益;δ1和δ2為平滑因子;α1和α2為非線性因子;β1、β2和β3為修正系數,三個參數具有很強的耦合關系,并且很大程度影響ESO的觀測效果。因此修正系數整定是否合理,決定了ADRC抗擾動能力的強弱。NLSEF對誤差e1和e2進行非線性組合,并輸出控制信號u0,其數學表達式為:
(3)
式中:β1、β2為控制系數,很大程度影響ADRC的控制精度;e1、e2為誤差,e1為指令信號與被控對象位置輸出誤差,e2為指令信號微分與被控對象速度輸出誤差;α1、α2為[0,1]之間的常數;fal(·)函數是一類非線性函數,代表輸出誤差校正率,其表達式為:
(4)
由式(1)-式(4)可得,控制系數和修正系數等5個耦合參數是ADRC的待整定參數。5個參數很大程度上會影響ADRC的控制精度和抗擾動能力。
鯊魚優化算法來源于鯊魚在海中的獵食行為。算法的搜索方式由直線運動和螺旋運動構成。如算法的種群規模為NP,則鯊魚優化算法種群初始化的數學表達式為:
X=(X1,X2,…,Xi,…,XNP)
(5)
式中:第i個初始位置向量為Xi。如優化問題的決策變量個數為ND,則Xi可表示為:
Xi=(Xi,1,Xi,2,…,Xi,j,…,Xi,ND)
(6)
式中:Xi,j為第i個鯊魚個體的第j個決策變量。
此外,由于鯊魚在捕獵時,會朝具有強烈血腥味的獵物游動,且鯊魚距離獵物的距離越近,游動速度越快。因此,鯊魚在捕獵過程中,每個階段的速度都取決于上一階段速度的大小,且游動速度具有一個限定范圍。因此鯊魚優化算法的速度更新公式為:
(7)

鯊魚在游動過程中會先以直線運動的方式尋找獵物,這種捕獵行為的位置更新公式可表示為:
(8)

(9)
式中:R3為[0,1]之間的隨機數;m表示在位置搜索中每個階段的獵物的數量。鯊魚會向具有更強氣味的獵物進行移動,并繼續搜索路徑,這一特點在SSO算法中實現如下:
(10)

雙種群尋優在算法迭代過程中,不僅可以避免算法更新機制單一而引起的早熟收斂現象,還可以避免算法在迭代后期,進化緩慢甚至停滯進化的情況。針對機械臂具有較強的非線性和耦合性的特點,單一機制的鯊魚優化算法難以整定出合理的自抗擾控制器參數的問題。本文將種群規模為N的鯊魚種群平均分為兩個子種群S1和S2,其中種群S1中的個體,在迭代過程中,引入位置廢棄策略和自適應控制因子。種群S2中的個體,在迭代過程中,引入擴張算子以及非線性遞增慣性權重。計算S1和S2種群中每次迭代所得最優粒子的適應度值,并進行比較。適應度值較大的粒子放入種群S2中,適應度值較小的粒子,放入種群S1中。雙種群策略極大程度地保持了算法的種群多樣性,避免了單一機制尋優所引起的進化緩慢以及早熟收斂的現象。
在基本SSO算法中,控制因子αk是調整算法全局搜索能力和局部搜索能力的重要參數。αk的加入是為了防止SSO算法局搜能力過強導致算法早熟收斂。但根據研究表明,具有隨機性的控制因子雖然一定程度上增強了算法的全局搜索能力,但也一定程度上忽略了SSO進化的階段性。通常,在SSO進化搜索初期,算法應具有較強的全局搜索能力,獲得較大的搜索范圍,提高算法的種群多樣性。在算法迭代后期,算法應具有較強的局部搜索能力,可以在最優解附近進行精確搜索,提高算法的收斂精度和收斂速度。因此,本文通過粒子取得的適應度值來自適應調整控制因子αk,以此平衡算法的開發能力和勘探能力,防止算法進化方向的盲目性。改進后的αk的數學表達式如下:
(11)

(12)
位置廢棄策略是一種有別于傳統依賴變異跳出局部最優的位置更新方式。位置廢棄策略的思想是,假設被廢棄位置的上限值為L。在該位置上,粒子第L次陷入局部最優、早熟收斂,且在該位置被重復搜索L次的過程中,收斂精度均沒有得到改善,因此當此位置被搜索到第L次時,該位置被廢棄,算法在之后的迭代過程中不再對該位置進行搜索,并生成新的搜索位置,所生成的新位置數學表達式為:
(13)
式中:t為當前迭代次數;rand表示隨機數;η為[-r,r]之間的隨機數,隨著算法的迭代,r值從1非線性降低到0。該策略可以保證算法在迭代后期,粒子將圍繞在全局最優解附近進行局部搜索,有效避免了算法陷入局部最優、早熟收斂,提高了算法的全局搜索能力。
根據實驗表明,較大的慣性權重可以提高算法的開發能力,較小的慣性權重可以提高算法的勘探能力。線性優化的慣性權重可以一定程度提高算法的整體性能,但并不能對算法的開發能力和勘探能力起到有效的平衡作用。因此,為了平衡算法的開發能力和勘探能力,本文引入余弦控制方式,對慣性權重進行非線性優化,使得算法在迭代初期,擁有較大的慣性權重,提高算法的勘探范圍,在迭代后期擁有較小的慣性權重,提高算法的開發能力。非線性慣性權重的數學表達式如下:
ω=(ωmax-ωmin)×exp(-0.5×t/Tmax)-ωmax
(14)
式中:ωmax=0.8為慣性權重最大值;ωmin=0.4為慣性權重最小值;t為當前粒子迭代次數;Tmax為最大迭代次數。因此,基于非線性慣性權重的位置更新公式為:
(15)
通過非線性慣性權重改進后的鯊魚優化算法有效地提高了算法的搜索范圍和搜索精度,但受鯊魚優化算法自身位置更新公式的限制,當算法在迭代后期,擁有較強的局部搜索能力時,一旦粒子陷入局部最優,粒子很難有能力跳出局部最優,向新的搜索區域進行開發。因此本文引入擴張算子策略,賦予最優粒子開發新區域的能力,幫助粒子跳出局部最優。其擴張算子EO的數學表達式為:
(16)
(17)
式中:λ為探索系數,λ=0.45×(1-ω),用來調整算法的搜索范圍;R為解空間的隨機位置;β為系數,并隨迭代次數的增加而減小;t為當前迭代次數;Tmax為算法設定最大迭代次數。因此SSO算法的速度更新公式可修改為:
(18)
改進鯊魚優化算法DPSSO的流程如圖2所示,算法迭代結束的判定條件為是否達到最大迭代次數或控制誤差是否小于等于設定的最小誤差值。

圖2 DFSSO算法流程
為了驗證本文算法DPSSO的有效性,選取了10個基準測試函數,如表1所示。其中:f1-f4為單峰函數,用于驗證DPSSO的收斂精度和收斂速度;f5-f10為多峰函數,用于驗證DPSSO的全局搜索能力。

表1 10個基準測試函數
將本文算法對表1的10個測試函數進行數值實驗,并與基本SSO算法和其他3種用于ADRC參數整定的算法——動態慣性權重自適應粒子群算法[14](APSO)、混沌粒子群算法[17](CPSO)、基于Lévy飛行軌跡增強的鯨魚優化算法[19](LWOA)進行結果對比,其中測試函數f1-f8的維數為50。為了保證對比實驗的公平性,5種算法對10個測試函數獨立運行50次,并取結果的平均值和標準差,具體結果如表2所示,最優解用加粗字體表示。

表2 數值實驗對比結果

續表2
可以看出,對于單峰測試函數f1而言,SSO算法、APSO算法、CPSO算法均早熟收斂陷入局部最優,只有DPSSO算法和LWOA可收斂到全局最優解,但DPSSO算法相較LWOA取得解的質量更優。對于單峰測試函數f3而言,當其他4種算法均早熟收斂時,DPSSO算法仍可以求解到全局最優解,說明DPSSO算法的收斂能力更強。因此對于單峰測試函數的測試結果而言,DPSSO算法相較其他4種算法可以取得更小的平均值和標準差,具有更高的收斂精度和穩定性。
隨著高速公路路網規模不斷擴大,高速公路稽查管理工作日益復雜化,其中假綠通車輛稽查治理工作逐漸成為整個高速公路稽查管理工作的重點。按照國家有關規定,運輸鮮活農產品的車輛在高速公路上行駛可免繳通行費。由此,各種冒充綠通車輛的手段層出不窮,屢禁不止,給高速公路稽查管理工作和收費站日常收費管理工作帶來巨大壓力。
對于多峰測試函數f6-f8而言,DPSSO算法同樣可以取得更小的平均值和標準差,只有在測試函數f5上取得的結果較差,但仍優于其他4種算法。說明DPSSO算法相較其他4種算法而言,具有更高的全局搜索能力,搜索成功率也更高,算法穩定性更強。
對于測試函數f9-f10而言,5種算法的求解能力均有很大提高,甚至可以收斂到理論最優值,這是由于測試函數維數較低所致。但DPSSO的標準差更小,說明DPSSO算法的穩定性更強[22]。整體而言,DPSSO算法具有更高的全局搜索能力,搜索精度更高,并且跳出局部最優的能力較強,可以有效地避免算法早熟收斂,有效地平衡了算法的全局搜索能力和局部搜索能力,可以用于自抗擾參數整定。
為了驗證DPSSO可以有效地在線整定自抗擾控制參數,本文選取ITAE指標[21]作為評價函數,兩自由度機械臂為被控對象,對自抗擾控制器參數進行在線整定。其中算法判定條件的誤差最小值設定為0.001。參數整定流程如圖3所示。

圖3 基于DPSSO的參數整定流程
本文將基于DPSSO-ADRC的參數整定結果與其他3種算法(LWOA-ADRC、APSO-ADRC、CPSO-ADRC)的整定結果進行對比驗證。ITAE指標的數學表達式如下:

(19)
為了保證實驗公平性,4種參數整定方法獨立運行30次,并分別保存4種整定方法的最優結果。具體結果如圖4所示。

圖4 評價函數值對比圖
可以看出,首先,在迭代初期,DPSSO-ADRC的評價函數值迅速下降,下降速度遠大于其他3種算法,說明DPSSO-ADRC算法的尋優速度更快,初值尋優能力更強,且DPSSO-ADRC的尋優范圍更廣,全局搜索能力更強。其次,DPSSO-ADRC相較其他3種算法可以取得更小的評價函數值,說明DPSSO-ADRC的搜索精度更高,整定出的ADRC參數更為合理有效。因此,相較于其他3種算法優化后的ADRC,DPSSO-ADRC的控制精度更高,抗擾動能力更強。
本文選取具有非線性和強耦合特性的兩自由度機械臂作為被控對象,提出一種DPSSO-ADRC的控制策略對機械臂進行軌跡跟蹤實驗。實驗中以機械臂軌跡跟蹤誤差大小作為評價標準,分別對APSO-ADRC、CPSO-ADRC、LWOA-ADRC,以及DPSSO-ADRC 4種控制策略進行對比驗證。具體實驗結果如圖5-圖8所示。機械臂的數學模型表示為:

圖5 q1軌跡跟蹤誤差對比圖

(20)
式中:q為關節位置;D為正規慣性矩陣;C為離心力和科氏力;G為重力向量;d為未知擾動向量;τ為控制率,其數學表達式為:
(21)

以機械臂為被控對象,通過DPSSO算法在線優化后的ADRC控制器參數如表3所示。

表3 ADRC參數優化值
從圖5和圖6中可得,相比其他3種控制策略,DPSSO-ADRC控制策略的控制誤差最小,響應速度更快。對于機械臂關節角度q1而言,DPSSO-ADRC控制策略可以更快地達到穩態,軌跡跟蹤誤差小于0.001。并且在DPSSO-ADRC控制機械臂啟動時,控制器產生的瞬時誤差遠遠小于其他3種控制策略,說明DPSSO-ADRC控制策略的魯棒性更強。對于機械臂關節角度q2而言,4種控制策略的控制誤差均有所增大,這是由于機械臂各關節之間具有強耦合性。但DPSSO-ADRC控制策略相較其他3種控制策略的跟蹤誤差更小,對比q1的控制誤差并無明顯增大,說明DPSSO-ADRC控制策略具有較強的解耦特性,對于被控對象自身的內部擾動,具有很高的抗擾動能力。

圖6 q2軌跡跟蹤誤差對比圖
為了驗證DPSSO-ADRC控制策略具有較強的抗外部擾動能力,當系統穩定后,在t=12 s時加入一個幅值為1的階躍信號,模擬外部擾動。從圖7和圖8可知,相較其他三種控制策略,DPSSO-ADRC控制策略受外部擾動干擾最小,對外部擾動進行觀測和補償的時間最短,說明DPSSO-ADRC控制策略的抗擾動能力更優。因此,通過DPSSO算法優化后的ADRC控制器,不僅有效地提高了控制器的控制精度和控制速度,而且加強了ADRC的抗擾動能力。

圖7 q1加入擾動后軌跡跟蹤誤差對比圖

圖8 q2加入擾動后軌跡跟蹤誤差對比圖
本文針對傳統非線性ADRC控制器耦合參數過多、難以整定的缺陷,提出一種基于雙種群鯊魚優化算法的參數整定方式,同時針對傳統鯊魚優化算法易早熟收斂、收斂精度低的問題,通過位置廢棄以及非線性慣性權重等策略提出DPSSO算法。首先本文通過數值對比實驗和ITAE評價指標對比實驗,驗證了DPSSO算法具有較強的尋優精度,可以用于ADRC的參數整定上。其次,本文以機械臂作為被控對象,通過機械臂軌跡跟蹤仿真實驗,驗證了DPSSO算法整定后的ADRC控制器,具有較強的控制精度和抗擾動能力。因此,本文算法可以用于ADRC控制器參數整定。