一種航天器測量盲區補彈道方法
【技術領域】
[0001] 本發明設及航天測控速度時間彈道的處理方法,利用有限狀態機在有測量數據和 無測量數據彈道之間的快速動態控制,根據盲區前最后測量的彈道,推算測量盲區的彈道。 通過該方法使整條全程彈道平滑連續,顯著提升了彈道顯示效果。
【背景技術】
[0002] 在航天器發射任務中,由于航區較長,很難實現對其進行不間斷跟蹤,導致速度時 間彈道在測量盲區時沒有數據可供顯示,同時在信號消失和信號捕獲時,由于信號的不穩 定性,可能會導致數據時有時無。其結果就是數據中間斷裂,且在斷裂點附近數據呈現不規 律間斷點,極大的影響顯示效果和美觀性。
【發明內容】
[0003] 本發明的目的是根據測量盲區彈道處理的不足,造成現實效果差。本發明根據航 天器在測量盲區時,正好處于外大氣層無動力飛行段,使得補彈道的計算模型大大簡化,同 時利用測量設備布設特點和飛行時的時間驅動特性,制定合適的補彈道策略,可W實現對 航天器測量盲區彈道的補償。
[0004] 為了實現上述目的本發明采用的技術方案是:
[0005] 1)建立測量盲區彈道數學模型
[0006] 在航天器飛行過程中,是先進入無動力飛行段后再進入測量盲區。航天器在無動 力飛行段,一般已出大氣層。假設航天器只受引力影響,將補彈道數學模型簡化為X = X〇+Vt 的一階模型;當航天器進入無動力飛行段后,采用一FIFO(先進先出)隊列累計最近30個點 的速度數據和對應的飛行時間;當進入盲區后,基于所述累計的30個點,利用一階多項式最 小二乘算法外推盲區的速度,公式如下:
[0008] 其中帕。)^ = 0,1,...,口}為口階正交多項式簇,口^1)表示第1個采樣時刻第非介 正交多項式的值,^11采樣間隔為11的第1個速度測量數據,11為擬合段落的測量數據點數(本 發明中為30),與為外推盲區的速度數據期望值,h為采樣間隔(本發明中為0.1) J取經驗值 3。
[0009] 正交多項式簇按照如下公式計算:
[0011] 2)采用有限狀態機控制是否采用步驟I)外推盲區的速度。
[0012] 其中基于有限狀態機的狀態控制過程如下:
[0013] 由于飛行時的時間驅動特性,為保證數據顯示的正確性,在每一個周期內都需要 判斷是否滿足補彈道條件,過程較復雜,邊界條件較多。通過使用有限狀態機,將整個彈道 顯示分解為4種狀態,步驟如下:
[0014] 定義所有狀態集的集合A= (X,I,0,N),其中:
[0015] X:是航天器當前所處狀態的集合,本方法將狀態定義為SO,Sl,S2,S3四個狀態,其 中:
[0016] SO:初始狀態,點火起飛之前所處狀態;
[0017] Sl:正常飛行狀態,有設備跟蹤,不需要彈道修補,;
[0018] S2:進入無動力段,數據累積狀態,并且此時有測控數據,可W進行數據累積;
[0019] S3:彈道修補狀態,進入測量盲區,數據停止,開始修補彈道;
[0020] I:是有限狀態機入事件集合,代表指示和確認的一類事件,本發明中事件包括eO, 61,62,63,64,其中:
[0021 ] eO:初始化帖達到;
[0022] e 1:航天器起飛,現雌數據達到;
[0023] e2:進入滑行段;
[0024] e3:進入測量盲區超過2s時間;
[0025] e4:航天器出測量盲區;
[0026] 0:是有限狀態機中的輸出事件集合,指在動作函數中建立并發出的請求和回復類 事件;
[0027] N:是所有能推動狀態轉移的動作函數,在本發明中存在N: I XX^O,X的映射關系;
[0028] 當火箭處于某個狀態收到事件消息時,有限狀態機工作的情況可描述為:輸出的 彈道數據在輸入的激勵下,根據判據轉換到下一個狀態,用W回復收到的事件消息(圖3)。
[0029] 使用本發明專利實現的補彈道方法,邏輯清晰,禪合性低,且利于后期根據用戶需 求,隨意增加邊界條件。未采用補彈道算法和采用本發明的方法進行彈道的效果對比,如圖 1和圖2所示。
【附圖說明】
[0030] 圖1未采用補彈道算法的效果圖;
[0031] 圖2采用本方法補彈道后的效果圖;
[0032] 圖3有限狀態機狀態轉移圖;
[0033] 圖4有限狀態機面向對象實現類圖。
【具體實施方式】
[0034] 1、狀態分解
[0035] 根據本發明的方法,將補彈道的過程分解為4種狀態。形成表1所示的狀態變化表, 轉換條件表示當前狀態在滿足轉換條件后,自動轉入下一狀態,如果不滿足,則保持當前狀 態。
[0038] 狀態定義后,在各自的狀態內對輸入激勵進行處理,在滿足轉換條件后跳轉到下 一狀態。狀態與狀態之間形成閉環,在狀態機的管理下自動執行,狀態轉換關系如圖4所示, 每個狀態內均有數據處理結果輸出。
[0039] 2、滑行段數據累計
[0040] 1)定義數據結構體和相關變量 struct. SLPoinl { float time.';:
[0041] 'float speed: } Std: ;1 ist(st.Poi打t> history貼ta;
[0042] 2)保存當前數據 if (hi StoryData. sizeO <二孤) //小于30個點,進斤數據累計 hist'oryD過ta, push-b過ck(data) el's 白
[0043] { //大于30個點,進巧數據累計同時,移除第-一個巧 'historFD過.ta. pus'h_b'ac.k. (dat盤); historFData. pop front (): }
[0044] 3、計算數學模型系數 double Qupt (int i, Int j)
[0045] {
[0046] .if'(j==0) :re化rn I.日.; else if(J==T) { double 化二 '(mn+l.)'杏mh/2. 0; 'double ti 二.I舉田h; retur打 ti-tp';' el Se lot k = j-1; in't k'2 = k她: double h2 = ,mb*mh; double 打2 =' m'n材肌; return G'uptCi,I)杳Gupt (i, k) - k2*(n2-k2)噸2端叩t(i,k-l)/4. 0/(4. , } } double Guxs (int j'_, prS jwcRancIomError & a) 過0.加 l,e S=O, 0.; for (inI 1=1 ; i<='m打;i++) 廣 'I S +二 Gupt (i, j)啦過; .do址Ie X 二 I...Q;. for(int I=-J; K=j; 1++) { I 半二(mn-1); ) double fz 二 mcj[2本j]*mcj[2奪 1+1]味苗': double fm 二 pow(mcj[j],4)半 X '本 pow(rah, 2*j): return fz / fm; double GunliQnt p, pr'SjwcR島ndomErr口r & 訝,ijvt I) {
[0047] Q-ASSERT (p〈nm-l); double S = 〇:.0;: fQr(int j:='0; j<=p;: J++) { S += Gnxs (j,泣)舉 Gupt (i* J): } retur打 s;
[004引其中double Gupt(int i,int j);/7第i個采樣時刻,第j階正交多項式的值,i = 1,2,. . .,n, j = 0,l,. . . ,P(階)
[0049] double Guxs(int j ,prSjwcRandomError&a);//返回第j階的最小二乘多項式系 數,a為測量序列,^' = 〇,1,...,口(階)
[(K)加 ]double GunKint p,prSjwcRandomE;r;ror&a,int i);//返回測量序列a的第i點的 擬合值,P為義用的擬合階數,曰為測重序列,j二0,1,... ,P(階),i二1,2,... ,n
[0051] 4、有限狀態機控制實現
[0052] 有限狀態采用面對象的方式構建,由狀態基類派生成4個狀態實現,然后交給狀態 機進行管理,狀態機和狀態類定義如下:
[0053] 1)狀態機定義
[0054] template<class entity_type>
[0化5] class Sl:ateMachine
[0化6] {
[0化7] private:
[005引 //變量定義
[0059] public:
[0060] //更新狀態
[0061] void update();
[0062] //改變狀態
[0063] void chan邑estate(State<entity_type〉*pNewState);
[0064] //返回到之前狀態
[0065] void revertToPreviousState();
[0066] //判斷有限狀態機是否處于某個狀態
[0067] bool isInState(const State<entity_type>&st);
[00側};
[0069] 2)狀態類的定義
[0070] Icraplalo 〈class cnlily_lypc> class Stale public: /7初始化狀態 virtual void Tn11(entity type杏)二0; /7進入該狀態 。 virtual vo i d En tor(on Ii ty_iypc杳)二0; /y執行該狀態 virtual void Execute (entity type求.)二0: /7退出該狀態 virtual void Exi I (entity Iype奉)二0;
【主權項】
1. 一種航天器測量盲區補彈道方法,其特征在于,包括: 1) 建立測量盲區彈道數學模型在航天器無動力飛行段,假設航天器只受引力影響,將 補彈道數學模型簡化為一階模型;當航天器進入無動力飛行段后,采用一FIFO隊列累計最 近30個點的速度數據和對應的飛行時間;當進入盲區后,基于所述累計的30個點,采用最小 二乘法外推盲區的速度; 2) 采用有限狀態機控制是否采用步驟1)外推盲區的速度。2. 根據權利要求1所述一種航天器測量盲區補彈道方法,其特征在于:所述有限狀態機 過程為將整個彈道顯示分解為4種狀態,步驟如下: 定義集合4=〇,1,0少),其中: X:是航天器當前所處狀態的集合,將狀態定義為SO,SI,S2,S3四個狀態,其中: SO:初始狀態,點火起飛之前所處狀態; Sl:正常飛行狀態,有設備跟蹤,不需要彈道修補; S2:進入無動力段,數據累積狀態,并且此時有測控數據,可以進行數據累積; S3:彈道修補狀態,進入測量盲區,數據停止,開始修補彈道; I:是有限狀態機中的輸入事件集合,代表指示和確認的一類事件,本文中事件包括e〇, el,〇2,63,64,其中: e0:初始化幀達到; e 1:航天器起飛,測控數據達到; e2:進入滑行段; e3:進入測量盲區超過2s時間; e4:航天器出測量盲區; 〇:是有限狀態機中的輸出事件集合,指在動作函數中建立并發出的請求和回復類事 件; N:是系統中所有能推動狀態轉移的動作函數,存在N: I X X-0,X的映射關系。3. 根據權利要求1或2所述一種航天器測量盲區補彈道方法,其特征在于:所述最小二 乘法外推盲區的速度的公式如下:其中{pj(i),j = 〇,l,. . .,p}為P階正交多項式簇,Pj(i)表示第i個采樣時刻第j階正交 多項式的值,a,采樣間隔為h的第i個速度測量數據,η為擬合段落的測量數據點數,%:為外 推盲區的速度數據期望值,h為采樣間隔,j為經驗值。
【專利摘要】本發明公開了一種航天器測量盲區補彈道方法,利用有限狀態機在有測量數據和無測量數據彈道之間的快速動態控制,根據盲區前最后測量的彈道,推算測量盲區彈道的速度。通過該方法使整條全程彈道平滑連續,顯著提升了彈道顯示效果。使用本發明專利實現的補彈道方法,邏輯清晰,耦合性低,且利于后期根據用戶需求,隨意增加邊界條件。
【IPC分類】G06F17/50
【公開號】CN105528488
【申請號】CN201510923355
【發明人】彭漁露, 何孝港, 陳錦平, 劉劍鋒, 王百彥, 王晟, 崔健, 李超, 楊曉波, 羅啟富
【申請人】中國人民解放軍63791部隊
【公開日】2016年4月27日
【申請日】2015年12月11日