《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于北斗通信的工業過程數據壓縮方法
基于北斗通信的工業過程數據壓縮方法
2017年電子技術應用第10期
陳 勇,黃茹楠,劉 青,李建坡,李 鑫
燕山大學 電氣工程學院,河北 秦皇島066004
摘要: 短報文通信是我國北斗衛星導航系統特有的一個功能,可用于公網通信覆蓋盲區位置的數據傳輸。而通信頻度和報文長度的限制,降低了北斗短報文通信的效率,為此,提出了一種用于北斗通信數據的壓縮方法。該壓縮方法分兩步,第一步為有損壓縮,以工業數據庫壓縮技術中的旋轉門算法為基礎,同時為了實現有損壓縮的精度可調,用改進的BP神經網絡PID控制器對旋轉門算法的參數進行在線調整;第二步為無損壓縮,提出了前置特殊字節配合差值傳遞的無損壓縮策略。實驗表明經過此方法兩步壓縮后,對工業過程數據完成了較高的壓縮,同時,壓縮精度也可在壓縮過程中準確調整。
中圖分類號: TN911.23;TP13
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170127
中文引用格式: 陳勇,黃茹楠,劉青,等. 基于北斗通信的工業過程數據壓縮方法[J].電子技術應用,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 引言

    北斗衛星導航系統是我國自主建設、獨立運行、集導航定位、授時、用戶監測、短報文通信于一體的導航系統[1]。短報文通信是北斗系統特有的一個功能,其不受地形條件和環境氣候等影響,可用于解決偏遠地區數據實時通信問題,特別適用于常規通信手段存在盲區多、基建投入大的場合使用,例如野外的石油、天然氣的閥站和門站,以及遠離移動網絡覆蓋地區或者通信不穩定地區工廠的數據傳輸。

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

    目前已發表的關于北斗短報文通信的論文中,于龍海提出先建立運動目標的數學模型,通過參數簡化和差分編碼實現北斗定位數據的壓縮[3]。陳海生提出的固定長度的索引碼表用于漁獲數據的傳輸,可以解決數據無損壓縮傳輸,但是不具有通用性[4]。彭浩提出了中文智能分詞和無損壓縮編碼的聯合壓縮算法,進而實現通信數據擴容[5],但是工業過程數據中,主要傳輸的是實數信息。目前,對于北斗短報文通信的工業過程數據的傳輸,還沒有較實用的數據壓縮和傳輸的解決辦法。因此本文提出了一種分別從有損和無損壓縮兩個方面,對數據分步進行壓縮處理的解決方案。實驗證明,該方法可有效對短報文數據進行壓縮處理,從而提高工業過程數據傳輸的效率和可靠性。

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

    有損壓縮是在壓縮工程中損失一定的信息以獲得較高的壓縮比[6]。為后文評價有損壓縮過程,本文采用曲奕霖[7]在其論文中提出的評價標準,如下:

tx5-gs1-2.gif

    CR用于衡量算法對一組數據的壓縮能力,而δ用于衡量一組數據的平均失真度。

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

1.1 標準旋轉門算法(SDT)分析

    旋轉門壓縮算法由美國OSI軟件公司研發,此算法主要針對的是浮點型的數據。SDT作為線性擬合的一種簡便算法,具有效率高、壓縮比高、實現簡單、誤差可控制的優點。基本算法原理如圖1所示。

tx5-t1.gif

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

    解壓過程:根據每段直線保存的起始點和終止點可以求出線段的公式,然后根據某點橫軸坐標求出其對應的縱坐標數據值。

