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