劉勁松,于 東, 胡 毅,畢筱雪,樸美燕,葉迎萍
(1.中國科學院大學, 北京 100049;2.高檔數(shù)控國家工程研究中心,沈陽 110168;3.中國科學院 沈陽計算技術(shù)研究所, 沈陽 110168)
隨著信息技術(shù)的發(fā)展和制造行業(yè)市場競爭的加劇,數(shù)字化和智能化制造已成為全球制造業(yè)面臨的新挑戰(zhàn)和發(fā)展趨勢[1-2]。隨之而來的是工業(yè)生產(chǎn)過程中種類豐富的數(shù)據(jù)以及迅速增長的過程數(shù)據(jù)量。對于數(shù)控機床設(shè)備,通常采集頻率要求較高,且采集的數(shù)據(jù)種類也較豐富,如軸的轉(zhuǎn)速、功率、負載、電流及傳感器數(shù)據(jù)等,多臺機床一天的數(shù)據(jù)量大小就達到GB量級,這給數(shù)據(jù)庫的存儲帶來了很大的負擔,因此需要對這些數(shù)據(jù)進行壓縮處理,來提高存儲效率,同時節(jié)省存儲空間。
目前,工業(yè)過程數(shù)據(jù)的壓縮方法通常有3類[3]:分段線性插值方法、矢量量化方法和信號變換方法。其中在工業(yè)領(lǐng)域廣泛使用的是分段線性插值方法,其又包括矩形波串法、反向斜率法,旋轉(zhuǎn)門法(Swinging Door Trending, SDT)以及分段線性趨勢方法等。其中旋轉(zhuǎn)門算法[4]是一種快速的線性擬合有損壓縮算法,具有高效率、高壓縮比、實現(xiàn)簡單和誤差可控等優(yōu)點,得到了學者們廣泛的使用和研究。于松濤[5]提出一種基于容差動態(tài)調(diào)整的旋轉(zhuǎn)門改進算法,提高了壓縮精度,降低了壓縮誤差。張健[6]根據(jù)實際過程數(shù)據(jù)波動情況自適應地調(diào)整記錄限的大小,從而可以識別和處理異常點,提高了控制系統(tǒng)的實時數(shù)據(jù)處理能力。
本文提出了一種改進的旋轉(zhuǎn)門算法,根據(jù)數(shù)據(jù)的波動狀態(tài)對容差進行動態(tài)調(diào)整,采用多模型尋優(yōu)方法進行函數(shù)擬合,并根據(jù)擬合的誤差來保存對壓縮精度影響較大的點,減少壓縮誤差。
旋轉(zhuǎn)門算法是由OSI軟件公司提出的[7],利用線性線段擬合和容差來壓縮工業(yè)過程數(shù)據(jù)的一種有損壓縮算法。原理是先由前一個保存的數(shù)據(jù)點和當前數(shù)據(jù)點來畫一條直線,查看當前記錄點和上一保存的記錄點所構(gòu)成的壓縮偏差區(qū)來確定前一時刻的數(shù)據(jù)點是否要保存。如果壓縮偏差區(qū)不能覆蓋兩者之間所有的點,那么則保存前一時刻的數(shù)據(jù)點,否則不保存。旋轉(zhuǎn)門算法以最近保存的數(shù)據(jù)點為起點,當前數(shù)據(jù)點為終點,以兩者之間的直線為中軸,構(gòu)造一個高度ΔE(即壓縮容差)固定的平行四邊形。通過這個平行四邊形去評估數(shù)據(jù),在起點和終點之間有任一數(shù)據(jù)點不在范圍之內(nèi),則存儲待保存數(shù)據(jù)點,然后將其作為新的起點,來重復這個過程。具體如圖1所示。
圖1 旋轉(zhuǎn)門壓縮算法原理圖
衡量一個過程數(shù)據(jù)壓縮算法好壞的指標[8]之一是壓縮比CR(Compression Ratio),CR表示的是原始的數(shù)據(jù)點數(shù)和壓縮后的數(shù)據(jù)點數(shù)的數(shù)量之比。當壓縮比越高時,對存儲空間的占用就越少。另一個重要指標是壓縮誤差CE(Compression Error),CE描述了壓縮后解壓恢復的數(shù)據(jù)與實際數(shù)據(jù)的逼近程度。
從SDT算法的原理可以看出,如何選取合適的參數(shù)ΔE是保證壓縮效果的關(guān)鍵因素[9]。當ΔE選取過大時,會舍棄更多的數(shù)據(jù)點,那么會提高壓縮比,但是也增大了壓縮誤差,使得壓縮后的數(shù)據(jù)趨勢與原始趨勢有些不同;當ΔE選取過小時,保留更多的數(shù)據(jù)點,這樣會降低壓縮誤差,但同時也會降低壓縮比,起不到壓縮的效果。算法壓縮過程中舍棄一些數(shù)據(jù)點其它點相比差別較大,如果被丟棄會明顯的加大壓縮誤差。
因此,本文提出一種改進的SDT算法,針對ΔE進行動態(tài)調(diào)整,并且記錄一些誤差較大的點,在保證壓縮比的同時降低壓縮誤差,保證在少丟失信息的情況下存儲更少的機床狀態(tài)數(shù)據(jù)。
在工業(yè)領(lǐng)域中,數(shù)控機床生產(chǎn)過程中的數(shù)據(jù)變化一般比較平穩(wěn),針對這一特點,將數(shù)控機床的海量過程數(shù)據(jù)拆分為多個區(qū)間并分段使用旋轉(zhuǎn)門算法進行處理。根據(jù)相鄰區(qū)間的數(shù)據(jù)波動狀態(tài),對下一待壓縮區(qū)間的容差ΔE進行動態(tài)調(diào)整,即當數(shù)據(jù)波動有逐漸增大的趨勢時,減小容差;當數(shù)據(jù)波動有減小的趨勢時,增大容差,其中波動對容差影響的大小可以通過系數(shù)k進行調(diào)節(jié)。有效的解決了旋轉(zhuǎn)門算法中容差難以確定的問題。
另外,由于壓縮過程中有一些數(shù)據(jù)點對壓縮精度影響較大,為了降低壓縮誤差,需要對這些數(shù)據(jù)點進行記錄,采用一種多模型尋優(yōu)方法取代最初的線性擬合方法進行函數(shù)擬合,通過對比來確定一個最優(yōu)的擬合函數(shù)模型。根據(jù)擬合的結(jié)果,來保存對壓縮精度影響較大的原始點,從而在保證盡量不丟失信息的情況下存儲更少的機床狀態(tài)數(shù)據(jù),具有較好的精簡壓縮效果。下面將詳細介紹算法的步驟。
在SDT改進壓縮算法中,ΔE表示SDT算法中的容差,范圍為ΔEmin≤ΔE≤ΔEmax;T表示壓縮區(qū)間時間間隔;δmax表示壓縮的最大誤差。
算法步驟如下:
步驟1:截取時間間隔為T的待壓縮區(qū)間,對容差ΔE進行初始化ΔE=ΔEmin+ΔEmax/2。
步驟2:對待壓縮區(qū)間內(nèi)的數(shù)據(jù)進行標準SDT壓縮,即以最近保存的數(shù)據(jù)點為起點,當前數(shù)據(jù)點為終點,以兩者之間的直線為中軸,構(gòu)造一個高度(即容差)固定的平行四邊形。通過這個平行四邊形去評估數(shù)據(jù),如果兩者之間有任一數(shù)據(jù)點不在范圍之內(nèi),則保存,然后將其當作新的起點,重復此過程。
步驟4:使用擬合后的函數(shù)y=S*(x),計算在步驟2中刪除的原始數(shù)據(jù)記錄的誤差δi=S*(i)-yi,其中i=0,1,…,n-m。如果δmax≤δi則保留第i個數(shù)據(jù)記錄,否則不做處理。
步驟5:計算該壓縮區(qū)間內(nèi)原始數(shù)據(jù)的標準差:
其中,u為區(qū)間內(nèi)原始數(shù)據(jù)的平均值。如果該壓縮區(qū)間為初次壓縮區(qū)間保存本區(qū)間標準差σ,與下一個壓縮區(qū)間共同實現(xiàn)容差調(diào)整,即σ′=σ,并跳過步驟6,繼續(xù)后面的步驟。
步驟6:比較兩次壓縮區(qū)間的標準差σ、σ′,重新計算ΔE。
(1)如果σ=0,表示壓縮區(qū)間中的數(shù)據(jù)沒有波動,ΔE保持不變,σ=ΔE;
(3)如果σ/σ′1表示數(shù)據(jù)波動有變小的趨勢,因此其中k為系數(shù),且k越大,波動的變化對容差的影響越大。
步驟7:如果還有未壓縮完的點,且時間區(qū)域大于T,繼續(xù)執(zhí)行步驟2,否則算法結(jié)束。
算法流程如圖2所示。通過改進算法的基本步驟,與標準SDT算法相比,改進之處在于容差的動態(tài)調(diào)整和通過多模型尋優(yōu)的方式來記錄誤差最大的點。調(diào)整容差提高了壓縮比,記錄誤差最大的數(shù)據(jù)點可以減少壓縮誤差,使得壓縮后的恢復的數(shù)據(jù)與原始數(shù)據(jù)更加逼近。
圖2 算法流程圖
為驗證改進算法的性能,現(xiàn)對其進行驗證。試驗數(shù)據(jù)來自于數(shù)控機床加工工件時的真實環(huán)境。現(xiàn)采集了X軸位置坐標、主軸負載和主軸振動數(shù)據(jù),現(xiàn)使用改進的SDT算法分別對這些數(shù)據(jù)進行壓縮。圖3是X軸位置坐標的原始數(shù)據(jù)曲線,圖4是使用改進SDT算法壓縮后的數(shù)據(jù)曲線。
圖3 原始數(shù)據(jù)
圖4 壓縮后的數(shù)據(jù)
從圖中可以看出,改進后的算法保留了原始數(shù)據(jù)曲線的特征趨勢,同時舍棄了一些輕微擾動的非關(guān)鍵信息,減小了壓縮誤差,保證壓縮后的曲線趨勢與原始趨勢更加逼近。
改進的算法多保留了一些誤差最大的點,但是卻減小了壓縮誤差。因此,在具有相同壓縮誤差的情況下,改進的算法具有更好的壓縮比。在數(shù)控機床監(jiān)控領(lǐng)域,輕微擾動等非關(guān)鍵信息并不影響機床的正常運行。而對數(shù)控機床加工過程中的整體趨勢和狀態(tài)突變往往與機床的異常有關(guān),更具有研究價值。算法用于數(shù)字化虛擬車間的工業(yè)大數(shù)據(jù)平臺中,如圖5所示,經(jīng)過了24h的運行,所占的存儲空間相比以往減少47.53%,取得了理想的效果。
圖5 工業(yè)大數(shù)據(jù)平臺
本文提出的旋轉(zhuǎn)門改進算法,通過動態(tài)調(diào)整容差和通過多模型尋優(yōu)來確定存儲誤差最大的點。對采集的數(shù)據(jù)分別用標準SDT和改進算法進行壓縮對比,提高了數(shù)據(jù)壓縮比,減少了壓縮誤差,并將改進算法應用于數(shù)控機床狀態(tài)監(jiān)控,集成到某公司開發(fā)的數(shù)字化虛擬車間的工業(yè)大數(shù)據(jù)平臺中,取得了很好的效果,節(jié)省了系統(tǒng)存儲空間,減少了儲存成本,提高了訪問歷史數(shù)據(jù)的效率。
[1] Newman S T, Nassehi A, Xu X W, et al. Strategic advantages of interoperability for global manufacturing using CNC technology[J]. Robotics and Computer-Integrated Manufacturing, 2008, 24(6):699-708.
[2] 王帥, 胡毅, 何平,等. 基于OPC技術(shù)實現(xiàn)西門子數(shù)控系統(tǒng)的數(shù)據(jù)采集[J]. 組合機床與自動化加工技術(shù), 2016(4):69-71.
[3] 董棟, 劉強. 一種改進的分段線性趨勢壓縮算法及應用[J]. 微計算機信息, 2006, 22(36):200-202.
[4] Bristol E H. Swinging door trending: adaptive trend recording? [C] ∥Proceedings of ISA National Conference, IEEE Press, 1990:749-753.
[5] 于松濤, 王曉琨, 趙利強,等. 基于容差動態(tài)調(diào)整的旋轉(zhuǎn)門(SDT)改進算法[J]. 北京化工大學學報(自然科學版), 2013, 40(3):109-113.
[6] 張健, 劉光斌. ISDT算法的數(shù)據(jù)壓縮處理及其性能分析[J]. 火力與指揮控制, 2007, 32(2):80-82.
[7] 張望, 陳新楚, 盧定興. 過程數(shù)據(jù)壓縮算法SDT的改進研究與應用[J]. 工業(yè)控制計算機, 2009, 22(8) : 1-3.
[8] Feng Xiaodong, Cheng Changling, LiuChangling, et al. Improved SDT Process Data Compression Algorithm[J]. High Technology Letters(英文版), 2003, 9(2) : 91-96.
[9] Mah R S H, Tamhane A C, Tung S H, et al. Process trending with piecewise linear smoothing[J]. Computers & Chemical Engineering, 1995, 19(2) : 129-137.