本發(fā)明屬于無人機技術領域,具體涉及一種基于GPS仿真的無人機飛行軌跡模擬系統(tǒng)及方法。
背景技術:
在目前無人機飛行仿真中,如何模擬無人機的狀態(tài)(經緯度,高度和姿態(tài))是整個仿真系統(tǒng)需要解決得一個重要問題,GPS全球定位系統(tǒng)的廣泛應用正好提供了一個良好的平臺,即設計一個GPS模擬器仿真無人機在設定時間和位置接收到的GPS衛(wèi)星信號,通過GPS接收機的解讀,對于飛控仿真系統(tǒng)來說就如無人機正在設定的位置運行一般。而現(xiàn)今市場中的GPS信號模擬器大多是根據(jù)已經給定的飛行器的飛行軌道計算定位信號,大多不能實現(xiàn)給定時間和地點接收機接收到信號的實時的動態(tài)功能。
開發(fā)無人機飛行軌跡模擬系統(tǒng)軟件環(huán)節(jié)的一般方法是使用編程語言將仿真系統(tǒng)的Simulink模型手工重寫,通過多次修改和調試最終生成可運行的軟件模塊;這種開發(fā)方法需要編程人員花費大量時間來編制程序、查錯、調試和驗證,明顯地增加工作量,延長了開發(fā)周期。
隨著無人機技術的發(fā)展,仿真系統(tǒng)的Simulink模型復雜度逐漸提高,編程人員手工重寫模型的代碼的工作量劇增,且還需要專業(yè)人員輔助重寫模型,以免模型與代碼的解算結果之間存在偏差。手工編寫的代碼的風格和質量良莠不齊,降低軟件運行的可靠度,增加代碼出錯的可能性,且代碼的實時性不易保證同時,用戶對實時仿真軟件的多功能性、實時性、可操縱性等性能要求越來越高,進一步增加了軟件的開發(fā)難度。這種傳統(tǒng)的手工編寫代碼的開發(fā)方法已經很難滿足快速開發(fā)實時仿真軟件的需求。
無人機飛行軌跡模擬系統(tǒng)中真實的飛行控制計算機不能直接接收位置信息,其內部GPS信號接收模塊遵循特定的通訊協(xié)議。
技術實現(xiàn)要素:
為解決現(xiàn)有技術的不足,本發(fā)明提出一種基于GPS仿真的無人機飛行軌跡模擬系統(tǒng),該系統(tǒng)包括無人機軌跡生成模塊、GPS數(shù)據(jù)處理模塊、通信模塊和飛行控制計算機;
無人機軌跡生成模塊:
用于搭建無人機飛行模型,對搭建完成的無人機飛行模型進行更新解算獲得無人機的飛行位置信息和姿態(tài)信息,并將飛行位置信息和姿態(tài)信息發(fā)送到通信模塊;所述的無人機飛行模型包括動力學模型和飛行環(huán)境模型;
接收飛行控制計算機發(fā)送的控制信號,根據(jù)控制信號模擬無人機飛行,并生成新的飛行位置信息和姿態(tài)信息,將新的飛行位置信息和姿態(tài)信息發(fā)送到通信模塊;
所述的GPS數(shù)據(jù)處理模塊包括星歷參數(shù)模塊、衛(wèi)星運動模塊和選星模塊;
星歷參數(shù)模塊:用于調用星歷數(shù)據(jù)并發(fā)送到衛(wèi)星運動模塊;
衛(wèi)星運動模塊:用于根據(jù)接收到的星歷數(shù)據(jù)進行星座模擬,獲得每個衛(wèi)星在每個時刻的位置坐標,將位置坐標發(fā)送到選星模塊;
選星模塊:用于接收飛行位置信息,根據(jù)飛行位置信息和每個時刻的每個星座的位置坐標,選擇與無人機距離最近的衛(wèi)星作為最佳星座,將最佳星座對應的星座位置和飛行位置信息發(fā)送到通信模塊;
通信模塊:
用于將無人機軌跡生成模塊發(fā)送的飛行位置信息直接發(fā)送到GPS數(shù)據(jù)處理模塊;
將姿態(tài)信息轉化成飛行控制計算機能夠識別的標準姿態(tài)信息并發(fā)送到飛行控制計算機;
將GPS數(shù)據(jù)處理模塊發(fā)送的星座位置和飛行位置信息進行打包封裝,轉化成飛行控制計算機能夠識別的位置信號發(fā)送到飛行控制計算機;
飛行控制計算機:用于接收標準姿態(tài)信息和位置信號,根據(jù)標準姿態(tài)信息和位置信號生成飛行控制信號,并將飛行控制信號發(fā)送到無人機軌跡生成模塊。
所述的飛行環(huán)境模型包括大氣環(huán)境模塊、地球數(shù)據(jù)模塊、空氣動力模塊、推進系統(tǒng)模塊和慣量模塊。
所述的飛行位置信息包括經度、緯度和高度。
所述的星座位置包括經度和緯度。
采用所述的基于GPS仿真的無人機飛行軌跡模擬系統(tǒng)進行的模擬方法,包括以下步驟:
步驟1、采用無人機軌跡生成模塊,搭建無人機飛行模型,包括動力學模型和飛行環(huán)境模型,對搭建完成的無人機飛行模型進行更新解算獲得無人機的飛行位置信息和姿態(tài)信息,并將飛行位置信息和姿態(tài)信息發(fā)送到通信模塊;
步驟2、采用通信模塊將飛行位置信息直接發(fā)送到GPS數(shù)據(jù)處理模塊;并將姿態(tài)信息轉化成飛行控制計算機能夠識別的標準姿態(tài)信息發(fā)送到飛行控制計算機;
步驟3、采用GPS數(shù)據(jù)處理模塊,根據(jù)接收到的飛行位置信息,確定最佳星座,并將最佳星座對應的星座位置和飛行位置信息共同發(fā)送到通信模塊,具體步驟如下:
步驟3.1、采用星歷參數(shù)模塊,調用星歷數(shù)據(jù)并發(fā)送到衛(wèi)星運動模塊;
步驟3.2、根據(jù)接收到的星歷數(shù)據(jù)進行星座模擬,獲得每個衛(wèi)星在每個時刻的位置坐標,并將上述位置坐標發(fā)送到選星模塊;
步驟3.3、根據(jù)接收到的飛行位置信息和每個時刻的每個星座的位置坐標,選擇與無人機距離最近的衛(wèi)星作為最佳星座,將最佳星座對應的星座位置和飛行位置信息共同發(fā)送到通信模塊;
步驟4、采用通信模塊將星座位置和飛行位置信息進行打包封裝,轉化成飛行控制計算機能夠識別的位置信號發(fā)送到飛行控制計算機;
步驟5、采用飛行控制計算機,接收標準姿態(tài)信息和位置信號,根據(jù)標準姿態(tài)信息和位置信號生成飛行控制信號,將飛行控制信號發(fā)送到無人機軌跡生成模塊;
步驟6、采用無人機軌跡生成模塊,接收控制信號,根據(jù)控制信號模擬無人機飛行,并生成新的飛行位置信息和姿態(tài)信息,將新的飛行位置信息和姿態(tài)信息發(fā)送到通信模塊,并返回執(zhí)行步驟2,即無人機飛行軌跡模擬完成。
步驟1所述的動力學模型包括:
1)力方程組:
其中,表示無人機在機體坐標系的obxb軸方向的加速度;表示無人機在機體坐標系的obyb軸方向的加速度;表示無人機在機體坐標系的obzb軸方向的加速度;u表示無人機在機體坐標系的obxb軸方向的速度;v表示無人機在機體坐標系的obyb軸方向的速度;w表示無人機在機體坐標系的obzb軸方向的速度;r表示無人機在機體坐標系的obzb軸方向的角速度分量;q表示無人機在機體坐標系的obyb軸方向的角速度分量;g表示重力加速度;θ表示無人機在機體坐標系下的俯仰角;Fx表示無人機在機體坐標系的obxb軸方向的力;x表示無人機在地面坐標系的ogxg軸方向的位置;m表示無人機的總重量;p表示無人機在機體坐標系的obxb軸方向的角速度分量;φ表示無人機在機體坐標系下的滾轉角;Fy表示無人機在機體坐標系的obyb軸方向的力;y表示無人機在地面坐標系的ogyg軸方向的位置;Fz表示無人機在機體坐標系的obzb軸方向的力;z表示無人機在地面坐標系的ogzg軸方向的位置;
2)力矩方程組:
其中,
其中,表示無人機在機體坐標系的obxb軸方向的角加速度分量;L表示無人機在機體坐標系下的滾轉力矩;N表示無人機在機體坐標系下的偏航力矩;表示無人機在機體坐標系的obyb軸方向的角加速度分量;M表示無人機在機體坐標系下的俯仰力矩;表示無人機在機體坐標系的obzb軸方向的角加速度分量;I2表示俯仰轉動慣量;I3表示偏航轉動慣量;I4表示無人機在機體坐標系下繞obyb軸的慣量積;I1表示滾轉轉動慣量;
3)運動學方程組:
其中,表示無人機在機體坐標系下的滾轉角變化率;表示無人機在機體坐標系下的俯仰角變化率;表示無人機在機體坐標系下的偏航角變化率;
4)導航方程組:
其中,Vnorth表示無人機在地面坐標系的obxb軸方向的速度;Veast表示無人機在地面坐標系的ogyg軸方向的速度;Vdown表示無人機在地面坐標系的ogzg軸方向的速度;DCMT表示由機體坐標系到地面坐標系的轉換矩陣。
步驟3.2所述的獲得每個衛(wèi)星在每個時刻的位置坐標,采用以下公式:
其中,Xk表示衛(wèi)星在地面坐標系下ogxg軸方向的位置;k表示衛(wèi)星;xk表示衛(wèi)星在軌道平面直角坐標系中x軸的坐標;Ωk表示升交點經度;yk表示衛(wèi)星在軌道平面直角坐標系中y軸的坐標;ik表示軌道傾角;Yk表示衛(wèi)星在地面坐標系下ogyg軸方向的位置;Zk表示衛(wèi)星在地面坐標系下ogzg軸方向的位置。
本發(fā)明的優(yōu)點:
本發(fā)明提出一種基于GPS仿真的無人機飛行軌跡模擬系統(tǒng)及方法,設計了基于Simulink的GPS仿真器,通過GPS衛(wèi)星星座運動分析、最佳定位四顆星選擇、模擬GPS接收機的基本工作方式,得到無人機位置信息轉換成與之對應的GPS信號(NEMA-0183)輸入飛行控制計算機,實現(xiàn)了給定時間和地點接收機接收到信號的實時動態(tài)功能的GPS導航仿真實驗;該方法通過手工編寫代碼和simulink模型創(chuàng)建實現(xiàn)無人機飛行軌跡模擬系統(tǒng)的各功能模塊,增強了使用自動代碼生成技術構建仿真系統(tǒng)的靈活性;該方法以其快速、簡單、高精度、實時性高的特點,加速了仿真系統(tǒng)的開發(fā)進程,提高了飛行控制系統(tǒng)仿真驗證工作的效率;該方法根據(jù)協(xié)議中數(shù)據(jù)項進行相應的數(shù)學建模并計算,以軟件的形式生成NMEA 0183協(xié)議,從而與真實的飛控進行通信,從而實現(xiàn)從虛擬到現(xiàn)實過度。
附圖說明
圖1為本發(fā)明一種實施例的地面坐標系的示意圖;
圖2為本發(fā)明一種實施例的機體坐標系的示意圖;
圖3為本發(fā)明一種實施例的基于GPS仿真的無人機飛行軌跡模擬系統(tǒng)的結構框圖;
圖4為本發(fā)明一種實施例的模擬方法方法流程圖。
具體實施方式
下面結合附圖對本發(fā)明一種實施例做進一步說明。
本發(fā)明實施例中,采用的地面坐標系(地軸系)Sg-Ogxgygzg如圖1所示,在地面上選一點Og;在水平內找一條坐標軸xg軸,固定下來;zg軸的選取規(guī)則是:在指向地心的坐標軸簇中,找到垂直于地面的一條坐標軸作為zg軸;yg軸在根據(jù)右手定則水平面內找;
本發(fā)明實施例中,采用的機體坐標系(體軸系)Sb-Obxbybzb如圖2所示,將原點Ob選擇在飛機的質量中心,坐標系跟隨飛行器一起運動;在飛行器的對稱面找到一條坐標軸xb,該坐標軸與軸線平行,xb軸方向為飛行器的頭部朝向;在垂直于飛行器縱向對稱面的坐標軸簇中找到一條坐標軸yb,yb軸的方向為指向飛行器右側;zb軸的確定根據(jù)右手定則,方向指向飛行器腹側;
本發(fā)明實施例中,如圖3所示,一種基于GPS仿真的無人機飛行軌跡模擬系統(tǒng),該系統(tǒng)包括無人機軌跡生成模塊、GPS數(shù)據(jù)處理模塊、通信模塊和飛行控制計算機;
無人機軌跡生成模塊:
用于搭建無人機飛行模型,對搭建完成的無人機飛行模型進行更新解算獲得無人機的飛行位置信息和姿態(tài)信息,并將飛行位置信息和姿態(tài)信息發(fā)送到通信模塊;所述的無人機飛行模型包括動力學模型和飛行環(huán)境模型;
接收飛行控制計算機發(fā)送的控制信號,根據(jù)控制信號模擬無人機飛行,并生成新的飛行位置信息和姿態(tài)信息,將新的飛行位置信息和姿態(tài)信息發(fā)送到通信模塊;
所述的GPS數(shù)據(jù)處理模塊包括星歷參數(shù)模塊、衛(wèi)星運動模塊和選星模塊;
星歷參數(shù)模塊:用于調用星歷數(shù)據(jù)并發(fā)送到衛(wèi)星運動模塊;
衛(wèi)星運動模塊:用于根據(jù)接收到的星歷數(shù)據(jù)進行星座模擬,獲得每個衛(wèi)星在每個時刻的位置坐標,將位置坐標發(fā)送到選星模塊;
選星模塊:用于接收飛行位置信息,根據(jù)飛行位置信息和每個時刻的每個星座的位置坐標,選擇與無人機距離最近的衛(wèi)星作為最佳星座,將最佳星座對應的星座位置和飛行位置信息發(fā)送到通信模塊;
通信模塊:
用于將無人機軌跡生成模塊發(fā)送的飛行位置信息直接發(fā)送到GPS數(shù)據(jù)處理模塊;
將姿態(tài)信息轉化成飛行控制計算機能夠識別的標準姿態(tài)信息并發(fā)送到飛行控制計算機;
將GPS數(shù)據(jù)處理模塊發(fā)送的星座位置和飛行位置信息進行打包封裝,轉化成飛行控制計算機能夠識別的位置信號發(fā)送到飛行控制計算機;
飛行控制計算機:用于接收標準姿態(tài)信息和位置信號,根據(jù)標準姿態(tài)信息和位置信號生成飛行控制信號,并將飛行控制信號發(fā)送到無人機軌跡生成模塊;
本發(fā)明實施例中,所述的飛行環(huán)境模型包括大氣環(huán)境模塊、地球數(shù)據(jù)模塊、空氣動力模塊、推進系統(tǒng)模塊和慣量模塊;
本發(fā)明實施例中,所述的飛行位置信息包括經度、緯度和高度;
本發(fā)明實施例中,所述的星座位置包括經度和緯度;
本發(fā)明實施例中,采用所述的基于GPS仿真的無人機飛行軌跡模擬系統(tǒng)進行的模擬方法,流程圖如圖4所示,包括以下步驟:
步驟1、采用無人機軌跡生成模塊,使用Simulink建模工具搭建動力學模型和飛行環(huán)境模型,對搭建完成的無人機飛行模型進行更新解算獲得無人機的飛行位置信息和姿態(tài)信息,并將飛行位置信息和姿態(tài)信息發(fā)送到通信模塊;
本發(fā)明實施例中,在建模過程中,采用基于對象的思想,將作用在飛行器上的氣動力、推力、重力以及飛行時的大氣環(huán)境和地球環(huán)境都分別封裝成獨立的模塊進行建模,然后在每個模塊中又會根據(jù)具體情況再繼續(xù)劃分,最后將全部模型整合成完整的無人機飛行模型;
本發(fā)明實施例中,所述的動力學模型包括:
1)力方程組:
其中,表示無人機在機體坐標系的obxb軸方向的加速度;表示無人機在機體坐標系的obyb軸方向的加速度;表示無人機在機體坐標系的obzb軸方向的加速度;u表示無人機在機體坐標系的obxb軸方向的速度;v表示無人機在機體坐標系的obyb軸方向的速度;w表示無人機在機體坐標系的obzb軸方向的速度;r表示無人機在機體坐標系的obzb軸方向的角速度分量;q表示無人機在機體坐標系的obyb軸方向的角速度分量;g表示重力加速度;θ表示無人機在機體坐標系下的俯仰角;Fx表示無人機在機體坐標系的obxb軸方向的力;x表示無人機在地面坐標系的ogxg軸方向的位置;m表示無人機的總重量;p表示無人機在機體坐標系的obxb軸方向的角速度分量;φ表示無人機在機體坐標系下的滾轉角;Fy表示無人機在機體坐標系的obyb軸方向的力;y表示無人機在地面坐標系的ogyg軸方向的位置;Fz表示無人機在機體坐標系的obzb軸方向的力;z表示無人機在地面坐標系的ogzg軸方向的位置;
2)力矩方程組:
其中,
其中,表示無人機在機體坐標系的obxb軸方向的角加速度分量;L表示無人機在機體坐標系下的滾轉力矩;N表示無人機在機體坐標系下的偏航力矩;表示無人機在機體坐標系的obyb軸方向的角加速度分量;M表示無人機在機體坐標系下的俯仰力矩;表示無人機在機體坐標系的obzb軸方向的角加速度分量;I2表示俯仰轉動慣量;I3表示偏航轉動慣量;I4表示無人機在機體坐標系下繞obyb軸的慣量積;I1表示滾轉轉動慣量;
3)運動學方程組:
其中,表示無人機在機體坐標系下的滾轉角變化率;表示無人機在機體坐標系下的俯仰角變化率;表示無人機在機體坐標系下的偏航角變化率;
4)導航方程組:
其中,Vnorth表示無人機在地面坐標系的obxb軸方向的速度;Veast表示無人機在地面坐標系的ogyg軸方向的速度;Vdown表示無人機在地面坐標系的ogzg軸方向的速度;DCMT表示由機體坐標系到地面坐標系的轉換矩陣;
步驟2、采用通信模塊將飛行位置信息直接發(fā)送到GPS數(shù)據(jù)處理模塊;并將姿態(tài)信息轉化成飛行控制計算機能夠識別的標準姿態(tài)信息發(fā)送到飛行控制計算機;
本發(fā)明實施例中,將姿態(tài)信息轉化成飛行控制計算機能夠識別的標準姿態(tài)信息發(fā)送到飛行控制計算機時,通信模塊使用了S-Function函數(shù)功能解決了Simulink開發(fā)環(huán)境下的串口通信問題,即在Simulink中的S-Function模塊中添加Windows API通信函數(shù)代碼;
步驟3、采用GPS數(shù)據(jù)處理模塊,根據(jù)接收到的飛行位置信息,確定最佳星座,并將最佳星座對應的星座位置和飛行位置信息共同發(fā)送到通信模塊,具體步驟如下:
步驟3.1、采用星歷參數(shù)模塊,調用美式衛(wèi)星星歷數(shù)據(jù)并發(fā)送到衛(wèi)星運動模塊;
步驟3.2、根據(jù)接收到的星歷數(shù)據(jù)進行星座模擬,獲得每個衛(wèi)星在每個時刻的位置坐標,并將上述位置坐標發(fā)送到選星模塊,具體步驟如下:
步驟3.2.1、解析星歷數(shù)據(jù)獲得初始時刻的六個軌道參數(shù),包括:初始升交點赤經Ω0、初始軌道傾角i0、近地點角距ω、每個衛(wèi)星至地心的距離a、偏心率e和真近點角fk;其中,Ω0、i0、ω確定軌道橢圓在空間的位置,a、e、fk確定衛(wèi)星在軌道面上的位置;
步驟3.2.2、獲得每個衛(wèi)星在每個時刻的平均角速度n,采用以下公式:
其中,n表示每個衛(wèi)星在每個時刻的平均角速度;n0表示每個衛(wèi)星運行的平均角速度;Δn表示衛(wèi)星電文給出的攝動改正數(shù);G表示萬有引力系數(shù);a表示每個衛(wèi)星至地心的距離;
步驟3.2.3、獲得規(guī)劃時間tk;GPS衛(wèi)星的軌道參數(shù)是相對于參考時間t0而言的,因此,某觀測時刻t的規(guī)劃GPS的規(guī)劃時間為:tk=t-t0;其中規(guī)劃時間tk應計用一個星期(604800s)的開始或結束,即當tk>302400s時,tk應減去604800s,當tk<-302400時,tk應加上604800s;
步驟3.2.4、獲得每個衛(wèi)星在每個時刻的瞬時衛(wèi)星平近點角Mk,根據(jù)預報星歷中的平近點角M0和參考時間t0可得:Mk=M0+ntk;
步驟3.2.5、更新真近點角fk,采用以下公式:
其中,Ek=Mk+e·sin Ek,k表示衛(wèi)星;令Ek=Mk進行迭代計算出Ek;
步驟3.2.6、對升交點角距uk,衛(wèi)星矢徑rk和軌道傾角ik進行改正,采用以下公式:
其中,地球非球形和日月張力等因素導致的攝動修正項為:
其中,φk表示升交距角;φk=fk+ω;
步驟3.2.7、根據(jù)修正后的升交點角距uk,衛(wèi)星矢徑rk和軌道傾角ik,獲得每個衛(wèi)星每個時刻在軌道平面上的位置,采用以下公式:
其中,xk表示衛(wèi)星在軌道平面直角坐標系中x軸的坐標;yk表示衛(wèi)星在軌道平面直角坐標系中y軸的坐標;zk表示衛(wèi)星在軌道平面直角坐標系中z軸的坐標;
步驟3.2.8、進一步獲得每個衛(wèi)星在每個時刻的位置坐標,采用以下公式:
其中,Xk表示衛(wèi)星在地面坐標系下ogxg軸方向的位置;ik表示軌道傾角;Yk表示衛(wèi)星在地面坐標系下ogyg軸方向的位置;Zk表示衛(wèi)星在地面坐標系下ogzg軸方向的位置;Ωk表示升交點經度,表示升交點經度的一階導數(shù);ω1表示地球的自轉角速度;
步驟3.3、根據(jù)接收到的飛行位置信息和每個時刻的每個星座的位置坐標,選擇與無人機距離最近的四顆衛(wèi)星作為最佳星座,將最佳星座對應的星座位置和飛行位置信息共同發(fā)送到通信模塊;
本發(fā)明實施例中,a.首先選擇高度角最大(位于天頂方向)的衛(wèi)星作為第一顆衛(wèi)星;b.選擇方位角最接近東向軸的衛(wèi)星作為第二顆衛(wèi)星;c.選擇方位角最接近北向軸的衛(wèi)星作為第三顆衛(wèi)星;d.從剩余的可見衛(wèi)星中選擇與已選好的三顆衛(wèi)星組合的幾何精度衰減因子GDOP最小的衛(wèi)星作為第四顆衛(wèi)星;
步驟4、采用通信模塊將星座位置和飛行位置信息進行打包封裝,轉化成飛行控制計算機能夠識別的位置信號發(fā)送到飛行控制計算機;
本發(fā)明實施例中,按照NMEA 0183標準傳輸協(xié)議對星座位置和飛行位置信息進行打包封裝,然后通過RS232串行口發(fā)送給飛行控制計算機;
步驟5、采用飛行控制計算機,接收標準姿態(tài)信息和位置信號,根據(jù)標準姿態(tài)信息和位置信號生成飛行控制信號,將飛行控制信號發(fā)送到無人機軌跡生成模塊;
步驟6、采用無人機軌跡生成模塊,接收控制信號,根據(jù)控制信號模擬無人機飛行,并生成新的飛行位置信息和姿態(tài)信息,將新的飛行位置信息和姿態(tài)信息發(fā)送到通信模塊,并返回執(zhí)行步驟2,即無人機飛行軌跡模擬完成;工作人員根據(jù)無人機飛行軌跡和模擬數(shù)據(jù)進行下一步實驗、檢測或運用于真實的飛行控制系統(tǒng)中。