朱浩文
(中南大學,湖南長沙,410083)
火箭發射前測試涵蓋火箭各個子系統的測試和系統總體測試,隨著專業分工細化以及傳統格局的影響,火箭各子系統測試通常自成體系。各子系統測試需由對系統非常熟悉的專業人員進行,而在發射前總體測試中,由于各子系統測試數據分散,現場測試人員難以全面了解系統測試狀態,對故障情況也難以進行快速判斷和處理。
在火箭測發控真實場景中,影響其正常運作的狀態量數量繁多,地面測試系統不同于動力學系統,本身可以用離散事件動態系統來描述,系統運行過程中,按照操作流程進行各種操作,系統狀態(包括各種開關量、模擬量、數字量等)隨之發生相應改變,這些狀態的轉換必須符合預期。目前,隨著系統規模越來越龐大,體系越來越復雜,無論系統設計有多么安全,操作人員的技術有多么熟練,故障也無法避免。故障不僅會降低系統的可靠性,甚至導致災難性后果。因此對系統的實時監測與故障檢測隔離具有十分重要的理論和現實意義。
時間序列的異常檢測,是指在時間序列數據中出現了與預測行為不相符的模式的問題。其中,通常有定性分析方法專家系統、圖論方法等和定量分析方法如自動機、神經網絡。
利用自動機模型結合形式化語言(正則語言模型)來描述系統工作流程并構建有限自動機,可以方便的形成系統運行流程模型。近年來,隨著計算機等相關領域技術的發展,數據計算以及處理能力越來越強大,僅僅采用自動機來進行離散事件系統的建模已難以滿足要求,近年來也出現了隨機自動機的概念,通過引入概率轉移矩陣,構建隨機故障預測器自動機,以達成“事先預測”故障的目的。
深度學習方法通過多層神經網絡以及自學習機制,可以利用系統運行過程中的輸入輸出數據自動提取系統運行特征,提高了監控系統的智能化程度。Ragab將領域專家經驗和深度學習方法結合,采用半監督學習的方式,實現對離散事件動態系統的監控與故障診斷。Li采用深度自編碼器方法,實現了一種化學工業流程的監控與故障診斷。Jiang則是采用深度自編碼器方法實現了離散事件系統業務流程中的故障分類識別。
盡管基于深度學習的方法顯著改善了故障診斷效果,但這些方法針對狀態多變、體系復雜的火箭測發控系統效果欠佳。本文提出基于一種多變量LSTM-AE時間序列異常檢測方法,能以系統運行數據為支撐,有效的對火箭測發控系統運行狀態進行歸納,并實現故障診斷。
由于需要監測的系統節點數龐大,操作流程復雜,且對某些特殊測試系統,其測試操作的業務流程有可能會隨測試任務不同而發生改變,常規的僅依靠按照人工分析的方式來建立系統流程模型,難免會遺漏系統運行過程中的某些細節,從而導致所建立的模型并不完備,不能準確描述系統行為。
要實現自適應建模,必須解決如何從數據中識別出系統運行狀態、事件以及狀態遷移,并能有效判斷事件和狀態遷移之間的因果關系。針對火箭測發控故障診斷低實時性、檢測效率低及模型難通用等問題,本文提出了基于多變量多尺度自編碼器時間序列異常診斷方法,為保證所建立的系統監控模型完備、有效,針對火箭發射前地面測發控系統的特點,分析系統操作運行流程,利用深度自編碼學習方法,挖掘各測試任務操作運行流程的特征,建立測試系統運行監控模型和故障診斷模型,實現對系統運行過程中的異常狀態的自動捕獲,對系統運行故障快速識別定位,并對某些可預測故障能夠進行預測,避免人工監控方式的種種缺陷,進一步提升地面測發控的運行的可靠性和智能化程度。
火箭測發控系統包括眾多變頻器、PLC以及總線上各狀態信息等,其數據類型包括開關量和模擬量。針對測發控系統流程復雜的特點,本文提出如下算法,整個算法框架如圖1所示,模型包括幾個串行的階段,各階段操作和計算過程如下:

圖1 算法框架圖
(1)開關量檢測
檢測所有通道開關量是否有變化,如無變化則認為系統狀態不變。
(2)確定時間步長
為構造數據模擬量的特征向量,計算狀態未遷移持續的最短時間tw,即存在一段tw時間所有的開關量信號均為發生改變。
(3)模擬量統計特征
在系統狀態無變化期間,按照tw時間窗對模擬量數據計算其統計特征向量,統計特征包括如下9種常見的時間序列分析的統計特征,即:均值、方差、均方根、偏度、峰度、熵、最大值、最小值、中位數。
(4)特征選擇
上述9個特征需要選擇敏感度最高的特征作為有效特征。計算每個狀態保持期間模擬信號通道的特征,以91電源電壓信號為例,通過計算25個狀態內的9個特征,組成A∈R9×25特征矩陣如圖2。

