《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于北斗通信的工業(yè)過(guò)程數(shù)據(jù)壓縮方法
基于北斗通信的工業(yè)過(guò)程數(shù)據(jù)壓縮方法
2017年電子技術(shù)應(yīng)用第10期
陳 勇,黃茹楠,劉 青,李建坡,李 鑫
燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島066004
摘要: 短報(bào)文通信是我國(guó)北斗衛(wèi)星導(dǎo)航系統(tǒng)特有的一個(gè)功能,可用于公網(wǎng)通信覆蓋盲區(qū)位置的數(shù)據(jù)傳輸。而通信頻度和報(bào)文長(zhǎng)度的限制,降低了北斗短報(bào)文通信的效率,為此,提出了一種用于北斗通信數(shù)據(jù)的壓縮方法。該壓縮方法分兩步,第一步為有損壓縮,以工業(yè)數(shù)據(jù)庫(kù)壓縮技術(shù)中的旋轉(zhuǎn)門算法為基礎(chǔ),同時(shí)為了實(shí)現(xiàn)有損壓縮的精度可調(diào),用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)PID控制器對(duì)旋轉(zhuǎn)門算法的參數(shù)進(jìn)行在線調(diào)整;第二步為無(wú)損壓縮,提出了前置特殊字節(jié)配合差值傳遞的無(wú)損壓縮策略。實(shí)驗(yàn)表明經(jīng)過(guò)此方法兩步壓縮后,對(duì)工業(yè)過(guò)程數(shù)據(jù)完成了較高的壓縮,同時(shí),壓縮精度也可在壓縮過(guò)程中準(zhǔn)確調(diào)整。
中圖分類號(hào): TN911.23;TP13
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.170127
中文引用格式: 陳勇,黃茹楠,劉青,等. 基于北斗通信的工業(yè)過(guò)程數(shù)據(jù)壓縮方法[J].電子技術(shù)應(yīng)用,2017,43(10):106-110,115.
英文引用格式: Chen Yong,Huang Ru′nan,Liu Qing,et al. Industrial data compression method based on Beidou′s short-message communication[J].Application of Electronic Technique,2017,43(10):106-110,115.
Industrial data compression method based on Beidou′s short-message communication
Chen Yong,Huang Ru′nan,Liu Qing,Li Jianpo,Li Xin
College of Electrical Engineering,Yanshan University,Qinhuangdao 066004,China
Abstract: Beidou′s short-message communication, which is a special feature of Beidou satellite navigation and positioning system, is especially used in the area which is beyond the coverage of general public communication. However, because of the limit in frequency of communication and the length of packet, the efficiency of Beidou′s short-message is not very high. To solve this, a compression method based on Beidou short-message is presented. This compression method includes two steps. The first step is called lossy compression. In this step, Spinning Door Transformation(SDT), which is a common compression algorithm in database field, is as a core algorithm for the stage of lossy compression. In addition, a revised BP Neural network PID controller is designed to adjust some parameters used in SDT. The second step is called lossless compression. A method called front extra byte lossless compression is presented in this paper. After a series of experiments, it can be concluded that the original industrial data has finished compressed successfully. In addition, variable precision of compression could be available during the compression.
Key words : Beidou′s short-message;Spinning Door Transformation(SDT);industrial data

