朱大昌,崔翱東,杜寶林,盤意華
(廣州大學(xué)機(jī)械與電氣工程學(xué)院,廣東廣州 510006)
目前,機(jī)械臂控制往往采用單通道獨(dú)立控制方 式, 由于各關(guān)節(jié)運(yùn)動(dòng)協(xié)同性的缺失, 導(dǎo)致機(jī)械臂末端受力不均衡, 關(guān)節(jié)磨損加劇, 從而降低了機(jī)械臂的整體性能。
為解決機(jī)械臂多關(guān)節(jié)的同步控制問題,KOREN提出了交叉耦合控制方法,通過共享各關(guān)節(jié)位置傳感信息,產(chǎn)生相應(yīng)控制信號(hào),構(gòu)建同步誤差模型, 以實(shí)現(xiàn)多關(guān)節(jié)的同步控制。交叉耦合控制方法在多自由度機(jī)器人控制系統(tǒng)中得到較為廣泛的應(yīng)用。 一般情況下,研究者將同步誤差定義為關(guān)節(jié)變量誤差之差, 在滿足同步誤差收斂的同時(shí), 計(jì)算簡(jiǎn)單、 易于實(shí)現(xiàn),并應(yīng)用于多關(guān)節(jié)機(jī)械臂同步控制器設(shè)計(jì)。
多自由度機(jī)械臂是一種典型的非線性、強(qiáng)耦合系統(tǒng),以上同步誤差定義方式難以滿足其對(duì)于復(fù)雜軌跡跟蹤性能的要求。針對(duì)這一問題,文獻(xiàn)[6]中采用操作空間輪廓誤差在關(guān)節(jié)空間的映射值來表征機(jī)械臂各關(guān)節(jié)之間的同步性能, 提出輪廓誤差同步(Contour Error Synchronization,CES)控制器,提高了機(jī)械臂各關(guān)節(jié)同步性能,有效降低末端輪廓誤差, 取得了良好的效果。然而, 目前輪廓誤差同步控制大多采用傳統(tǒng)PID算法,難以滿足多自由度機(jī)械臂對(duì)快速性和精確性的要求,而機(jī)械臂控制中廣泛應(yīng)用的計(jì)算力矩控制算法(CTC)則對(duì)機(jī)械臂模型精度有較高的要求。
模型預(yù)測(cè)控制(Model Predictive Control,MPC)是一種對(duì)模型精度要求不高、在線計(jì)算方便、可以直接處理系統(tǒng)輸入輸出或狀態(tài)約束、控制綜合質(zhì)量好的新型控制算法。相對(duì)于CTC,MPC對(duì)模型精度要求低,有著更好的控制效果。近年來,模型預(yù)測(cè)控制在機(jī)器人控制領(lǐng)域得到了廣泛的發(fā)展。
本文作者提出了一種機(jī)械臂輪廓誤差同步預(yù)測(cè)控制策略。首先利用輪廓誤差轉(zhuǎn)換矩陣求解操作空間的輪廓誤差,并利用機(jī)械臂雅可比矩陣將操作空間輪廓誤差映射到關(guān)節(jié)空間;再根據(jù)各個(gè)關(guān)節(jié)的跟蹤誤差和操作空間輪廓誤差在關(guān)節(jié)空間的映射值重新定義了關(guān)節(jié)空間耦合誤差,各關(guān)節(jié)的耦合誤差包含了自身的信息和其他所有關(guān)節(jié)的信息,提高了各關(guān)節(jié)的協(xié)調(diào)性;最后利用耦合誤差的離散化模型設(shè)計(jì)了輪廓誤差同步預(yù)測(cè)控制器。為解決常規(guī)預(yù)測(cè)控制器不能保證系統(tǒng)穩(wěn)定的問題,進(jìn)一步提出了雙模同步預(yù)測(cè)控制。試驗(yàn)結(jié)果表明:所設(shè)計(jì)的控制器能在保證跟蹤誤差收斂的同時(shí)有效減小輪廓誤差并提高各關(guān)節(jié)之間的協(xié)調(diào)性,使得控制力矩相比常規(guī)預(yù)測(cè)控制更為柔和。
采用拉格朗日能量法,自由度機(jī)械臂的動(dòng)力學(xué)方程表示為
(1)
機(jī)械臂的動(dòng)力學(xué)方程(1)難以直接用于MPC控制器的設(shè)計(jì)。采用泰勒展開法,機(jī)械臂動(dòng)力學(xué)方程線性化、離散化處理過程如下:
(2)
式中:
()=()
記采樣周期為,當(dāng)前時(shí)刻為,由泰勒展開式可以得到+1時(shí)刻的狀態(tài)為
(3)
進(jìn)一步地,可以將式(3)寫成更簡(jiǎn)潔的形式:
(+1)=()+()+
(4)
(+1)=(+1)-(+1)=()+()+-(+1)
(5)
為了計(jì)算各個(gè)軸的同步誤差,需首先計(jì)算機(jī)械臂操作空間的輪廓誤差,再將操作空間的輪廓誤差映射到關(guān)節(jié)空間,最后將操作空間輪廓誤差在關(guān)節(jié)空間的映射值作為各個(gè)軸的同步誤差。操作空間輪廓誤差定義為末端實(shí)際位置與期望軌跡輪廓最近點(diǎn)的差值。為了減小計(jì)算量,用輪廓最近點(diǎn)的估計(jì)值代替實(shí)際值,輪廓最近點(diǎn)估計(jì)值定義為實(shí)際位置到期望位置切線的垂足,具體如圖1所示。
圖1 操作空間輪廓誤差
=·
(6)
式中:為輪廓誤差轉(zhuǎn)換矩陣:
通過式(6)可以由操作空間的軌跡跟蹤誤差得到操作空間的輪廓誤差。實(shí)際應(yīng)用中機(jī)械臂操作空間的軌跡跟蹤誤差難以直接測(cè)量得到,可以利用雅可比矩陣將關(guān)節(jié)空間的位置跟蹤誤差映射到操作空間:
=·
(7)
式中:∈×表示機(jī)械臂的雅可比矩陣,表示笛卡爾空間自由度數(shù)。
設(shè)操作空間輪廓誤差在關(guān)節(jié)空間的映射值為∈×1,此映射值可以通過雅可比矩陣的逆矩陣求解得到:
=·
(8)
式中:表示雅可比矩陣的逆矩陣。聯(lián)立式(6)(7)(8)可以得到:
=···
(9)
通過式(9)可以得到操作空間輪廓誤差在關(guān)節(jié)空間的映射值。文中將定義為關(guān)節(jié)空間同步誤差,進(jìn)行了同步控制器的設(shè)計(jì)。
為了同時(shí)考慮關(guān)節(jié)空間的跟蹤誤差和同步誤差,需定義關(guān)節(jié)空間的耦合誤差。常見耦合誤差的定義方式為
=+λ
(10)
式中:∈×1為關(guān)節(jié)耦合誤差;∈×1為關(guān)節(jié)跟蹤誤差;∈×1為關(guān)節(jié)同步誤差;為耦合系數(shù),耦合系數(shù)越大,關(guān)節(jié)同步性能越好。
=-
(11)
式中:表示關(guān)節(jié)空間的耦合誤差;為當(dāng)前實(shí)際狀態(tài)。可通過下式求解:
(12)
式中:、分別為關(guān)節(jié)目標(biāo)修正位置和速度;為只考慮同步誤差時(shí)的關(guān)節(jié)目標(biāo)修正位置;為耦合系數(shù)。可以看出始終位于和之間,耦合系數(shù)越大,越接近,同步性能越好。通過式(11)定義的耦合誤差包含了關(guān)節(jié)的位置、速度跟蹤誤差信息和位置同步誤差信息,所起到的效果與式(10)近似,且推導(dǎo)出的離散化表達(dá)式更為簡(jiǎn)單,便于預(yù)測(cè)控制器的設(shè)計(jì)。
根據(jù)式(4)(11),可以得到耦合誤差的離散化表達(dá)式為
(+1)=()+()+-
(13)
再將式(11)代入式(13),可以將式(13)改寫成如下形式:
(+1)=()+()+-(+)
(14)
定義系統(tǒng)時(shí)刻綜合性能指標(biāo)為
(15)
參照文獻(xiàn)[10],記
根據(jù)式(4)可以得到:
=++
式中:
所以,式(15)等價(jià)于:
(16)
式中:
=-(+)(+-)
(17)
由于預(yù)測(cè)控制采用了滾動(dòng)優(yōu)化的控制策略,在時(shí)刻,只取中的第一項(xiàng)()作用到機(jī)械臂上,在+1時(shí)刻,則重新求解并取第一項(xiàng)(+1)作用到機(jī)械臂上。
上一小節(jié)設(shè)計(jì)的預(yù)測(cè)控制器容易求解得到控制力矩的解析表達(dá)式,但難以保證系統(tǒng)的穩(wěn)定性。文獻(xiàn)[11]總結(jié)了預(yù)測(cè)控制穩(wěn)定性設(shè)計(jì)的三大要素即終端集、終端代價(jià)函數(shù)和局部控制率,并概括了保證預(yù)測(cè)控制穩(wěn)定性的基本途徑。作者提出了一種雙模預(yù)測(cè)控制器,重新定義了系統(tǒng)的性能指標(biāo)函數(shù),并給出了三大要素的表達(dá)式,通過在有限時(shí)域內(nèi)將系統(tǒng)狀態(tài)驅(qū)動(dòng)到終端集內(nèi),之后再切換到局部控制率,將系統(tǒng)狀態(tài)穩(wěn)定在終端集內(nèi),保證了系統(tǒng)的穩(wěn)定性。
帶有終端集約束和終端代價(jià)函數(shù)的雙模預(yù)測(cè)控制,時(shí)刻的優(yōu)化問題表示為
(18)
在控制時(shí)域內(nèi),通過求解優(yōu)化問題式(18)將(+|)控制到終端集內(nèi),然后通過局部控制率鎮(zhèn)定系統(tǒng)。下面設(shè)計(jì)局部控制率:
首先,利用輸入變換,設(shè)
(19)
式中:表示機(jī)械臂實(shí)際輸入力矩。
(+1)=()+()
然后設(shè)計(jì)局部控制率:
()=(|)
式中:∈×2。
在局部控制率的作用下,將式(21)代入式(20)得到:
(+1)=(+)()
(22)
機(jī)械臂的實(shí)際輸入力矩可以通過求解式(19)(21)得到。
對(duì)于終端集和局部控制率,要求所構(gòu)造的和要使(++1|)落在終端集內(nèi),即要求:
由于
所以,所設(shè)計(jì)的控制器必須滿足需滿足條件1:
(+)(+)-≤0
(23)
首先假設(shè)條件1滿足。設(shè)時(shí)刻最優(yōu)性能指標(biāo)為(),()和()分別是最優(yōu)解和最優(yōu)狀態(tài)軌跡。設(shè)+1時(shí)刻的一個(gè)可行解為
(+1)=(+1|+1),…,(+|+1),
(++1|+1)
注意到(+1)僅為可行解而并非最優(yōu)解,所以由此可行解得到的(+1)滿足:(+1)≥(+1),式中(+1)表示+1時(shí)刻的最優(yōu)性能指標(biāo)。
+1時(shí)刻的性能指標(biāo)函數(shù)表示為
(++1|+1)=(+)(+|)
所以:
又由于:
所以:
故而,若滿足條件2:
+(+)(+)-≤0
則可證得:
()≥(+1)≥(+1)
(25)
式(25)表示綜合性能指標(biāo)是不斷收斂的,穩(wěn)定性得以證明。由于條件2覆蓋條件1,所以只需滿足條件2即可證明控制器穩(wěn)定。
另外,為了求解和,可以將式(24)改寫成LMI形式:記=,=,式(24)可改寫為
--(+)(+)>0
再將上式進(jìn)一步改寫成LMI形式:
(26)
通過求解此LMI可以得到和。
所以,機(jī)械臂的雙模預(yù)測(cè)控制算法的步驟為
步驟1,獲取當(dāng)前機(jī)械臂的狀態(tài)。
步驟2,根據(jù)LMI表達(dá)式(26)求解得到和,從而得到具體的優(yōu)化問題表達(dá)式。
步驟3,求解優(yōu)化問題(18)并得到最優(yōu)控制序列。
步驟4,將最優(yōu)控制序列的第一個(gè)控制率施加給機(jī)械臂。
步驟5,返回步驟1進(jìn)行下一時(shí)刻的流程。
以二自由度機(jī)械臂為對(duì)象,將本文作者設(shè)計(jì)的輪廓誤差同步預(yù)測(cè)控制器(CES-MPC),與傳統(tǒng)的預(yù)測(cè)控制器(MPC)以及計(jì)算力矩控制器(CTC)進(jìn)行了對(duì)比。
CTC控制算法的表達(dá)式為
預(yù)測(cè)控制算法的表達(dá)式為
二自由度機(jī)械臂實(shí)驗(yàn)平臺(tái)如圖2所示,實(shí)際實(shí)驗(yàn)中的關(guān)節(jié)輸出力矩約束為=-=5 N·m,=-=0.5 N·m。實(shí)驗(yàn)結(jié)果如圖3—圖5所示。
圖2 二自由度機(jī)械臂實(shí)驗(yàn)平臺(tái)
圖3 末端直線軌跡 圖4 關(guān)節(jié)1輸出力矩
圖5 關(guān)節(jié)2輸出力矩
為了更好地分析實(shí)驗(yàn)結(jié)果,將實(shí)驗(yàn)中3種算法下末端軌跡的跟蹤誤差和輪廓誤差值進(jìn)行了對(duì)比,末端軌跡誤差比較見表1。
表1 末端軌跡輪廓誤差比較
通過對(duì)比3種算法的實(shí)驗(yàn)結(jié)果可以看出:在末端存在初始誤差的情況下,所設(shè)計(jì)的CES-MPC算法相比CTC算法和MPC算法,能更加有效地減小末端輪廓誤差,且相比常規(guī)MPC算法,關(guān)節(jié)輸出力矩波動(dòng)較小,有著良好的控制效果。
為了提高機(jī)械臂末端軌跡精度和輪廓精度,并增強(qiáng)各軸之間的協(xié)調(diào)性,在基于操作空間輪廓誤差模型的機(jī)械臂輪廓誤差同步控制的基礎(chǔ)上,引入了預(yù)測(cè)控制策略,提出了一種基于預(yù)測(cè)控制的機(jī)械臂輪廓誤差同步控制。為了保證控制系統(tǒng)的穩(wěn)定性,進(jìn)一步引入了雙模預(yù)測(cè)控制的概念。二自由度機(jī)械臂實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果表明:本文作者設(shè)計(jì)的控制器在保證機(jī)械臂末端跟蹤精度的同時(shí),能顯著提高末端輪廓精度,并且增強(qiáng)了各軸之間的協(xié)調(diào)性,使各關(guān)節(jié)的輸出力矩更為柔和,在末端軌跡存在初始誤差的情況下仍然有良好的控制效果。