圖2 電源電壓數據特征
對AAT做奇異值分解,對應得到奇異值向量取其較大的相對應的特征作為敏感特征,即均值、方差、均方根、偏度和峰度五個特征作為顯著特征進入后續的特征學習之中。
(5)深度自編碼器特征提取
將模擬量特征A進行歸一化,并加入到開關量0、1序列之中,構成某一采樣時刻系統運行的特征,考慮到特征長度較長,對整個流程的特征變化進行深度自編碼學習。以本項目所給數據為例,狀態遷移共計25次,其中PLC開關量通道30個,變頻器電壓、電流及頻率模擬量數據通道共計40個,91、92電源電壓、電流數據共8個通道,總共78個通道數據,其中模擬量數據8個通道,變頻器電壓電流數據近似于開關量信號,可以用前文所述的遞歸累加方式進行處理,得到相應的開關量數據。因此總的數據特征長度為30+40+8*5=110。
(6)故障判斷
將正常行為的統計模型擬合到給定的數據,然后應用統計推斷測試來確定一個新的實例是否屬于該模型。根據應用的統計數據,如果一個新的實例從學習的模型中生成的概率很低,那么這個實例就是一個異常。該異常檢測算法可以自動分析數據集,動態微調正常行為的參數,并識別模式中的漏洞,提高了異常檢測的準確性,避免了由靜態閾值觸發的錯報和誤報/漏報。
傳統的機器學習模型評估方法在時間序列預測中大多不有效,這是因為它們沒有考慮時間序列的時間依賴性。LSTM(Long Short-Term Memory)是長短期記憶網絡系統,是RNN(循環神經網絡)的某個變種,可用于對時間差相對較長的序列信號進行處理。通過加入遺忘門等,LSTM能夠克服在反向傳輸時,由于RNN網絡中難以解決的梯度消失所造成的長期信號無法存儲的問題,而大多數估計計算如ARIMA(差分整合移動均值自回歸)等模式估計時間順序都是相對穩定的,與大多數其他預測算法不同,LSTM 能夠學習序列中的非線性和長期依賴關系。
LSTM單元的結構一般分為以下幾個部分,如圖3所示。

圖3 LSTM單元結構圖
(1)輸入層
輸入層的每個神經元代表樣本的一個特征,即神經元的個數與特征向量的長度也是相同的。因此輸入層中的各個神經元表示一個預測變量。在分類變量中,當有N個類別時,采用N-1個神經元。它利用減去中值并除以四分位數范圍來標準化值的范圍。然后,輸入神經元將輸出值提供給隱藏層中的每個神經元。此處記為xt。
(2)隱藏層
該層神經元個數為網絡的深度參數,神經元越多,網絡越復雜。其貫穿每個時間步傳遞學習特征,對于每個時間步記為th。
(3)遺忘門
為判斷相鄰特征的關系是否需要學習,設置遺忘門ft,其將隱藏層與輸入層分別乘以相應的可學習遺忘權重和加上附加偏置。實際上,遺忘門是一個模擬閥門量,它是用于確定特征保留程度的闕值,故加上sigmoid激活函數使之置于0-1之間,公式如下:

(4)更新門
為確定是否繼承上一個時間步的特征參數,LSTM同理設置了更新閥門,與遺忘門一樣,其將隱藏層與輸入層分別乘以相應的可學習更新權重和加上附加偏置。更新門同樣是一個閥門量,故加上sigmoid激活函數,公式如下:

(5)記憶單元
LSTM的記憶單元與隱藏層相似,但是其傳遞的為網絡前后的特征記憶參數。對于每個時間步的記憶單元,其將隱藏層與輸入層分別乘以相應的可學習記憶權重和加上附加偏置。為了達到非線性作用,加上tanh激活函數。

對于網絡是否繼承之前學習的特征,將記憶單元與更新門,遺忘門組合,得到每一個時間步的記憶繼承結果。

(6)輸出門與隱藏層輸出
為了判斷LSTM的輸出程度,通過設置輸出閥門,控制輸出的大小,其將隱藏層與輸入層分別乘以相應的可學習輸出權重和加上附加偏置。由于是閥門參數故加上sigmoid激活函數。

隱藏層輸出即是輸出門與記憶單元輸出的非線性整合:

如圖4,編解碼體系結構是序列到序列學習故障診斷的典型解決方案。該體系結構包含至少兩個RNN/ LSTM,其中一個充當編碼器,另一個充當解碼器。編碼器負責讀取和解釋輸入,將輸入壓縮為原始輸入的更小的表示形式(一個固定長度的向量),并將此上下文向量作為輸入給解碼器部分,以進行解釋和預測。一個重復向量層用于重復我們從編碼器部分獲得的上下文向量,重復的次數為需要預測的未來步驟的數量,并將其輸入解碼器部分。從解碼器接收到的每個時間步長的輸出是混合的,將全連接層應用于解碼器每個時間步,分離每個時間步的輸出。