0 引言

    北斗衛(wèi)星導(dǎo)航系統(tǒng)是我國(guó)自主建設(shè)、獨(dú)立運(yùn)行、集導(dǎo)航定位、授時(shí)、用戶監(jiān)測(cè)、短報(bào)文通信于一體的導(dǎo)航系統(tǒng)[1]。短報(bào)文通信是北斗系統(tǒng)特有的一個(gè)功能,其不受地形條件和環(huán)境氣候等影響,可用于解決偏遠(yuǎn)地區(qū)數(shù)據(jù)實(shí)時(shí)通信問(wèn)題,特別適用于常規(guī)通信手段存在盲區(qū)多、基建投入大的場(chǎng)合使用,例如野外的石油、天然氣的閥站和門站,以及遠(yuǎn)離移動(dòng)網(wǎng)絡(luò)覆蓋地區(qū)或者通信不穩(wěn)定地區(qū)工廠的數(shù)據(jù)傳輸。

    北斗衛(wèi)星的主要任務(wù)是定位導(dǎo)航,通信的信道資源少,民用北斗短報(bào)文通信存在單次報(bào)文長(zhǎng)度和通信頻度受限的問(wèn)題。對(duì)于工業(yè)遠(yuǎn)程監(jiān)測(cè)控制和數(shù)據(jù)采集(Supervisory Control and Data Acquisition,SCADA)項(xiàng)目中的數(shù)據(jù)而言,數(shù)據(jù)采集頻率高,數(shù)據(jù)量大。若對(duì)數(shù)據(jù)作分包處理,可實(shí)現(xiàn)大量數(shù)據(jù)傳輸。但谷軍霞[2]等在2015年進(jìn)行的北斗短報(bào)文丟包測(cè)試中表明,隨著報(bào)文分包數(shù)的增加,報(bào)文的傳輸成功率逐步降低。若減少對(duì)原始工業(yè)數(shù)據(jù)的采樣頻率,則可降低數(shù)據(jù)量。但對(duì)于企業(yè)來(lái)說(shuō),歷史數(shù)據(jù)是工業(yè)現(xiàn)場(chǎng)寶貴的財(cái)富,是為后續(xù)工程技術(shù)人員提供分析和故障處理的基礎(chǔ)資料,是不能因?yàn)閭鬏數(shù)南拗凭碗S意減少和丟棄的。因此就需要有一種方法,既可完成實(shí)時(shí)數(shù)據(jù)的傳輸,又不會(huì)產(chǎn)生太大的數(shù)據(jù)量。

    目前已發(fā)表的關(guān)于北斗短報(bào)文通信的論文中,于龍海提出先建立運(yùn)動(dòng)目標(biāo)的數(shù)學(xué)模型,通過(guò)參數(shù)簡(jiǎn)化和差分編碼實(shí)現(xiàn)北斗定位數(shù)據(jù)的壓縮[3]。陳海生提出的固定長(zhǎng)度的索引碼表用于漁獲數(shù)據(jù)的傳輸,可以解決數(shù)據(jù)無(wú)損壓縮傳輸,但是不具有通用性[4]。彭浩提出了中文智能分詞和無(wú)損壓縮編碼的聯(lián)合壓縮算法,進(jìn)而實(shí)現(xiàn)通信數(shù)據(jù)擴(kuò)容[5],但是工業(yè)過(guò)程數(shù)據(jù)中,主要傳輸?shù)氖菍?shí)數(shù)信息。目前,對(duì)于北斗短報(bào)文通信的工業(yè)過(guò)程數(shù)據(jù)的傳輸,還沒(méi)有較實(shí)用的數(shù)據(jù)壓縮和傳輸?shù)慕鉀Q辦法。因此本文提出了一種分別從有損和無(wú)損壓縮兩個(gè)方面,對(duì)數(shù)據(jù)分步進(jìn)行壓縮處理的解決方案。實(shí)驗(yàn)證明,該方法可有效對(duì)短報(bào)文數(shù)據(jù)進(jìn)行壓縮處理,從而提高工業(yè)過(guò)程數(shù)據(jù)傳輸?shù)男屎涂煽啃浴?/p>

1 北斗通信壓縮第一步:有損壓縮

    有損壓縮是在壓縮工程中損失一定的信息以獲得較高的壓縮比[6]。為后文評(píng)價(jià)有損壓縮過(guò)程,本文采用曲奕霖[7]在其論文中提出的評(píng)價(jià)標(biāo)準(zhǔn),如下:

tx5-gs1-2.gif

    CR用于衡量算法對(duì)一組數(shù)據(jù)的壓縮能力,而δ用于衡量一組數(shù)據(jù)的平均失真度。

    旋轉(zhuǎn)門算法是一種常見的過(guò)程數(shù)據(jù)壓縮算法。本文提出的北斗通信壓縮算法中的有損壓縮階段就基于旋轉(zhuǎn)門算法。下面先介紹旋轉(zhuǎn)門算法,再介紹本文提出的基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)PID的自控精度SDT有損壓縮算法(后文簡(jiǎn)稱為自控精度有損壓縮算法)。

