,,,
(空間物理重點實驗室,北京 100076)
現在新型號普遍采用高碼率測量體制,參數多、數據量大,人工數據判讀、編寫判讀報告的工作量大、判讀時間長、誤判與漏判風險增加。
尤其是姿控與制導專業,由于負責判讀的參數多,判讀工作量更大,該問題更加明顯與突出,已成為影響數據判讀效率的瓶頸。傳統的判讀方式為人工判讀,判據多靠自然語言進行描述,如何將判據描述精確轉換為計算機語言描述,是實現自動判讀的一個關鍵技術,只有使用計算機描述語言對判據進行了定義,才有可能實現全系統參數的自動判讀。針對飛行器測試數據量大,處理方法復雜的問題,開展了海量測試數據處理方法、數據自動判讀算法研究工作,提升了型號自動化測試水平。本文提出的基于模型驅動設計的數據判讀系統用于對各類試驗數據的管理、判讀與分析。基于網絡實現測試數據的查詢、瀏覽、分析、判讀和報告生成等功能。軟件支持自動判讀與人工判讀兩種模式,自動判讀模式下,通過預先設置好的判據實現全部參數的自動判讀與自動報告生成,以提高判讀效率,減少或避免漏判及誤判。
在建模語言中,用來標識對象名稱(包括變量、函數)的有效字符序列稱為標識符。在AIPScript建模語言中,標識符就是一個對象的名字[1]。
規定標識符由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線。在AIPScript中,有2類標識符:
1)關鍵字。AIPScript語言中規定了32個關鍵字,如Diff, CM,CP,Statistics等,它們有特定的用途和含義,不能用作變量名。
2)系統預定義的標識符。如系統提供的庫函數的名稱sin,cos等。AIPScript允許它們另作它用,但這就會使它們失去原有作用,容易產生混亂,建議不要把它們用來作變量名。
判據語法設計分為兩類,分別為緩變判據語法和指令判據語法。
其中緩變判據語法共包括待判參數、起始時間、終止時間、處理公式、判據公式、正向誤差及負向誤差等7部分,自動判讀時,將判據公式的計算結果與處理公式的計算結果進行比對。處理公式部分可以省略,如下圖所示,當處理公式省略時,判據公式的計算結果直接與待判參數的值進行比對。
指令判據基本語法共包括待判指令、基準指令、相對時間、正向誤差及負向誤差等共5部分,表示待判指令與基準指令的差值應該等于相對時間的值,誤差在正負向誤差范圍之內。其中基準指令部分可以省略,當基準指令省略時,直接將待判指令的時間值與相對時間值進行比較。
在AIPScript建模語言中,表達式設計是構成語句的基本單元,時段、處理公式、判據公式、誤差等均用到表達式。
1) 指令動作時間表達式設計:指令動作時間表達式用于計算指令參數發生某次動作時的時間值,其一般格式為“參數代號 開關符號 發生次序”,其中,參數代號為指令的代號,開關符號表示指令的開關動作,“#”表示開,“!”表示關,發生次序為正整數,表示指令動作的序號,即指令的第幾次動作。如下表所示。
表1 指令動作時間表達式舉例
2) 差分表達式設計:差分表達式用于計算輸入表達式當前點與前某個點的差值,其一般形式為“diff(輸入表達式,補償量表達式,補償方法標識,間隔點數)”,其中補償量表達式表示一個數值量,當當前點值比前一點值小時,根據該補償量對差值進行補償;補償方法標識用于區分不同的補償方法,包括“less”,“equal”,“min”3種方法。
在AIPScript建模語言中,利用標識符、判據語法和表達式,組合成AIPScript建模語言中的判據語法。其中本文提出并設計了包括固定上下判據設計、參考參數判據設計、多參數運算判據設計、多時段判據設計、指令型判據設計、差分運算判據設計、丟幀分析判據設計、關鍵點類型判據設計、變化點類型判據設計、統計值判據設計、峰峰值判據設計和一致性判據設計,共12類判據。
1)固定上下限判據:固定值算法的判據為一個常量,一般用于電壓、溫度等物理量的判讀。下面的判據給出了溫度參數W04bglq的理論值為293,上下限分別為20的判據描述。
P("W04bglq"):{-600,-200} {293} 20 20;
2)參考參數判據:參考參數算法的判據為另一個參數,多用于表征同一物理意義的不同參數的比對。下例給出了模擬量采集與數字量采集的同一數據的判據描述。參數01T01ISA1FK1_B1的判據為參數01R01ISA1JD_B1。
P("01T01ISA1FK1_B1"):
{"Tqf3"↑1,"ZCT-1_B1"↑1}
{P("01R01ISA1JD_B1")}0.1 0.1;
3)多參數運算判據:多參數運算判據,多參數運算判據將多個參數進行數學運算后的結果作為待判參數的理論值。
P("21R01S_Ny_B1"):
{"Tqf3"↑1,"ZCT-1_B1"↑1}
{(P("21R01S_Ny1_B1")+P("21R01S_Ny2_B1")+P("21R01S_Nz3_B1"))/3}0.1 0.1;
4)多時段判據:多時段判據,多時段判讀語句的一般形式為:
待判參數:{起始時間1,結束時間1} {處理公式1} {判據公式1} 正誤差 負誤差
| {起始時間2,結束時間2} {處理公式2} {判據公式2} 正誤差 負誤差
| …
| {起始時間n,結束時間n} {處理公式n} {判據公式n} 正誤差 負誤差;
各時段內,通過比較處理公式與判據公式的計算結果進行判斷,處理公式部分可省略,省略時,直接比較待判參數值與判據公式的計算結果。起始時間與結束時間可省略,起始時間省略時,取待判參數第一個點對應的時間作為起始時間,結束時間省略時,取待判參數最后一個點對應的時間作為結束時間。如:
P("U40z") : {,Tayz 1 -0.1 } {0} 0.2 0.1 | {Tayz 1 + 0.1 ,} {1.96} 0.2 0.2;
5) 指令型判據:指令判據設計的一般形式為“待判指令動作時間表達式 基準指令動作時間表達式 理論時間表達式 正誤差 負誤差 時間標識符”,其中基準指令動作時間表達式可省略,省略時,用待判指令動作時間與理論時間比較,標識符包括yctime與kztime兩個,分別表示取遙測時間與取控制時間,默認取遙測時間。如:
"DGL1" 1 {1} 0.02 0.02 kztime;
"DGL1"!2 "DGL1" 1 {0.2} 0.02 0.02 kztime;
"DGL2" 1 "DGL1" 1 {0} 0.02 0.02 kztime;
"DGL2"!2 "DGL1" 1 {0.2} 0.02 0.02 kztime;
"DGL3" 1 "DGL1" 1 {0} 0.02 0.02 kztime;
"DGL3"!2 "DGL1" 1 {0.2} 0.02 0.02 kztime;
6) 差分運算判據:差分運算判據設計,實現計算待判參數的差分,將計算結果與給定的值進行比較,下例給出參數21R01G_Ngx1_B1的差分判據描述。Diff運算符標識差分運算,Diff函數中第一個參數標識計算差分的參數,第二個參數標識差分計算的點間隔,50表示當前點與當前點的前50個點作差值,第三個參數標識參數的溢出補償;函數T標識取參數當前點或相對當前點指定位置點的時間;0.002674標識差分計算的理論值。
P("21R01G_Ngx1_B1"):
{,}
{
(diff("21R01G_Ngx1_B1", 50, 1.6))/
(T("21R01G_Ngx1_B1"[0])-T("21R01G_Ngx1_B1"[-50]))
}
{0.002674}
0.1 0.1;
7) 丟幀分析判據:丟幀分析判據是差分計算的一個特例,特定用于幀計數參數,判斷每個幀計數和前一個幀計數之間的差值是否為1,以此確認是否有丟幀情況,其中待判參數一般配置為幀計數,比如frameCount,判讀時間起始一般不設,默認為全時間段判讀,Diff("frameCount ", 1, 65536)表示每一個數據點都和前一個數據點直接做差,如果差值小于0則加上65536后再進行計算,理論值均為1,表示不丟幀,如果差值大于1,則表示有丟幀情況發生。
P("frameCount" ):
{,}
{(diff("frameCount", 1, 65536))}
{1} 0.1 0.1;
8) 關鍵點類型判據:關鍵點類型判據設計用于對待判參數的指定時間點的值進行判讀的判據描述。下例給出參數21R01G_DeltaJ_B1的關鍵點判據,在判讀算法部分,給出了3個(時間,值)的數對,分別表示在3個關機時刻點對應的21R01G_DeltaJ_B1的理論值。
在關鍵點類型判據中,如果理論值公式(即"21R01G_T_B1")為空,則取參數的遙測時間為關鍵點的查詢依據,如果理論值公式不為空,則以理論值公式計算結果作為關鍵點的查詢依據。如下例中,在獲取第一個關鍵點值的時候,首先計算指令"04T01Tk1_B1"↑1的時間T,然后在參數21R01G_T_B1中查找值等于T時對應的遙測時間Tyc,在參數21R01G_DeltaJ_B1結果中查找Tyc時刻對應的值,為最終結果。
P("21R01G_DeltaJ_B1")
{0,T_scope}
{
{"04T01Tk1_B1"↑1,10.8118}
{"14T01Tk2_B1"↑1,313.1792}
{"14T01Tk3_B1"↑1,-1.2292}
}
{"21R01G_T_B1"}
1000 1000;
9) 變化點類型判據:變化類型判據設計用于對待判參數的值發生變化的時刻進行判讀。下例給出參數21R01G_Cutoff_B1的變化點判據,在判讀算法部分,給出了6個(值、時間)的數對,分別表示參數21R01G_Cutoff_B1變化為相應值對應的時間的理論值。
在變化點類型判據中,如果理論值公式(即"21R01G_T_B1")為空,則取參數的遙測時間為理論值,如果理論值公式不為空,則以理論值公式計算結果作為變化點的理論值。
P("21R01G_Cutoff_B1" )
{0,800}
{
CP({0,0} {1,172.3073} {3,173.3073}
{11,183.43} {43,581.13} {2347,601.13})
}
{"21R01G_T_B1"}
0.6 0.6;
10) 統計值判據:統計值判據設計如下,第一個誤差為最大值的上限,第二個誤差值為最小值的下限。
Abcd{,} {Statistics()} 3 1;
Igf1 {,} {Statistics()} 1.5 1.1;
Igps {,} {Statistics()} 0.6 0.5;
Ijzzd {,} {Statistics()} 0.5 0.3;
11) 峰峰值判據:峰峰值判據設計針對那些沒有理論值,但是有明確的上下限類型的緩變參數,min_max為關鍵字,{P("U19s1")}為處理公式,一般可以省略。參數在給定的時間范圍內最小值和最大值由min_max(-0.1, 0.1)指定。
P("U19s1"):{,} {P("U19s1")} min_max(-0.1, 0.1);
12) 一致性判據:一致性判據設計使用運算符CM進行描述,CM中參數個數不限,進行判讀時,用第一個參數作為參考參數,后續各參數均與第一個參數進行比較,判斷是否在允許誤差范圍之內,下例給出3個導航速度參數的一致性判據描述。該類型判據在判讀報告中給出一致性判讀結果的表格描述,同時給出多個參數的曲線圖。
"21R01G_Vz" {,} {mp( P( "21R01G_Vz_B1" ), P( "21R01G_Vz_B2" ), P( "21R01G_Vz_B3" ) ) } 0.1 0.1。
海量數據自動判讀系統設計包括前端和后端兩部分,前端采用B/S和C/S架構的結合實現數據判讀功能,后端采用B/S架構設計實現數據分析、數據存儲與管理和數據采集設計。系統總體架構如圖1所示[2-4]。
圖1 系統架構設計
數據自動判讀系統的總體工作流程和原理簡要表示如下:數據判讀服務器啟動后,將知識庫備份中的規則和事實加載到位于內存區的黑板中。數據判讀服務器通過網絡,從外部接口接收到來的數據后,首先對數據進行解析,通過數據驅動推理引擎工作。推理引擎得到判讀的配置信息,包括判讀所采取的業務類型(參數判讀、指令判讀、事件判讀、指令監視和事件監視等)及其他配置信息。數據判讀服務器上的知識庫副本從數據庫服務器上的知識庫得到刷新。此時推理機采取特定的推理策略、方法和推理算法,調用黑板區加載的事實,通過黑板區加載的知識庫中的規則實現推理過程,得出監視判讀的結果。在推理過程中,調度引擎模塊實現對規則的動態調度。推理機將判讀結果發送到解釋器,由解釋器對判讀結論提出解釋,說明結論得出的理由。之后解釋器將判讀結論及相關解釋數據進行顯示。
數據自動判讀系統的基本工作流程和原理如圖2所示。
圖2 軟件工作流程及原理
數據自動判讀系統用于對各類試驗結果數據的管理、判讀與分析。主要功能包括試驗選擇、試驗數據管理、自動判讀、人工判讀、模板管理、判讀結果分析、報告管理、訪問權限控制、設置等功能,如圖3所示。
圖3 數據自動判讀系統功能
基于模型驅動的自動判讀系統應用AIPScript語言驅動判斷模型運行。如何將判讀模型的圖形化形式轉化成腳本是該系統的關鍵技術之一。把模型中的每個判據作為一個函數f(x,y),將每各判據規則的輸出轉換為另一個規則的輸入,如函數g(x),h(x)的值看成規則的兩個輸入,則判讀模型的最終輸出即為f(g(x),h(x))的值??梢暬9ぞ哕浖峁┡袚捅磉_式元素庫作為判據可視化建模的基礎元素。判據的可視化建模本質上是通過拖拽相應的表達式和判據到判據編輯面板上,并通過設置相應的屬性值來完成判據的編輯和生成的。
整個判據可視化建模工具軟件主要設計了判據和表達式元素庫、判據創建、判據可視化編輯、判據自動語法檢查和判據保存這幾大模塊。圖形化建模界面如圖4所示。
圖4 圖像化建模示意圖
針對峰峰值判據規則建立的判讀模型后生成的AIPScript腳本示例如圖5所示。
圖5 AIPScript腳本示意圖
對于在試驗中需要重點關注的且變化復雜的速變或緩變參數,為了更好地實現自動或人工判讀以及事后數據分析,在對該類參數進行判斷規則建模時,需對該類參數進行線性或對數等曲線擬合。在進行曲線擬合時,首先需要確定理論曲線的關鍵點以及曲線在各關鍵點中的理論值,然后再根據關鍵點及其理論值設計合理算法并進行建模,最后得出該擬合理論曲線[5-7]。
在遙測數據的接收和處理中會有野值,自動判讀系統對接收到的遙測數據,首先需要進行預處理,本文采用肖維涅準則來剔除野值,減小自動判讀過程中對效率和質量的影響。
另外,對于振動數據考慮到零點漂移具有長周期趨勢項,在對該類數據進行后續的判讀或分析時得到的結果可能完全失真,因此利用最小二乘法消除數據趨勢項,減少零漂和長周期趨勢項對于后續判斷和分析的影響。
基于模型驅動的自動判讀系統已成功應用于多個型號測試。試驗前,試驗人員根據型號需求對試驗數據進行判據配置,判據配置包括可視化建模及腳本編輯方式,判據可根據不同專業判讀需求保存判據模板,判據模板無需多次重復配置。試驗中,自動判讀系統根據判據對全部試驗數據進行判讀,對不滿足判據的數據給出提示,同時提供人工判讀模式對異常數據進行精細化判讀,避免了試驗數據的誤判和漏判。試驗結束后,自動判讀系統生成判讀報告,同時試驗人員也可直接根據試驗需要配置試驗報告的內容,總之海量數據自動判讀系統的研制大大節省了試驗人員判讀數據和編寫報告的時間,提升了試驗效率和質量,為型號研制提供了有力保障。
在基于模型驅動的自動判讀系統內,用戶通過在可視化的判讀規則視圖中,建立用戶所需要的判讀規則。通過對判讀參數與判讀規則視圖化建立,從而實現對測試數據進行自動判讀,并根據條件自動輸出、記錄測試結果?;谀P万寗拥目梢暬凶x建模減少了數據錯判與漏判,減輕了測試人員的工作量,提高了測試效率。