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