龔 勛,王淑營,崔曉宇
(西南交通大學 信息科學與技術學院,成都 611756)
隨著智能時代的到來,生產數據價值的重要性越來越明顯.如何根據生產工藝,通過數據采集、處理、聚類、存儲、分析和可視化等技術手段發揮數據蘊含的價值信息,成為了熱門的研究課題.而流程型制造車間的生產環境特殊,加上傳輸網絡、人為因素的影響,導致采集到的生產數據不可避免的存在一定程度的異常情況,如數據缺失、離群和異常波動等[1,2],若不經過處理,無法正常應用.數據處理就是為了清洗掉生產現場各種因素干擾造成的異常情況,同時也為了面向生產管控需求進行特定的數據加工[3,4].
目前,數據處理技術非常廣泛[5,6],如文獻[7]針對復雜裝備的監測數據在采集過程中出現時序混亂,影響對設備狀態的分析問題進行了建模研究,根據不同實時任務對數據的時序容錯性和實時性要求不同,采用不同大小的緩沖窗口和處理策略,并結合數據傳輸延時的概率密度,分析計算模型的參數,最后以仿真實驗的方式驗證了所提出模型的有效性;文獻[8]針對流程型制造業個性化的環境中生產工藝參數難以快速決策影響實時管控任務的問題,通過結合實際生產工藝進行分析,提出了基于數據驅動的生產工藝參數匹配方法,建立了產品工藝相似度函數,從大量生產數據中選取與實際生產任務有關的鄰近數據,通過對比歷史數據與目標產品的生產要求實現了生產工藝參數的匹配;文獻[9]通過分析已有時間序列數據處理的研究,進行了大量的實驗研究,結果表明,在特殊情況下某些觀點可能太樂觀,最后重新實現了一些時間序列表示形式和相似性度量;文獻[10]和文獻[11]針對缺失數據的異常情況,基于EM 插補算法和高斯混合模型進行改進優化,提出一種新的數據流缺失處理算法,有效的解決了數據缺失異常,最后通過實驗驗證,相比于傳統的EM 插補算法,改進后的算法實時性和適應性更好,但是該算法僅局限于對缺失數據進行修復,其他異常情況無法處理;文獻[12]根據傳感器數據的時序性特點,提出了一種基于嵌套滑動窗口的數據缺失填充算法,通過皮爾遜分析數據項的空間相關性,然后使用固定大小的嵌套滑動窗口進行數據采樣處理,通過MKNN 算法進行缺失數據的精準填補,該算法的復雜度更低,數據修復效果精準,但是也只局限于缺失數據異常問題.
通過對現有數據處理技術的分析,并不適合應用于流程型制造車間生產數據的處理,因為其數據種類多,格式不一,不同數據項采集頻率不一,數據質量也是參差不齊,加上不同任務對數據的實時性和準確性要求不同,所以不能一概而論.本文根據生產數據特點不同,將其分為3 類:狀態數據、開關數據和邏輯數據.其中狀態數據是生產過程中表示環境、設備運行狀態的數據信號,如物料重量、傳送帶速度、焙燒溫度時間、環境溫度濕度等;開關數據是設備啟動、停止,以及閥門開關時產生的開關信號;邏輯數據是設備運行中表示是否運行的邏輯信號,如電流、頻率,其值在某一范圍內有效.為了滿足流程型車間生產任務的實際需求,針對不同數據類型,不同異常類型采用了不同的處理策略.
待處理數據是典型的時間序列[9]數據,即一系列按時間先后順序、等間隔采集的數據點所組成的數據序列.因此,數據模型可表示為由采集點唯一標識、采集時間以及數據值組成,記為:

其中,di=(pi,ti,vi)表示在pi采集點、ti時刻采集的數據值為vi,并且時間是一維線性遞增的,n為時間序列的長度.制造車間所有采集點在環境的影響下采集到的生產數據,如圖1所示