1.1 標(biāo)準(zhǔn)旋轉(zhuǎn)門算法(SDT)分析

    旋轉(zhuǎn)門壓縮算法由美國(guó)OSI軟件公司研發(fā),此算法主要針對(duì)的是浮點(diǎn)型的數(shù)據(jù)。SDT作為線性擬合的一種簡(jiǎn)便算法,具有效率高、壓縮比高、實(shí)現(xiàn)簡(jiǎn)單、誤差可控制的優(yōu)點(diǎn)?;舅惴ㄔ砣鐖D1所示。

tx5-t1.gif

    設(shè)ΔE為SDT算法的壓縮精度參數(shù),圖1中A點(diǎn)為起始點(diǎn),以距離A點(diǎn)為ΔE的上下兩點(diǎn)為支點(diǎn)(類似兩扇門的門軸,故得名旋轉(zhuǎn)門)。壓縮開始時(shí),兩扇門是關(guān)閉的,且在算法執(zhí)行過(guò)程中,門只能往外開啟,不能往內(nèi)關(guān)閉。隨著數(shù)據(jù)點(diǎn)的增加,門就會(huì)旋轉(zhuǎn)打開,兩扇門的內(nèi)角和等于180°,就停止操作,存儲(chǔ)前一個(gè)數(shù)據(jù)點(diǎn),并由該點(diǎn)開始新一段壓縮。經(jīng)過(guò)旋轉(zhuǎn)門壓縮后,由A到B點(diǎn)的直線代替A到B的數(shù)據(jù)點(diǎn)。

    解壓過(guò)程:根據(jù)每段直線保存的起始點(diǎn)和終止點(diǎn)可以求出線段的公式,然后根據(jù)某點(diǎn)橫軸坐標(biāo)求出其對(duì)應(yīng)的縱坐標(biāo)數(shù)據(jù)值。

1.2 自控精度有損壓縮算法算法設(shè)計(jì)

    對(duì)于SDT算法有兩方面需要注意:(1)ΔE是決定SDT算法解壓平均誤差δ的關(guān)鍵。如果ΔE選擇較小,δ也小,壓縮比CR低;反之ΔE選擇較大,CR高,δ卻也變大。即使是有經(jīng)驗(yàn)的工程師,也需要長(zhǎng)時(shí)間調(diào)整ΔE才能找到合適的值,且當(dāng)數(shù)據(jù)范圍和特征改變時(shí),為滿足壓縮比和精度的要求,還需重新設(shè)置。(2)δ通常是作為評(píng)價(jià)壓縮過(guò)程好壞的標(biāo)準(zhǔn),如果δ不符合要求,較高的CR沒(méi)有任何意義。

    基于以上兩點(diǎn),將關(guān)注集中在δ的控制上。通過(guò)給定理想的δ,用算法自適應(yīng)調(diào)整ΔE。本文將工程中的反饋控制思想引入,用PID算法對(duì)ΔE在線調(diào)整,同時(shí)用神經(jīng)網(wǎng)絡(luò)算法動(dòng)態(tài)調(diào)整PID參數(shù),并通過(guò)其強(qiáng)大的學(xué)習(xí)和網(wǎng)絡(luò)記憶功能,實(shí)現(xiàn)相似數(shù)據(jù)快速壓縮。

    該算法包括兩方面內(nèi)容:改進(jìn)BP神經(jīng)網(wǎng)絡(luò)PID控制器(后文簡(jiǎn)稱為:NBP-PID)和標(biāo)準(zhǔn)SDT壓縮及解壓算法。數(shù)據(jù)通過(guò)SDT壓縮及解壓過(guò)程視為被控對(duì)象,期望的解壓平均誤差δs作為給定輸入,實(shí)際解壓平均誤差δ作為系統(tǒng)的輸出。NBP-PID控制器不斷調(diào)整ΔE的輸出,進(jìn)而控制δ輸出,直到偏差值小于算法停止運(yùn)行的門限值Th為止,這樣便完成了第一組數(shù)據(jù)的壓縮。門限值計(jì)算公式為:

    tx5-gs3.gif

    當(dāng)首組數(shù)據(jù)壓縮完成后,保留此時(shí)控制器各個(gè)參數(shù),用做下一組數(shù)據(jù)壓縮時(shí)控制器參數(shù)的初始值,完成第二組數(shù)據(jù)的壓縮,以此類推。同時(shí)將壓縮好的首組數(shù)據(jù)用北斗無(wú)損壓縮算法繼續(xù)壓縮。圖2為首組數(shù)據(jù)壓縮算法的反饋控制系統(tǒng)模型。