1.2 自控精度有損壓縮算法算法設計

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

    基于以上兩點,將關注集中在δ的控制上。通過給定理想的δ,用算法自適應調整ΔE。本文將工程中的反饋控制思想引入,用PID算法對ΔE在線調整,同時用神經網絡算法動態調整PID參數,并通過其強大的學習和網絡記憶功能,實現相似數據快速壓縮。

    該算法包括兩方面內容:改進BP神經網絡PID控制器(后文簡稱為:NBP-PID)和標準SDT壓縮及解壓算法。數據通過SDT壓縮及解壓過程視為被控對象,期望的解壓平均誤差δs作為給定輸入,實際解壓平均誤差δ作為系統的輸出。NBP-PID控制器不斷調整ΔE的輸出,進而控制δ輸出,直到偏差值小于算法停止運行的門限值Th為止,這樣便完成了第一組數據的壓縮。門限值計算公式為:

    tx5-gs3.gif

    當首組數據壓縮完成后,保留此時控制器各個參數,用做下一組數據壓縮時控制器參數的初始值,完成第二組數據的壓縮,以此類推。同時將壓縮好的首組數據用北斗無損壓縮算法繼續壓縮。圖2為首組數據壓縮算法的反饋控制系統模型。

tx5-t2.gif

1.2.1 NBP-PID控制器設計

    在工業控制中,對PID控制器比例、積分、微分3個系數的調整一般很難。根據神經網絡理論,三層BP神經網絡可逼近任意線性和非線性函數,通過神經網絡的自身學習,加權系數調整可以使其穩定狀態對應某種最有規律下的PID控制器參數[8]。于是本文采用三層BP神經網絡(4-5-3結構)來調整PID的參數。

    輸入層神經元為4個,分別是輸入rin、輸出yout、誤差error和常數1;隱含層選擇5個即可滿足要求,3個輸出神經元對參數Kp、Ki、Kd進行在線調整。輸入層的輸入為:

tx5-gs4-12.gif

1.2.2 自控精度有損壓縮算法實現步驟

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

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

    (3)計算神經網絡各層神經元的輸入、輸出,輸出層的輸出即對應PID控制器的3個可調參數Kp、Ki、Kd,據此計算控制器當前時刻的輸出u(k);

    (4)進行神經網絡學習,在線調整輸出層和隱含層加權系數值,然后將各狀態參數更新;

    (5)根據式(3),計算系統此時的Th值,如果小于預先設置的門限值,則表明此組數據已達到給定誤差壓縮要求,進入步驟(6),否則進入步驟(2),再次循環;

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

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

2 北斗通信壓縮第二步——無損壓縮

    相對于有損壓縮來說,無損壓縮占用空間大,壓縮比不高,但它 100%地保存了原始信息,沒有任何信號丟失,不受信號源影響[9]。 一般的工業過程數據都有明確的物理含義,以項目中某能源公司提供的天然氣閥站數據為例,包含了溫度、流量、壓力、阻力等模擬量信息,也有閥門啟停、報警等狀態量信息。

    本文以過程數據中最常見的流量/壓力/阻力為例,對北斗無損壓縮算法作介紹。

2.1 數據預處理

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

tx5-b1.gif

2.2 北斗短報文通信無損壓縮算法

    過程數據一般是按時間的先后順序采集的數據,數據中帶有時間特性,大多數工業現場采集數據都是過程數據[11]。因此,數據之間在數值上是有關聯的,所以根據相鄰數組元素的差值,而不是元素值本身,對其分配存儲空間更為合理。下面為具體步驟:

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

    (2)根據差值數組iSub中的每個元素的值大小,對照表1,給每個元素分配一個從1~4不等的字節長度標記,并用另一個數組iLethByte作出記錄。如表2中,差值元素為100,iLethByte數組相同下標元素值為1。

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

tx5-b2.gif

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

    至此,一次北斗短報文的數據報文打包完成。

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

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

    補充:一組數據中最大值所在的類型必須是本次選取的標準類型之一。例如iSub[4]元素最大值為8 000 000,則字節為3的標準類型必須取,后再取其他可包含元素值最多的3個類型作為標準類型。

3 試驗結果與對比分析

    實驗數據源于一滾鉚實驗機床,其作用是用滾鉚工具碾壓軸承外環邊緣的環形槽,使環形槽的一側邊緣向座圈孔或軸承的變形,進而實現軸向固定。數據源自機床中的壓力傳感器,一組數據表示一次壓緊過程,原始壓力曲線如圖3所示。(原始數據共18組,編號:S1~S18)圖中曲線下降階段是因為電機停轉,壓力逐步除去引起的,停機時間人為控制,故為排除人為干擾,每組只取前20 s的數據(200個)。