圖1 生產數據示意圖
流程型制造車間生產過程中時間序列數據的特點就是數據維度高,即數據值v表示的類型眾多,如溫度值、速度值、重量值等;加上時間流特點,這決定了不能使用傳統單一的數據處理方式進行處理.因此,降低數據維度、提高數據處理算法效率成為關鍵.本文首先根據數據特征,進行數據分類處理,再針對每類數據采用適合的算法進行處理,在保證數據處理質量的前提下,最大化提高處理效率[13].
滑動窗口[12]是一個固定長度的隊列,窗口中的數據是過去一段時間內采集數據點組成的數據流.數據點從窗口首部流入,尾部流出.
根據窗口中存放數據方式的定義,滑動窗口分為基于時間的滑動窗口和基于數據個數的滑動窗口;其中基于時間的滑動窗口保存最近一段時間長度內采集到的數據;基于數據個數的滑動窗口保存最近采集到的K個數據.
結合采集數據的特點分析,數據可能存在丟失情況,如果采用基于時間的定義方式,則在一定時間段內進入滑動窗口的數據項個數可能很少,在數據修復時準確度會下降.所以本文選擇基于數據個數的滑動窗口.在數據處理過程中,結合生產工藝的具體情況分析,根據每類數據的特點不同,為每類數據建立不同寬度的滑動窗口緩存數據,盡可能實時高效的處理數據.

圖2 ti 時刻滑動窗口
例如滑動窗口大小N,在ti時刻,進入滑動窗口的數據流(d1,d2,···,dn),如圖2所示[12].在tj時刻,滑動窗口中前i-j個數據移出窗口,dn+1至dn+i-j作為最新數據進入滑動窗口,存放在最右位置,如圖3所示.

圖3 tj 時刻滑動窗口
隨著時間推移,數據流不斷流入滑動窗口,窗口中的數據不斷更新,并且每次只需要處理更新后的數據,即dn+1至dn+i-j.
本文針對流程型制造車間采集數據來源廣、采集頻率不同、格式不同等特點分析,提出基于滑動窗口的多源數據分類處理模型.如圖4所示[14].

圖4 基于滑動窗口的多源數據分類處理模型
首先根據生產管控任務從數據源中選擇需要的數據項,在進行處理前根據數據特點進行分類,可劃分為3 類數據,分別是狀態數據、開關數據、邏輯數據;基于各類數據對完整性、準確性的需求不同,采用不同的處理算法進行修復;最后根據生產管控任務中數據項的關聯關系將處理后的數據進行多源融合,方便應用.
根據數據的采集頻率將數據分為3 類:邏輯數據、狀態數據、開關數據.其中邏輯數據變化最頻繁,采樣頻率最高,狀態數據次之,開關數據最后;狀態數據包含數據項、異常情況最多,分析處理也最為復雜.以下是對不同種類數據進行異常分析處理的過程.
狀態數據的異常情況可以分為3 類:數據重復、數據離群和數據丟失;其中丟失數據的修復較為復雜.根據狀態數據的特點,主要采用EM 算法進行改進,結合滑動窗口技術進行處理,提高數據處理的精度和性能.
(1)重復
根據之前對數據模型的分析,每個數據點都是由采集點唯一標識、采集時間和采集值構成,記d1=(p1,t1,v1).所以重復數據可以根據采集時間的唯一性過濾.
(2)離群
離群數據包括局部異常高值、低值,超出數據閾值.其中超出數據閾值異常可以通過為每個數據項配置數據閾值方式過濾;局部異常高值低值可以通過中值法修復,如下式:

