專利名稱:一種實時歷史數據動態無損壓縮方法
技術領域:
本發明涉及一種過程數據壓縮方法,尤其是涉及一種能夠對生產過程數據進行緩存預處理和采取全量程閾值多模壓縮并無損保存動態數據的一種實時歷史數據動態無損壓縮方法。
背景技術:
在工業生產過程中,由于其過程控制系統(Process Control System,簡稱PCS系統)或生產信息系統(Operation Information System,簡稱OIS系統)需要采集和存儲的生產過程數據量非常大、頻度非常高、持續時間非常長,因此,都會采取對實時歷史數據進行壓縮處理,合理舍棄部分數據采樣點或對過程數據進行數學擬合之后再加以存儲的方法以減少其對物理存儲空間的需求、提高計算機處理效率和縮短實時歷史數據的檢索時間。而作為實時歷史數據庫關鍵技術之一的數據壓縮方法是隨著計算機信息處理技術的發展而在不斷變化的。也陸續出現了許多通用的壓縮技術(如PPM算法、BWT算法、LZ 算法等)和專用壓縮技術(如多媒體數據壓縮技術和過程數據壓縮技術等),前者不關心數據的具體特征,僅按計算機存儲的最小單元進行壓縮處理;而后者則考慮了數據本身的基本應用特征以保證一定的復現精度。由于在實際的工業生產過程應用中,用戶往往更加關心的是數據的波動、突變和越限等變化,而對數值的微小變化并不需要時刻加以關注,所以,一般在過程數據壓縮技術中多采用了有損壓縮算法。最常用的是死區壓縮法和矢量壓縮法,其中,PCS系統大多采用的是死區壓縮法,即可對過程數據設定一個較小的死區,當過程數據的變化超過該死區時, 才存儲其數據樣本,這種處理方法簡單、快速、壓縮效率高,但數據的失真也較為嚴重。而在 OIS系統中,一種由美國OSI公司提出的旋轉門壓縮算法(Swinging Door Compression)得到了廣泛的應用,“旋轉門”算法對慢變數據具有較高的壓縮比,算法成熟可靠。經過對國內外專利和技術文獻的檢索和分析發現,已有許多研究者針對上述兩種常用的過程數據壓縮方法的不足之處進行了改進。如中國專利CN1223951C[1]、CN100430943Cm等采用斜率或偏差修正等方法對旋轉門算法進行了自適應或二級壓縮優化;中國專利CN10035437C[2]等還將通用壓縮算法LZW和旋轉門等實時數據壓縮算法結合起來,以提高數據壓縮效率。為了減少數據采集過程中噪聲的影響,中國專利CN100435136[4]還給出了一種基于最小二乘法的線性濾波方法,上述專利和其中的引用文獻也給出了現有技術存在的問題和各種提高壓縮效率的改進方法。隨著近年來計算機處理能力的迅速提高和硬件存儲成本的不斷降低,過程數據壓縮技術的關注點也從因受計算機性能和成本的制約而單純考慮壓縮效率;轉到了更為關注有損壓縮方法的數據保真度。中國專利CN101692251AM、CN101807925Ate]等分別采用基于函數參數估計和基于數值排序線性擬合的方法對數據壓縮過程進行了擬合優化。而前述的這些方法都對全部過程數據及其全量程范圍采取了相同的壓縮模式和壓縮精度,這種處理方法雖然簡單,卻并沒有針對各種過程數據的不同應用特征,因此會不同程度地丟失許多能夠及時反映過程故障征兆或暫態過程的數據變化,因而復現數據僅適合于穩態分析。眾所周知,過程數據壓縮技術的關鍵在于時間性能、空間性能和實現難度三者的平衡和折衷,在本申請人完成的上海市科技創新專項中,針對鍋爐數字化設計和仿真分析對歷史數據的需求,對現有的過程數據有損壓縮方法的適應性問題進行了深入的分析。著重考慮了穩態和動態等不同工況下的數據保真度和數據全量程范圍內的壓縮有效性。由于目前PCS或OIS系統的軟硬件實時處理能力和存儲模式、性價比都較以往得到了根本的提高,完全可以采用符合不同過程數據應用特征的壓縮算法在數據壓縮有效性和保真度等方面實現性能的提升。參考文獻[1J.CN1223951A,自適應的歷史數據壓縮方法[2] CN100385437C,實時數據壓縮方法[3]. CN100430943C,一種過程工業歷史數據智能兩級壓縮方法[4]. CN100435136C,一種基于最小二乘線性擬合的實時數據壓縮方法[5].CN101692251A,基于函數參數估計的通用過程數據在線壓縮、解壓方法[6]. CN101807925A,一種基于數值排序線性擬合的歷史數據壓縮方法
發明內容
本發明要解決的問題是彌補現有過程數據有損壓縮方法的不足,針對不同過程數據的應用特征來提高全量程壓縮效率,分別考慮穩態和動態過程的數據保真度,通過動態數據無損存儲來獲得更有效的數據壓縮效果。本發明的技術方案具體是按照以下方法實現的將需存儲的過程實時歷史數據先存儲于計算機內存的數據壓縮緩存區內,并對每個時間片內超過閾值和死區的動態數據采用無損存儲,而對未達閾值或變化較小的穩態數據僅存儲其采樣的數據壓縮特征值,處理完成的數據壓縮特征值數據再轉存到內存的歷史數據緩存區隊列,最后將歷史數據緩沖區內的數據批量存入硬盤上打開的活動歷史數據文件,具體包括以下步驟步驟I.啟動歷史數據記錄進程并讀入設定參數;按照歷史數據文件大小的設定, 在計算機內存中開啟一個歷史數據緩存區△ F,并在計算機硬盤打開一個與之對應的活動歷史數據文件;步驟2.按設定的壓縮緩存時間片AT的對應大小開啟一個內存數據壓縮緩存區;步驟3.清空數據壓縮緩存區,開始一個周期為壓縮緩存時間片A T的過程數據采集和處理過程;步驟4.采集過程數據樣本,記錄壓縮緩存時間片A T的初始數據樣本,并判斷該初始數據樣本是否滿足壓縮閾值AL,如果其滿足壓縮閾值AL,則按照設定的采樣周期逐次采集過程數據樣本并順序存儲于數據壓縮緩存區;步驟5.如果初始數據樣本的值不滿足壓縮閾值△ L,則僅將初始數據樣本按照對應的時間戳存入歷史數據緩存區,并轉到步驟8.;步驟6.如果初始數據樣本數值滿足壓縮閾值A L,且到達壓縮緩存時間片A T設定間隔時,對數據壓縮緩存區內的全部數據樣本按照壓縮模式參數C設定的模式進行數據壓縮特征值處理;步驟7.將處理完成的數據壓縮特征值及其對應的時間戳依次存儲到歷史數據緩存區的數據隊列;步驟8.在完成數據壓縮緩存區內全部數據樣本的處理并將得到的壓縮特征值存入歷史數據緩存區之后,將數據壓縮緩存區內的終了數據樣本作為下一個壓縮緩存時間片 Λ T的初始數據樣本,并轉到步驟3.開始下一個壓縮緩存時間片AT的過程數據采集和處理過程;步驟9.當歷史數據緩存區內的數據達到寫入歷史數據文件的設定值Λ F時,將其中的數據轉存入在硬盤打開的活動歷史數據文件,并采用通用壓縮算法對該文件進行二進制壓縮后,按照存盤時間順序轉存到計算機硬盤的歷史數據歸檔區;步驟10.清空歷史數據緩存區AF,開啟一個新的活動歷史數據文件,轉入步驟 3.重復進行后續的過程數據采集和處理;步驟11.循環進行上述步驟,直至歷史數據記錄進程被中止;當記錄進程被中止時,當前打開的活動歷史數據文件將被存入硬盤暫存區,并在進行標識后再轉存到歷史數據歸檔區。為了滿足不同應用特征的過程數據的壓縮需求,本發明前述的步驟6.和步驟 7.所述的數據壓縮特征值處理方法具體是按照以下步驟實現的步驟12.如果初始數據樣本的數值滿足壓縮閾值AL,數據壓縮緩存區內的全部數據樣本將按照壓縮模式參數C的設定以不同的方式進行數據壓縮特征值處理,并將結果存入歷史數據緩存區;步驟13.壓縮模式參數C為一個大于等于O的整數,且每個整數值均代表了一種不同的壓縮處理模式,并且至少包括了以下幾種模式;步驟14.當壓縮模式參數C = O時,為正常模式除初始數據樣本將作為數據壓縮特征值存儲到歷史數據緩存區的隊列之外,數據壓縮緩存區內的所有數據樣本將逐一與初始數據樣本進行比較,當二者的偏差超過設定死區土 δ時,超過死區土 δ的對應數據樣本將全部作為數據壓縮特征值按對應的時間戳無損地存儲到歷史數據緩存區的隊列中;步驟15.如果步驟14.中數據樣本的偏差未超過設定死區+ δ時,對全部的數據樣本進行比較后的最大數據樣及與其對應的時間戳也將作為數據壓縮特征值存儲到歷史數據緩存區的隊列中;步驟16.如果步驟14.中數據樣本的偏差未超過設定死區-δ時,對全部的數據樣本進行比較后的最小數據樣本及與其對應的時間戳也作為數據壓縮特征值存儲到歷史數據緩存區的隊列中;步驟17.當壓縮模式參數C= I時,為死區模式除初始數據樣本將作為數據壓縮特征值存儲到歷史數據緩存區的隊列之外,如果數據壓縮緩存區內的數據樣本值超過設定死區土 δ時,其超出死區土 δ時的最大或最小值及與其對應的時間戳也作為數據壓縮特征值存儲到歷史數據緩存區的隊列中;如果無數據樣本值超過死區土 δ時,僅初始數據樣本作為數據壓縮特征值;步驟18.當壓縮模式參數C = 2時,為濾波模式除初始數據樣本將作為數據壓縮特征值存儲到歷史數據緩存區的隊列之外,數據壓縮緩存區內所有數據樣本的算術平均值將以壓縮緩存時間片AT的中位時間戳作為數據壓縮特征值存儲到歷史數據緩存區的隊列中;根據過程數據分析等不同的需求,用戶還可在上述模式基礎上自定義其它壓縮模式。本發明的有益效果在于該方法通過采用閾值、死區和壓縮模式的多模壓縮方式, 解決了暫態和動態數據以及其它不同應用特征的過程數據高效壓縮問題,同時,本發明的方法便于計算機編程實現,適合于高速海量時序數據的處理,解決了目前實時歷史數據庫有損壓縮算法的失真現象,具有較高的壓縮效率。實踐證明,該方法既可以有效地應用于過程控制系統PCS,也適合于更高一級的生產信息系統0IS。
附圖I是本發明壓縮方法的軟件流程示意圖;附圖2是本發明的數據變化及處理方法示意圖;附圖3是本發明壓縮方法的內存處理過程示意圖;附圖4是本發明壓縮方法的數據復現效果示意圖。
具體實施例方式下面結合附圖I 附圖4來對本發明的實施例作詳細說明,實施例在以本發明技術方案為前提下進行實施并給出了具體的實施方案和系統結構,但本發明的保護范圍不限于下述的實施例。如附圖I所示,在采用本發明方法實現的歷史數據服務器上啟動歷史數據記錄進程1,并讀入下列設定參數-歷史數據緩存區AF:該參數定義了每個歷史數據文件的大小,可以選擇設置為一個固定的文件大小或一個固定長度的存儲時間。在本實例中,選擇AF = 8小時,即每隔 8小時將完成一個歷史數據文件的存儲,因為AF同時也對應了歷史數據緩存區的大小,必須根據計算機物理內存的實際大小設置,軟件將會自動限制其超出合理值。-壓縮緩存時間片AT:該時間定義了對采集到的數據樣本進行壓縮處理的間隔, 本實施例中設定AT= 10秒,過程數據采樣周期為0.1秒,即每次對100個采集到的數據樣本進行壓縮處理,可以看出,AT設置得越大,數據的壓縮效率越高。-壓縮閾值AL:該參數定義了在數據的全量程范圍內需要更精確存儲的區間。在本實例中,定義AL為過程數據的報警I值,即當數據樣本大于其報警I值時,將對數據的動態變化進行無損壓縮或特征值處理,而未到該區域時,存入歷史數據文件的數據將只是每個時間片AT的初始數據樣本值,這樣就對不需要進行精確復現的數據變化實現了最高效的壓縮,例如對一個溫度(設其量程為0 600°C )這樣的慢變測點,當其遠低于設計的報警值(如< 450°C)時,就不需要對其變化進行精確記錄,在本實例中10秒鐘才會記錄一次變化值。-死區土8 :數據超過了該參數定義范圍后,將記錄其動態變化的所有樣本,在本實例中,一般S取0. I %,即當樣本的變化超過其量程的±0. I %時會被精確地記錄并無損地存儲下來(如量程為O 600°C的一個溫度測點,當其變化幅度超過O. 6°C時,其數值將會被精確地記錄)。-壓縮模式C:該參數為一個正整數,定義了當數據樣本大于壓縮閾值AL時的不同歷史數據記錄模式,對不同類型和應用的測點可以選擇不同的壓縮模式。除三種標準模式外,在本實例中C為O 4,還另外自定義了兩種新的壓縮模式①當C = O時為正常模式或稱缺省模式,每個壓縮緩存時間片AT中的數據樣本被存儲到歷史數據緩沖區內的數據壓縮特征值包括每個壓縮緩存時間片△ T的初始數據樣本、變化的最大和最小的樣本值、以及超過死區土 δ時的全部樣本值;②當C = I時為死區模式,壓縮緩存時間片AT的初始數據樣本以及超過死區時的最大和/或最小值將作為數據壓縮特征值存儲到歷史數據緩沖區內。③當C = 2時為濾波模式,壓縮緩存時間片AT的初始數據樣本和全部數據樣本的加權平均值將作為中位數據壓縮特征值存儲到歷史數據緩沖區內。④當C = 3時為自定義最小值模式,壓縮緩存時間片AT的初始數據樣本和全部數據樣本中的最小值將作為數據壓縮特征值存儲到歷史數據緩沖區內,和C= I時相比,無論數據樣本是否超過死區,其最小樣本值都將被存儲到歷史數據緩沖區內。⑤當C = 4時為自定義最大值模式,壓縮緩存時間片AT的初始數據樣本和全部數據樣本中的最大值將作為數據壓縮特征值存儲到歷史數據緩沖區內,和C= I時相比,無論數據樣本是否超過死區,其最大樣本值都將被存儲到歷史數據緩沖區內。根據上述參數的設定開啟相應的緩存區(附圖I步驟2)和硬盤活動歷史數據文件(附圖I步驟3),即可采用本發明提供的方法(附圖I步驟4 步驟14)對采樣到的過程數據樣本進行壓縮處理。數據變化和對應的數據處理過程可分別見附圖2和附圖3,當選擇該測點的壓縮值模式C = O時,符合該模式要求的樣本均將作為數據壓縮特征值和與其對應的時間戳一起存儲到歷史數據緩存區。這里的時間戳是指由主時鐘同步得到的該樣本的絕對時間值, 該值既可以以絕對時間值與樣本數值一起作為一個完整的數據壓縮特征值依次存放在歷史數據緩存區,也可以在歷史數據緩存區隊列僅保留時間戳的相對偏移量。如附圖2所示,在第一個壓縮緩存時間片AT的采集過程中,其時間戳T1對應的初始值X1超過了設定的壓縮閾值AL,在時間戳^時測點樣本的變化與初始值Xii差超過了設定的死區+ S,并在時間戳t3時回復到了+ δ以內;在時間戳&時測點樣本達到了與初始值X1相比最低的數值S4,在到達時間片終點T2時測點的樣本值為χ2。數據采集緩沖區中的樣本值XpS1 S3、S4將按照時間戳的順序被存儲到歷史數據緩存區,并且X2將作為下一個時間片AT的初始數據樣本值。在第二個時間片AT的采集過程中,X2也超過了設定的壓縮閾值AL,但所有的數據樣本與初始值X2比較均未超過死區土 δ,在時間戳t5時測點樣本到達了低點S5,在時間戳t6時測點樣本到達了高點S6,因此到達時間片終了點T3時,數據采集緩沖區中的數據壓縮特征值\、S5、S6將按照時間戳的順序被存儲到歷史數據緩存區,X3將作為后續一個時間片AT的初始值。如附圖3和附圖I中步驟15所示,當歷史數據緩存區存儲的數據到達設定限值 AF時,其存儲的數據將轉存到打開的活動歷史數據文件Fi,在本實例中將以二進制格式直接存儲上述數據并將關閉后的文件存到硬盤的歷史數據文件歸檔區,也可以設定采用其它通用壓縮算法對文件進行二次壓縮,該流程也可以在文件存入硬盤歸檔區之后再進行。當記錄進程未被中止時,將重復進行上述過程(附圖I步驟16、17);如果進程被中止,由于此時的活動文件可能尚未達到設定限值AF,在轉存到硬盤歸檔區前將先存于一個硬盤暫存區,并在標識之后再歸檔,以區別出本次記錄的中斷點(附圖I步驟18 20)。附圖4顯示了本發明壓縮方法的數據復現效果,其中附圖4-(1)是測點的實際變化,附圖4-(2)是當本實例取壓縮模式C = 0時的復現效果。根據不同過程數據的分析需要,本發明還可以自定義更多的壓縮模式,例如當本實例選擇C = 4時,其復現效果為附圖4-(3)所示,存入歷史數據緩存區的壓縮數據特征值分別為XpSySf^X2和X3,與傳統的死區模式相比在保證了壓縮率的同時也記錄了該參數的峰值變化以免丟失重要的故障征兆特征。
權利要求
1.一種實時歷史數據動態無損壓縮方法,其特征在于該方法具體是由以下步驟實現的步驟I.啟動歷史數據記錄進程并讀入設定參數;按照歷史數據文件大小的設定,在計算機內存中開啟一個歷史數據緩存區△ F,并在計算機硬盤打開一個與之對應的活動歷史數據文件;步驟2.按設定的壓縮緩存時間片AT的對應大小開啟一個內存數據壓縮緩存區; 步驟3.清空數據壓縮緩存區,開始一個周期為壓縮緩存時間片AT的過程數據采集和處理過程;步驟4.采集過程數據樣本,記錄壓縮緩存時間片AT的初始數據樣本,并判斷該初始數據樣本是否滿足壓縮閾值AL,如果其滿足壓縮閾值AL,則按照設定的采樣周期逐次采集過程數據樣本并順序存儲于數據壓縮緩存區;步驟5.如果初始數據樣本的值不滿足壓縮閾值AL,則僅將初始數據樣本按照對應的時間戳存入歷史數據緩存區,并轉到步驟8.;步驟6.如果初始數據樣本數值滿足壓縮閾值AL,且到達壓縮緩存時間片AT設定間隔時,對數據壓縮緩存區內的全部數據樣本按照壓縮模式參數C設定的模式進行數據壓縮特征值處理;步驟7.將處理完成的數據壓縮特征值及與其對應的時間戳依次存儲到歷史數據緩存區的數據隊列;步驟8.在完成數據壓縮緩存區內全部數據樣本的處理并將得到的壓縮特征值存入歷史數據緩存區之后,將數據壓縮緩存區內的終了數據樣本作為下一個壓縮緩存時間片AT 的初始數據樣本,并轉到步驟3.開始下一個壓縮緩存時間片AT的過程數據采集和處理過步驟9.當歷史數據緩存區內的數據達到寫入歷史數據文件的設定值AF時,將其中的數據轉存入在硬盤打開的活動歷史數據文件,并采用通用壓縮算法對該文件進行二進制壓縮后,按照存盤時間順序轉存到計算機硬盤的歷史數據歸檔區;步驟10.清空歷史數據緩存區AF,開啟一個新的活動歷史數據文件,轉入步驟3.重復進行后續的過程數據采集和處理;步驟11.循環進行上述步驟,直至歷史數據記錄進程被中止;當記錄進程被中止時,當前打開的活動歷史數據文件將被存入硬盤暫存區,并在進行標識后再轉存到歷史數據歸檔區。
2.如權利要求I所述的一種實時歷史數據動態無損壓縮方法,其特征在于本發明前述的步驟6.和步驟7.所述的數據壓縮特征值處理方法具體是按照以下步驟實現的步驟12.如果初始數據樣本的數值滿足壓縮閾值AL,數據壓縮緩存區內的全部數據樣本將按照壓縮模式參數C的設定以不同的方式進行數據壓縮特征值處理,并將結果存入歷史數據緩存區;步驟13.壓縮模式參數C為一個大于等于O的整數,且每個整數值均代表了一種不同的壓縮處理模式,并且至少包括了以下幾種模式;步驟14.當壓縮模式參數C = O時,為正常模式除初始數據樣本將作為數據壓縮特征值存儲到歷史數據緩存區的隊列之外,數據壓縮緩存區內的所有數據樣本將逐一與初始數據樣本進行比較,當二者的偏差超過設定死區土 S時,超過死區土 5的對應數據樣本將全部作為數據壓縮特征值按對應的時間戳無損地存儲到歷史數據緩存區的隊列中;步驟15.如果步驟14.中數據樣本的偏差未超過設定死區+ S時,對全部的數據樣本進行比較后的最大數據樣本及與其對應的時間戳也作為數據壓縮特征值存儲到歷史數據緩存區的隊列中;步驟16.如果步驟14.中數據樣本的偏差未超過設定死區-S時,對全部的數據樣本進行比較后的最小數據樣本及與其對應的時間戳也將作為數據壓縮特征值存儲到歷史數據緩存區的隊列中;步驟17.當壓縮模式參數C= I時,為死區模式除初始數據樣本將作為數據壓縮特征值存儲到歷史數據緩存區的隊列之外,如果數據壓縮緩存區內的數據樣本值超過設定死區 ±6時,超出死區±6時的最大或最小值樣本及與其對應的時間戳將作為數據壓縮特征值存儲到歷史數據緩存區的隊列中;如果無數據樣本值超過死區土 S時,僅初始數據樣本作為數據壓縮特征值;步驟18.當壓縮模式參數C = 2時,為濾波模式除初始數據樣本將作為數據壓縮特征值存儲到歷史數據緩存區的隊列之外,數據壓縮緩存區內所有數據樣本的算術平均值將以壓縮緩存時間片AT的中位時間戳作為數據壓縮特征值存儲到歷史數據緩存區的隊列中。
3.如權利要求I和權利要求2所述的一種實時歷史數據動態無損壓縮方法,其特征在于壓縮模式參數C為一個大于等于0的整數,每個整數值均代表了一種不同的壓縮處理模式,并且用戶還可以根據需要在權利要求2定義的模式之外自定義其它的壓縮模式。
全文摘要
本發明公開了一種工業生產過程實時歷史數據的動態無損壓縮方法。本方法通過先將最新的實時數據按時間片存儲于一個壓縮緩沖區,并在每個設定時間片內分別對超過閾值的動態實時數據全部無損存儲,而對變化較小的穩態實時數據按照不同的設定模式僅存儲其特征值的方法對壓縮緩沖區內的數據進行處理之后,再定時存儲到歷史數據緩沖區和歷史數據文件。本發明的方法便于計算機編程實現,不僅解決了目前各種線性有損壓縮算法的濾波失真現象,也在保證較高的數據保真度前提下提高了數據的整體壓縮效率。
文檔編號G06F17/30GK102611454SQ201210020450
公開日2012年7月25日 申請日期2012年1月29日 優先權日2012年1月29日
發明者丁怡若, 劉仕君, 葉敏, 吳乃新, 孫晅, 張巖, 徐雪元 申請人:上海迪吉特控制系統有限公司, 上海鍋爐廠有限公司