1 監(jiān)控系統(tǒng)數(shù)據(jù)壓縮必要性
為了能夠及時監(jiān)控現(xiàn)場設(shè)備的狀態(tài),監(jiān)控系統(tǒng)實(shí)時采集現(xiàn)場的數(shù)據(jù),在屏幕上生動形象地顯示樓宇中各種設(shè)備的參數(shù),同時保存歷史數(shù)據(jù),為將來優(yōu)化系統(tǒng)配置、合理配置大廈中設(shè)備的參數(shù)、預(yù)測系統(tǒng)運(yùn)行的趨勢、檢查錯誤等方面提供參考。隨著監(jiān)控軟件的發(fā)展,對于大型系統(tǒng),現(xiàn)在軟件一般可以支持對10萬個變量的監(jiān)控,巨大的數(shù)據(jù)量對于運(yùn)行軟件的計算機(jī)提出了更高的要求。對于一個具有2000個變量的中型系統(tǒng)來說,如果每分鐘采集一次數(shù)據(jù),則一個小時之后,2000個變量的數(shù)據(jù)量將達(dá)到30M左右。一般監(jiān)控軟件需要24h連續(xù)運(yùn)行,歷史數(shù)據(jù)一般需要保存一年時間,對于普通的微機(jī)來說沒有那么大的存儲空間。而且隨著組態(tài)軟件網(wǎng)絡(luò)化的發(fā)展,為了在網(wǎng)絡(luò)中傳輸數(shù)據(jù),也必須先將數(shù)據(jù)壓縮,再進(jìn)行傳輸,否則巨大的數(shù)據(jù)包將造成系統(tǒng)長時間的等待,影響系統(tǒng)的性能穩(wěn)定。
2 現(xiàn)有系統(tǒng)的數(shù)據(jù)處理方式
現(xiàn)在監(jiān)控軟件普遍針對監(jiān)控對象的特點(diǎn),采用定時存儲數(shù)據(jù),按照變量的靈敏度存儲,或者只是存儲報警數(shù)據(jù)等方法,這些方法大大壓縮了數(shù)據(jù)所占用的存儲空間。但是定時存儲并不能得知時間間隔之間變量的變化情況,對于歷史趨勢圖繪制來說,為了以后數(shù)據(jù)計算的需要,也不允許時間間隔太長;而按照靈敏度存儲雖然能解決像溫度等慢時變信號的壓縮存儲問題,但是不能得到靈敏度變化范圍內(nèi)數(shù)據(jù)的變化趨勢,對于像正(余)弦變化的電信號是不能達(dá)到數(shù)據(jù)壓縮目的的。而且這些方法也不能解決網(wǎng)絡(luò)中數(shù)據(jù)實(shí)時傳送的要求。
3 樓宇智能控制中數(shù)據(jù)的特點(diǎn)及壓縮的可行性
智能樓宇中監(jiān)控的設(shè)備主要是中央空調(diào)系統(tǒng)、通訊系統(tǒng)、安防系統(tǒng)、監(jiān)視系統(tǒng)、供電和給排水等系統(tǒng)中設(shè)備的運(yùn)行狀態(tài)。
這些系統(tǒng)中存在著大量如溫度、流量等慢時變的被控對象,在控制系統(tǒng)運(yùn)行并達(dá)到穩(wěn)態(tài)之后,這些被控對象的數(shù)值變化不是太大,一般不會超過給定值的5%,也就是說對于一個20℃左右的信號來說,在記錄設(shè)備狀態(tài)的絕大部分?jǐn)?shù)據(jù)中,只有小數(shù)點(diǎn)之后的數(shù)據(jù)在變化,而整數(shù)部分基本上是不變的,或者說數(shù)據(jù)的整數(shù)部分都相同。這樣將整個數(shù)據(jù)存儲是比較浪費(fèi),如果采用只記錄與給定值偏差的方式記錄數(shù)據(jù),使用少數(shù)的幾位記錄偏差,則能有效壓縮數(shù)據(jù)的存儲空間。而且在實(shí)際測量過程中,對溫度的測量精度一般只達(dá)到0.1℃就能滿足控制系統(tǒng)對精度的要求。通過現(xiàn)場對于數(shù)據(jù)的濾波處理,對于穩(wěn)定的溫度信號來說,在較長的時間內(nèi)不會有太大的變化。這些情況說明,在記錄的數(shù)據(jù)中存在著大量的數(shù)據(jù)冗余,是可以大比例壓縮的。
在智能樓宇監(jiān)控中另一種比較典型的監(jiān)控對象是像電信號這種有規(guī)律變化的數(shù)據(jù),雖然每次數(shù)據(jù)有很大的變化,但是數(shù)據(jù)之間存在著巨大的相關(guān)性,完全可以根據(jù)前面的數(shù)據(jù)預(yù)測將要到來信號的數(shù)值,當(dāng)然實(shí)測值和預(yù)測值有一定的偏差,如果只記錄偏差量,就可以通過少數(shù)幾位記錄數(shù)據(jù),減少了存儲的空間。
4 數(shù)據(jù)壓縮算法
數(shù)據(jù)壓縮理論起源于仙農(nóng)的信息論,使用熵的概念確定信息量的大小。根據(jù)可逆性,壓縮過程分為有損壓縮和無損壓縮兩種。在智能樓宇監(jiān)控系統(tǒng)中,重要的數(shù)據(jù)一般需要無損壓縮保證數(shù)據(jù)的完整性,不重要的數(shù)據(jù)不需要存儲,有少量需要查看歷史趨勢的數(shù)據(jù)采用有損壓縮的算法。
4.1 無損壓縮算法
現(xiàn)在成熟的無損壓縮方法主要有哈夫曼編碼、游程編碼、預(yù)測編碼、算術(shù)編碼等。在智能樓字監(jiān)控系統(tǒng)中,為了能夠有效地得到歷史數(shù)據(jù)的精確數(shù)值,絕大多數(shù)數(shù)據(jù)需要無損壓縮。根據(jù)智能大廈中監(jiān)控對象數(shù)據(jù)的特點(diǎn),游程編碼、預(yù)測編碼和哈夫曼編碼在實(shí)際壓縮的過程中使用的頻率較高,需要將這些算法集成到監(jiān)控軟件中。下文對在于監(jiān)控軟件中常用的幾種編碼方式在監(jiān)控中的使用進(jìn)行簡單說明。
4.1.1 游程編碼
在數(shù)據(jù)記錄中,相鄰數(shù)據(jù)值之間存在著潛在的相關(guān)性,有些數(shù)據(jù)值可能連續(xù)重復(fù)多次,表現(xiàn)出極高的冗余度。游程編碼就是利用這種數(shù)據(jù)流的特點(diǎn)來達(dá)到壓縮的目的。在智能樓宇監(jiān)控中存在著大量像溫度這種慢時變信號,數(shù)據(jù)的相關(guān)性比較大,采用游程編碼的方式能大量壓縮所占用的存儲空間。游程編碼使用3個字節(jié)表示一個字符串,第一個字節(jié)表示壓縮提示符Sc;第二個字節(jié)是記錄連續(xù)出現(xiàn)的字符;第三個字節(jié)記錄重復(fù)出現(xiàn)的次數(shù)。當(dāng)然出現(xiàn)重復(fù)3次以上的字符串時才能達(dá)到壓縮的目的,在編碼時先判斷字符串連續(xù)字符的個數(shù),如果超過3個就采用游程編碼,如果不到3個,則直接編碼,編碼示意圖如圖1所示。
游程編碼的效果主要取決于數(shù)據(jù)碼的重復(fù)次數(shù),重復(fù)字符的個數(shù),在智能監(jiān)控系統(tǒng)中主要是溫度,壓力、流量這些信號有較好的壓縮效果,在監(jiān)控系統(tǒng)組態(tài)的過程中,指定這些變量的壓縮算法,使運(yùn)行過程中以壓縮的方式存儲數(shù)據(jù)。
4.1.2 預(yù)測編碼
預(yù)測編碼是利用以前數(shù)據(jù)與當(dāng)前數(shù)據(jù)的相關(guān)性,利用某種函數(shù)關(guān)系f,通過前面N個數(shù)據(jù)來預(yù)測即將到來數(shù)據(jù)的數(shù)值,使用預(yù)測值和偏差來記錄數(shù)據(jù),以降低數(shù)據(jù)的不確定性,減少數(shù)碼率。在智能樓宇監(jiān)控系統(tǒng)中,對正余弦的電信號采用差分脈沖編碼調(diào)制的方式進(jìn)行壓縮,具體的編碼如圖2所示:
對于N階預(yù)測器可以使用下式表示:
x=f(x'k-1,x'k-2,∧,X'k-N)
這里x'k-1,x'k-2,∧,X'k-N是經(jīng)過量化后得到的預(yù)測值。
對于正弦信號,由于數(shù)據(jù)之間存在著較強(qiáng)的相關(guān)性,使用預(yù)測編碼方式,存儲的不是每個采樣點(diǎn)的數(shù)據(jù)本身,而是采樣點(diǎn)數(shù)據(jù)與預(yù)測值之間的差值,數(shù)據(jù)量大大地減少,減少了數(shù)據(jù)的相關(guān)性,使數(shù)據(jù)得到了有效地壓縮。對于智能樓宇監(jiān)控中的電力系統(tǒng)的監(jiān)測使用這種方法能起到較好的效果。
4.1.3哈夫曼編碼
哈夫曼編碼是根據(jù)數(shù)據(jù)出現(xiàn)的概率進(jìn)行編碼,出’現(xiàn)概率越高,為其設(shè)計的碼長越短,從而達(dá)到數(shù)據(jù)壓縮的目的。
哈夫曼編碼的具體步驟如下:
(1)概率統(tǒng)計,得到n個不同的概率的信息符號;
(2)將n個數(shù)據(jù)的n個概率按照大小排序;
(3)將n個概率中,最后兩個小概率相加,這時概率個數(shù)減為n-1個;
(4)將n-1個概率按照大小重新排列;
(5)重復(fù)步驟(3),將新排序后的最后兩個小概率再相加,相加之和與其余概率再排序;
(6)如此反復(fù),重復(fù)n-2次,結(jié)果只剩下兩個概率序列;
(7)以二進(jìn)制碼元(0,1)進(jìn)行賦值,構(gòu)成哈夫曼碼字,此時編碼結(jié)束。
哈夫曼編碼示意圖伯口圖3所示):
數(shù)據(jù)A出現(xiàn)的概率比較高,使用少的碼表示,數(shù)據(jù)的概率越低,使用的碼越長。編碼如下表所示:
在實(shí)際編寫程序時使用Haffuman二叉樹來建立數(shù)據(jù)的碼字。
4.2 有損壓縮
在智能樓字控制系統(tǒng)的歷史數(shù)據(jù)中,有的數(shù)據(jù)可能只是用來生成一種歷史趨勢圖,了解將來發(fā)展變化的情況、了解某個變量在一段時間中的走勢情況或者計算系統(tǒng)的效率,為改進(jìn)系統(tǒng)作為參考。這種變量的歷史數(shù)據(jù)沒有必要精確存儲每個數(shù)值,能夠反映大體的走勢和總體的統(tǒng)計量就行。使用有損壓縮的方法完全能夠滿足系統(tǒng)的對于數(shù)據(jù)的要求。
在對電量信號進(jìn)行壓縮的有損壓縮算法中,小波變換的方法是將輸入的數(shù)據(jù)做某種正交變換,把數(shù)據(jù)變換到另一個正交矢量空間(變換域),產(chǎn)生一組變換系數(shù),對變換系數(shù)進(jìn)行量化壓縮,從而達(dá)到壓縮的目的。在量化之后需要量化壓縮,由于量化的過程是不可逆的過程,也就是說壓縮的過程是有損的。
壓縮的過程主要包括映射變換、量化、編碼等幾個步驟,小波變換采用改變時間頻率窗口形狀的方法,很好地解決了時間分辨率和頻率分辨率的矛盾,在時間域和頻率域里都具有很好的局部化性質(zhì)。
實(shí)際應(yīng)用在監(jiān)控軟件中使用的是離散小波變換的方式,具體步驟如下:
用N維矢量X=(x0,x1,∧,XN-1)代表采樣序列,經(jīng)過正交變換得到向量Y:
X=AY
將Y中的系數(shù)按照絕對值由小到大排序,得到向量y′=(y′0,y′1,∧,y′N-1),去掉其中較小的數(shù)值,得到向量y″=(y″0,y″1,∧,y″k,0,0,∧,0)用向量y″代替向量y′從而達(dá)到數(shù)據(jù)壓縮的目的。
5 結(jié)束語
隨著樓宇智能化的不斷提高,大廈中的智能儀表迅速增加,對于大型監(jiān)控系統(tǒng)來說,采用必要的數(shù)據(jù)壓縮技術(shù)對保障中央監(jiān)視系統(tǒng)的長期穩(wěn)定運(yùn)行、對有效利用運(yùn)行數(shù)據(jù)、配置系統(tǒng)資源提供了有效的技術(shù)支持。
(轉(zhuǎn)載)