商承亞,鮑先強(qiáng),付立軍,朱琬璐,徐興華
海軍工程大學(xué) 船舶綜合電力技術(shù)重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430033
船舶綜合電力系統(tǒng)(Integrated Power System,IPS)由發(fā)電、輸變電、配電、推進(jìn)、儲(chǔ)能和能量管理6 個(gè)子系統(tǒng)組成,其將傳統(tǒng)船舶中相互獨(dú)立的動(dòng)力和電力兩大系統(tǒng)合二為一,以電能的形式統(tǒng)一為推進(jìn)負(fù)載、脈沖負(fù)載、通信、導(dǎo)航和日用設(shè)備等供電,實(shí)現(xiàn)了全艦?zāi)茉吹木C合利用[1-3],符合船舶信息化和智能化的發(fā)展趨勢(shì),代表著船舶動(dòng)力系統(tǒng)未來(lái)的發(fā)展方向[4]。
隨著IPS 規(guī)模的日益擴(kuò)大,規(guī)模化的量測(cè)裝置持續(xù)生成大量數(shù)據(jù)[5],如果將這些數(shù)據(jù)直接進(jìn)行存儲(chǔ),不僅會(huì)大量浪費(fèi)存儲(chǔ)空間,而且還會(huì)使數(shù)據(jù)查詢和傳輸變得困難[6-7]。傳統(tǒng)的關(guān)系型數(shù)據(jù)存儲(chǔ)方案[8]因其橫向擴(kuò)展的限制,難以處理來(lái)自不同分系統(tǒng)的海量數(shù)據(jù),近年來(lái)流行的非關(guān)系型NoSQL 數(shù)據(jù)庫(kù)存儲(chǔ)方案[5,9-10]雖然在一定程度上緩和了海量數(shù)據(jù)存儲(chǔ)的壓力,但針對(duì)IPS 海量歷史數(shù)據(jù)的存儲(chǔ)方案還是不太成熟,特別是面對(duì)IPS 中日益增長(zhǎng)的數(shù)據(jù)規(guī)模,亟需高效的數(shù)據(jù)壓縮技術(shù)予以支撐。
在海量實(shí)時(shí)數(shù)據(jù)應(yīng)用背景下,無(wú)損壓縮技術(shù)因其壓縮比的限制并不能很好地解決數(shù)據(jù)的存儲(chǔ)問題,有損壓縮中的信號(hào)變換方法雖然通過存儲(chǔ)少量系數(shù)可以實(shí)現(xiàn)數(shù)據(jù)的高效壓縮保真[11],但多種艦船業(yè)務(wù)中小波基的選取大大增加了該方法的使用難度,而分段線性方法中的旋轉(zhuǎn)門算法則因算法簡(jiǎn)單、壓縮參數(shù)便于調(diào)整而得到了廣泛應(yīng)用。
本文擬針對(duì)IPS 業(yè)務(wù)的數(shù)據(jù)特性,在分析旋轉(zhuǎn)門趨勢(shì)(Swinging Door Trending,SDT)壓縮算法的基礎(chǔ)上,提出一種壓縮偏差?E與船舶業(yè)務(wù)相適應(yīng)的數(shù)據(jù)壓縮算法,并根據(jù)不同的船舶業(yè)務(wù)需求,通過誤差反饋動(dòng)態(tài)調(diào)整壓縮偏差?E,以實(shí)現(xiàn)對(duì)IPS 歷史數(shù)據(jù)的高效壓縮存儲(chǔ)。同時(shí),基于Simulink 平臺(tái)模擬數(shù)據(jù)序列,然后通過測(cè)試評(píng)估驗(yàn)證改進(jìn)算法的壓縮性能。
以IPS 中壓直流區(qū)域配電裝置(圖1)為例進(jìn)行分析。該系統(tǒng)包括左、右舷700 V 直流母線、4 MW DC/DC 變流器以及4 個(gè)配電分區(qū)。左、右舷各配置有2 臺(tái)4 MW 的DC/DC 變流器,每個(gè)配電分區(qū)包括2 臺(tái)1 MW DC/AC 逆變器,另外,還包含中壓直流整流電源、水電組負(fù)載、可調(diào)電抗器等陪試設(shè)備[12]。在系統(tǒng)運(yùn)行過程中,需要對(duì)重要的電氣參數(shù)數(shù)據(jù)進(jìn)行采集監(jiān)測(cè),如交流配電網(wǎng)絡(luò)中各節(jié)點(diǎn)的有功功率、無(wú)功功率、部分節(jié)點(diǎn)電壓、直流配電網(wǎng)絡(luò)中的電壓電流,以及各類負(fù)載的溫、濕度[13],系統(tǒng)量測(cè)的物理量較多,隨著時(shí)間的推移,不斷產(chǎn)生的量測(cè)值將使數(shù)據(jù)規(guī)模越來(lái)越大。
圖 1 IPS 中壓直流區(qū)域配電網(wǎng)絡(luò)拓?fù)鋱DFig. 1 Medium voltage DC zonal electric distribution network topology of IPS
高度的信息化使IPS 數(shù)據(jù)呈現(xiàn)出規(guī)模大、類型多、更新速度快的特點(diǎn),給長(zhǎng)期歷史數(shù)據(jù)存儲(chǔ)帶來(lái)了極大的壓力,但在系統(tǒng)運(yùn)行過程中,電氣參數(shù)在暫態(tài)變化過程后較為穩(wěn)定,數(shù)據(jù)量測(cè)值臨近度高,可以在數(shù)據(jù)持久化存儲(chǔ)之前進(jìn)行相應(yīng)的壓縮處理來(lái)提高數(shù)據(jù)存儲(chǔ)效率。
SDT 算法是一種采用直線對(duì)過程數(shù)據(jù)進(jìn)行擬合的算法,對(duì)于數(shù)據(jù)樣本,其通過規(guī)定最大允許誤差,可以找出盡可能最長(zhǎng)的直線趨勢(shì),這對(duì)緩慢變化的數(shù)據(jù)來(lái)說(shuō)能夠提供較好的壓縮和恢復(fù)性能[14-15]。
SDT 算法原理[7,16-17]如下:以圖2 為例,橫坐標(biāo)T0~T5為采集數(shù)據(jù)點(diǎn)的時(shí)間坐標(biāo),縱坐標(biāo)為采集數(shù)據(jù)點(diǎn)的數(shù)據(jù)值,設(shè)?E為壓縮偏差,以數(shù)據(jù)點(diǎn)Y0為起始點(diǎn),以距離數(shù)據(jù)點(diǎn)Y0為?E的上、下兩點(diǎn)作為支點(diǎn),建立兩扇虛擬的門,當(dāng)只有一個(gè)數(shù)據(jù)時(shí)門閉合,隨著數(shù)據(jù)點(diǎn)的增加,門會(huì)旋轉(zhuǎn)打開,門的長(zhǎng)度也可延伸,且一旦打開就不能再閉合;只要兩扇門的內(nèi)角之和小于180°,旋轉(zhuǎn)操作就可以繼續(xù),當(dāng)兩扇門的內(nèi)角之和大于180°時(shí),就停止操作,然后存儲(chǔ)前一數(shù)據(jù)點(diǎn),并由該點(diǎn)開始新一段壓縮。因此在圖2 中,存儲(chǔ)點(diǎn)為Y0,Y3,Y4。
SDT 算法的壓縮偏差?E決定了兩扇門達(dá)到平行時(shí)所能容納的精度范圍,其對(duì)算法的壓縮性能影響較大。壓縮偏差?E越大,舍棄的原數(shù)據(jù)點(diǎn)越多,壓縮存儲(chǔ)的數(shù)據(jù)量就越少,算法的數(shù)據(jù)壓縮效果也就越好;反之,壓縮偏差?E設(shè)置得越小,壓縮存儲(chǔ)的數(shù)據(jù)量就越大,算法的數(shù)據(jù)壓縮效果也就越差。
圖 2 旋轉(zhuǎn)門算法壓縮原理Fig. 2 Swinging door algorithm compression principle
IPS 不同分系統(tǒng)的數(shù)據(jù)特性不同,多種業(yè)務(wù)軟件的數(shù)據(jù)處理需求不同,因此數(shù)據(jù)壓縮過程中所需要設(shè)置的?E也不同,而數(shù)據(jù)壓縮時(shí)?E值是預(yù)先設(shè)定的,通常需要經(jīng)過長(zhǎng)時(shí)間的積累和經(jīng)驗(yàn)才能確定合適的值,這與IPS 的多種業(yè)務(wù)軟件需求相矛盾。另外,SDT 算法在提供高壓縮比的同時(shí)忽略了數(shù)據(jù)精度對(duì)于數(shù)據(jù)壓縮的重要性,如果只追求數(shù)據(jù)的高壓縮比,會(huì)在數(shù)據(jù)壓縮過程中舍棄較多的原數(shù)據(jù),易造成數(shù)據(jù)解壓縮之后的失真,這對(duì)于業(yè)務(wù)應(yīng)用來(lái)說(shuō)很重要,因?yàn)槭д娴臄?shù)據(jù)不能真實(shí)反映系統(tǒng)運(yùn)行狀態(tài),可能會(huì)導(dǎo)致錯(cuò)誤的控制指令,如斷路器的錯(cuò)誤開斷、發(fā)電機(jī)的錯(cuò)誤解列,這些錯(cuò)誤指令會(huì)給整個(gè)IPS 的運(yùn)行帶來(lái)很大的不穩(wěn)定因素。因此,在IPS 數(shù)據(jù)壓縮存儲(chǔ)過程中,壓縮算法在保證數(shù)據(jù)壓縮精度的前提下根據(jù)業(yè)務(wù)性能對(duì)壓縮偏差?E進(jìn)行動(dòng)態(tài)調(diào)整就顯得很有必要。
數(shù)據(jù)壓縮算法的評(píng)價(jià)指標(biāo)通常采用數(shù)據(jù)壓縮比和數(shù)據(jù)的解壓縮誤差來(lái)表示。設(shè)一組數(shù)據(jù)為y1~yn,壓縮之后數(shù)據(jù)的個(gè)數(shù)為m(m≤n),解壓縮后的數(shù)據(jù)為,那么描述數(shù)據(jù)壓縮性能的壓縮比CR、均方誤差MSE、均方根誤差RMSE和平均絕對(duì)誤差MAE分別如下所示:
壓縮比CR用于衡量壓縮算法對(duì)一組數(shù)據(jù)的壓縮能力,壓縮比越大,算法的壓縮效果越好,其通常是作為較為硬性的壓縮效果評(píng)價(jià)指標(biāo);上面的3 種解壓縮誤差都不同程度地反映了一組數(shù)據(jù)的失真程度,即數(shù)據(jù)解壓縮之后的數(shù)據(jù)準(zhǔn)確度,它們的計(jì)算值越小,表明原數(shù)據(jù)與解壓縮值之間的誤差越小,算法的壓縮精度越高,其中平均絕對(duì)誤差MAE的計(jì)算最簡(jiǎn)單,計(jì)算量也最小。在數(shù)據(jù)規(guī)模越來(lái)越大的背景下,本文選擇計(jì)算量較小的MAE作為數(shù)據(jù)壓縮評(píng)價(jià)指標(biāo),在反映數(shù)據(jù)壓縮性能的前提下,可以節(jié)省一定的計(jì)算開銷。
針對(duì)合適的壓縮偏差?E難以確定的問題,本文將數(shù)據(jù)真實(shí)值與數(shù)據(jù)解壓縮值之間的平均絕對(duì)誤差MAE作為數(shù)據(jù)壓縮算法的重要評(píng)價(jià)指標(biāo),并根據(jù)實(shí)際壓縮誤差與期望壓縮誤差之間的偏差動(dòng)態(tài)調(diào)整數(shù)據(jù)壓縮偏差?E,調(diào)整之后,再次對(duì)壓縮數(shù)據(jù)進(jìn)行壓縮。通過不斷的迭代,使數(shù)據(jù)壓縮的實(shí)際性能符合預(yù)期,從而降低數(shù)據(jù)存儲(chǔ)量。
本文將基于自動(dòng)控制系統(tǒng)模型,將數(shù)據(jù)真實(shí)值與解壓縮值(預(yù)測(cè)值)之間的期望誤差δ作為系統(tǒng)輸入,實(shí)際平均絕對(duì)誤差MAE作為系統(tǒng)的輸出,兩者之間的差值ε作為反饋量,通過負(fù)反饋?zhàn)饔糜诳刂破鱽?lái)調(diào)整壓縮偏差?E。在改進(jìn)的壓縮算法中,參數(shù)?E不需要設(shè)定為固定值,只需要給出大致的上、下閾值,就可以根據(jù)實(shí)際的壓縮情況進(jìn)行動(dòng)態(tài)調(diào)整。
假設(shè)Emax和Emin分別為壓縮偏差?E的上、下閾值,D為壓縮偏差的調(diào)整參數(shù),τ為數(shù)據(jù)解壓縮實(shí)際誤差與期望誤差之間的偏差容差,y1~yn為一組待壓縮的數(shù)據(jù)值,算法步驟如下:
1) 在對(duì)當(dāng)前的數(shù)據(jù)點(diǎn)y1~yn進(jìn)行數(shù)據(jù)壓縮之前,首先進(jìn)行壓縮參數(shù)的初始化。Emax和Emin可以自行設(shè)定,D和τ作為自動(dòng)控制系統(tǒng)模型參數(shù)需要提前設(shè)定,本算法擬設(shè)Emax=0.6,Emin=0.1,?E=(Emax+Emin) /2,D=(Emax?Emin) /10,τ=0.2。
2) 設(shè)T為壓縮算法所允許的最大時(shí)間間隔,從待壓縮數(shù)據(jù)中取出一點(diǎn)yi(1≤i≤n),若該點(diǎn)與上一存儲(chǔ)點(diǎn)的時(shí)間間隔大于等于T,則將前一個(gè)數(shù)據(jù)點(diǎn)yi-1直接存儲(chǔ),不需要進(jìn)行旋轉(zhuǎn)門分析,否則,進(jìn)行下一步驟的旋轉(zhuǎn)門壓縮。
3) 計(jì)算數(shù)據(jù)點(diǎn)yi處旋轉(zhuǎn)門兩扇門的斜率kup和kdown,如果兩扇門之間已經(jīng)平行,或者說(shuō)kup≥kdown,則將前一數(shù)據(jù)點(diǎn)yi-1進(jìn)行存儲(chǔ),并將其作為新的壓縮起始點(diǎn),否則,該數(shù)據(jù)點(diǎn)yi將被舍棄。
4) 檢驗(yàn)數(shù)據(jù)是否壓縮完畢,若壓縮完畢,進(jìn)行下一步的操作,否則,返回第2)步,對(duì)下一數(shù)據(jù)點(diǎn)yi+1進(jìn)行相同的壓縮操作。
5) 數(shù)據(jù)壓縮完畢后,通過解壓縮算法對(duì)數(shù)據(jù)進(jìn)行恢復(fù),解壓縮之后的數(shù)據(jù)為,由此可以計(jì)算出數(shù)據(jù)真實(shí)值與解壓縮值之間的平均絕對(duì)誤差MAE,經(jīng)與期望誤差δ作差,得到兩者之間的差值ε。
6) 根據(jù)差值ε情況,對(duì)壓縮偏差?E做出動(dòng)態(tài)調(diào)整:
(1) 當(dāng)0≤ε<δ·τ時(shí),說(shuō)明數(shù)據(jù)偏差ε在可容許的誤差范圍內(nèi),?E選取比較合適,不需要做出調(diào)整;
(2) 當(dāng)ε≥δ·τ時(shí),說(shuō)明數(shù)據(jù)偏差ε偏大,所計(jì)算獲得的平均壓縮誤差MAE偏小,?E偏小,存儲(chǔ)了較多原始數(shù)據(jù),應(yīng)在Emax范圍內(nèi)適當(dāng)擴(kuò)大?E,
(3) 當(dāng)?δ·τ<ε<0 時(shí),說(shuō)明數(shù)據(jù)偏差ε偏小,計(jì)算獲得的平均壓縮誤差MAE偏大,?E偏大,舍棄了較多的原始數(shù)據(jù),應(yīng)在Emin范圍內(nèi)適當(dāng)減小?E,
當(dāng)ε不屬于以上情況時(shí),說(shuō)明解壓縮之后的數(shù)據(jù)已經(jīng)嚴(yán)重失真,應(yīng)直接返回第1)步,對(duì)初始參數(shù)進(jìn)行重新設(shè)置,然后再進(jìn)行數(shù)據(jù)壓縮處理。
7) 對(duì)壓縮偏差?E進(jìn)行動(dòng)態(tài)調(diào)整后,返回第2)步用新的?E進(jìn)行數(shù)據(jù)壓縮處理,通過不斷迭代直至偏差ε在誤差容許范圍內(nèi),從而完成數(shù)據(jù)壓縮。改進(jìn)算法的具體流程如圖3 所示。
對(duì)改進(jìn)SDT 壓縮算法的數(shù)據(jù)進(jìn)行數(shù)據(jù)解壓縮時(shí),通常采用線性插值法,由存儲(chǔ)的數(shù)據(jù)點(diǎn)之間的兩點(diǎn)連線來(lái)表示兩點(diǎn)之間任意時(shí)刻的解壓值。假設(shè)y0,yk為連續(xù)存儲(chǔ)的2 個(gè)數(shù)據(jù)點(diǎn),t0,tk為其所對(duì)應(yīng)的時(shí)間,則它們之間任意時(shí)刻ti所對(duì)應(yīng)的解壓縮值y?i都可以用公式(7)來(lái)表示。
圖 3 改進(jìn)SDT 算法流程圖Fig. 3 Improved SDT algorithm flow chart
測(cè)試平臺(tái)采用X86 架構(gòu),平臺(tái)的核心配置參數(shù)如下:CPU 為i5@3.4 GHz,ARM 為8 GB,算法的實(shí)現(xiàn)以及測(cè)試程序均基于C-Free 開發(fā)環(huán)境,在Win7(64 位)操作系統(tǒng)下展開測(cè)試。測(cè)試程序通過加載Simulink 模塊模擬生成具有IPS 數(shù)據(jù)特點(diǎn)的數(shù)據(jù)序列文件,實(shí)現(xiàn)對(duì)模擬IPS 數(shù)據(jù)的壓縮,并存儲(chǔ)在相應(yīng)的文件中。
IPS 運(yùn)行時(shí),所需要監(jiān)測(cè)的電氣量主要分為具有振蕩特性的交流信號(hào)、穩(wěn)定的直流信號(hào)和激變的脈沖信號(hào)3 種,例如發(fā)電機(jī)側(cè)與低壓網(wǎng)絡(luò)中的交流參數(shù)、中壓直流區(qū)域配電網(wǎng)絡(luò)中的各種直流參數(shù)、溫度參數(shù)和高能武器系統(tǒng)中的脈沖參數(shù),這些電氣參數(shù)的暫態(tài)變化過程可以由振蕩信號(hào)、直流信號(hào)和激變信號(hào)疊加而成。因此,測(cè)試負(fù)載的生成即是在提取IPS 數(shù)據(jù)特點(diǎn)的基礎(chǔ)上,在Simulink 中分別模擬生成系統(tǒng)運(yùn)行時(shí)的數(shù)據(jù)文件,以進(jìn)行壓縮算法的性能測(cè)試。
對(duì)于具有振蕩特性的交流信號(hào)的生成,在Simulink 模塊中選取正弦信號(hào)波發(fā)生器sine wave,模擬產(chǎn)生y=Asin(ωx+?)形 式的數(shù)據(jù)文件sin.mat并加載到Matlab 軟件中生成txt 文本文件,然后通過改進(jìn)的SDT 算法進(jìn)行數(shù)據(jù)壓縮處理測(cè)試。
設(shè)A=100,ω=2,φ=0°,為保證數(shù)據(jù)壓縮精度,本算法設(shè)置τ=0.2,δ=0.2,Emin=0.1,Emax=0.6,T=10Tf(Tf為采樣周期),對(duì)采集的數(shù)據(jù)序列進(jìn)行壓縮處理并存儲(chǔ)到out.txt文件中,然后通過解壓縮算法將數(shù)據(jù)恢復(fù)至src.txt文件中。
為能直觀地看出壓縮效果,先選取數(shù)據(jù)量小(n=300)的數(shù)據(jù)序列,將原數(shù)據(jù)序列、壓縮存儲(chǔ)數(shù)據(jù)與解壓縮數(shù)據(jù)在Matlab 軟件中繪出并進(jìn)行對(duì)比,結(jié)果如圖4(a)所示。
保持改進(jìn)SDT 算法的參數(shù)設(shè)置不變,對(duì)不同幅值、不同頻率的振蕩數(shù)據(jù)序列進(jìn)行壓縮處理。通過Simulink 平臺(tái)模擬產(chǎn)生3 種振蕩數(shù)據(jù)序列y=100sin2x,y=200sin2x和y=100sin3x,在期望誤差δ=0.2 的情況下,原數(shù)據(jù)解壓縮值的精度得到了保證,隨著數(shù)據(jù)量的增加,算法的壓縮效果如圖4(b)和圖4(c)所示。
由圖4(b)可以看出,改進(jìn)的SDT 算法對(duì)不同的振蕩數(shù)據(jù)序列均有著很好的壓縮效果,隨著被壓縮數(shù)據(jù)幅值、采集頻率的增大,數(shù)據(jù)壓縮效果有所下降。由圖4(c)可以看出,算法的壓縮效果隨著數(shù)據(jù)量的增大變化不大,較為穩(wěn)定。另外,在數(shù)據(jù)的壓縮過程中,在期望誤差δ和壓縮偏差上、下限確定的情況下,隨著幅值、采集頻率的增大,算法的迭代次數(shù),即?E的調(diào)整次數(shù)也會(huì)逐漸增加,但整個(gè)過程都是自動(dòng)進(jìn)行的動(dòng)態(tài)調(diào)整。
圖 4 振蕩數(shù)據(jù)序列的數(shù)據(jù)壓縮Fig. 4 The data compression of oscillation data sequence
對(duì)于IPS 穩(wěn)定運(yùn)行過程中直流信號(hào)的生成,可在Simulink 模塊中選用脈沖發(fā)生器Pulse Generator,通過調(diào)節(jié)占空比和信號(hào)周期模擬生成的y=A形式數(shù)據(jù)文件constant.mat,將數(shù)據(jù)轉(zhuǎn)為txt 格式存儲(chǔ)后,再通過壓縮算法來(lái)進(jìn)行直流信號(hào)的壓縮性能測(cè)試。
設(shè)A=100,對(duì)于直流信號(hào)的壓縮,期望誤差的取值可以稍大一些以提高壓縮比。本算法設(shè)置τ=0.2,δ=0.5,Emin=0.1,Emax=0.6,T=10Tf,將采集的數(shù)據(jù)序列進(jìn)行壓縮處理并存儲(chǔ)到out.txt 文件中,然后再通過解壓縮算法將數(shù)據(jù)恢復(fù)至src.txt文件。
為了直觀地看出壓縮效果,先選取數(shù)據(jù)量?。╪=300)的數(shù)據(jù)序列,將原數(shù)據(jù)序列、壓縮存儲(chǔ)數(shù)據(jù)與解壓縮數(shù)據(jù)在Matlab 軟件中繪出并進(jìn)行對(duì)比,結(jié)果如圖5(a)所示。圖中,紅色的點(diǎn)為壓縮存儲(chǔ)點(diǎn)。
保持改進(jìn)SDT 算法的參數(shù)設(shè)置不變,對(duì)穩(wěn)定的直流數(shù)據(jù)序列進(jìn)行壓縮處理,在期望誤差δ=0.5 的情況下,隨著數(shù)據(jù)量的增加,算法的壓縮效果如圖5(b)所示。
由圖5(b)可以看出,改進(jìn)的SDT 算法對(duì)于穩(wěn)定的直流數(shù)據(jù)序列有著良好的數(shù)據(jù)壓縮效果,且壓縮效果隨著數(shù)據(jù)量的增大變化不大。另外,此時(shí)的數(shù)據(jù)壓縮比CR受最大時(shí)間間隔T的影響較大,當(dāng)T固定后,壓縮比CR也會(huì)固定,考慮到數(shù)據(jù)解壓縮是通過線性插值方法實(shí)現(xiàn)的,所以此時(shí)的解壓縮數(shù)據(jù)與原數(shù)據(jù)之間的實(shí)際誤差為0。
對(duì)具有激變特性的脈沖信號(hào)的生成,可在Simulink 模塊中選用脈沖發(fā)生器Pulse Generator,通過調(diào)節(jié)占空比和幅值模擬生成的數(shù)據(jù)文件pulse.mat,在將數(shù)據(jù)加載到Matlab 軟件中轉(zhuǎn)為txt 格式后,通過改進(jìn)的SDT 算法進(jìn)行脈沖信號(hào)的壓縮性能測(cè)試。設(shè)Pulse Generator 發(fā)生器的信號(hào)幅值為100,占空比為5%,對(duì)脈沖信號(hào)的壓縮,可將壓縮偏差的上、下限稍作改動(dòng)以提高壓縮比。本算法設(shè)置τ=0.2,δ=0.5,Emin=0.1,Emax=0.6,T=10Tf,對(duì)采集的數(shù)據(jù)序列進(jìn)行壓縮處理并存儲(chǔ)到out.txt文件中,然后通過解壓縮算法將數(shù)據(jù)恢復(fù)至src.txt文件。
為了直觀地看出壓縮效果,先選取數(shù)據(jù)量?。╪=300)的數(shù)據(jù)序列,將原數(shù)據(jù)序列、壓縮存儲(chǔ)數(shù)據(jù)與解壓縮數(shù)據(jù)在Matlab 軟件中繪出并進(jìn)行對(duì)比,結(jié)果如圖5(c)所示。
圖 5 直流/脈沖數(shù)據(jù)序列數(shù)據(jù)壓縮Fig. 5 The data compression of DC/pulse data sequence
保持改進(jìn)SDT 算法的參數(shù)設(shè)置不變,對(duì)激變的脈沖數(shù)據(jù)序列進(jìn)行壓縮處理,在期望誤差δ=0.5 的情況下,隨著數(shù)據(jù)量的增加,算法的壓縮效果如圖5(d)所示。
由圖5(d)可以看出,改進(jìn)的SDT 算法對(duì)激變的脈沖數(shù)據(jù)序列有著良好的壓縮效果,其在保證解壓縮數(shù)據(jù)精度的前提下能夠?qū)崿F(xiàn)較大的壓縮比,且隨著數(shù)據(jù)量的增大,算法的壓縮性能也較為穩(wěn)定。另外,由圖中還可以看出,最大的時(shí)間間隔T對(duì)脈沖數(shù)據(jù)序列的壓縮影響較大,而當(dāng)參數(shù)T設(shè)定后,其對(duì)于脈沖數(shù)據(jù)序列的壓縮性能便基本不變了。
隨著IPS 的發(fā)展,傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方法存在著占用資源過多,已有的壓縮算法存在著忽視壓縮精度、多種業(yè)務(wù)下壓縮偏差難以確定等問題。本文基于SDT 算法提出了其改進(jìn)算法,優(yōu)勢(shì)如下:
1) 能根據(jù)系統(tǒng)數(shù)據(jù)特性保證數(shù)據(jù)的壓縮精度在期望范圍內(nèi),滿足IPS 業(yè)務(wù)需求;
2) 能在保證精度的同時(shí)動(dòng)態(tài)調(diào)整壓縮偏差,通過平均絕對(duì)誤差反饋不斷迭代獲得較高的壓縮比,簡(jiǎn)化壓縮偏差的設(shè)置步驟。
文章基于Simulink 模擬產(chǎn)生了具有系統(tǒng)數(shù)據(jù)特性的數(shù)據(jù)序列并對(duì)算法性能進(jìn)行了測(cè)試,結(jié)果證明對(duì)于模擬的數(shù)據(jù)序列,改進(jìn)的SDT 算法具有較好的壓縮效果??梢姡捎酶倪M(jìn)的SDT 算法可以提高IPS 的數(shù)據(jù)壓縮效率,對(duì)于數(shù)據(jù)驅(qū)動(dòng)的船舶智能化具有重要意義。