董團(tuán)陽(yáng)++魏國(guó)亮++袁彬++王建華
摘 要:ROV(Remotely Operated Vehicle)運(yùn)動(dòng)時(shí),其精確的數(shù)學(xué)模型很難建立,往往達(dá)不到運(yùn)動(dòng)與操控的一致性。設(shè)計(jì)基于多算法的ROV遠(yuǎn)程協(xié)同控制器,主要包括兩部分:ROV遠(yuǎn)程通信模塊與多算法協(xié)同控制器。ROV遠(yuǎn)程通信設(shè)計(jì)采用串口轉(zhuǎn)換以太網(wǎng)模塊通信方式,將采集到的傳感器信息以JSON數(shù)據(jù)格式實(shí)時(shí)發(fā)送給上位機(jī);多算法協(xié)同控制器分別包括ROV偏航和深度的前饋PID控制器以及ROV俯仰的滑模控制器,可實(shí)現(xiàn)機(jī)器人自身的狀態(tài)控制。最后,通過(guò)多組實(shí)驗(yàn)得出相應(yīng)的控制效果和實(shí)驗(yàn)參數(shù),驗(yàn)證了該遠(yuǎn)程協(xié)同控制器的有效性和實(shí)用性。
關(guān)鍵詞關(guān)鍵詞:ROV;JSON數(shù)據(jù)格式;滑??刂?;遠(yuǎn)程協(xié)同控制器
DOIDOI:10.11907/rjdk.161937
中圖分類(lèi)號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2016)011009404
0 引言
隨著時(shí)代的發(fā)展,水下機(jī)器人在世界范圍內(nèi)的應(yīng)用領(lǐng)域不斷擴(kuò)大,包括海洋研究(科學(xué)考察)、海洋開(kāi)發(fā)和水下工程等,并在許多國(guó)家獲得了迅速發(fā)展。以美國(guó)為代表的軍事大國(guó)尤其重視水下機(jī)器人在未來(lái)戰(zhàn)爭(zhēng)中的應(yīng)用。在海洋開(kāi)發(fā)過(guò)程中,水下機(jī)器人將在復(fù)雜海洋環(huán)境探測(cè)與建模,以及海洋目標(biāo)的水下探測(cè)與識(shí)別、定位與傳輸?shù)确矫姘l(fā)揮重要作用。如何有效地控制水下機(jī)器人的運(yùn)動(dòng)和姿態(tài)是很多研究者非常重視的問(wèn)題。由于自治水下機(jī)器人運(yùn)動(dòng)控制具有時(shí)變、非線性、大時(shí)延、多自由度等特點(diǎn),并且因?yàn)槠渌幩颅h(huán)境的復(fù)雜性和多變性,人們很難得到精確的系統(tǒng)模型,給水下機(jī)器人的精確定位與控制帶來(lái)了極大挑戰(zhàn)。隨著自治水下機(jī)器人的應(yīng)用范圍不斷擴(kuò)大,提高其自主性的關(guān)鍵技術(shù)之一是提高其控制器系統(tǒng)的性能[1]。
近年來(lái),水下機(jī)器人得到了迅速發(fā)展,但是由于其作業(yè)形式多樣,水下機(jī)器人的外形也各不相同,它們通常不具有流線型結(jié)構(gòu)。然而現(xiàn)有的幾種典型數(shù)學(xué)模型都是針對(duì)某一具體對(duì)象建立的,因此水下機(jī)器人至今也沒(méi)有通用模型。另外,由于水下干擾(海流)較大,進(jìn)一步加大了水下機(jī)器人定點(diǎn)控制(動(dòng)力定位)的難度。在機(jī)器人的各種控制算法中,滑模控制由于具有對(duì)參數(shù)變化和系統(tǒng)未建模部分的魯棒性和極強(qiáng)的抗干擾性,而成為水下機(jī)器人控制的有效方案之一。但是現(xiàn)有模型都是針對(duì)不同對(duì)象設(shè)計(jì)的,也沒(méi)有研究過(guò)如何減輕因施加的控制作用而帶來(lái)耦合作用的影響[2]。
因此,水下機(jī)器人的懸??刂扑惴ê投ㄏ蜓芯渴且粋€(gè)極有價(jià)值的研究課題。鑒于此,本文設(shè)計(jì)出相應(yīng)的控制器,通過(guò)PID算法控制ROV的深度和航向,滑模算法控制ROV的俯仰姿態(tài)。其中算法設(shè)計(jì)、參數(shù)整定,在MATLAB中已經(jīng)實(shí)現(xiàn)仿真,并在實(shí)際測(cè)試中作了進(jìn)一步驗(yàn)證。圖1為本文設(shè)計(jì)的水下機(jī)器人。
1 ROV運(yùn)動(dòng)控制中存在的問(wèn)題
針對(duì)ROV的俯仰姿態(tài)小角度控制,通常采用PID線性控制方法加以解決。但是當(dāng)ROV的俯仰姿態(tài)角度大于15度時(shí),PID算法將失效,ROV俯仰姿態(tài)出現(xiàn)振蕩現(xiàn)象。通過(guò)多組實(shí)驗(yàn)研究,ROV的俯仰姿態(tài)與單擺模型類(lèi)似,且都屬于非線性控制問(wèn)題。因此,本文設(shè)計(jì)了滑模控制算法來(lái)克服這種非線性控制問(wèn)題。
ROV遠(yuǎn)程通信是水下機(jī)器人在水下執(zhí)行任務(wù)時(shí)與地面進(jìn)行通訊的樞紐。本文利用USR-WIFI232模塊以及電力線載波模塊,將水下機(jī)器人采集的數(shù)據(jù)實(shí)時(shí)反饋到水面。通信的數(shù)據(jù)格式是實(shí)現(xiàn)整個(gè)算法的基礎(chǔ)。因此,選擇一種有效的數(shù)據(jù)交換格式是設(shè)計(jì)的關(guān)鍵。本文采用JSON數(shù)據(jù)格式,解決了不同平臺(tái)對(duì)傳感器數(shù)據(jù)的解析和生成等問(wèn)題。
2 ROV遠(yuǎn)程通信設(shè)計(jì)
2.1 ROV通信
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript的一個(gè)子集,采用完全獨(dú)立于語(yǔ)言的文本格式,但也使用了類(lèi)似于C語(yǔ)言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等),易于閱讀與編寫(xiě),也易于機(jī)器解析和生成(一般用于提升網(wǎng)絡(luò)傳輸速率)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言[3]。
因此,ROV系統(tǒng)采用C語(yǔ)言編寫(xiě)的JSON通信格式(見(jiàn)圖2),實(shí)時(shí)發(fā)送傳感器數(shù)據(jù)到上位機(jī)。在各種軟件平臺(tái)(MATLAB、LABVIEW等)上,都有相應(yīng)的SDK解析該格式的數(shù)據(jù)包,方便了用戶開(kāi)發(fā)。
2.2 ROV編程解析
USR-WIFI232-D2模組是一款一體化的802.11b/g/n WiFi和以太網(wǎng)的模組,提供了一種將用戶的物理設(shè)備連接到WiFi無(wú)線網(wǎng)絡(luò)或以太網(wǎng)上,并提供USART數(shù)據(jù)傳輸接口的解決方案。通過(guò)該模組,傳統(tǒng)的低端串口設(shè)備或MCU控制的設(shè)備可以很方便地接入WiFi無(wú)線網(wǎng)絡(luò)或以太網(wǎng),從而實(shí)現(xiàn)物聯(lián)網(wǎng)絡(luò)控制與管理[4]。
網(wǎng)絡(luò)編程發(fā)送的通信指令如下:
{
"motors": {
"set_motor1_speed":0,
"set_motor2_speed":0,
"set_motor3_speed":0,
"set_motor4_speed":0
}
}
其中,motors對(duì)象在JSON中表示為“{}”中的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為第二層”{}”中的內(nèi)容。在面向?qū)ο蟮恼Z(yǔ)言中,set_motor1_speed為電機(jī)1的屬性,0為對(duì)應(yīng)的屬性值,所以很容易理解,解析方法為motors. set_motor1_speed獲取屬性值。該屬性值的類(lèi)型可以是數(shù)字、字符串、數(shù)組、對(duì)象等。所以JSON不僅能夠提高可讀性,而且可以減少?gòu)?fù)雜性,容易編程,只需滿足JSON格式即可。
3 ROV多算法協(xié)同控制器設(shè)計(jì)
3.1 ROV航向與深度控制器設(shè)計(jì)
在模擬系統(tǒng)中,算法表達(dá)式為:P(t)=KP[e(t)+1T1∫e(t)dt+TDde(t)dt ](1)
式(1)中,P(t)為調(diào)節(jié)器輸出信號(hào);e(t)為調(diào)節(jié)器偏差信號(hào),它等于測(cè)量值與給定值之差;KP為調(diào)節(jié)器比例系數(shù);KI為調(diào)節(jié)器積分時(shí)間;KD為調(diào)節(jié)器微分時(shí)間。
由于計(jì)算機(jī)控制是一種采樣控制,它只能根據(jù)采樣時(shí)刻的偏差值計(jì)算控制量。因此,在計(jì)算機(jī)控制系統(tǒng)中,必須首先對(duì)式(1)進(jìn)行離散化處理,用數(shù)字形式的差分方程代替連續(xù)系統(tǒng)的微分方程[5]。
由式(4)可以看出,要計(jì)算P(k),不僅需要本次與上次的偏差信號(hào)E(k)和E(k-1),而且還要在積分項(xiàng)中把歷次偏差信號(hào)E(j)進(jìn)行相加,即從∑nj=0E(j)中得到離散系統(tǒng)的PID算法。然而,在應(yīng)用于水下機(jī)器人的PID控制算法中,機(jī)器人自身的航向和深度控制始終會(huì)出現(xiàn)一些穩(wěn)態(tài)誤差和時(shí)滯性。因此本文對(duì)其作了一些改進(jìn),在PID輸出后,加入一個(gè)前饋控制量(深度量和航向角度量)可以加快控制響應(yīng)速度,及時(shí)消除穩(wěn)態(tài)誤差[6]。另外,深度控制和航向控制有一些區(qū)別,由于在姿態(tài)傳感器的工藝中,航向的偏航角(yaw)為-180°~180°,在該過(guò)程中可采用一種最短路徑算法,使水下機(jī)器人以最短路徑和時(shí)間到達(dá)設(shè)定的航向角。
在水池實(shí)驗(yàn)中,討論P(yáng)ID對(duì)水下機(jī)器人航向角控制的實(shí)現(xiàn)。當(dāng)水下機(jī)器人的實(shí)際角度與設(shè)定值差的絕對(duì)值大于90°時(shí),通過(guò)前饋控制給機(jī)器人一個(gè)前饋航向角度量,使機(jī)器人立即響應(yīng)設(shè)定值;當(dāng)差的絕對(duì)值小于等于90°時(shí),機(jī)器人會(huì)自動(dòng)采用PID控制器調(diào)整輸出,以達(dá)到相應(yīng)的設(shè)定值(允許誤差范圍內(nèi))。
以下介紹程序如何通過(guò)PID控制算法實(shí)現(xiàn)“前饋+反饋”控制水下機(jī)器人的過(guò)程:首先,通過(guò)串口中斷接收J(rèn)Y-901采集回來(lái)機(jī)器人自身實(shí)際角度yaw的數(shù)據(jù),并把數(shù)據(jù)發(fā)送到MATLAB上位機(jī)中;其次,判斷此刻設(shè)定值與yaw差的絕對(duì)值是否大于90°,以決定在PID輸出后,加入前饋航向角度量;最后,通過(guò)I2C發(fā)送輸出轉(zhuǎn)速到無(wú)刷直流電機(jī),改變機(jī)器人自身角度去接近設(shè)定的目標(biāo)角度[7]。程序框圖如圖3所示。
3.2 ROV俯仰控制器設(shè)計(jì)
水下機(jī)器人的俯仰角控制系統(tǒng)具有時(shí)變、非線性、大時(shí)延、多自由度的特性,由于水動(dòng)力系數(shù)的復(fù)雜性和涌流環(huán)境的多變性,人們很難得到精確的系統(tǒng)模型,所以本文針對(duì)水下機(jī)器人俯仰角控制問(wèn)題提出了一種近似數(shù)學(xué)模型——單擺模型,其動(dòng)力學(xué)方程為:
其中,I表示轉(zhuǎn)動(dòng)慣量,θ、θ.、θ..分別表示水下機(jī)器人的俯仰角(pitch)、角速度、角加速度。m表示水下機(jī)器人的質(zhì)量,l2表示水下機(jī)器人重心到浮心的垂直距離,F(xiàn)1、F2表示電機(jī)力矩,l表示電機(jī)力矩到浮心的垂直距離。
根據(jù)水下機(jī)器人系統(tǒng)所期望的動(dòng)態(tài)特性設(shè)計(jì)系統(tǒng)的切換超平面,通過(guò)滑動(dòng)模態(tài)控制器使系統(tǒng)狀態(tài)從超平面之外向切換超平面收束。系統(tǒng)一旦到達(dá)切換超平面,控制作用將保證系統(tǒng)沿切換超平面到達(dá)系統(tǒng)原點(diǎn)。因此,本文設(shè)計(jì)的切換超平面方程為:
其中θ、θγ分別表示測(cè)量值pitch和設(shè)定值pitch,P表示需要調(diào)節(jié)的參數(shù)?;?刂破鞣匠虨椋?/p>
其中F、Ki、A、B表示需要調(diào)節(jié)的參數(shù)。這些參數(shù)的調(diào)節(jié)可滿足到達(dá)條件,從而使趨近運(yùn)動(dòng)(非滑動(dòng)模態(tài))于有限時(shí)間內(nèi)到達(dá)開(kāi)關(guān)面。在趨近過(guò)程中具有快速、抖振小的特點(diǎn),能夠克服系統(tǒng)的不確定性,并且對(duì)于水動(dòng)力系數(shù)的復(fù)雜性和涌流環(huán)境的變化具有很強(qiáng)的魯棒性,使水下機(jī)器人的俯仰角控制取得良好效果。與PID控制相比,俯仰角的控制過(guò)程屬于非線性系統(tǒng)控制,而PID控制是針對(duì)線性系統(tǒng)設(shè)計(jì)的算法控制器,其對(duì)干擾比較敏感[811]。因此,當(dāng)被控對(duì)象采用滑??刂茣r(shí),其對(duì)被控對(duì)象的模型誤差、對(duì)象參數(shù)變化以及外部干擾具有極強(qiáng)的魯棒性,可廣泛用于復(fù)雜實(shí)際場(chǎng)合。其算法程序框圖如圖4所示。
4 ROV多算法協(xié)同控制器實(shí)現(xiàn)
通過(guò)多組實(shí)驗(yàn)數(shù)據(jù)以及仿真數(shù)據(jù)分析,針對(duì)水下機(jī)器人航向(yaw)和深度(roll)模型,可以得出前饋PID參數(shù),如表1所示。
水下機(jī)器人俯仰角、航向控制仿真以及實(shí)驗(yàn)測(cè)試如圖5、圖6所示,細(xì)線代表機(jī)器人航向和深度控制,得到姿態(tài)傳感器(IMU)和壓力傳感器數(shù)據(jù),粗線表示MATLAB仿真得到的圖形。由于傳感器本身有大約2°或2mv的誤差,所以在允許的誤差范圍內(nèi),實(shí)際波形會(huì)有一些波動(dòng)。
ROV的穩(wěn)定性及抗干擾能力是實(shí)際中機(jī)器人的關(guān)鍵指標(biāo),而水下最大的干擾是海流,進(jìn)一步加大了ROV定點(diǎn)控制的難度。本文模擬海流實(shí)驗(yàn)將機(jī)器人放入具有一定水流速度的河流中,設(shè)定機(jī)器人-15°的俯仰角,讓機(jī)器人自身通過(guò)滑??刂破骺刂茩C(jī)器人俯仰角為-15°。通過(guò)觀察俯仰角數(shù)據(jù)曲線圖,發(fā)現(xiàn)ROV穩(wěn)定性以及抗干擾能力很好,驗(yàn)證了算法的實(shí)用性和有效性。
在模擬海流實(shí)驗(yàn)中,觀察圖6偏航角度數(shù)據(jù)曲線,ROV偏航角動(dòng)態(tài)響應(yīng)快,系統(tǒng)穩(wěn)定性高,抗干擾能力強(qiáng),達(dá)到了機(jī)器人運(yùn)動(dòng)與操控的一致性。其中機(jī)器人偏航控制采用前饋PID控制,參數(shù)調(diào)節(jié)簡(jiǎn)單,所以未使用滑模控制算法。而圖中偏航角度波動(dòng)屬于傳感器精度問(wèn)題,在正常誤差范圍內(nèi)可以忽略不計(jì)。
ROV以水面為基準(zhǔn)電壓表示0mv,橫坐標(biāo)代表時(shí)間,縱坐標(biāo)代表壓力傳感器校準(zhǔn)后的電壓值。隨著ROV潛水深度的增加,傳感器電壓值隨之升高。而圖7曲線描述了ROV在前饋PID控制下,深度穩(wěn)定在設(shè)定值3mv的曲線,曲線波動(dòng)表示在正常誤差范圍內(nèi),可以忽略不計(jì)。
5 結(jié)語(yǔ)
本文針對(duì)水下機(jī)器人的運(yùn)動(dòng)控制進(jìn)行分析,通過(guò)串口轉(zhuǎn)換以太網(wǎng)模塊,將水下機(jī)器人自身的狀態(tài)信息反饋到上位機(jī),并利用MATLAB平臺(tái),對(duì)前饋PID和滑模算法控制進(jìn)行仿真,以實(shí)現(xiàn)水下機(jī)器人的可操控性。在ROV偏航角、深度和俯仰角控制中,將其算法寫(xiě)入MCU中。由于ROV偏航和深度控制系統(tǒng)自帶的時(shí)滯性,本文采用前饋PID控制算法對(duì)其進(jìn)行控制,且通過(guò)多組實(shí)驗(yàn)得到了較好的控制效果。通過(guò)ROV多組測(cè)試的結(jié)果看,ROV俯仰角度變化過(guò)程與單擺運(yùn)動(dòng)類(lèi)似,且都屬于非線性時(shí)滯系統(tǒng)。故本文采用滑??刂扑惴?,實(shí)現(xiàn)了水下機(jī)器人俯仰角控制的實(shí)際效果。最后,通過(guò)水下測(cè)試實(shí)驗(yàn)驗(yàn)證了控制算法的有效性和實(shí)用性。
參考文獻(xiàn):
[1] 黃佳.SAP程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2007.
[2] 邢志偉,封錫盛.水下機(jī)器人神經(jīng)網(wǎng)絡(luò)自適應(yīng)逆控制[J].控制工程,2003(3):235238,258.