基于自適應滑動窗口算法與區間折半算法的故障檢測方法
【專利摘要】本發明公開了基于自適應滑動窗口算法與區間折半算法的故障檢測方法,該方法采用區間折半法提取識別趨勢,并在提取過程中不斷根據具體情況改變區間窗口的初始點以及結束點,自適應改變區間大小,以獲得更高的提取精度,然后通過模糊趨勢匹配算法將實時趨勢與規則知識庫中的各種典型故障的特征趨勢相匹配,實時診斷系統故障;本發明能夠提高傳感器故障辨識的準確性和實時性。
【專利說明】
基于自適應滑動窗口算法與區間折半算法的故障檢測方法
技術領域
[0001] 本發明屬于智能信息處理的技術領域,具體涉及一種基于自適應滑動窗口算法與 區間折半算法的故障檢測方法。
【背景技術】
[0002] 傳感器(英文名稱:transducer/sensor)是一種檢測裝置,能感受到被測量的信 息,并能將感受到的信息,按一定規律變換成為電信號或其他所需形式的信息輸出,以滿足 信息的傳輸、處理、存儲、顯示、記錄和控制等要求,廣泛應用于各種控制系統中。而作為了 解系統過程狀態的窗口,其測量結果的準確性直接影響系統的運行。同時大多數傳感器的 工作環境都比較惡劣,因此它們在使用過程中不可避免的經常會因為種種原因發生故障。 一旦傳感器故障被系統檢測出,需要針對不同故障類型進行一定的在線或離線的故障補 償,因此,對傳感器故障進行辨識就顯得尤為重要。
[0003] 對傳感器進行故障辨識屬于模式識別問題,其中主要包括特征提取和模式分類兩 個部分。特征的選擇與提取是模式分類的基礎,特征信息的提取效率則直接影響了后續學 習和識別結果的準確率。由于非線性系統具有復雜性及建模方法的局限性等特點,因此對 于非線性系統故障診斷的研究結果非常有限,現有的一些方法主要借助于智能控制法和線 性化方法。這些方法大部分都是基于已知的數學模型。而現代控制系統通常具有高維、非線 性、強耦合、隨機噪聲和輸入時延等特點,很難建立精確的數學模型,甚至根本就不可能用 解析方程來描述。
[0004] 目前,常見的不依賴于數學模型的方法主要有幾類代表性的:基于小波變換的方 法、基于神經網絡的方法、基于模糊邏輯的方法、基于統計分析模型的方法、基于專家系統 的方法、基于故障樹的方法、基于定性模型的方法等。作為不依賴于數學模型的故障檢測方 法之一,定性趨勢分析就是一種基于數據驅動的分析方法,具有只要求有過程數據就可實 現對過程的監測的優點。這一特點在實際應用中有著非常重要的意義,因為在某些工業過 程中,唯一可利用的信息就是過程數據。此外,不依賴于過程數學模型的方法還很容易利用 操作經驗、工藝知識、理事故障記錄等信息,而這些信息的正確利用往往會起到事半功倍的 作用。然而傳統的定性趨勢分析方法依然存在不少問題,如提取的片段寬度難以自適應、算 法復雜、依賴人為設置閾值等。
【發明內容】
[0005] 有鑒于此,本發明提供了一種基于自適應滑動窗口算法與區間折半算法的故障檢 測方法,能夠提高傳感器故障辨識的準確性和實時性。
[0006] 實現本發明的技術方案如下:
[0007] -種基于自適應滑動窗口算法與區間折半算法的故障檢測方法,包括以下步驟:
[0008] 步驟一、對一段待檢測的傳感器數據從數據起始點開始利用區間折半算法提取原 語,并判斷其原語是否為原語中的"A",若否,則從原語不為"A"的數據段起始位置開始判定 為故障發生點,從故障發生點直至待檢測數據段的結束點為故障數據段;若待檢測數據段 原語為"A",則進行下一段待檢測數據的檢測;
[0009]步驟二、從故障發生點開始,以待檢測數據長度的1/10作為默認滑動窗口大小,對 第一個滑動窗口區間內的數據進行離線區間折半擬合使所述數據轉換為擬合多項式序列, 根據多項式的導數符號將多項式序列轉換為基元序列;
[0010]步驟三、確定下一個滑動窗口的起始點以及窗口長度:判斷上一個滑動窗口最后 一個基元是否為線性基元,若是則判斷其長度是否大于預設的線性原語長度臨界值,若大 于則下一個窗口的起始點為上一個窗口的結束點,否則將最后一個基元所對應的數據歸入 下一個窗口;若最后一個基元為非線性基元,則判斷其長度是否大于預設的最短原語長度 值,若大于則下一個窗口的起始點為上一個窗口的結束點,否則將最后一個基元所對應的 數據歸入下一個窗口;若上一個窗口最后一個基元所對應的數據歸入下一個窗口,則窗口 長度=最后一個基元長度+默認滑動窗口大小;否則,窗口長度=默認滑動窗口大小;
[0011] 步驟四、將已確定的滑動窗口內的數據轉換為基元序列;
[0012] 步驟五、重復步驟三和步驟四直至故障數據段的數據全部轉換為基元序列,將所 述基元序列與規則知識庫中的多個故障特征基元序列進行模糊邏輯匹配,分別得出相似度 SI;
[0013] 步驟六、找出步驟五中所得的最高相似度SImax,并將其與預設的決策臨界值進行 比較,若SImax大于決策臨界值,則待檢測數據的故障類型為SI max所對應的故障類型;若SImax 小于等于決策臨界值,則認定待檢測數據的故障類型為新的故障。
[0014] 進一步地,線性原語長度臨界值大于最短原語長度值。
[0015] 有益效果:
[0016] 1、本發明提供了一種基于滑動窗口算法與區間折半算法相結合的在線故障檢測 方法,能夠將傳感器正常模式與故障模式區分出來。
[0017] 2、本發明方法與傳統的離線區間折半算法相比,趨勢提取的效率以及準確性都得 到了提升,并且可以根據樣本的大小來靈活選擇滑動窗口的大小,靈活性較高,推廣性較 好。
【附圖說明】
[0018] 圖1是本發明傳感器故障診斷框架流程圖。
[0019] 圖2是基元示意圖。
[0020] 圖3是滑動窗口大小為75的擬合效果圖。
[0021 ]圖4是滑動窗口大小為180的擬合效果圖。
[0022] 圖5是本發明自適應滑動窗口算法流程圖。
[0023] 圖6是本發明基于定性趨勢分析的故障診斷構架。
【具體實施方式】
[0024]下面結合附圖并舉實施例,對本發明進行詳細描述。
[0025]本發明提供了一種基于自適應滑動窗口算法與區間折半算法的故障檢測方法,該 方法采用區間折半法提取識別趨勢,并在提取過程中不斷根據具體情況改變區間窗口的初 始點以及結束點,自適應改變區間大小,以獲得更高的提取精度,然后通過模糊趨勢匹配算 法將實時趨勢與規則知識庫中的各種典型故障的特征趨勢相匹配,實時診斷系統故障。這 里采用的是田納西-伊斯曼化學過程中的部分數據,田納西-伊斯曼過程(TEP)是美國田納 西州一家名為伊斯曼的化學品公司的兩位專家根據真實的化學工業生產過程創建的一個 基于多變量技術的化學工業過程仿真平臺。TEP仿真系統數據包括一種正常的狀態數據和 21種故障狀態數據,其中15個為已知故障,16-21為未知故障,每種狀態下的數據包括訓練 集和測試集部分,其中訓練集有480組數據,測試集有960組數據,整個TEP系統包括有52個 變量,由于我們研究的是單個傳感器數據的趨勢提取,因此這里采取其中部分已知發生了 故障的變量進行數據分析。
[0026]選取5種不同故障狀態下的傳感器輸出數據各480組,即Xu(i = l,2,...,5;j = l, 2,...,480),為使提取的信號特征不受幅值的影響,首先對信號進行標準化處理:
[0028] 其中:Xij表不不同模式的傳感器輸出信號,E(Xij)為Xij的均值,\為Xij的標準差。
[0029] 如圖1所示,本發明包括以下步驟:
[0030] 步驟一、對一段待檢測的傳感器數據從數據起始點開始利用區間折半算法提取原 語,并判斷其原語是否為"A",若否,則從原語不為"A"的數據段起始位置開始判定為故障發 生點,從故障發生點直至待檢測數據段的結束點為故障數據段;若待檢測數據段原語為A, 則進行下一段待檢測數據的檢測;
[0031] 原語基本概念介紹:
[0032] 在定性趨勢描述語言里,定義了用一階導數和二階導數符號表示的七種基元(即 基元),如圖2所示。圖中括號內分別表示一階導數和二階導數。
[0033] 在對于任意一組代表著趨勢的數據進行區間折半(對于區間折半算法具體步驟這 里就不再做過多介紹)后,會得到一個階數最高為二階的趨勢片段。(1)若該片段為一階,則 對之進行求一階導數后很容易根據圖2得到其對應的基元;(2)若該片段為二階,則先求其 兩端點處的一階導數,如果兩端點處的一階導數同號,將其與零進行比較后很容易根據圖2 得到對應的基元;(3)如果兩端點處的一階導數異號,說明該區間不是單峰區間,需要再次 進行分割,找到該片段一階導數為零的點將該區間再次分段,取其前半段重復進行(2)中的 步驟得到基元。剩下的數據重復上述過程。最后得到由多個基元組成的原語,或者叫做原語 序列。
[0034] 步驟二、從故障發生點開始,以待檢測數據段長度的1/10作為默認滑動窗口大小, 對第一個滑動窗口區間內的數據進行離線區間折半擬合使其轉換為擬合多項式序列,即將 故障數據段分為若干個單峰區間,用二次多項式擬合單峰區間,則將故障數據段轉換為擬 合多項式序列:
[0035] y(t) = {yi,y2,. . .yN}^y(t)^{Qi(t),Q2(t),. . .Θν(?)}
[0036] 其中,y(t) = {yi,y2, . . .yN}為一系列等周期采樣數據點,t為采樣時間,yi,y2, ..^分別為若干個單峰區間對應的數據,(),川=允+辦+辦 2#[^4]為第1^個單峰區 間的二次擬合多項式。Κ=1,2,···,Ν;根據最小二乘法可求出Qk(t)的回歸系數/?.允.戌。 tki,tkf分別為第k個單峰區間的起始點與結束點;
[0037] 根據多項式的導數符號將多項式序列轉換為基元序列;即:
[0038] y(t)~{Qi(t),Q2(t),· · .QN(t)}-tr = {Ρι,Ρ2, · · ·Ρν}
[0039] 其中,Pi,P2, . . .Pn分別為各個多項式對應的基元。
[0040] 圖3和圖4展示了對于同一段數據的不同滑動窗口大小的部分擬合效果,顯然,從 圖中可以看出滑動窗口的長度對于擬合精度是有影響的,圖3中窗口長度為75,擬合出來的 原語為'C',圖4中窗口長度為180,擬合出來的原語為'A',顯然,后者的精度要比前者的精 度高,因此可以得出結論:滑動窗口大小不能太小,否則會影響擬合準確度,在保證效率的 前提上,應該盡可能的設定將窗口調大。在多次測試后得出,默認滑動窗口大小在待檢測數 據段長度的1/10左右較為適宜,這里默認滑動窗口大小選為100。
[0041 ]步驟三、確定下一個滑動窗口的起始點以及窗口長度:判斷上一個滑動窗口最后 一個基元是否為線性基元,若是則判斷其長度是否大于預設的線性基元長度臨界值,若大 于則下一個窗口的起始點為上一個窗口的結束點,否則將最后一個基元所對應的數據歸入 下一個窗口,即下一個窗口的起始點為上一個窗口最后一個基元的起始點;若最后一個基 元為非線性基元,則判斷其長度是否大于預設的最短基元長度值,若大于則下一個窗口的 起始點為上一個窗口的結束點,否則將最后一個基元所對應的數據歸入下一個窗口,即下 一個窗口的起始點為上一個窗口最后一個基元的起始點;若上一個窗口最后一個基元所對 應的數據歸入下一個窗口,則窗口長度=最后一個基元長度+默認滑動窗口大小;否則,窗 口長度=默認滑動窗口大小;
[0042] 當確定起始點以及窗口長度后,滑動窗口即確定;
[0043] 線性基元長度臨界值大于最短基元長度值。
[0044] 我們通過分析最后一個基元PN的信息,包括基元長度,基元的類型以及基元的起 始點,來決定下一個滑動窗口的起點。顯然,若該基元Pn長度太小,小于我們規定的最短基 元長度值(minNLP_len),則可能由于數據長度太短,數據信息不足,導致真實基元被分割, 以至于出現較大誤差,因此將該基元的起始點作為下一個滑動窗口的起點,在下一個滑動 窗口內重新與新的數據再一次擬合;而如果最后一個基元是線性基元(A,C或者F)并且長度 小于線性基元長度臨界值(maxCFlen),因為線性基元對于長度更加敏感,一個較長的基元 的局部都可能被擬合成線性基元,也可能會帶來較大誤差,因此也將之歸到下一個窗口內 進行再一次新的擬合;否則下一個窗口的起始點則正常的從上一個窗口的結束點開始計 算,然后不斷推進窗口重復上述過程直至整個故障樣本數據均轉換為原語序列。其中通過 設定初始的參數值,調整參數值可以改變該算法的效率和準確度。具體原理見附圖5的流程 圖。
[0045] 步驟四、將已確定的滑動窗口內的數據轉換為基元序列;
[0046] 步驟五、重復步驟三和步驟四直至故障數據段的數據全部轉換為基元序列,將所 述基元序列與規則知識庫中的多個故障特征基元序列進行模糊邏輯匹配,分別得出相似度 SI;
[0047] 采用上述趨勢提取、識別算法將傳感器數據轉換成基元序列后,需要將傳感器的 實時趨勢與知識庫中系統正常狀態下的特征趨勢相匹配,檢測系統是否發生故障;若檢測 出系統發生故障,則將實時趨勢與知識庫中各種典型故障下的特征趨勢相匹配,實時診斷 故障。此模糊推理算法是一個多變量推理算法,一般包含以下三個步驟:基元匹配;趨勢匹 配;過程狀態匹配。這里由于是單個傳感器,因此只討論前兩個匹配步驟。
[0048]基元匹配:趨勢是由基元序列組成的,首先要考慮基元間的相似度。其相似度見下 表:
[0050]趨勢匹配:每一組傳感器數據經區間半分法提取識別趨勢后,都可轉換成由Μ個基 元組成的趨勢,趨勢匹配就是將實時趨勢與知識庫趨勢進行比較,求出他們之間的相似度。 令實時趨勢為:
[0051 ] =
[0052]其中,Tr為整段待檢測數據的基元序列人,.為基元Ρ,的采樣時間;分別為Pi 對應的數據區間的起始點與結束點;
[0053] 知識庫趨勢為:
[0054] Tr sft; ,.r;l
[0055] 其中,Tf為知識庫中故障的基元序列Λ;為基元Pf的采樣時間;K分別為碎對 應的數據區間的起始點與結束點;
[0056] -般情況下,Μ辛S。需把Tr和Tr*放在同一個時間軸tu上,ti、i丨把時間軸tu劃分成R 個區間,第i個區間為[tnW]。第i個區間長度為可從兩個方面估計趨勢 的相似度:基元的順序;基元的持續時間。通過模糊趨勢匹配方法,計算得到Tr和Tr#的相似 度SI。
[0057] 步驟六、如圖6,找出步驟五中所得的最高相似度SImax,并將其與預設的決策臨界 值進行比較,若SI max大于決策臨界值,則故障數據段的故障類型為SImax所對應的故障類型; 則將其在規則知識庫中對應的故障類型返回給操作員,并給出響應故障類型對應的行為警 告和提示;若SI max小于等于決策臨界值,則認定故障數據段的故障類型為新的故障;更新規 則知識庫,并通過手冊診斷后添加規則知識庫中其對應的故障碼。
[0058]在實驗中,我們通過在TEP化學過程中的仿真數據中選擇了5組較為明顯的故障樣 本數據,并以此建立了一個小型的規則知識庫,下面我們通過將每一個樣本的實時趨勢與 規則知識庫內的特征原語以此進行比較,來驗證該算法的故障診斷率。
[0059]故障診斷結果如下表所示:
[0062] 從表中可以看出,對于上述的每一種故障,都能在相應的相似度匹配中得到較高 的SI,而不同故障間的相似度匹配結果明顯較小。
[0063] 綜上所述,以上僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。 凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的 保護范圍之內。
【主權項】
1. 基于自適應滑動窗口算法與區間折半算法的故障檢測方法,其特征在于,包括以下 步驟: 步驟一、對一段待檢測的傳感器數據從數據起始點開始利用區間折半算法提取原語, 并判斷其原語是否為原語中的"A",若否,則從原語不為"A"的數據段起始位置開始判定為 故障發生點,從故障發生點直至待檢測數據段的結束點為故障數據段;若待檢測數據段原 語為"A",則進行下一段待檢測數據的檢測; 步驟二、從故障發生點開始,以待檢測數據長度的1/10作為默認滑動窗口大小,對第一 個滑動窗口區間內的數據進行離線區間折半擬合使所述數據轉換為擬合多項式序列,根據 多項式的導數符號將多項式序列轉換為基元序列; 步驟三、確定下一個滑動窗口的起始點以及窗口長度:判斷上一個滑動窗口最后一個 基元是否為線性基元,若是則判斷其長度是否大于預設的線性原語長度臨界值,若大于則 下一個窗口的起始點為上一個窗口的結束點,否則將最后一個基元所對應的數據歸入下一 個窗口;若最后一個基元為非線性基元,則判斷其長度是否大于預設的最短原語長度值,若 大于則下一個窗口的起始點為上一個窗口的結束點,否則將最后一個基元所對應的數據歸 入下一個窗口;若上一個窗口最后一個基元所對應的數據歸入下一個窗口,則窗口長度= 最后一個基元長度+默認滑動窗口大小;否則,窗口長度=默認滑動窗口大小; 步驟四、將已確定的滑動窗口內的數據轉換為基元序列; 步驟五、重復步驟三和步驟四直至故障數據段的數據全部轉換為基元序列,將所述基 元序列與規則知識庫中的多個故障特征基元序列進行模糊邏輯匹配,分別得出相似度SI; 步驟六、找出步驟五中所得的最高相似度SImax,并將其與預設的決策臨界值進行比較, 若SImax大于決策臨界值,則待檢測數據的故障類型為SImax所對應的故障類型;若SI max小于 等于決策臨界值,則認定待檢測數據的故障類型為新的故障。2. 如權利要求1所述的基于自適應滑動窗口算法與區間折半算法的故障檢測方法,其 特征在于,線性原語長度臨界值大于最短原語長度值。
【文檔編號】G06K9/62GK106096634SQ201610392752
【公開日】2016年11月9日
【申請日】2016年6月6日 公開號201610392752.6, CN 106096634 A, CN 106096634A, CN 201610392752, CN-A-106096634, CN106096634 A, CN106096634A, CN201610392752, CN201610392752.6
【發明人】鄧方, 劉暢, 顧曉丹, 孫健, 陳杰
【申請人】北京理工大學