無人機(Unmanned Aerial Vehicle,縮寫為UAV)是由無人機駕駛平臺加載偵察設備或攻擊系統(tǒng)實施偵察、監(jiān)視或攻擊的一種航空作戰(zhàn)系統(tǒng)錯誤!未找到引用源。。伴隨著無人機技術的快速發(fā)展,無人機仿真系統(tǒng)也得到了重視,它可以用來設計無人機控制律,驗證無人機飛控系統(tǒng)性能和可靠性,為無人機系統(tǒng)開發(fā)提供支持,本文設計與實現(xiàn)了一種基于uC/OS 嵌入式操作系統(tǒng)的無人機仿真系統(tǒng)。
一 無人機仿真系統(tǒng)總體設計
無人機系統(tǒng)一般由飛機本體、飛控系統(tǒng)、數(shù)據(jù)鏈路和地面控制站組成,據(jù)此,搭建了由一臺飛行仿真PC 上位機,一臺地面控制站PC 機和包含ARM7 芯片的EasyARM2138 開發(fā)板組成的無人機仿真系統(tǒng),PC 機和ARM7 芯片通過串口進行信息交換。飛行仿真PC 上位機在MATLAB 環(huán)境中編寫上位機飛行仿真軟件用于飛行仿真,該軟件通過串口接收控制下位機傳來的控制律,根據(jù)控制律實時計算無人機飛行狀態(tài),并把飛行在狀態(tài)參數(shù)傳給控制下位機。通過ADS 軟件在EasyARM2131 的ARM7 芯片中設計下位機控制軟件,該軟件通過串口接收飛行仿真軟件傳來的飛行狀態(tài)參數(shù)和地面站指控軟件傳來的飛行航路點信息,實時計算控制律并發(fā)送給飛行仿真PC 上位機。地面控制站 PC 機在VC 環(huán)境中編寫地面站指控軟件用于無人機終端控制,該軟件能夠實時顯示飛行狀態(tài)參數(shù),并通過向下位機控制軟件傳送飛行航路點來指揮無人機按規(guī)劃的航跡飛行。仿真系統(tǒng)總體功能框圖如圖1 所示:
圖 1 仿真系統(tǒng)總體功能框圖
二 各分系統(tǒng)的設計與實現(xiàn)
2.1 上位機仿真軟件設計與實現(xiàn)
上位機仿真軟件在 MATLAB 中編程實現(xiàn),用于實現(xiàn)無人機的飛行仿真,仿真軟件利用MATLAB 中設備控制工具箱實現(xiàn)串口通信功能錯誤!未找到引用源。。上位機仿真軟件具備的功能如下:
(1) 具有串口接收發(fā)送功能:能夠接收下位機傳來的無人機控制律并且向下位機發(fā)送無人機飛行狀態(tài)參數(shù);
(2) 具有氣動力和力矩計算功能:根據(jù)下位機傳來的控制律控制無人機副翼、方向舵、升降舵偏轉量和油門桿的位置,結合無人機飛行狀態(tài)和大氣參數(shù)計算出無人機所受的氣動力和氣動力矩;
(3) 具有飛行狀態(tài)實時計算功能:根據(jù)無人機所受的氣動力、力矩和無人機當前飛行狀態(tài)值計算出無人機下一點的飛行狀態(tài)值;上位機仿真軟件總體流程圖如圖 2 所示。
圖2 上位機仿真軟件流程
2.2 下位機控制軟件設計與實現(xiàn)
下位機控制軟件采用 uC/OS 嵌入式操作系統(tǒng)。uC/OS 嵌入式操作系統(tǒng)是一個完整的可移植、固化、裁剪的占先式實時多任務內核。uC/OS 內核是用ANSI 的C 語言編寫的,包含一小部分匯編語言代碼,使之可供不同架構的微處理器使用,如今,從8 位到64 位,uC/OS已在超過40 種不同架構的微處理器上運行錯誤!未找到引用源。
在下位機控制軟件設計過程中,采用軟件模塊化設計思想,把軟件分為初始化模塊、接收模塊、導航模塊、控制律計算模塊、發(fā)送模塊和地面控制站通信模塊,其中接收模塊、導航模塊、控制律模塊和發(fā)送模塊構成系統(tǒng)的主控模塊。初始化模塊的主要功能是單片機初始化和開機自檢;接收模塊接收上位機傳來的無人機狀態(tài)參數(shù)值;導航模塊根據(jù)無人機當前方位值和無人機飛行目標點坐標值計算出無人機的導航信息;控制律計算模塊根據(jù)導航信息和無人機的飛行狀態(tài)計算出無人機的控制律;發(fā)送模塊把控制律通過串口發(fā)送給上位機用于無人機飛行狀態(tài)計算;地面控制站通信模塊完成下位機和地面控制站的通信功能。
下位機控制軟件采用了嵌入式實時操縱系統(tǒng) uC/OS,把整個程序分成了合作的多任務形式,即把軟件劃分為三個優(yōu)先級不同的任務。第一個任務是初始化任務Iint(),由程序的初始化模塊構成,這是整個程序中優(yōu)先級最高的任務。第二個任務是Work(),這個任務的優(yōu)先級僅次于Iint()任務,此任務主要包括主控模塊,該任務是一個無限循環(huán)的任務。第三個任務是Station(),是程序中優(yōu)先級最低的任務,主要包括地面控制站通信模塊。
本系統(tǒng)中定義的三個任務的調度和通信是這樣實現(xiàn)的:系統(tǒng)上電后執(zhí)行的第一個任務是初始化任務,定義為優(yōu)先級最高的任務,但此任務只執(zhí)行一次,利用uC/OS 的OSTaskDel()函數(shù)將這個任務刪除,此時Work()成為優(yōu)先級最高的任務并將會一直執(zhí)行。Work()程序運行本身占用的時間較少,任務每執(zhí)行完一次后使用OSTimeDly()函數(shù)延時20ms,即任務Work()將自己掛起20ms,將CPU 的控制權交給Station()任務。由于Work()和Station()之間需要任務間的通信機制,在系統(tǒng)中定義了一個郵箱DataTransMbox,Work()任務執(zhí)行完后向Station()發(fā)送一條消息,消息中包含了飛機狀態(tài)參數(shù),發(fā)完消息后Work()任務被掛起,執(zhí)行Station()任務,Station()執(zhí)行完畢后,當延遲時間到時,又將控制權交回給高優(yōu)先級任務Work()。下位機控制軟件的工作流程如圖3 所示:
圖3 下位機控制軟件工作流程
2.3 地面站指控軟件設計與實現(xiàn)
在地面控制站PC 機中利用VC 軟件編寫地面站指控軟件[4],主要實現(xiàn)如下功能:
(1)指令發(fā)送功能:利用VC 中的MSCOMM 控件實現(xiàn)串口通信,接收下位機發(fā)來的飛行數(shù)據(jù),并能向下位機發(fā)送控制指令,指揮無人機向新目標點飛行。
(2)航跡規(guī)劃功能:設計了基于粒子群算法的無人機航跡規(guī)劃算法,根據(jù)無人機飛行環(huán)境信息,規(guī)劃從出發(fā)點到目標點滿足某種指標值最小的航跡。
(3)飛參顯示功能:設計了基于航空儀表ActiveX 控件的無人機飛參顯示界面,以虛擬儀表形式實時顯示飛行參數(shù),如空速、高度等,平面實時顯示無人機的飛行航跡。
三 仿真試驗
使用無人機仿真系統(tǒng)進行航跡規(guī)劃、跟蹤航跡和指令發(fā)送的仿真試驗,飛機模型采用國產(chǎn)某型殲擊機,氣動參數(shù)表和發(fā)動機特性數(shù)據(jù)表導入matlab 中。通過串口連接PC 機和EasyARM2131 開發(fā)板,依次打開上位機仿真軟件,地面站指控軟件,并把下位機控制軟件燒寫到ARM7 中,使系統(tǒng)處于準備工作階段,此時系統(tǒng)如圖4 所示:
圖 4 無人機仿真系統(tǒng)
在指控軟件中可以設定出發(fā)點坐標和目標點坐標,點擊指控軟件中的航跡規(guī)劃鍵,指控軟件即用粒子群算法規(guī)劃出從出發(fā)點到目標點的由一系列航跡點構成的最優(yōu)航跡,然后將航跡點發(fā)送給下位機控制軟件。下位機控制軟件接收到地面站指控軟件發(fā)送的航跡點后,就開始控制無人機沿航跡飛行。系統(tǒng)運行時地面站指控軟件界面如圖5 所示,圖中虛線表示規(guī)劃航跡,實線為無人機實際飛行航跡。
圖5 系統(tǒng)運行時地面站指控軟件界面
結論
本文設計與實現(xiàn)了基于 uC/OS 嵌入式操作系統(tǒng)的無人機仿真系統(tǒng),該仿真系統(tǒng)由飛行仿真PC 上位機、地面控制站PC 機和控制下位機組成,構成一個閉環(huán)仿真系統(tǒng)。通過引入uC/OS 嵌入式操作系統(tǒng),把下位機軟件按軟件實現(xiàn)功能把軟件分為三個任務,利用操作系統(tǒng)進行任務切換、調度和通信,提高下位機軟件工作可靠性。下一步將進一步完善仿真系統(tǒng),添加各種型號無人機數(shù)學模型,增添A/D 采集板、D/A 采集板等設備,使其能夠更加逼真地模擬無人機的飛行。
-
上位機
+關注
關注
27文章
930瀏覽量
54694 -
uCOS
+關注
關注
7文章
175瀏覽量
78248 -
無人機
+關注
關注
226文章
10301瀏覽量
179120
發(fā)布評論請先 登錄
相關推薦
評論