水下機(jī)器人嵌入式控制系統(tǒng)設(shè)計(jì)和運(yùn)動控制仿真-
1 引言
本文引用地址:http://www.ex-cimer.com/article/201808/386781.htm智能水下機(jī)器人在海洋石油開發(fā)、礦物資源開采、打撈和軍事等方面都有廣泛的應(yīng)用前景[1][2][3]。水下機(jī)器人已經(jīng)開始取代過去由載人潛器和潛水員所承擔(dān)的工作,尤其是在大深度和危險(xiǎn)區(qū)域發(fā)揮了更大的優(yōu)勢。水下機(jī)器人運(yùn)動控制的核心是嵌入式計(jì)算機(jī)系統(tǒng),它需具有運(yùn)動控制算法的實(shí)現(xiàn)、數(shù)據(jù)采集、與外設(shè)的通訊等功能[4][5][6]。本文以潛艇式有纜遙控水下機(jī)器人(ROV,Remotely Operated Vehicle)為對象設(shè)計(jì)了基于ARM9處理器的嵌入式控制系統(tǒng),并進(jìn)行了深度控制的仿真實(shí)驗(yàn)。
2 ROV結(jié)構(gòu)本文設(shè)計(jì)的可用于水下探測的ROV采用了開架式結(jié)構(gòu),搭載有聲納、姿態(tài)傳感器??梢栽诎渡峡刂婆_通過電纜控制ROV完成前進(jìn)、后退、上浮、下沉、左右轉(zhuǎn)彎等動作。ROV結(jié)構(gòu)如圖1所示,耐壓艙在中間,左右兩邊是浮力調(diào)節(jié)艙。電子艙用來安裝高、低頻信標(biāo)機(jī)、姿態(tài)傳感器和控制電路等,還可提供鋰電池的空間。浮力艙用來提供浮力,框架把整體固定在一起,保證最大的穩(wěn)定性。推進(jìn)器由兩個(gè)螺旋槳推進(jìn)器組成,以保證ROV在水中可以自由地做前進(jìn)、倒退和轉(zhuǎn)艏運(yùn)動。這種水下機(jī)器人結(jié)構(gòu)有利于航向控制和前向運(yùn)動。在水下運(yùn)動時(shí),橫傾和縱傾運(yùn)動對于該ROV是不重要的。水下探測ROV的航行速度較慢,其慢速與穩(wěn)定性是水底探測任務(wù)所要求的。
基于浮力調(diào)節(jié)進(jìn)行ROV的升沉運(yùn)動和定深控制可以降低能耗。下潛、上浮運(yùn)動通過調(diào)節(jié)兩邊的浮力調(diào)節(jié)艙的浮力來實(shí)現(xiàn)。ROV采用雙螺旋槳推進(jìn)器,布置在兩側(cè),平行于中軸線。通過這兩個(gè)推進(jìn)器,既可以產(chǎn)生前進(jìn)和后退的推力,也可以產(chǎn)生回轉(zhuǎn)力矩,各自由度之間沒有耦合。平行布置的兩個(gè)推進(jìn)器連線的中點(diǎn)要與浮心、重心在一條直線上,達(dá)到平衡推進(jìn)。在浮力調(diào)節(jié)系統(tǒng)上采用了變質(zhì)量調(diào)節(jié)系統(tǒng),通過調(diào)節(jié)左右兩個(gè)浮力艙的注排水量,改變整體浮力減少或增加,從而產(chǎn)生下降或上升的作用力。兩個(gè)浮力調(diào)節(jié)艙不但能夠調(diào)節(jié)ROV的浮力,還可調(diào)節(jié)ROV的姿態(tài)。螺旋槳推進(jìn)器正向時(shí)最大推力為93千克力,反向時(shí)的最大推力為52.2千克力。最大工作水深300m。
3 ROV控制系統(tǒng)設(shè)計(jì)3.1 傳感器系統(tǒng)水下探測機(jī)器人的控制系統(tǒng)分為水下和水上兩部分組成。水上節(jié)點(diǎn)采用工控機(jī),工控機(jī)安放在母船上,通過光纖通信與底層的嵌入式計(jì)算機(jī)實(shí)現(xiàn)數(shù)據(jù)通信。其上運(yùn)行Windows操作系統(tǒng),其功能是監(jiān)控水下機(jī)器人的運(yùn)行情況,發(fā)送控制命令。水下節(jié)點(diǎn)采用基于ARM微處理器的嵌入式計(jì)算機(jī),負(fù)責(zé)傳感器數(shù)據(jù)采集,運(yùn)動控制算法的實(shí)現(xiàn)和通信功能,其上運(yùn)行QNX操作系統(tǒng)。水下機(jī)器人上安裝的傳感器有:(1) 姿態(tài)航向傳感器航向動態(tài)精度為0.5度,俯仰和橫滾的動態(tài)精度為0.2度,尺寸:106x29x26mm,重量:0.15kg。(2) 運(yùn)動傳感器俯仰和橫滾動態(tài)精度為0.03度,升沉精度為5cm或5%,尺寸:
134x120mm,重量:2kg。(3) 測掃聲納,長基線和超短基線水聲定位系統(tǒng)。基于短基線和深度計(jì)獲取位置信息,基于姿態(tài)傳感器獲取航向和姿態(tài)信息。(4) 壓力傳感器用于深度測量。(5) 可以搭載成像聲納、水下攝像機(jī)、熒光計(jì)、照明燈等。3.2 嵌入式控制系統(tǒng)嵌入式控制系統(tǒng)通過檢測裝置檢測潛器的運(yùn)動狀態(tài),將數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)剿嬗?jì)算機(jī),水面計(jì)算機(jī)根據(jù)預(yù)定任務(wù)和預(yù)設(shè)算法計(jì)算出控制量,然后將控制量傳給潛器,再由嵌入式系統(tǒng)控制潛器的運(yùn)動裝置。嵌入式控制系統(tǒng)框圖如圖2所示。
嵌入式控制系統(tǒng)的設(shè)計(jì)基于AT91RM9200處理器,內(nèi)部集成ARM920T芯核,180MHz運(yùn)行時(shí)有200MIPS處理能力;16KB的數(shù)據(jù)緩沖,16KB的指令緩沖;全功能MMU(存儲器管理單元);16KB的內(nèi)部SRAM和128KB的內(nèi)部ROM[7]。水下機(jī)器人的嵌入式系統(tǒng)框圖如圖2所示。通過I2C總線擴(kuò)展出12位ADC,用于采集深度傳感器數(shù)據(jù),獲取ROV深度。深度傳感器的輸出信號是4~20mA的電流信號,本系統(tǒng)采用RCV420精密變換器,可以將4~20mA的環(huán)路電流變換成0~5V的電壓輸出。模數(shù)轉(zhuǎn)換器選用AD7992,轉(zhuǎn)換時(shí)間2μs,與處理器通過標(biāo)準(zhǔn)的I2C接口進(jìn)行數(shù)據(jù)交換。帶光耦隔離器的I/O口用于控制浮力筒的開關(guān)。RS422和10M/100M以太網(wǎng)接口,用于和水面計(jì)算機(jī)通信。系統(tǒng)中的姿態(tài)傳感器和信標(biāo)機(jī)都是串口輸出,并且通訊部分也需要一個(gè)串口,9200處理器內(nèi)部串行異步收發(fā)器的數(shù)目不夠,所以需要擴(kuò)展串口,本系統(tǒng)采用SPI接口,外接兩片GM8142進(jìn)行串口擴(kuò)展。擴(kuò)展出的4路RS232串口,2路RS232用于采集航向和姿態(tài)傳感器數(shù)據(jù),獲取水下ROV的運(yùn)行狀態(tài)。另外2路RS232接口采集高低頻信標(biāo)機(jī)數(shù)據(jù)。12位DAC來控制推進(jìn)器電機(jī)。本系統(tǒng)采用兩片4通道、12位精度、串行輸入雙極性輸出的AD5726做為DAC轉(zhuǎn)換器。調(diào)試接口包括:LCD顯示器、鍵盤和觸摸屏等人機(jī)交互設(shè)備。3.3 軟件設(shè)計(jì)水下機(jī)器人的運(yùn)動控制軟件在實(shí)時(shí)操作系統(tǒng)QNX下編寫,包括網(wǎng)絡(luò)通信模塊、串口通信模塊、傳感器數(shù)據(jù)采集模塊、數(shù)據(jù)管理模塊、控制器模塊。QNX操作系統(tǒng)具有實(shí)時(shí)性好的特點(diǎn),采用多進(jìn)程技術(shù)將控制算法、對傳感器的信息處理和推力分配算法等統(tǒng)一在實(shí)時(shí)操作系統(tǒng)的框架下進(jìn)行管理,從而提高動力定位控制系統(tǒng)的實(shí)時(shí)性和可靠性。采用多線程技術(shù),接收網(wǎng)絡(luò)數(shù)據(jù)和來自串行通訊的數(shù)據(jù),保證程序運(yùn)行的高效性和實(shí)時(shí)性。
4 橫傾角和深度協(xié)調(diào)控制調(diào)整和保持下潛深度是水下機(jī)器人的基本航行能力之一,水下機(jī)器人采用了浮力艙調(diào)節(jié)深度。它的垂直面協(xié)調(diào)控制系統(tǒng)方框圖如圖3所示。通過調(diào)整左右兩個(gè)浮力調(diào)節(jié)艙的注水量來調(diào)節(jié)ROV整體的浮力,從而控制下潛或者上浮運(yùn)動。所以要考慮ROV浮力變化的過程,即左右兩個(gè)浮力調(diào)節(jié)艙的充水量。ROV處于水面時(shí)是正浮力狀態(tài),浮力艙充水后,浮力減小到零,進(jìn)入水下平衡狀態(tài)。繼續(xù)向浮力艙充水,浮力變?yōu)樨?fù)值,ROV下潛,并且下潛速度增加。由于兩個(gè)浮力艙的容積是一定的,所以有最大負(fù)浮力的限制。調(diào)節(jié)兩個(gè)浮力桶的總浮力控制ROV的下潛深度,同時(shí)分別調(diào)節(jié)左右浮力桶,產(chǎn)生不同的浮力可以使ROV橫傾。但一般情況下橫傾角不需要控制,保持ROV水平就可以了。
橫傾角控制的目的是在ROV初始下潛和上浮階段,控制ROV的姿態(tài)。在水下大部分時(shí)間,保持ROV水平狀態(tài)就可以了。ROV橫傾角
的控制是通過調(diào)節(jié)ROV左右兩個(gè)浮力調(diào)節(jié)艙的不同的注、排水量來產(chǎn)生左右兩個(gè)浮力調(diào)節(jié)艙的浮力差,即產(chǎn)生旋轉(zhuǎn)運(yùn)動的偏傾力矩。在深度控制時(shí),將深度傳感器的測量值作為反饋,橫傾角控制采用姿態(tài)傳感器的測量值作為反饋,都采用積分分離PID控制器。橫傾角、深度協(xié)調(diào)控制器根據(jù)輸入期望深度與實(shí)際深度的偏差和期望橫傾角與實(shí)際橫傾角的偏差,輸出控制ROV下降或者上升所需穩(wěn)定的作用力,輸出控制ROV偏轉(zhuǎn)所需穩(wěn)定偏轉(zhuǎn)力矩,通過浮力解算輸出左右兩個(gè)浮力調(diào)節(jié)桶的注、排水量,實(shí)現(xiàn)ROV的橫傾角控制和深度控制。積分分離PID控制器具體實(shí)現(xiàn)如下:⑴ 根據(jù)實(shí)際情況,人為設(shè)定一閥值
⑵ 當(dāng)
時(shí),也即偏差值
比較大時(shí),采用PD,可避免過大的超調(diào),又使系統(tǒng)有較快的響應(yīng)。⑶ 當(dāng)
時(shí),也即偏差值
比較小時(shí),采用PID控制,可保證系統(tǒng)的控制精度。寫成計(jì)算公式,可在積分項(xiàng)前乘一個(gè)系數(shù)
評論