本站小編為你精心準備了無人船編隊控制仿真開發(fā)參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
《電子設計工程雜志》2014年第十一期
1硬件設計
1.1仿真中心仿真中心需要完成顯示船體狀態(tài),串口信息輸出和讀取模擬電壓值這3個功能。因此設計仿真中心由一臺工控機實現(xiàn),為這臺工控機配置3個標準RS-232串口和一個PCI擴展的A/D,D/A擴展板,這里選用9112型擴展板,包含16路A/D通道,可以滿足需求[1]。
1.2控制節(jié)點控制節(jié)點需要完成傳感器數(shù)據(jù)接收,無線通信數(shù)據(jù)接收發(fā)送和電機電壓輸出等功能,其中,數(shù)據(jù)接收發(fā)送由串口實現(xiàn),電壓以模擬電壓信號形式輸出。因此,設計控制節(jié)點由嵌入式PC104控制平臺實現(xiàn),配置兩個RS-232串口,及兩路D/A輸出通道。控制節(jié)點結(jié)構(gòu)圖,如圖2所示。船上控制器PC104工控機掛載的設備有一個MTI-G傳感器,一個無線模塊和兩個電機調(diào)速模塊。MTI-G傳感器周期性的提供姿態(tài),3個角速度信息和GPS位置信息,與控制器的接口為RS232;無線模塊周期性的將無人船的航行信息發(fā)送給遙控中心,并且實時接收遙控中心的控制指令,與控制器的接口為RS232;電機調(diào)速模塊根據(jù)控制器發(fā)出的模擬信號,控制電機轉(zhuǎn)動,與控制器的接口為D/A通道。
1.3遙控中心遙控中心需要完成無線通信數(shù)據(jù)接收發(fā)送的功能,其中,數(shù)據(jù)接收發(fā)送由串口實現(xiàn)。因此,設計遙控中心由普通筆記本電腦實現(xiàn),配置一個USB轉(zhuǎn)RS-232串口即可。
1.4接口描述仿真中心與控制節(jié)點有兩個接口,分別是標準串口和兩路D/A,A/D通道。其中,串口實現(xiàn)傳感器數(shù)據(jù)的模擬,兩路D/A,A/D通道實現(xiàn)兩路電機控制電壓傳輸?shù)哪M。控制節(jié)點與遙控中心有一個由無線模塊構(gòu)建的無線通信網(wǎng)絡實現(xiàn)數(shù)據(jù)交流,而這個通信接口在邏輯上也可簡化理解為串口通信。
2軟件設計
2.1仿真中心軟件仿真中心軟件為VC++6.0下編寫的MFC程序,包含串口驅(qū)動,PCI9112擴展卡驅(qū)動和曲線繪圖組件等。半實物仿真系統(tǒng)要求仿真系統(tǒng)實時接收控制節(jié)點的輸入,并產(chǎn)生實時動態(tài)輸出,較高的實時性才可以保證半實物仿真系統(tǒng)的穩(wěn)定性和精度。本軟件采用了多媒體定時器(multimediatimer),保證模型迭代的實時性,定時精度為1ms,無人船模型的仿真步長根據(jù)經(jīng)驗選擇為10ms。對于傳感器的定時輸出,采用VisualC++的WM_TIMER消息映射實現(xiàn)。對于無人船的仿真采用面向?qū)ο蟮能浖O計方法[5],設計類CAutoUSV完成對無人船的運動學仿真,將無人船的所有運動狀態(tài)參數(shù)抽象出來封裝進這個類中作為私有產(chǎn)量。這樣關(guān)于無人船的運動將完全由該類的內(nèi)部函數(shù)運算實現(xiàn),分析無人船的特性可知,需要一個函數(shù)實現(xiàn)無人船在時間上的狀態(tài)遞推,解算下一時刻船的狀態(tài),設計函數(shù)CAutoUSV::onestep()實現(xiàn)船的狀態(tài)遞推,既模擬船在時間上的運動。還需要設計函數(shù)CAutoUSV::getStates()實現(xiàn)無人船狀態(tài)的輸出,相當于使用傳感器測量船的狀態(tài)。還需要設計函數(shù)CAutoUSV::control()函數(shù)實現(xiàn)外部控制的輸入,相當于推進器作用于船的運動。由于模型解算對于時間的要求很高,所以函數(shù)control()和onestep()需要在多媒體時鐘的響應函數(shù)中執(zhí)行,而getStates()需要在時鐘消息的響應函數(shù)中執(zhí)行,獲得船的實時狀態(tài),并以傳感器格式發(fā)送出去。仿真中心軟件提供了良好的圖形界面,實時顯示各個無人船的位置曲線,可以直觀的看到仿真的效果。仿真軟件模擬的傳感器輸出格式如表1所示。
2.2控制節(jié)點軟件控制節(jié)點軟件運行于船上控制器,其實時性要求很高,因此控制中心軟件采用VxWorks嵌入式實時多任務操作系統(tǒng),進行任務調(diào)度,以保證系統(tǒng)的實時性。船上軟件中的任務主要有主任務,控制指令接收任務,MTI-G數(shù)據(jù)采集任務,無線通信驅(qū)動模塊,電機控制任務。針對大量串口數(shù)據(jù)的收發(fā),控制節(jié)點軟件設計了高速有效串口數(shù)據(jù)讀寫緩沖區(qū),保證了串口數(shù)據(jù)的實時更新。同時把串口的I/O操作放在任務中去,與主控制任務分開,保證了軟件的穩(wěn)定性和實時性。對于電機控制,不能有劇烈的提速。因此,控制機設計了提速保障機制,即在單位時間內(nèi)設置提速上限,將過大的提速,逐漸提高上去,確保電機穩(wěn)定工作。3.3遙控中心軟件遙控中心軟件工作在岸上的遙控計算機上,配備1個標準串口接無線模塊,與各船上的無線模塊構(gòu)建無線通信網(wǎng)絡,實時監(jiān)控兩條船的航行情況。并且在必要情況下通過無線塊發(fā)出控制信息,直接控制船的航行。遙控軟件接收控制節(jié)點發(fā)送過來的無人船航行狀態(tài)數(shù)據(jù),其具體格式如表1所示。同時遙控軟件發(fā)送到控制節(jié)點的數(shù)據(jù)格式如表2所示。
3實驗驗證
為了驗證本系統(tǒng)的實用性,進行3條無人船的編隊運動控制實驗。本次實驗采用主從跟隨的編隊算法,設定一條船為主船,引領(lǐng)船隊的航行,跟蹤一條既定軌跡[6],其余兩條為跟隨船,以三角性姿態(tài)跟隨主船運動。主船跟蹤的軌跡曲線為:y=5sin(0.02πx),三條船的初始坐標為:主船(0,0),從船分別為(-50,-50),(0,50)。跟隨船以三角性編隊跟隨主船[7-8],隊形保持為邊長為10的等邊三角形,以主船為頂點的中垂線時刻指向船的航向。實驗結(jié)果如圖4所示。實驗結(jié)果表明,本系統(tǒng)有足夠的穩(wěn)定性和實時性,可以滿足多無人船編隊仿真的要求。
4結(jié)論
針對無人船編隊系統(tǒng)開發(fā)的需要,本文設計并實現(xiàn)了一種用于模擬多無人船編隊的實時半實物仿真系統(tǒng),該系統(tǒng)通過對電壓信號的數(shù)模模數(shù)轉(zhuǎn)換模擬電機控制信號的輸出和采集,通過串行通訊端口模擬測量設備的數(shù)據(jù)輸出和數(shù)據(jù)采集。利用PC104平臺搭建無人船控制器,使用基于VxWorks的實時控制軟件;利用工控機和VC++6.0環(huán)境搭建無人船仿真中心,實現(xiàn)無人船仿真過程數(shù)據(jù)的圖形化顯示。分析仿真實驗結(jié)果,可以良好的模擬多無人船的編隊行為。在驗證編隊算法和測試無人船嵌入式控制軟件方面有很強的使用價值。
作者:嚴衛(wèi)生王衛(wèi)國高劍李勇強單位:西北工業(yè)大學航海學院