圖4 LSTM故障診斷過程
Autoencoder(自編碼器)是一種無監督類型的神經網絡,主要用于特征提取和降維。同時,對于異常檢測問題也是一個不錯的選擇。自編碼器由編碼和解碼部分組成。在編碼部分,提取代表數據中模式的主要特征,然后在解碼部分重建每個樣本。對于正常樣本,重建誤差將是最小的。另一方面,該模型無法重構表現異常的樣本,從而導致較高的重構誤差。因此,基本上,樣本的重構誤差越高,其成為異常的可能性就越大。依賴自編碼模型,將輸入數據映射到隱藏表示的模型,然后嘗試從此內部表示恢復原始輸入。
對重建和原始輸入之間的相似性進行定量評估,計算傳感器輸入的滑動窗口平均值,即1分鐘內每個傳感器的平均值。間隔每30秒。并將數據饋送給自動編碼器模型。然后,計算輸入數據和一組數據的重建之間的距離,并計算距離分布的分位數。將抽象的距離數轉化為可觀測的度量,并將超過當前閾值(97%)的樣本標記為異常。
時間序列的變點是指數據分布特性發生的突變或結構性變化,而趨勢檢測則是檢測數據與過去的平滑偏離,更快、更有效地處理數據的一種方法是檢測數據集中的異常事件的變化或轉移。由于用點特征來表示無法識別出上下文異常,用包含幾個時間步驟的時間信息的一個滾動窗口,可以有效地檢測上下文異常。
本文采用運載火箭發射過程中的測發控數據進行評估實驗,其包含大量的隨時間變化的PLC電源電壓電流數據以及PLC切換動作數據,并將測試結果與BP神經網絡等異常診斷方法進行對比。
測發控數據為包含隨著時間推進的電壓、電流、變頻器等的多變量數據,該數據集分為訓練集和測試集,其中訓練集的數據長度為16140,測試集的數據長度為3000,異常檢測的頻率為每分鐘。本文采用多尺度多變量提取。
深度自編碼器的結構為5層神經網絡結構,即110-220-30-220-110的單元數結構,編碼器對應的編碼輸出h1,h2,… ,hm即為每個狀態的編碼.通過深度自編碼器輸出的編碼作為每個滾動時間窗口內的數據狀態信息.
時間序列的變點是指數據分布特性發生的突變或結構性變化,而趨勢檢測則是檢測數據與過去的平滑偏離,更快、更有效地處理數據的一種方法是檢測數據集中的異常事件的變化或轉移。由于用點特征來表示無法識別出上下文異常,用包含幾個時間步驟的時間信息的一個滾動窗口,可以有效地檢測上下文異常。
如圖5所示,實際上電源量隨時間變化經常會有小幅度的波動,并且由于電源值并不是在一秒(或其他確定值)發生的突變,而是一個連續的過程,故需要將電源量去擾動并離散化,步驟如下:

圖5 變頻器電信號變化圖
1)對于每個時刻數據A,比較A與10s后時刻數據B的大小,若A=B,則這10s內的數據全部記為A。這樣初步去除了部分擾動。
2)對數據不變的數據,記標識符TOC對于每個時刻A與下一時刻B,將B減A記作C,若C> 0.15則記標識符TOC為1表示數據呈上升趨勢,?0.15 3)將Count作為累加次數的計數值,初始化Count為0,初始化toc_0為0,并記錄此時下一時刻B的索引為end,若TOC與toc_0相等時Count加一,若TOC不等于toc_0,將TOC賦值給toc_0,此時判斷Count是否小于10,大于的話則記此刻索引為Start。 上升下降趨勢圖如圖6所示,通過遞歸累加最終處理。對于每個時間對應一組40維的狀態St,遍歷整組數據,提取出唯一的St,共23組。將此作為特征數據庫。至此,系統的故障可以通過系統流程自適應框架,從而實現對故障的判斷及定位。 圖6 電信號趨勢局部變化圖 本實驗用滑動窗口模擬實時采集系統,系統采集一次數據,滑動窗口向前移動一個時間步。為量化地評價故障檢測效果,引入準確率作為評價故障檢測效果的指標。其中,T表示被正確識別出正常樣本或故障樣本的數量,F表示正常樣本被誤判為故障樣本或故障樣本錯判為正常樣本的數量。 準確率 =T/(F+T)×100% 利用實際數據測試結果狀態分類的測試結果如表1表2所示,在設置為是否能準確描述狀態遷移并浮動在闕值一下的評價標準下,基于LSTM-AE的模型輸出狀態與實際系統標準輸出完全一致,均方根誤差也相較普通的BP神經網絡更好,因此可根據實際結果與LSTM-AE網絡輸出的偏差實現對故障信息定位,能及時對各種常見故障做出故障判斷,且準確率高,說明本文的方法是有效的。 表1 模型評價指標對比 表2 模型評準確率對比 通過基于數據驅動的系統流程多變量LSTM-AE時間序列的火箭測發控異常檢測,解決了未知故障系統模型的建模問題,具有收斂速度快、精度高、穩定性好、擴展性好等優勢,對故障的不確定性以及相關性等特征進行了很好的擬合,對故障的可預測性進行了有效的增強。
2.3 實驗分析


3 總結