tx5-t2.gif

1.2.1 NBP-PID控制器設(shè)計(jì)

    在工業(yè)控制中,對(duì)PID控制器比例、積分、微分3個(gè)系數(shù)的調(diào)整一般很難。根據(jù)神經(jīng)網(wǎng)絡(luò)理論,三層BP神經(jīng)網(wǎng)絡(luò)可逼近任意線性和非線性函數(shù),通過(guò)神經(jīng)網(wǎng)絡(luò)的自身學(xué)習(xí),加權(quán)系數(shù)調(diào)整可以使其穩(wěn)定狀態(tài)對(duì)應(yīng)某種最有規(guī)律下的PID控制器參數(shù)[8]。于是本文采用三層BP神經(jīng)網(wǎng)絡(luò)(4-5-3結(jié)構(gòu))來(lái)調(diào)整PID的參數(shù)。

    輸入層神經(jīng)元為4個(gè),分別是輸入rin、輸出yout、誤差error和常數(shù)1;隱含層選擇5個(gè)即可滿足要求,3個(gè)輸出神經(jīng)元對(duì)參數(shù)Kp、Ki、Kd進(jìn)行在線調(diào)整。輸入層的輸入為:

tx5-gs4-12.gif

1.2.2 自控精度有損壓縮算法實(shí)現(xiàn)步驟

    (1)第一次進(jìn)行壓縮時(shí),對(duì)相應(yīng)的參數(shù)初始化。令u、u_1、u_2、u_3、u_4、u_5,即控制器的輸出零時(shí)刻和各歷史時(shí)刻初始值都為0,同時(shí)誤差error、輸出值yout零時(shí)刻和各歷史時(shí)刻也都初始化為0。隱含層的加權(quán)系數(shù)初始值和和輸出層加權(quán)系數(shù)的初始值為-0.5~0.5之間的隨機(jī)數(shù)。選定學(xué)習(xí)速率η、慣性系數(shù)α和β,以及門限值Th;

    (2)采樣得到rin(k);將前一時(shí)刻控制器的輸出u(k-1),即ΔE傳入代表被控對(duì)象模型的壓縮解壓函數(shù)中計(jì)算,得到此時(shí)的輸出yout值,再計(jì)算該時(shí)刻的系統(tǒng)誤差error(k)=rin(k)-yout(k);

    (3)計(jì)算神經(jīng)網(wǎng)絡(luò)各層神經(jīng)元的輸入、輸出,輸出層的輸出即對(duì)應(yīng)PID控制器的3個(gè)可調(diào)參數(shù)Kp、Ki、Kd,據(jù)此計(jì)算控制器當(dāng)前時(shí)刻的輸出u(k);

    (4)進(jìn)行神經(jīng)網(wǎng)絡(luò)學(xué)習(xí),在線調(diào)整輸出層和隱含層加權(quán)系數(shù)值,然后將各狀態(tài)參數(shù)更新;

    (5)根據(jù)式(3),計(jì)算系統(tǒng)此時(shí)的Th值,如果小于預(yù)先設(shè)置的門限值,則表明此組數(shù)據(jù)已達(dá)到給定誤差壓縮要求,進(jìn)入步驟(6),否則進(jìn)入步驟(2),再次循環(huán);

    (6)將此時(shí)刻以及前3個(gè)時(shí)刻的輸出層及隱含層加權(quán)系數(shù)值保存,作為下組數(shù)據(jù)壓縮時(shí)零時(shí)刻及歷史時(shí)刻的初始值,保存u及前5個(gè)時(shí)刻的值,作為下組數(shù)據(jù)壓縮各時(shí)刻u的初始值。同時(shí),此組壓縮后的數(shù)據(jù)進(jìn)入后續(xù)北斗無(wú)損壓縮算法中繼續(xù)壓縮;

    (7)利用前一組保存的控制器各參數(shù)開始下一組數(shù)據(jù)的壓縮,即又一次進(jìn)入步驟(2),直到所有組別的數(shù)據(jù)都?jí)嚎s完畢,算法結(jié)束。