tx5-t3.gif

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

3.1 NBP-PID與標準BP神經網絡PID控制器性能對比

    圖4為在第一階段中,NBP-PID算法較標準BP神經網絡PID算法(簡稱為BP-PID),6組數據單獨壓縮時各自達到門限值所需壓縮訓練次數對比。

tx5-t4.gif

    分析圖4可知,在修改網絡權值時,增加一個k-2時刻的慣性項和“階梯慣性項”系數的NBP-PID算法,可以減少重復壓縮的次數,從而更快達到門限值。

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

tx5-t5.gif

3.2 采用NBP-PID算法壓縮多組數據

    表3給出當首組數據壓縮完成后,后續組別依次繼續壓縮,達到門限值的壓縮次數的測試數據。

tx5-b3.gif

    根據表3知,首次壓縮數據在10次左右,后續組別重復壓縮次數除了個別組別達到最大訓練次數,其余數據組別基本可在一兩次之內完成壓縮。因此通過NBP-PID網絡權值記憶功能,當類似數據出現時,可一定程度上加快后續組的壓縮,提升整體壓縮效率。

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

    表4描述了兩個階段壓縮過程中具體壓縮信息。為排除偶然性,這里用的數據與前面實驗的數據不同,采用S10~S14的5組數據作為實驗數據。

tx5-b4.gif

    這5組數據的平均解壓誤差δ在1.0附近,滿足給定值上下波動10%以內的要求。有損壓縮階段的壓縮比平均為4.452,實現了用戶自定義壓縮誤差的同時還能擁有不錯的壓縮比。無損壓縮階段中,壓縮后的存儲空間是壓縮后的數組元素所占空間之和,加上記錄字節所占空間之和,再加上處在報文開頭的兩個字節的總和。

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

4 結論

    本文提出的有損壓縮算法已經在實驗室環境中完成測試,無損壓縮算法在某天然氣管線監測項目中實際完成測試部署,效果良好。基于北斗通信的工業數據壓縮算法一方面解決了SDT壓縮精度不可控、參數設置困難等問題;另一方面,數據經過兩個階段的壓縮,獲得了較高的壓縮比。此外,該算法不僅可用于北斗短報文通信,也可用于其他通信頻度和報文長度受限的場合下,因此該算法具有工程實用價值。

參考文獻

[1] 楊元喜.北斗衛星導航系統的進展、貢獻與挑戰[J].測繪學報,2010,39(1):1-6.

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

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

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

[5] 彭皓.北斗系統用戶通信數據擴容技術研究[D].西安:西安電子科技大學,2013.

[6] 徐慧.實時數據庫中數據壓縮算法的研究[D].杭州:浙江大學,2006.

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

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

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

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

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



作者信息:

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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产视频你懂的 | 国产高清在线丝袜精品一区 | 老司机亚洲精品 | 亚洲嗯啊 | 午夜视频国产 | 久久久久综合国产 | 精品日韩一区 | 色在线导航 | 免费一级特黄 | 羞羞视频在线观看视频 | 午夜视频在线观看视频 | 午夜在线影视 | 99国产超薄丝袜足j在线观看 | 五月丁香六月综合缴清无码 | 欧美亚洲黄色 | 天堂最新资源在线 | 成人免费动漫在线看网站 | www夜夜操com| 欧美日本综合 | 亚洲欧美综合一区二区三区四区 | 午夜久久久久久亚洲国产精品 | 一本色道久久综合狠狠躁 | 伊人精品视频在线观看 | 日本www色视频成人免费网站 | 2015小明台湾永久区域免费 | 午夜免费福利 | 一级黄色网 | 欧美日本黄色 | 欧美成人专区 | 欧美成人精品欧美一级乱黄 | 国产欧美日韩精品综合 | 亚洲码和乱人伦中文一区 | 最近免费中文字幕大全高清片 | 亚洲国产精品日韩在线观看 | 免费午夜视频在线观看 | 中国xxxx视频播放50 | 128tv在线观看 | 色在线免费观看 | 日韩大片 | 国产一精品一aⅴ一免费 | a一级日本特黄aaa大片 |