[發明專利]一種位置均衡的目標群運動過程仿真計算方法有效
| 申請號: | 202010542613.3 | 申請日: | 2020-06-15 |
| 公開(公告)號: | CN111666694B | 公開(公告)日: | 2022-11-08 |
| 發明(設計)人: | 李彭偉;李文強;闞凌志;歐陽慈;陳娜;鄭偉;郭婉;齊家琛;周兆昕 | 申請(專利權)人: | 中國電子科技集團公司第二十八研究所 |
| 主分類號: | G06F30/20 | 分類號: | G06F30/20 |
| 代理公司: | 江蘇圣典律師事務所 32237 | 代理人: | 于瀚文;胡建華 |
| 地址: | 210000 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 位置 均衡 目標 運動 過程 仿真 計算方法 | ||
1.一種位置均衡的目標群運動過程仿真計算方法,其特征在于,包括如下步驟:
步驟1,制定目標群描述文件;
步驟2,從接入的活動數據中找出符合步驟1中目標群描述的目標,以所述目標為主要基準點,計算其骨干活動過程,形成一條具有關鍵特征描述信息的運動軌跡;
步驟3,根據步驟1中的目標群描述文件和步驟2計算得到的運動航跡,計算目標群內其它目標的位置、姿態信息,并綜合考慮運動特征與上下文背景,設計計算因子,得出目標群內部各目標的合理信息和相互關系;
步驟4,根據步驟3的計算結果,進行二、三維仿真顯示;
步驟1包括:利用XML語言詳細描述目標群的基本情況,目標群的基本情況包括組成、數量、相對位置、類型、名稱,描述目標群的基本情況的XML語言的內容保存為目標群描述文件;
步驟2包括:
步驟2-1,定義當前時刻T,目標總的活動點數量Cnt,點信息描述向量Vector={Lng,Lat,Alt,Yaw,Pitch,Roll,T},Lng為經度,Lat為緯度,Alt為高度,Yaw為航向,Pitch為俯仰角,Roll為橫滾角,歷史點容器Vectors是成員均為Vector數據類型的數組;vCur為Vector類型的變量,用于記錄獲取到的位置和姿態;vPre為Vector類型的變量,用于記錄前一個點的位置和姿態;
步驟2-2,找到Vectors中距離T最近一個位置點Vectors[i]和前一個點Vectors[i-1],開始線性插值:
定義浮點數fMulti=(T-Vectors[i-1].T)/(Vectors[i].T-Vectors[i-1].T),
Vectors[i-1].T表示第i-1個點的時間;
定義插值經度vCur.Lng=Vectors[i-1].Lng+(Vectors[i].Lng-Vectors[i-1].Lng)*fMulti,
Vectors[i-1].Lng表示第i-1個點的經度;
定義插值緯度vCur.Lat=Vectors[i-1].Lat+(Vectors[i].Lat-Vectors[i-1].Lat)*fMulti,
定義插值高度vCur.Alt=Vectors[i-1].Alt+(Vectors[i].Alt-Vectors[i-1].Alt)*fMulti,
Vectors[i].Alt表示第i個點的高度;
定義浮點數k=180.0/3.1415926535897932384626433832795;
步驟2-3,定義Vector的類型變量vec,為實現主目標的姿態平滑,做如下計算:
航向角vec.Yaw=(cos(Vectos[i-1].Yaw*0.5)+cos(Vectos[i].Yaw*0.5))/2;
俯仰角vec.Pitch=(cos(Vectos[i-1].Pitch*0.5)+cos(Vectos[i].Pitch*0.5))/2;
橫滾角vec.Roll=(cos(Vectos[i-1].Roll*0.5)+cos(Vectos[i].Roll*0.5))/2;
當前點航向角vCur.Yaw=vec.Yaw*k;
當前點俯仰角vCur.Pitch=vec.Yitch*k;
當前點橫滾角vCur.Roll=vec.Roll*k;
Vectos[i].Yaw表示第i個點的航向角,Vectos[i].Pitch表示第i個點的俯仰角,Vectos[i].Roll表示第i個點的橫滾角;
步驟3包括:
定義圓周率PI=3.1415926535897932384626433832795;
定義地球半徑ER=6378137;
定義浮點數dLng=(vPre.Lng-vCur.Lng)*cos(vCur.Lat*PI/180.0);
定義浮點數dLat=vPre.Lat-vCur.Lat;
定義浮點數d0=ER*PI/180.0*sqrt(dLat*dLat+dLng*dLng),
vPre.Lng表示前一個點的經度,vPre.Lat表示前一個點的緯度,vCur.Lng表示當前點的經度,vCur.Lat表示當前點的緯度,sqrt為標準的開根號運算;
定義偏移描述信息Offset={xDif,yDif,zDif},xDif、yDif、zDif分別表示空間x、y、z三個坐標軸上的偏移,依次遍歷每個目標群成員,獲取其相對位置偏移和姿態偏移,記位置偏移為pOffset,記姿態偏移為gOffset,Vector類型的變量vMem用于記錄目標群內具體成員的位置和姿態信息;
定義浮點數k1=(d0-pOffset.yDif)/d0;
定義浮點數k2=pOffset.yDif/d0;
群成員的高度vMem.Alt=vPre.Alt*k2+vCur.Alt*k1;
群成員的經度vMem.Lng=vPre.Lng*k2+vCur*k1;
群成員的緯度vMem.Lat=vPre.Lat*k2+vCur.Lat*k1;
群成員的俯仰角vMem.Pitch=vPre.Pitch*k2+vCur.Pitch*k1;
群成員的橫滾角vMem.Roll=vPre.Roll*k2+vCur.Roll*k1;
vMem.Yaw=vCur.Yaw+k2*(vPre.Yaw-vCur.Yaw);
根據如下公式實現過程修正:
vMem.Yaw=vCur.Yaw+gOffset.Yaw+k2*vMem.Yaw;
vMem.Pitch=vCur.Yaw+gOffset.Pitch+k2*vMem.Pitch;
vMem.Roll=vCur.Yaw+gOffset.Roll+k2*vMem.Roll;
vMem.Alt+=pOffset.zDif;
vMem.Lng+=pOffset.xDif*sin((vMem.Yaw+90)*PI/180)/(ER*PI/180);
vMem.Lat+=pOffset.xDif*cos((vMem.Yaw+90)*PI/180)/(ER*PI/180);
其中,Cos表示余弦值,PI表示圓周率,ER表示地球半徑。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國電子科技集團公司第二十八研究所,未經中國電子科技集團公司第二十八研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010542613.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種室溫疲勞試驗時試樣冷卻裝置
- 下一篇:一種建筑外墻清潔系統