2 北斗通信壓縮第二步——無(wú)損壓縮

    相對(duì)于有損壓縮來(lái)說(shuō),無(wú)損壓縮占用空間大,壓縮比不高,但它 100%地保存了原始信息,沒(méi)有任何信號(hào)丟失,不受信號(hào)源影響[9]。 一般的工業(yè)過(guò)程數(shù)據(jù)都有明確的物理含義,以項(xiàng)目中某能源公司提供的天然氣閥站數(shù)據(jù)為例,包含了溫度、流量、壓力、阻力等模擬量信息,也有閥門啟停、報(bào)警等狀態(tài)量信息。

    本文以過(guò)程數(shù)據(jù)中最常見的流量/壓力/阻力為例,對(duì)北斗無(wú)損壓縮算法作介紹。

2.1 數(shù)據(jù)預(yù)處理

    假設(shè)待壓縮實(shí)數(shù)數(shù)據(jù)精度為兩位小數(shù),數(shù)據(jù)大小為0.00~999 999.00。且以一個(gè)float  fRevBuf[500] 類型數(shù)組保存,若將此數(shù)組每個(gè)元素都乘以100,則其小數(shù)部分全部轉(zhuǎn)化成了整數(shù),再用強(qiáng)制類型轉(zhuǎn)化得到4 B的無(wú)符號(hào)整形數(shù)組 iPlc[500]。不同類型的整數(shù)可表示的數(shù)據(jù)范圍如表1前3行所示,且根據(jù)整數(shù)在計(jì)算機(jī)中的保存方式[10],可推得后面的4種情況。

tx5-b1.gif

2.2 北斗短報(bào)文通信無(wú)損壓縮算法

    過(guò)程數(shù)據(jù)一般是按時(shí)間的先后順序采集的數(shù)據(jù),數(shù)據(jù)中帶有時(shí)間特性,大多數(shù)工業(yè)現(xiàn)場(chǎng)采集數(shù)據(jù)都是過(guò)程數(shù)據(jù)[11]。因此,數(shù)據(jù)之間在數(shù)值上是有關(guān)聯(lián)的,所以根據(jù)相鄰數(shù)組元素的差值,而不是元素值本身,對(duì)其分配存儲(chǔ)空間更為合理。下面為具體步驟:

    (1)新建數(shù)組 int iSub[500],用于保存數(shù)組iPlc中相鄰元素的差值,即:iSub[i+1]=iPlc[i]-iPlc[i+1]; 并將iPlc數(shù)組中的首元素賦值給iSub數(shù)組中的首元素。

    (2)根據(jù)差值數(shù)組iSub中的每個(gè)元素的值大小,對(duì)照表1,給每個(gè)元素分配一個(gè)從1~4不等的字節(jié)長(zhǎng)度標(biāo)記,并用另一個(gè)數(shù)組iLethByte作出記錄。如表2中,差值元素為100,iLethByte數(shù)組相同下標(biāo)元素值為1。

    (3)iLethByte數(shù)組中每一個(gè)元素記錄了相同下標(biāo)位置的差值數(shù)組iSub每一個(gè)元素所需存儲(chǔ)空間的最小字節(jié)長(zhǎng)度,為了在北斗接收端作解壓縮,除了傳遞iSub數(shù)組外也需要傳遞長(zhǎng)度標(biāo)記數(shù)組iLethByte,但這樣需要傳遞的數(shù)據(jù)量過(guò)大。根據(jù)表1可知,以不同字節(jié)長(zhǎng)度可表示的不同的數(shù)值范圍為依據(jù),可分為7種類型,但現(xiàn)實(shí)中不需要每次都分成7種類型,因?yàn)檫^(guò)程數(shù)據(jù)數(shù)值大小具有一定的連續(xù)性,并不是平均分布的,于是每次壓縮時(shí)根據(jù)過(guò)程數(shù)據(jù)本身的分布規(guī)律選擇其中的4種(選擇的原則后面會(huì)補(bǔ)充)類型作為本次傳輸?shù)臉?biāo)準(zhǔn)類型,包含在其余類型里的數(shù)據(jù)最終會(huì)歸類到這4種標(biāo)準(zhǔn)類型中,然后用兩位二進(jìn)制數(shù)代碼來(lái)代指此次選出的4個(gè)標(biāo)準(zhǔn)類型。例如,此次的4個(gè)標(biāo)準(zhǔn)類型字節(jié)長(zhǎng)度為1、2、2.5、3,則它們的二進(jìn)制數(shù)代碼可依次為:00 01 10 11。然后每個(gè)元素按照所在的標(biāo)準(zhǔn)類型的字節(jié)長(zhǎng)度壓縮數(shù)據(jù),變成一個(gè)個(gè)存儲(chǔ)長(zhǎng)度不等的數(shù)據(jù),再將每4個(gè)變換之后的iSub數(shù)組元素組成一組,在每組前面添加一個(gè)記錄字節(jié)bt4Record,bt4Record為8位,每?jī)蓚€(gè)二進(jìn)制位可表示一個(gè)iSub元素所在的標(biāo)準(zhǔn)類型的代碼,且iSub元素在前面的對(duì)應(yīng)bt4Record的高位,在后面的對(duì)應(yīng)bt4Record的低位,如表2所示。至此,表2中這4個(gè)iSub元素前面的bt4Record字節(jié)二進(jìn)制表示為:01100011。