(3)缺失
數據缺失的異常處理較為復雜,分為連續型缺失和不連續型缺失.針對不連續缺失情況,由于缺失數據前后時間間隔較短,可以采用中值法進行修補;對于連續型缺失,由于缺失數據過多若使用中值法修復,則可能導致誤差較大,所以本文采用改進的EM (Expectation-Maximization algorithm,最大期望算法)插值法,處理連續性缺失[10,11].EM 算法是一種從不完整數據集中對參數進行估值,然后通過不斷迭代求參數最大似然值的經典數據修復算法之一.
文獻[10]介紹了針對EM 算法進行改進處理缺失數據的情況.改進的EM 缺失插補算法有3 個特點:(1)設定連續缺失數據點個數的閾值為M,當連續缺失數據個數小于M時,表明數據缺失不嚴重,使用中值法進行修復,大于M時才使用EM 插補算法;(2)設定EM算法的最高迭代次數為K,當算法迭代次數大于K時,停止迭代,使用最后一次迭代結果作為缺失數據的插補值;(3)設定算法迭代精度ε,當第k次與k-1 次迭代結果差小于ε時,表明結果滿足要求,停止迭代,這樣可以在保證數據處理質量的前提下,提高數據處理效率.
數據修復的整個過程是基于固定大小的滑動窗口模型,窗口寬度為N,數據缺失閾值為M,最高迭代次數為K,迭代精度為ε,數據的采樣頻率為T,即時間序列數據正常到達滑動窗口的時間間隔.計算滑動窗口相鄰兩條數據di=(pi,ti,vi) 和di+1=(pi,ti+1,vi+1)的時間間隔△t=ti+1-ti,比較△t與M×T的關系,共有3 種情況,如下:
(1)當△t<2×T,則采集數據無缺失情況,無須處理;
(2)當2×T≤△t≤M×T,則數據點d1和d2之間存在缺失點,但沒有超過設定的缺失閾值M,使用中值法進行修復;
(3)當△t≥M×T,則缺失數據個數超出閾值M,采用EM 算法進行修復.具體如下[12]:首先記滑動窗口中N個數據點構成的數據集為S,假設其中有m個連續缺失的數據點,記為di(i=1,2,···,m).掃描數據集,分別以m個連續缺失數據為中心進行高斯模型劃分,得到m個高斯模型分別記為S1,S2,···,Sm,構成高斯混合模型[11],表示為:

其中,N(si|μi,Σi)是混合模型的第i個,πi是每個模型的權重,滿足0≤πi≤1;在這里引入一個m維隱變量z,zi(1≤i≤m)只能取0 或1 兩個值,zi=1 表示選中第i個分組中,即p(zi=1)=πi,zi∈{0,1}.在高斯混合模型中,隱變量是缺失點屬于某個模型的概率.因為S1,S2,···,Sm分別都是符合高斯分布的,則用條件概率表示為:

在貝葉斯思想下,p(z)是先驗概率,p(s|z)是似然概率,得到后驗概率p(z|s)如下:

為了方便計算模型的參數,在式(4)中用γ(zk)表示第k個分組的后驗概率.這里有3 個參數π,μ,Σ每次計算需要更新,需要分別求出這3 個參數的最大似然函數,求似然函數的方法有多種,這里直接給出最大似然函數:

其中,C表示每個分組中包含數據點的個數,xn表示當前分組中的第n個點,γ(zni)表示第n點屬于分組Si的后驗概率.
然后設定最大迭代次數K,初始迭代次數K0=1,迭代精度ε,數據缺失閾值M,以及每個分組πi、μi、Σi的初始值進行結算.
求期望:根據當前πi、μi、Σi計算后驗概率γ(zn i),由上述γ(zn i)表達式如下:

求極大:根據求期望步驟可得的γ(zn i),再代入式(5)~式(7)計算πi、μi、Σi的值,在每次迭代之前都需要判斷迭代次數K0>K和迭代精度是否小于ε,若不成立則迭代執行求期望步驟;若成立則停止迭代,輸出最終參數μi作為缺失點的插補值.
開關數據主要有兩種狀態開和關,有兩種表現形,第一種分別用True 和False 表示開和關,另一種用1 和0 表示用開和關,兩種表示形式的數據處理都不復雜.首先需要將非數字量轉換為數字量的0 或1;然后結合生產工藝,聯合相關數據項進行處理,這里不做詳細介紹.對于同一采集點的開關數據處理結果一定是{0,1,0,1,···}.
邏輯數據是另一種形式表示設備開關狀態的數據,其采樣頻率高,但是只有在一定范圍內才有效,如機器運轉的頻率、電流、電壓等,只有頻率達到某個范圍才表示機器在運轉中,而在這個范圍內,數據波動頻繁,有時出現異常情況可能跳出范圍內.所以對該類數據的容錯性較高,即使出現部分數據缺失、離群對整體數據的影響不大,處理的重點在于找到數據趨于穩定的點,將穩定在某范圍內的數據按邏輯1 處理,其余按邏輯0 處理.這樣便于對邏輯數據的分析時找到從0 跳變到1 或者從1 跳變到0 的時間點.
本文采用二次穩定度算法判斷邏輯數據的穩定性,具體如算法1[15].

算法1.二次穩定度算法1) 結合生產工藝和數據特點,選擇合適的波動率(R1,R2),其中R1、R2 分別是第一次和第二次穩定性判斷的波動率,以及穩定指標(S1,S2);一般情況下波動率R1 大于R2,穩定指標S1 小于S2;2) 從計算滑動窗口中所有數據的總值Vsum 和平均值Vavg;當每次滑動窗口向后移動時只需要用Vsum 減去移出數據值,再加上移入數據值即可得到新的總值;3) 根據波動率R1 確定均值上下的一次穩定區間[Vavg-Vavg×R1,Vavg+Vavg×R1],然后計算滑動窗口中數據在一次穩定區間中的概率,即數值在穩定區間的個數占總數的比值P1;如果P1 小于S1,則判定數據不穩定,將滑動窗口首位置為0,否則執行4);4) 根據波動率R2 計算均值上下的二次穩定區間[Vavg-Vavg×R2,Vavg+Vavg×R2],然后計算滑動窗口中數據在二次穩定區間中的概率P2;如果P2 大于等于S2,則判定數據穩定,將滑動窗口首位置為1,否則置為0.
本文采用的實驗環境是Windows 7,CPU 3.6 GHz,內存16 GB 的計算機;實驗數據是某鋰電池材料生產車間產生的數據,該生產車間是典型的流程型生產車間,數據種類多,質量參差不齊,采樣間隔1 s,如表1所示.

表1 部分生產數據
本文分別選取滑動窗口的寬度N為150,160,170,180,190,200;EM 算法循環迭代精度ε=0.1;數據缺失閾值W=4,5,6,7,8;分別進行實驗驗證,最后選定滑動窗口寬度N=180,數據缺失閾值W=7 時數據插補效果最好.
同時對于邏輯數據由于生產環境因素影響造成其值在一定范圍內波動的情況,如圖5所示,為原料高混機運行時產生的電流數據.

圖5 高混機電流數據
為了便于找到數據穩定趨勢,分析從邏輯0 跳變到邏輯1,或者相反跳變的時間點,采用二次穩定度算法,結合生產工藝設置波動率R1、R2分別是10%、5%,穩定指標S1、S2分別是90%、80%,將穩定在某范圍內的數據值按邏輯1 處理,其余按照邏輯0 處理,結果如圖6所示.

圖6 處理后的電流數據
最后為了驗證數據處理效果,將經過處理后的數據應用于流程型制造車間鋰電池材料產品生產批次判斷,與實際人工統計結果比較,誤差率不足1%.
本文針對流程型車間生產數據的多樣性、數據質量參差不齊等問題,采用數據分類處理技術,相比與傳統的單一數據處理技術,提高了數據處理效率,為數據應用于過程控制提供了保障.最后以某鋰電池材料生產車間生產數據為例,驗證了所設計的數據分類處理模型.結果表明:該方法在保證數據處理質量的前提下,較傳統數據處理方法更加簡潔、高效,具有實際應用價值.