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