tx5-b2.gif

    (4)標(biāo)準(zhǔn)類型的選擇組合共tx5-b2-x1.gif為讓接收端確定是哪種組合,需要額外傳遞當(dāng)前組合的編號(hào)。且單次需要壓縮的數(shù)據(jù)個(gè)數(shù)如不是4的倍數(shù),則使最后一個(gè)bt4Record字節(jié)不夠8位,此時(shí)對(duì)于不足的字節(jié)先補(bǔ)零,然后額外傳遞本組壓縮數(shù)據(jù)的總數(shù)值,便可使北斗接收端解壓無(wú)誤。在每組報(bào)文的開頭,取兩個(gè)字節(jié)(16個(gè)bit位),其中10個(gè)bit位記錄本次壓縮的數(shù)據(jù)元素總數(shù)值(10位可表示:210=1 024個(gè)數(shù),足夠),剩余6個(gè)bit位(26=64>35)表示標(biāo)準(zhǔn)類型組合編號(hào)。

    至此,一次北斗短報(bào)文的數(shù)據(jù)報(bào)文打包完成。

    (5)將經(jīng)過(guò)步驟處理后的數(shù)據(jù)通過(guò)北斗設(shè)備發(fā)送到接收端。接收端解壓時(shí),先取出前兩個(gè)字節(jié),根據(jù)6個(gè)比特位的分類編號(hào)確定此組數(shù)據(jù)中的四種標(biāo)準(zhǔn)類型;根據(jù)10個(gè)比特位的數(shù)據(jù)個(gè)數(shù),確定此組原始數(shù)據(jù)的總個(gè)數(shù)。然后依次先取bt4Record,再按照此字節(jié)的記錄長(zhǎng)度對(duì)每個(gè)差值元素取數(shù),分別保存成整數(shù),再依次取下一個(gè)bt4Record字節(jié)。對(duì)于接收到數(shù)據(jù)字節(jié)長(zhǎng)度為1、2、4類型的,可根據(jù)表1直接強(qiáng)制類型轉(zhuǎn)化變回4個(gè)字節(jié)的整數(shù);對(duì)于其余自定義類型,則需要提取符號(hào)位,再根據(jù)正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼為原碼取反加一原則處理轉(zhuǎn)化成4個(gè)字節(jié)的整數(shù)。

    (6)將步驟(5)保存的整數(shù)縮小100倍,再保存成實(shí)數(shù)類型,至此完成北斗無(wú)損壓縮的解壓縮過(guò)程。

    補(bǔ)充:一組數(shù)據(jù)中最大值所在的類型必須是本次選取的標(biāo)準(zhǔn)類型之一。例如iSub[4]元素最大值為8 000 000,則字節(jié)為3的標(biāo)準(zhǔn)類型必須取,后再取其他可包含元素值最多的3個(gè)類型作為標(biāo)準(zhǔn)類型。

