鄭陽,袁湘民,周華,楊周
(湖南省特種設備檢驗檢測研究院岳陽分院,湖南 岳陽 414000)
乘客電梯轎廂振動是評價電梯舒適性和安全性的重要指標,當振動達到一定量值,且振動頻率在人的敏感頻帶時(人的最敏感頻帶縱向是4 ~8Hz,水平向是1 ~2Hz),會有明顯的不適感,如頭暈、惡心,導致電梯乘坐舒適感不佳,容易產生安全隱患,更嚴重的可能影響電梯使用壽命和使用安全。因此,快速、實時地找出電梯振動異常數據成為當下研究熱點。根據國標GB/T 10058-2009《電梯技術條件》3.3.5 節1 對電梯振動的峰峰值做出明確要求。電梯振動主要分為垂直振動(Z 軸)和水平振動(X、Y 軸),其數據是三維模型,此外,電梯運行過程中還有其他相關的特征參數。由于多維度數據中找出異常數據,計算量龐大,時間復雜。因此,要快速、準確地定位出異常數據,就要對數據進行處理,本文以電梯振動數據為研究對象,針對這類數據提出一種基于網格劃分電梯振動異常數據快速檢測算法。
定義1:數據預處理,為更快速地處理電梯振動數據,將水平振動值X,Y 軸的值取最大值。
定義2:邊緣網格,邊緣網格是振動數據處于外圍所在的網格。為更快、更好地處理電梯振動數據,提出了邊緣網格這一概念。計算出振動數據點在其鄰域內所受水平及垂直方向萬有引力合力 Fx和 Fy。計算總合力大小,通過設定一個閾值合力大于此閾值的為邊緣點,邊緣網格就為包含邊緣點的網格。
定義3:異常數據定位,ijS 表示為網格內的點,異常點為Nij,規定
其中,其中 WD( Sij)表示以像素Sij所在的網格區域,min{WD( Sij)}表示對窗口 WD( Sij)內的電梯振動最小值。同理,max{WD( Sij)}表示對網格 WD( Sij)內的電梯振動最大值。
基于網格劃分電梯振動異常數據快速檢測算法,其基本思想是:首先對水平振動的數據預處理,再進行基于網格劃分算法對圖像像素進行劃分,只對非空網格處理,避免遍歷數據過多。此后,標記出非空網格最多的行和列,并將其中網格中的異常點分配到X 和Y 方向,由于振動異常點之間的距離一定,因為X 和Y 方向振動異常點求出,根據該方向的異常點與正常模型異常點個數對比,判斷產品是否出現異常,其具體的算法如下:
(1)首先,得到要預處理后的振動數據值,設為:n m× 。因此定義一個相關的n m× 的二維數組,定義為Array P- 。該數組中每一個單元都是一個容器,假設為p ,該容器用來承放劃分到該網格內的振動數據值。
(2)網格化后的圖像如圖1,對空白網格不做處理,從非空網格左上角開始對行和列排序,將像素點都劃分到對應的網格里。
(3)遍歷網格,找出含非空網格最多的行和列,并標記出行列中所有網格。
(4)判斷網格中是否有多行或多列網格數目是否相同,若是多行或多列網格,則進行步驟5 ~7 后,以最值為其閾值再進行步驟8 和9。否則,很難繼續進行以下步驟。
(5)對標記出網格中所有邊緣網格和其一非邊緣網格振動值坐標化,兩點的橫坐標與縱坐標相距振動值數分別設為x 和y,確定直線的振動值數量和振動值分布行數或列數,分別用sum 和n 表示
(6)設 k = sum /n,當k 為整數的時候,振動點平均分配,每行分配k 個振動點,當 /sum n k= 余數為p 時,先在每行分配k 個振動點,剩余的p 個振動點每隔m 行進行均勻插入,其中m 為小于或者等于n/p 的最大整數,直到把剩余振動點分配完成。
(7)對非空網格最多的行和列網格數量記為i,由非空網格的振動點在X 和Y 方向上個數為x1 和y1 計算出。邊緣網格在X 和Y 方向上個數為x2 和y2,計算出
(9)根據計算出的振動值與之前正常產品的計算出的振動值比較,判斷生產產品是否出現異常,并且快速定位異常點。

圖1 異常數據網格劃分方法
本方法因為遍歷網格較少,同時在步驟6 中只用對一個非邊緣的網格中的振動點進行計算,這樣大大減少了計算的時間復雜度,同時少了其他數據的干擾,保證了計算的準確性。
本文實驗基于網格劃分電梯振動異常數據快速檢測算法在主頻2.7GHz、內存4.0GB 的Intel(R) PENTIUM(R) PC機上在MATLAB 平臺上采用c++編程語言實現仿真。使用基于微分算子的檢測算法與本文提出算法來進行效率的性能測試,微分算子選擇經典的Roberts、Canny 算子。Roberts算子用對角線模板來檢測出異常點,為了獲得更好的結果,需要使差分的方向和邊緣方向垂直。Canny 算子在平滑處理后,利用一階偏導數算出振動值的梯度,最后找出異常點。因為兩種算子Roberts 算子是基于一階導數思想計算簡單、快速,Canny 算子檢測結果較好,快速檢測數量少,也常用于和其他算法做比較,評價其他算法的效率,因此選用這兩種算子與本文算法比較算法效率。實驗結果顯示的是在同樣的圖像中,Roberts、Canny 算子和本文算法所執行的時間。如圖2 所示。
由圖2 可知,本文提出的算法執行所用的時間最短, Canny 算子執行時間所用的最長。因為Canny 算子在計算的過程中需要對每個振動值求一階偏導,同時還需要求出其振動值的梯度,其大部分時間用于計算振動值的一階偏導數。Roberts 算子比Canny 算子用時少一些,因為其只需要求出振動值的一階偏導數即可。本文提出的算法時間最短是因為該算法在計算過程中剪掉了大部分數據,只需要對其中部分邊緣數據和非邊緣網格中的數據進行計算。圖4 證明本文算法能夠快速有效地檢測出異常數據。
針對現有的異常點檢測算法存在的問題,本文在網格劃分的方法的基礎上,提出了基于網格劃分電梯振動異常數據快速檢測算法。在進行數據預處理后,對振動數據進行中心區域聚類,從而獲取其電梯運行期間電梯振動的整體表現,通過Roberts 算子和Canny 算子算法比較,本文算法還能快速有效地檢測出電梯運行過程中的異常數據,也為快速判斷電梯運行安全情況提供了數據支撐。