張海濤
(合肥通用職業(yè)技術(shù)學(xué)院機(jī)械工程系 安徽合肥 230031)
在控制范疇中變結(jié)構(gòu)自動(dòng)控制系統(tǒng)屬邊緣學(xué)科,在當(dāng)今己經(jīng)發(fā)展成與其它系統(tǒng)可區(qū)分的控制學(xué)科,變結(jié)構(gòu)控制體系不但在明確性與不明確性、線性和非線性系統(tǒng)中可以適用,而且還可以適用于集合控制和分散控制、持續(xù)和離散、集中參數(shù)與分散參數(shù)系統(tǒng)等系統(tǒng)。變結(jié)構(gòu)控制實(shí)質(zhì)是一類獨(dú)特的非線性控制系統(tǒng),它的特點(diǎn)是控制系統(tǒng)機(jī)構(gòu)的非靜態(tài)性,它能夠有方向變化,依據(jù)當(dāng)前所處的狀態(tài)環(huán)境的改變,有目的的使系統(tǒng)按照預(yù)定“滑動(dòng)模態(tài)”進(jìn)行軌跡運(yùn)動(dòng),這種基于“滑動(dòng)模態(tài)”的軌跡控制過(guò)程,我們稱之為滑??刂?。除此之外它還體現(xiàn)為控制的不連續(xù)性。非線性系統(tǒng)上的魯棒性和抗干擾性是滑模控制所表現(xiàn)的最大的優(yōu)點(diǎn),本文主要對(duì)六自由度機(jī)械臂在滑模變空結(jié)構(gòu)中設(shè)計(jì)出一套通用的滑??刂破鳎源藘?yōu)化機(jī)械臂在運(yùn)動(dòng)軌跡控制上的規(guī)劃問(wèn)題。
如圖1所示為現(xiàn)代化生產(chǎn)線上經(jīng)常使用到的PUMA560型機(jī)械臂。這種機(jī)械臂有6個(gè)可以自由運(yùn)動(dòng)的關(guān)節(jié),分別是大臂、小臂、底座等組成。手臂的前端有3個(gè)自由度,分別是大軸底座的轉(zhuǎn)動(dòng)為自由度1,肩部主軸的轉(zhuǎn)動(dòng)為自由度2和肘部主軸的轉(zhuǎn)動(dòng)為自由度3。通過(guò)安裝在底座軸中心的伺服電機(jī)來(lái)實(shí)現(xiàn)的機(jī)械臂機(jī)體繞主軸的回轉(zhuǎn)。機(jī)械臂是依靠安裝在內(nèi)部的平衡裝置來(lái)控制大臂和小臂的平衡的。回轉(zhuǎn)平臺(tái)上安裝機(jī)械臂的大臂臺(tái)座。大臂上下擺動(dòng)是通過(guò)安裝在內(nèi)部的直流伺服電機(jī)實(shí)現(xiàn)的。大臂的臂體的前端關(guān)節(jié)處安裝了小臂,安裝在內(nèi)部的伺服電機(jī)可帶動(dòng)小臂的上下俯仰和小臂的回轉(zhuǎn)運(yùn)動(dòng)。手臂的后端有3個(gè)自由度,分別是手臂的轉(zhuǎn)動(dòng)為自由度4,手腕軸的俯仰轉(zhuǎn)動(dòng)為自由度5和機(jī)械臂的執(zhí)行端的轉(zhuǎn)動(dòng)為自由度6。通過(guò)伺服電機(jī)來(lái)控制機(jī)械臂的小臂前端的腕部的擺動(dòng)和轉(zhuǎn)動(dòng)。各個(gè)關(guān)節(jié)的協(xié)同合作,通過(guò)安裝在各個(gè)關(guān)節(jié)處的傳感器來(lái)收集信號(hào)并反饋給控制系統(tǒng),最終完成事先編制好程序的各種指定工作[1]。
圖1 PUMA560機(jī)械臂連桿坐標(biāo)系示意圖
機(jī)械臂PUMA560作為一個(gè)6自由度機(jī)械臂,它的結(jié)構(gòu)是串聯(lián)開(kāi)鏈結(jié)構(gòu),它的6個(gè)關(guān)節(jié)都是轉(zhuǎn)動(dòng)關(guān)節(jié),其中前3個(gè)關(guān)節(jié)用來(lái)確定機(jī)械臂末端的位置,后3個(gè)關(guān)節(jié)的軸線交于一點(diǎn)來(lái)確定機(jī)械臂末端執(zhí)行器的位置。因此選取這個(gè)交點(diǎn)為機(jī)械臂末端執(zhí)行器的參考點(diǎn),機(jī)械臂桿件坐標(biāo)參數(shù)如表1所示。
表1 PUMA560機(jī)械臂桿件坐標(biāo)參數(shù)
滑動(dòng)模態(tài)變結(jié)構(gòu)的控制過(guò)程主要是在切換面雙側(cè),通過(guò)改變開(kāi)關(guān)來(lái)實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)發(fā)生改變,切換函數(shù)s(x)用表示,當(dāng)s(x)=0時(shí)可以表示切換面。
通常的常非線性系統(tǒng)表達(dá)式如下:
方程式中,x∈Rn記為體系的狀態(tài)向量,u∈Rm稱為控制向量。在式1的狀態(tài)環(huán)境中,當(dāng)轉(zhuǎn)換成s(x,t)=s(x1,x2,...,xn)=0時(shí)兩個(gè)上下部分構(gòu)成了狀態(tài)環(huán)境即,s〉0或s〈0。其中通常點(diǎn)、起始點(diǎn)和終止點(diǎn)是在s=0上點(diǎn)的三種情況,它們對(duì)應(yīng)圖2中的A,B和C三類點(diǎn)。
圖2 切換面上三種點(diǎn)的特性
三種運(yùn)動(dòng)點(diǎn)可分為:
常點(diǎn):當(dāng)一點(diǎn)運(yùn)動(dòng)到s=0切換面周圍時(shí)保持其原有狀態(tài),并且通過(guò)此點(diǎn)(對(duì)應(yīng)圖中點(diǎn)A)。起點(diǎn):當(dāng)點(diǎn)運(yùn)動(dòng)到s=0周圍時(shí),從轉(zhuǎn)換面的兩側(cè)遠(yuǎn)離該點(diǎn)(對(duì)應(yīng)圖中點(diǎn)B )。終點(diǎn):當(dāng)點(diǎn)運(yùn)動(dòng)到s=0周圍時(shí),從轉(zhuǎn)換面兩邊接近這點(diǎn)(對(duì)應(yīng)圖中點(diǎn)C)且停頓在上面[2]。
假如每個(gè)點(diǎn)全是終止點(diǎn),在轉(zhuǎn)換面的某一區(qū)域內(nèi),只要接近該區(qū)域該點(diǎn)將會(huì)被“吸引”,那么將該周圍叫做“滑動(dòng)模態(tài)”區(qū)。在滑動(dòng)模態(tài)范圍內(nèi),若能夠滿足終止點(diǎn)的條件,在某一個(gè)運(yùn)動(dòng)點(diǎn)移動(dòng)到轉(zhuǎn)換面s=0的周圍時(shí)則有:
其中u+(x) ≠u-(x),滿足前面的條件使得:
(1)滑動(dòng)模態(tài)是存在狀態(tài);
(2)滑模面外的活動(dòng)的點(diǎn)能夠在規(guī)定的時(shí)間內(nèi)抵達(dá)滑模面,即符合以下公式:
(3)使其穩(wěn)定性得到保證;
(4)符合動(dòng)態(tài)品質(zhì)的基本要求。
符合這四個(gè)條件時(shí)就稱之為滑模變結(jié)構(gòu)控制。這四個(gè)條件也是滑??刂频乃膫€(gè)基本條件。
RBF具有很強(qiáng)的逼近能力,在前饋神經(jīng)它具有訓(xùn)練速度快,方法簡(jiǎn)單,不會(huì)產(chǎn)生極小值,它的輸出值和權(quán)值都成線性關(guān)系等特點(diǎn),因此用RBF進(jìn)行滑??刂平Y(jié)構(gòu)。
RBF滑模變控結(jié)構(gòu)設(shè)計(jì)是將切換函數(shù)連接到神經(jīng)網(wǎng)絡(luò)RBF輸入端中,將滑模控制器的輸入端與神經(jīng)網(wǎng)絡(luò)RBF的輸出端連接[3]。RBF滑模變結(jié)構(gòu)控制器結(jié)構(gòu)圖如下圖3所示。
圖3 RBF滑模變結(jié)構(gòu)控制器結(jié)構(gòu)圖
將一個(gè)被控對(duì)象為
的系統(tǒng),設(shè)r(t)為它的位置指令,設(shè)為它的切換函數(shù)。
基于RBF滑模控制器設(shè)計(jì)在滑??刂破鞯那岸?,RBF網(wǎng)絡(luò)的輸出端用字母u 表示輸出,輸出結(jié)果作為滑模變結(jié)構(gòu)控制器的輸入值。即m作為隱含層神經(jīng)元的個(gè)數(shù)。RBF網(wǎng)絡(luò)通過(guò)不斷調(diào)整權(quán)值E,使得的值趨向于0,實(shí)現(xiàn)滑模變結(jié)構(gòu)控制的目的。
把機(jī)械臂放置笛卡爾坐標(biāo)系中,對(duì)其中的各個(gè)關(guān)節(jié)進(jìn)行軌跡參數(shù)的設(shè)定,在t為0時(shí)設(shè)置初始參數(shù),根據(jù)機(jī)械臂的軌跡進(jìn)行運(yùn)算,每個(gè)時(shí)間加量△t產(chǎn)生一個(gè)數(shù)值,對(duì)應(yīng)于機(jī)械臂關(guān)節(jié)所處的位置。通過(guò)笛卡爾坐標(biāo)系的變換,產(chǎn)生相對(duì)應(yīng)的關(guān)節(jié)變量值,對(duì)這兩個(gè)過(guò)程中所產(chǎn)生的位置信息進(jìn)行比較,如果不同,則重新返回計(jì)算,如果相同,則可以退出循環(huán),算法計(jì)算結(jié)束。由于在位置求解過(guò)程中,關(guān)節(jié)的數(shù)量較多,必須引入矩陣計(jì)算,在得知位置結(jié)果的情況下求解過(guò)程信息對(duì)矩陣的逆計(jì)算,如圖4所示。
圖4 笛卡爾坐標(biāo)系下的關(guān)節(jié)算法
在笛卡爾坐標(biāo)系中進(jìn)行機(jī)械臂的軌跡規(guī)劃,需要對(duì)機(jī)械臂關(guān)節(jié)位置的逆運(yùn)動(dòng)學(xué)求解,其中最主要的問(wèn)題是,在通過(guò)笛卡爾坐標(biāo)系變換的情況下,已知機(jī)械臂末端位置來(lái)求解機(jī)械臂各關(guān)節(jié)在運(yùn)動(dòng)過(guò)程中的空間坐標(biāo),這是相當(dāng)困難的。但是通過(guò)上述算法過(guò)程,我們可以按照如下步驟完成對(duì)機(jī)械臂關(guān)節(jié)的逆運(yùn)動(dòng)學(xué)求解:
(1)笛卡爾坐標(biāo)系內(nèi)機(jī)械臂末端空間點(diǎn)的選擇可以是任意的,也可以是按照規(guī)律最初設(shè)定好的,但是空間點(diǎn)的坐標(biāo)必須是連續(xù)變化的。
(2)跳躍空間節(jié)點(diǎn)的選取必須通過(guò)擬合曲線來(lái)求解,在位置空間位置的情況下,通過(guò)插值函數(shù),求解中間數(shù)值,在插值節(jié)點(diǎn)數(shù)足夠多的情況下,擬合曲線是光滑的。對(duì)于笛卡爾坐標(biāo)系內(nèi)擬合曲線的求解,與機(jī)械臂本身的結(jié)構(gòu)特性有關(guān)。相對(duì)于本文中所示的六自由度機(jī)械臂,可以通過(guò)增加插值函數(shù)內(nèi)的點(diǎn)來(lái)進(jìn)行快速求解[4]。
滑動(dòng)模態(tài)是指滑動(dòng)模態(tài)運(yùn)動(dòng)軌跡限制在某個(gè)理想的區(qū)域,它可以解決當(dāng)使用切換函數(shù)而引起的抖振問(wèn)題時(shí),可以通過(guò)準(zhǔn)滑動(dòng)模態(tài)控制器的方法來(lái)解決滑??刂频亩墩駟?wèn)題。當(dāng)準(zhǔn)滑動(dòng)模態(tài)滿足<0條件時(shí),它就要求在滑動(dòng)模態(tài)的切面區(qū)域上進(jìn)行變結(jié)構(gòu)切換。在現(xiàn)實(shí)生活中許多的系統(tǒng)應(yīng)用中都應(yīng)用到了滑動(dòng)模態(tài)能夠減弱抖振問(wèn)題。本節(jié)中準(zhǔn)滑動(dòng)模態(tài)控制器將原來(lái)的控制器函數(shù)符號(hào)sgn(s)使用飽和函數(shù)符號(hào)sat(s),來(lái)進(jìn)行替換。
圖5 飽和函數(shù)
s的線性函數(shù)使用sat(s)符號(hào)表示,所以根據(jù)線性函數(shù)的特點(diǎn),可知它的反饋控制也是連續(xù)性的,另外切換控制方法也可以使用在邊界層外[5]。通過(guò)對(duì)滑??刂七M(jìn)行各個(gè)自由度的解耦,可以把系統(tǒng)模型劃分成六塊小的子系統(tǒng),然后在進(jìn)行對(duì)各個(gè)子系統(tǒng)進(jìn)行劃面切換設(shè)計(jì),這樣能夠快速的確定趨向原點(diǎn)的各個(gè)滑動(dòng)模塊。
根據(jù)表1中關(guān)于PUMA560機(jī)械臂桿件坐標(biāo)參數(shù),在MATLAB軟件中,可以使用相應(yīng)的功能插件,功能插件對(duì)應(yīng)的工具條可以對(duì)機(jī)械臂的相應(yīng)參數(shù)進(jìn)行設(shè)定,為了實(shí)現(xiàn)對(duì)機(jī)械臂軌跡的仿真,根據(jù)前述表格的機(jī)械臂各關(guān)節(jié)節(jié)點(diǎn)在笛卡爾坐標(biāo)系下的初始位置,需要對(duì)軟件參數(shù)進(jìn)行相應(yīng)的設(shè)定,以方便后續(xù)運(yùn)算的系統(tǒng)調(diào)用。
動(dòng)態(tài)環(huán)境下遇到障礙的機(jī)械臂軌跡路徑規(guī)劃,“動(dòng)態(tài)環(huán)境”的界定主要是指在機(jī)械臂的軌跡規(guī)劃過(guò)程中,可能在任意位置出現(xiàn)障礙,這種出現(xiàn)是隨機(jī)的,不是設(shè)定好的,而系統(tǒng)可以根據(jù)這種隨機(jī)出現(xiàn)的障礙進(jìn)行軌跡規(guī)劃的調(diào)整,并規(guī)劃出合理的滿足要求的運(yùn)行軌跡。
依據(jù)功能插件對(duì)機(jī)械臂初始參數(shù)進(jìn)行輸入,在輸入的過(guò)程中要注意輸入的順序,以防止由于參數(shù)順序錯(cuò)誤導(dǎo)致軌跡運(yùn)動(dòng)無(wú)法正常進(jìn)行,相關(guān)空間曲線坐標(biāo)點(diǎn)如表2所示。
表2 空間曲線坐標(biāo)點(diǎn)
運(yùn)行MATLAB軟件,在 Robotics Toolbox 工具欄,使用link 函數(shù)用來(lái)創(chuàng)建一個(gè)桿件,它有兩種創(chuàng)建方法,文中使用了改進(jìn)的D-H(modified)參數(shù),分別對(duì)應(yīng)于兩種坐標(biāo)系的進(jìn)行參數(shù)設(shè)置。還有一種是采用標(biāo)準(zhǔn)的D-H參數(shù)(standard),本文并未使用。
在對(duì)系統(tǒng)參數(shù)進(jìn)行設(shè)定的過(guò)程中,元素0代表轉(zhuǎn)動(dòng)關(guān)節(jié),元素1代表移動(dòng)關(guān)節(jié)。Link的另外四個(gè)參數(shù)α,a,d,θ,分別表示如下:連桿兩端軸線之間的公垂線的長(zhǎng)度定義成連桿的長(zhǎng)度α,連桿的扭角a定義成連桿兩端軸線在公垂線方向的夾角。相鄰連桿的長(zhǎng)度在關(guān)節(jié)軸線上的距離定義成關(guān)節(jié)的平移量d,相鄰連桿的長(zhǎng)度在關(guān)節(jié)軸線上的夾角定義成關(guān)節(jié)的轉(zhuǎn)量θ。
在MATLAB環(huán)境下,創(chuàng)建機(jī)械臂,根據(jù)表2的參數(shù)和數(shù)據(jù),構(gòu)建機(jī)械臂的仿真程序如圖6所示。顯示的是機(jī)械臂在MATLAB繪圖空間的三維圖,表示機(jī)械臂處在初始位置θ為0,可以通過(guò)調(diào)節(jié)控制面板中相應(yīng)按鈕來(lái)使機(jī)械臂的末端節(jié)點(diǎn)發(fā)生變化。
圖6 PUMA560機(jī)械臂三維圖
在機(jī)械臂的笛卡爾空間中,機(jī)械臂的末端節(jié)點(diǎn)依據(jù)函數(shù)設(shè)置運(yùn)動(dòng)軌跡,并設(shè)置機(jī)械臂末端節(jié)點(diǎn)的初始點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo),為了實(shí)現(xiàn)了機(jī)械臂末端節(jié)點(diǎn)正運(yùn)動(dòng)學(xué)的求解,先求得機(jī)械臂末端相對(duì)于基坐標(biāo)系的位置坐標(biāo)為(0.372,0.259,-0.531),機(jī)械臂在起點(diǎn)和終點(diǎn)的位置如圖6所示。
根據(jù)齊次變換矩陣求得到機(jī)械臂由初始位姿到末端位姿時(shí)的各關(guān)節(jié)變量。
對(duì)機(jī)械臂由R點(diǎn)到Z點(diǎn)的運(yùn)動(dòng)軌跡進(jìn)行仿真,選擇六關(guān)節(jié)機(jī)械臂末端的2個(gè)關(guān)節(jié),假設(shè)它們的期望軌跡為
通過(guò)MATLAB的相關(guān)函數(shù)可以繪出機(jī)械臂由R點(diǎn)運(yùn)動(dòng)到Z點(diǎn),各關(guān)節(jié)隨時(shí)間變換的位置、速度和加速度圖像。
機(jī)械臂在笛卡爾空間軌跡規(guī)劃運(yùn)動(dòng)過(guò)程中,可能遇到未知狀態(tài)下的障礙物,這個(gè)需要在軟件仿真情況下加以設(shè)定,障礙物的設(shè)定是隨機(jī)的,可以出現(xiàn)在笛卡爾空間的任何位置,也可以以任何狀態(tài)出現(xiàn),可以是圓形的物體或矩形的物體或其他空間物體得到形狀。機(jī)械臂的各關(guān)節(jié)在滑動(dòng)模態(tài)控制下,應(yīng)該能夠自主進(jìn)行避障,并且在運(yùn)行的過(guò)程中保持機(jī)械臂關(guān)節(jié)的速度和加速度平滑的過(guò)度,沒(méi)有劇烈的振動(dòng)。這是對(duì)機(jī)械臂仿真軌跡控制的一般要求,通過(guò)笛卡爾空間坐標(biāo)系的有效驅(qū)動(dòng)函數(shù)得以實(shí)現(xiàn)。以下為機(jī)械臂PUMA560各個(gè)關(guān)節(jié)添加的關(guān)節(jié)函數(shù)如下表3所示:
表3 機(jī)械臂的關(guān)節(jié)函數(shù)
根據(jù)以上分析可以知道機(jī)械臂的各關(guān)節(jié)的角速度曲線比較平滑,機(jī)械臂的末端節(jié)點(diǎn)在運(yùn)動(dòng)的過(guò)程中能夠有效避開(kāi)不規(guī)則形狀的空間物體,并且機(jī)械臂的其它節(jié)點(diǎn)的速度和加速度能夠在穩(wěn)定狀態(tài)下運(yùn)動(dòng),沒(méi)有出現(xiàn)明顯的振動(dòng)現(xiàn)象。
如圖7和8所示為機(jī)械臂各關(guān)節(jié)的角速度和角加速度的曲線,從這兩個(gè)曲線圖可以看出,機(jī)械臂的關(guān)節(jié)在運(yùn)動(dòng)過(guò)程中的角速度和角加速度均能夠光滑平穩(wěn)過(guò)度。
圖7 機(jī)械臂各關(guān)節(jié)的角速度
圖8 機(jī)械臂各關(guān)節(jié)的角加速度
在機(jī)械臂軌跡規(guī)劃過(guò)程中,末端節(jié)點(diǎn)的位置、速度、加速度曲線如圖9所示。由機(jī)械臂關(guān)節(jié)軌跡仿真圖可得,軌跡之間的差異很小,并且能和期望的軌跡線幾乎重合,機(jī)械臂關(guān)節(jié)運(yùn)動(dòng)軌跡的精確度較高,在很短的時(shí)間內(nèi)機(jī)械臂的振動(dòng)得到了收斂,在規(guī)避障礙物過(guò)程中能夠有效規(guī)避障礙物,并且整個(gè)運(yùn)動(dòng)軌跡的運(yùn)行所使用的時(shí)間較短,精確性能良好不受外界環(huán)境變化的干擾。
圖9 末端節(jié)點(diǎn)的位置、速度及加速度曲線圖
由圖10機(jī)械臂仿真結(jié)果可得出,第一個(gè)機(jī)械臂始終與障礙物保持著0.2rad的距離繞開(kāi)障礙物。分別在運(yùn)動(dòng)到第25s和40s時(shí)候,以平滑的曲線軌跡繞開(kāi)了前方的障礙。同樣也可以得出第二個(gè)機(jī)械臂關(guān)節(jié),與障礙物保持著0.2rad的距離繞開(kāi)障礙物。分別在運(yùn)動(dòng)到第32s和42s時(shí)候,以平滑的曲線軌跡繞開(kāi)了前方的障礙。最終使得機(jī)械臂能夠安全的到達(dá)目標(biāo)位置。雖然在移動(dòng)的軌跡過(guò)程中兩個(gè)關(guān)節(jié)之間存在微小的波動(dòng),但是期望的路線都能夠在較短的周期內(nèi)并且精確度較高的實(shí)現(xiàn),性能良好,不受外界的干擾,并且魯棒性很強(qiáng)。
圖10 機(jī)械臂末端節(jié)點(diǎn)的運(yùn)動(dòng)軌跡
本文以六自由度機(jī)械臂為例,研究機(jī)械臂在運(yùn)動(dòng)過(guò)程中的仿真軌跡,在笛卡爾坐標(biāo)下建立機(jī)械臂的位姿描述,然后建立基于RBF滑動(dòng)模塊變結(jié)構(gòu)的控制算法,通過(guò)滑動(dòng)模塊控制的引入,在MATLAB軟件環(huán)境中建立笛卡爾坐標(biāo)系下數(shù)學(xué)模型,設(shè)置軌跡參數(shù)的初狀態(tài)和終狀態(tài),最后生成機(jī)械臂末端節(jié)點(diǎn)在規(guī)避障礙物過(guò)程中的運(yùn)動(dòng)軌跡,通過(guò)運(yùn)動(dòng)仿真的輸出參數(shù)可以看出,在運(yùn)動(dòng)過(guò)程中的速度、加速度等參數(shù)光滑過(guò)度,能有效避開(kāi)在機(jī)械臂運(yùn)動(dòng)過(guò)程中出現(xiàn)的障礙物,解決了機(jī)械臂在運(yùn)動(dòng)過(guò)程中的振動(dòng)問(wèn)題和規(guī)避障礙物的問(wèn)題,在工業(yè)自動(dòng)化應(yīng)用中居有一定的現(xiàn)實(shí)指導(dǎo)意義。