3 試驗(yàn)結(jié)果與對(duì)比分析

    實(shí)驗(yàn)數(shù)據(jù)源于一滾鉚實(shí)驗(yàn)機(jī)床,其作用是用滾鉚工具碾壓軸承外環(huán)邊緣的環(huán)形槽,使環(huán)形槽的一側(cè)邊緣向座圈孔或軸承的變形,進(jìn)而實(shí)現(xiàn)軸向固定。數(shù)據(jù)源自機(jī)床中的壓力傳感器,一組數(shù)據(jù)表示一次壓緊過(guò)程,原始?jí)毫η€如圖3所示。(原始數(shù)據(jù)共18組,編號(hào):S1~S18)圖中曲線下降階段是因?yàn)殡姍C(jī)停轉(zhuǎn),壓力逐步除去引起的,停機(jī)時(shí)間人為控制,故為排除人為干擾,每組只取前20 s的數(shù)據(jù)(200個(gè))。

tx5-t3.gif

    后續(xù)實(shí)驗(yàn)中都選定rin(k)為1,學(xué)習(xí)速率η為1.4,慣性系數(shù)α為0.3,β為0.5,門限值Th為0.1。且后續(xù)段落中,“第一階段”指的是北斗通信壓縮中的有損壓縮階段,“第二階段”為無(wú)損壓縮階段。

3.1 NBP-PID與標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)PID控制器性能對(duì)比

    圖4為在第一階段中,NBP-PID算法較標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)PID算法(簡(jiǎn)稱為BP-PID),6組數(shù)據(jù)單獨(dú)壓縮時(shí)各自達(dá)到門限值所需壓縮訓(xùn)練次數(shù)對(duì)比。

tx5-t4.gif

    分析圖4可知,在修改網(wǎng)絡(luò)權(quán)值時(shí),增加一個(gè)k-2時(shí)刻的慣性項(xiàng)和“階梯慣性項(xiàng)”系數(shù)的NBP-PID算法,可以減少重復(fù)壓縮的次數(shù),從而更快達(dá)到門限值。

    圖5為第一組(S1)數(shù)據(jù)分別采用兩種算法解壓誤差和訓(xùn)練次數(shù)的曲線圖,采用NBP-PID可在訓(xùn)練11次時(shí)達(dá)到門限值,即達(dá)到給定值的90%以上而結(jié)束訓(xùn)練,而BP-PID在最大訓(xùn)練次數(shù)(20)內(nèi)無(wú)法達(dá)到給定值的90%。綜上,NBP-PID的確可以有效加快訓(xùn)練過(guò)程,減少重復(fù)壓縮的次數(shù),從而提升算法的實(shí)用性。

tx5-t5.gif

3.2 采用NBP-PID算法壓縮多組數(shù)據(jù)

    表3給出當(dāng)首組數(shù)據(jù)壓縮完成后,后續(xù)組別依次繼續(xù)壓縮,達(dá)到門限值的壓縮次數(shù)的測(cè)試數(shù)據(jù)。

tx5-b3.gif

    根據(jù)表3知,首次壓縮數(shù)據(jù)在10次左右,后續(xù)組別重復(fù)壓縮次數(shù)除了個(gè)別組別達(dá)到最大訓(xùn)練次數(shù),其余數(shù)據(jù)組別基本可在一兩次之內(nèi)完成壓縮。因此通過(guò)NBP-PID網(wǎng)絡(luò)權(quán)值記憶功能,當(dāng)類似數(shù)據(jù)出現(xiàn)時(shí),可一定程度上加快后續(xù)組的壓縮,提升整體壓縮效率。

3.3 北斗通信壓縮算法整體壓縮分析

    表4描述了兩個(gè)階段壓縮過(guò)程中具體壓縮信息。為排除偶然性,這里用的數(shù)據(jù)與前面實(shí)驗(yàn)的數(shù)據(jù)不同,采用S10~S14的5組數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)。

