孫君亮,李 磊,童 艷
(解放軍91550部隊,遼寧 大連 116023)
在飛行器飛行試驗過程中,發(fā)射零點T0是整個測控系統(tǒng)啟動運行的基準點,對飛行器飛行安全和實時處理、事后研究分析影響巨大。如果沒有發(fā)射零點,或發(fā)射零點處理有誤,則凡是與起飛時間有關(guān)的系統(tǒng)和設(shè)備就不能正常工作[1],從而導(dǎo)致飛行試驗失控,嚴重時還有可能帶來災(zāi)難性后果。特別是在多發(fā)飛行器連射飛行試驗任務(wù)中,每一發(fā)飛行器都需要對應(yīng)一個發(fā)射零點,任何一個測控目標的發(fā)射零點出現(xiàn)問題都會嚴重影響試驗任務(wù)的順利進行。
實時測控軟件作為測控系統(tǒng)中指控系統(tǒng)的重要組成部分,是一個規(guī)模龐大的實時控制與處理系統(tǒng),其數(shù)十萬甚至幾百萬條指令程序完全依靠程序員設(shè)計、編寫,存在錯誤的可能性極大。雖然,實時測控軟件在執(zhí)行任務(wù)之前,經(jīng)過嚴格測試、評審評測和試驗場驗收,層層把關(guān),但也不可能百分之百地將軟件故障或漏洞全部排除[2]。任務(wù)中一旦由于某些非??量痰奈粗蛩貙?dǎo)致測控軟件工作異常,甚至“死機”,測控軟件就必須重新啟動運行,這將會造成初始的發(fā)射零點丟失,也必將會給整個測控系統(tǒng)帶來混亂。針對多發(fā)飛行器連射飛行試驗任務(wù)中發(fā)射零點的形成機制,本文對實時測控軟件中發(fā)射零點的實時處理方法進行了研究,并以雙發(fā)飛行器連射飛行試驗為例,提出了一種實時測控軟件重啟后重新獲得多測控目標正確發(fā)射零點的應(yīng)急處理方法,以提高發(fā)射零點實時處理的可靠性。
飛行器飛行試驗是一個不可逆轉(zhuǎn)的過程,代價昂貴,不允許多次重復(fù)試飛,如果不能保證試驗的安全,或者沒有獲取試驗數(shù)據(jù)就會造成不可挽回的重大損失。在實時測控軟件系統(tǒng)設(shè)計時要充分考慮功能的可行性和系統(tǒng)的可靠性,必須保證指控系統(tǒng)在試驗任務(wù)中一次性成功并圓滿完成任務(wù)[3],所以發(fā)射零點實時處理的準確性是衡量實時測控軟件性能的重要指標之一。因此,為了提高發(fā)射零點的可靠性指標,實際工程中測控系統(tǒng)對發(fā)射零點T0采用了兩級冗余設(shè)計:數(shù)字T0、發(fā)射信號FS。
1)數(shù)字T0:試驗任務(wù)中,當試驗指揮員下達飛行器發(fā)射口令時,發(fā)射陣地的飛行器發(fā)控臺操作手立刻按下發(fā)射按鈕并形成飛行器發(fā)射點火信號。該發(fā)射點火信號傳送到發(fā)射陣地上的T0控制臺,由T0控制臺根據(jù)當前時統(tǒng)時間形成一個內(nèi)容為北京絕對時的數(shù)字T0,并加工形成數(shù)字T0幀通過通信線路傳送到指控系統(tǒng)的實時測控軟件系統(tǒng)。
2)發(fā)射信號FS:除了形成數(shù)字T0外,T0控制臺還立刻觸發(fā)產(chǎn)生另一個脈沖信號即發(fā)射信號FS,該信號通過另一條特定的通信線路傳到實時測控軟件系統(tǒng)中。發(fā)射信號FS的形成機制是:在飛行器發(fā)射時,當飛行器與發(fā)射裝置發(fā)生相對移動致使飛行器上脫落插頭脫離的瞬間,地面(發(fā)控)測量脫落開關(guān)觸點閉合,形成動觸點接通信號,此信號通過電纜傳到時統(tǒng)中心站,由時統(tǒng)中心站產(chǎn)生一定時間寬度的起飛脈沖信號通過數(shù)據(jù)傳輸通道傳送到指控系統(tǒng),其脈沖前沿作為時統(tǒng)零點[4]。
實際任務(wù)過程中,常常因為某些原因?qū)е轮缚叵到y(tǒng)不能及時正常收到數(shù)字T0或發(fā)射信號FS,或者收到的數(shù)字T0或發(fā)射信號FS經(jīng)過合理性驗證和正確性判斷是錯誤的而不能使用。這樣實時測控軟件啟動運行后因為沒有了發(fā)射零點而不能正常進行實時數(shù)據(jù)處理工作,導(dǎo)致整個測控系統(tǒng)也無法正常工作。為了保證試驗任務(wù)的順利進行,指控系統(tǒng)對發(fā)射零點采用了三級冗余設(shè)計,即實時測控軟件在原有基礎(chǔ)上進行了補充,增加了一個“鍵補T0”。
鍵補T0的形成機制是:實時測控軟件系統(tǒng)操作員聽到試驗指揮員下達發(fā)射口令時,在實時測控軟件系統(tǒng)操作界面上同時點擊一個“發(fā)射鍵”按鈕,而點擊按鈕時的當前時統(tǒng)時間(當前北京絕對時)就稱為“鍵補T0”。
點擊“發(fā)射鍵”按鈕有兩個作用:一是在沒有收到數(shù)字T0或發(fā)射信號FS時,用鍵補T0作為發(fā)射零點的應(yīng)急補充,從而確保解決了發(fā)射零點的有無問題;二是為實時測控軟件系統(tǒng)執(zhí)行飛行任務(wù)提供重要基準點,只有發(fā)射零點產(chǎn)生了,實時測控軟件才能夠開始執(zhí)行飛行器起飛后的實時數(shù)據(jù)處理任務(wù)。
雖然發(fā)射零點T0采用了三級冗余設(shè)計,但最終實時測控軟件只能采納其中一個作為發(fā)射零點,采納原則就是在確保能夠形成發(fā)射零點的基礎(chǔ)上,盡可能保證其精度。即發(fā)射零點的選擇是按照精度的高低順序來進行的。
實際工程中,數(shù)字T0傳輸速度快、時延小、精度高,實時測控軟件收到后經(jīng)過簡單的合理性驗證和正確性判斷就可以直接使用。
由于發(fā)射陣地的T0控制臺到指控中心存在著傳輸時延,因此實時測控軟件接收到發(fā)射信號時需要對其傳輸時延進行修正。該傳輸時延是個統(tǒng)計值,是實時測控軟件接收到發(fā)射信號時的時統(tǒng)時間與數(shù)字T0時間差值的統(tǒng)計值,需要在任務(wù)前多次進行統(tǒng)計而成。當實時測控軟件收到該發(fā)射信號時,對其進行合理性驗證和正確性判斷,并用接收到發(fā)射信號時的時統(tǒng)時間減去傳輸時延,就得到形成發(fā)射信號FS的準確時間,該時間值可作為發(fā)射零點T0。由于發(fā)射信號FS存在較大時延,而且時延修正值是個統(tǒng)計值,存在一定的誤差,所以精度不如數(shù)字T0高。
因為鍵補T0是由實時測控軟件系統(tǒng)操作員聽口令按下發(fā)射鍵按鈕時的北京絕對時形成的,雖然能夠很快得到該時間值,但受人工因素等影響,精度不如數(shù)字T0和發(fā)射信號FS高。
因此,實時測控軟件系統(tǒng)根據(jù)三級發(fā)射零點精度的高低順序,將數(shù)字T0的使用優(yōu)先級排在第一位,發(fā)射信號FS排第二,鍵補T0設(shè)置為最低。
當操作員在系統(tǒng)操作界面上人工點擊“發(fā)射鍵”按鈕形成鍵補T0后,實時測控軟件同時開始計時并在規(guī)定的等待時間內(nèi)等待數(shù)字T0和發(fā)射信號FS的到來。等待時間是事先根據(jù)工程經(jīng)驗設(shè)定的,假定為5s。收到數(shù)字T0或發(fā)射信號FS后,對其進行合理性驗證和正確性判斷。只有在一個合理的時間范圍內(nèi)收到的數(shù)字T0或發(fā)射信號FS才可能是正確的,如果又通過了時間的正確性判斷,則認為收到的數(shù)字T0或發(fā)射信號FS是可以使用的。
假定收到的數(shù)字T0或發(fā)射信號FS均通過了合理性驗證和正確性判斷,則發(fā)射零點T0的實時處理方法如下:
1)在規(guī)定時間5s內(nèi)如果先收到數(shù)字T0,實時測控軟件立刻采納數(shù)字T0作為發(fā)射零點T0;
2)當在規(guī)定時間5s內(nèi)沒收到數(shù)字T0而收到了發(fā)射信號FS,測控軟件則采納發(fā)射信號FS作為發(fā)射零點T0;
3)當在規(guī)定時間5s內(nèi)數(shù)字T0和發(fā)射信號FS都收到了,但發(fā)射信號FS又是先于數(shù)字T0收到,此種情況下為了盡早啟動實時測控軟件進行實時數(shù)據(jù)處理等工作,實時測控軟件中再設(shè)置一個發(fā)射信號FS的等待時間,該等待時間小于前面設(shè)置的5s等待時間,假定為3s。如果在3s內(nèi)收到了發(fā)射信號FS而沒有收到數(shù)字T0,則實時測控軟件就采納該發(fā)射信號FS作為發(fā)射零點T0;當然,如果在3s內(nèi)先收到了數(shù)字T0,則實時測控軟件就先采納數(shù)字T0作為發(fā)射零點T0;
4)在規(guī)定時間5s內(nèi)數(shù)字T0和發(fā)射信號FS都沒有收到,實時測控軟件則采納鍵補T0作為發(fā)射零點T0。
假定收到的數(shù)字T0或發(fā)射信號FS均通過了合理性驗證和正確性判斷,發(fā)射零點T0的實時處理方法如圖1所示。
雙發(fā)連射試驗任務(wù)中,發(fā)射陣地將向指控系統(tǒng)傳送兩發(fā)測控目標的數(shù)字T0和發(fā)射信號FS,即兩個數(shù)字T0和兩個發(fā)射信號FS。為了獲取兩個測控目標的鍵補T0,實時測控軟件系統(tǒng)操作界面上設(shè)計“發(fā)射鍵1”和“發(fā)射鍵2”兩個按鈕。當操作員聽到試驗指揮員下達目標1的發(fā)射口令時點擊“發(fā)射鍵1”按鈕,當聽到下達目標2的發(fā)射口令時則點擊“發(fā)射鍵2”按鈕,從而分別形成第一和第二發(fā)飛行器的鍵補T0,并控制實時測控軟件進行不同測控目標的實時數(shù)據(jù)處理。
對于雙發(fā)測控目標發(fā)射零點T0的實時處理方法,是與執(zhí)行單發(fā)飛行試驗任務(wù)的發(fā)射零點類似的,分別處理各自的發(fā)射零點即可。
據(jù)前所述,只有操作員點擊了操作界面上的發(fā)射鍵按鈕,才能形成測控目標對應(yīng)的鍵補T0,并且啟動實時測控軟件運行不同測控目標的數(shù)據(jù)處理。所以當實時測控軟件因重大軟件故障重新啟動后,操作員就必須再點擊操作界面上的發(fā)射鍵按鈕才能夠繼續(xù)進行實時數(shù)據(jù)處理。但重啟后形成的鍵補T0同原來的相比是一個新值,由于此時發(fā)射陣地的T0控制臺不再向指控中心發(fā)送數(shù)字T0和發(fā)射信號FS,所以重啟軟件后采用的發(fā)射零點就是新的鍵補T0。發(fā)射零點的變化勢必給整個測控系統(tǒng)的正常運行帶來重大影響,而如果保持原有發(fā)射零點不變,則影響就會小一些。
為了做到發(fā)射零點不變,本文采用了一種應(yīng)急處理方法,即在實時測控軟件異常前將兩個測控目標的發(fā)射零點保存到文件中,當軟件重啟后再從文件中讀取出來。為了區(qū)分軟件的正常和異常工作狀態(tài),操作界面上設(shè)計“實射”和“應(yīng)急實射”兩個按鈕加以區(qū)分。在軟件正常運行情況下點擊“實射”按鈕后啟動正常的實射作業(yè),聽口令后點擊“發(fā)射鍵1”和“發(fā)射鍵2”兩個發(fā)射鍵按鈕分別執(zhí)行雙發(fā)測控目標的數(shù)據(jù)處理,同時也將兩個形成的發(fā)射零點T0保存下來。如果出現(xiàn)了異常情況,軟件重啟后,操作員則點擊“應(yīng)急實射”按鈕后啟動實射作業(yè),從文件中讀取保存的兩個發(fā)射零點繼續(xù)進行雙發(fā)測控目標的數(shù)據(jù)處理。為了節(jié)省操作步驟、提高工作效率,在操作上進行了簡化,即點擊了“應(yīng)急實射”按鈕后不需要再點擊“發(fā)射鍵1”和“發(fā)射鍵2”兩個按鈕就能夠立刻啟動執(zhí)行實射作業(yè),這樣設(shè)計能夠最大程度地避免在緊張的工作狀態(tài)下因系統(tǒng)狀態(tài)切換可能造成其它的誤操作。
雙發(fā)測控目標發(fā)射零點T0應(yīng)急處理方法的偽代碼如下:
1)第一發(fā)發(fā)射零點T0實時處理方法:
if(f-T0-MB1==0){//目標1發(fā)射零點沒形成
//a.5s內(nèi)數(shù)字T0先到達:
if((在按下發(fā)射鍵1開始的5s范圍內(nèi))
&&(數(shù)字T0通過時間合理性正確性判斷))
{//數(shù)字T0按時接收,時間值為T0-SZ
T0-MB1=T0-SZ;//數(shù)字T0為發(fā)射零點
n-T0-MB1=1;//發(fā)射零點使用標志,1:用數(shù)字T0;2:用發(fā)射信號FS;3:用鍵補T0
f-T0-MB1=1;//目標1的發(fā)射零點有效標志,1:有效;0:無效
}
//b.若3s內(nèi)無數(shù)字T0而有發(fā)射信號,則使用發(fā)射信號:
if((n-T0-MB1!=1)&&(f-FS-MB1==1)//沒收到數(shù)字T0,而收到發(fā)射信號
&&(按下發(fā)射鍵1開始3s內(nèi)無數(shù)字T0而有發(fā)射信號)
&&(發(fā)射信號數(shù)字T0通過時間合理性正確性判斷)){
T0-MB1=T0-FS+發(fā)射信號修正值;//使用發(fā)射信號時間T0-FS作為發(fā)射零點
n-T0-MB1=2;//發(fā)射零點標志,2:FS
f-T0-MB1=1;//目標1的發(fā)射零點有效
}
//c.若5s內(nèi)數(shù)字T0和發(fā)射信號FS都沒有到達,則采用鍵補T0
if((n-T0-MB1!=1)&& (n-T0-MB1!=2)
&&(f-JBT0-MB1==1)//按下了發(fā)射鍵1,鍵補T0標志有效
&&(按下發(fā)射鍵1開始5s內(nèi))){
T0-MB1=T0-JB;//使用鍵補時間T0-JB作為發(fā)射零點
n-T0-MB1=3;//發(fā)射零點標志,3:鍵補T0
f-T0-MB1=1;//目標1的發(fā)射零點有效
}
}
2)第二發(fā)發(fā)射零點T0實時處理方法:
if(f-T0-MB2==0){//目標2的發(fā)射零點沒形成…//處理過程同第一發(fā)類似
}
3)保存發(fā)射零點T0到文件中:
if(f-YJSS==0){//正常實射作業(yè)
if(f-T0-MB1==1){
…//保存目標1的發(fā)射零點T0
}
if(f-T0-MB2==1){
…//保存目標2的發(fā)射零點T0
}
}
4)若是應(yīng)急實射,則讀文件中的發(fā)射零點:
if(f-YJSS){
T0-YJ-MB1=…;//讀文件中的發(fā)射零點1
T0-YJ-MB2=…;//讀文件中的發(fā)射零點2
T0-MB1=T0-YJ-MB1;//目標1的發(fā)射零點
T0-MB2=T0-YJ-MB2;//目標2的發(fā)射零點
n-T0-MB1=3;//目標1的發(fā)射零點標志
n-T0-MB2=3;//目標2的發(fā)射零點標志
f-T0-MB1=1;//目標1的發(fā)射零點有效
f-T0-MB2=1;//目標2的發(fā)射零點有效
}
發(fā)射零點T0應(yīng)急處理方法如圖2所示。
圖2 發(fā)射零點T0應(yīng)急處理方法
針對飛行器試驗任務(wù)特點,本文設(shè)計了一種實時測控軟件重啟后通過讀取保存在文件中的發(fā)射零點而重新獲得多測控目標正確發(fā)射零點的應(yīng)急處理方法。該方法有3個特點:一是能夠及時形成發(fā)射零點T0,保證了實時測控軟件系統(tǒng)盡早進行測控數(shù)據(jù)實時處理;二是盡可能為整個測控系統(tǒng)輸出高精度的發(fā)射零點,使得實時數(shù)據(jù)處理精度得到保證;三是發(fā)射零點的三級冗余設(shè)計確保了多測控目標的發(fā)射零點都能夠形成,為整個測控系統(tǒng)正常運行提供了保障。該方法不僅解決了實時測控軟件系統(tǒng)因某種原因收不到發(fā)射陣地傳來發(fā)射零點而導(dǎo)致無法進行實時數(shù)據(jù)處理的問題,而且也能夠解決在試驗過程中一旦實時測控軟件系統(tǒng)因重大軟件故障導(dǎo)致初始發(fā)射零點丟失而影響試驗任務(wù)順利進行的問題,在工程上具有重要的應(yīng)用價值。
[1] 黃學(xué)德.導(dǎo)彈測控系統(tǒng)[M].北京:國防工業(yè)出版社,2000.
[2] 孫君亮,于古勝,李忠武.靶場指控及顯示系統(tǒng)發(fā)展趨勢分析[J].指揮控制與仿真,2006,28(4):99-102.
[3] 鄭宗漢.實時系統(tǒng)軟件基礎(chǔ)[M].北京:清華大學(xué)出版社,2003.
[4] 楊志群.導(dǎo)彈試驗遙外測零點的分析與修正[J].四川兵工學(xué)報,2014,35(3):5-7.