tx5-b4.gif

    這5組數(shù)據(jù)的平均解壓誤差δ在1.0附近,滿足給定值上下波動(dòng)10%以內(nèi)的要求。有損壓縮階段的壓縮比平均為4.452,實(shí)現(xiàn)了用戶自定義壓縮誤差的同時(shí)還能擁有不錯(cuò)的壓縮比。無(wú)損壓縮階段中,壓縮后的存儲(chǔ)空間是壓縮后的數(shù)組元素所占空間之和,加上記錄字節(jié)所占空間之和,再加上處在報(bào)文開頭的兩個(gè)字節(jié)的總和。

    總壓縮率是無(wú)損壓縮之后所占存儲(chǔ)空間與原始數(shù)據(jù)所占存儲(chǔ)空間(800=4×200)之比。可以看到,經(jīng)過(guò)兩個(gè)階段的壓縮之后,數(shù)據(jù)被壓縮到了原始數(shù)據(jù)的10.5% 左右。由此可見北斗壓縮算法的壓縮效果良好。

4 結(jié)論

    本文提出的有損壓縮算法已經(jīng)在實(shí)驗(yàn)室環(huán)境中完成測(cè)試,無(wú)損壓縮算法在某天然氣管線監(jiān)測(cè)項(xiàng)目中實(shí)際完成測(cè)試部署,效果良好?;诒倍吠ㄐ诺墓I(yè)數(shù)據(jù)壓縮算法一方面解決了SDT壓縮精度不可控、參數(shù)設(shè)置困難等問(wèn)題;另一方面,數(shù)據(jù)經(jīng)過(guò)兩個(gè)階段的壓縮,獲得了較高的壓縮比。此外,該算法不僅可用于北斗短報(bào)文通信,也可用于其他通信頻度和報(bào)文長(zhǎng)度受限的場(chǎng)合下,因此該算法具有工程實(shí)用價(jià)值。

參考文獻(xiàn)

[1] 楊元喜.北斗衛(wèi)星導(dǎo)航系統(tǒng)的進(jìn)展、貢獻(xiàn)與挑戰(zhàn)[J].測(cè)繪學(xué)報(bào),2010,39(1):1-6.

[2] 谷軍霞,王春芳,宋之光.北斗短報(bào)文通信信道性能測(cè)試與統(tǒng)計(jì)分析[J].氣象科技,2015,43(3):458-463.

[3] 于龍洋,王鑫,李署堅(jiān),等.基于北斗短報(bào)文的定位數(shù)據(jù)壓縮和可靠傳輸[J].電子技術(shù)應(yīng)用,2012,38(11):108-111.

[4] 陳海生,郭曉云,王峰,等.基于北斗短報(bào)文的漁獲信息壓縮傳輸方法[J].農(nóng)業(yè)工程學(xué)報(bào),2015,31(22):155-160.

[5] 彭皓.北斗系統(tǒng)用戶通信數(shù)據(jù)擴(kuò)容技術(shù)研究[D].西安:西安電子科技大學(xué),2013.

[6] 徐慧.實(shí)時(shí)數(shù)據(jù)庫(kù)中數(shù)據(jù)壓縮算法的研究[D].杭州:浙江大學(xué),2006.

[7] 曲奕霖,王文海.用于過(guò)程數(shù)據(jù)壓縮的自控精度SDT算法[J].計(jì)算機(jī)工程,2010,36(22):40-42.

[8] 譚永紅.基于BP神經(jīng)網(wǎng)絡(luò)的自適應(yīng)控制[J].控制理論與應(yīng)用,1994,11(1):84-87.

[9] 鄭翠芳.幾種常用無(wú)損數(shù)據(jù)壓縮算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(9):73-76.

[10] 張德偉,沈培鋒,張德珍,等.計(jì)算機(jī)補(bǔ)碼概念剖析[J].微計(jì)算機(jī)信息,2005,21(20):177-178.

[11] 沈春鋒,黃松鑫,張冬,等.基于參數(shù)估計(jì)的通用工業(yè)數(shù)據(jù)在線壓縮方法[J].控制工程,2011(s1):142-145.



作者信息:

陳  勇,黃茹楠,劉  青,李建坡,李  鑫

(燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島066004)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。