《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM的波浪浮標(biāo)設(shè)計(jì)
基于ARM的波浪浮標(biāo)設(shè)計(jì)
2014年電子技術(shù)應(yīng)用第9期
李俊文1,劉惠康1,張孝春2
1.武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢430081; 2.武漢大學(xué) 土木建筑工程學(xué)院,湖北 武漢430072
摘要: 針對(duì)波浪的頻率提取,提出了基于ARM與Linux系統(tǒng)的波浪浮標(biāo)。以32位SP5V210作為核心處理器,擴(kuò)展了加速度傳感器模塊、GPS定位及GPRS網(wǎng)絡(luò)傳輸模塊。借助希爾伯特算法對(duì)采集到的加速度進(jìn)行分解和計(jì)算,推算出波浪的瞬時(shí)頻率;對(duì)角加速度進(jìn)行卡爾曼濾波之后將其積分,獲取浮體姿態(tài)角。最終將所需要的數(shù)據(jù)通過(guò)GPRS網(wǎng)絡(luò)發(fā)送回監(jiān)控中心。試驗(yàn)證明系統(tǒng)能夠有效地實(shí)現(xiàn)瞬時(shí)頻率的計(jì)算,保證各數(shù)據(jù)采集與發(fā)送的準(zhǔn)確性與可靠性。
The design of wave buoy based on ARM
Li Junwen1,Liu Huikang1,Zhang Xiaochun2
1.School of Information Science and Engineering,Wuhan University of Science and Technology,Wuhan 430081,China;2.School of Civil and Architectural Engineering,Wuhan University,Wuhan 430072,China
Abstract: For the extraction of wave frequency, a wave buoy that based on the ARM and Linux system is introduced. This system used SP5V210 which is a 32-bit controller as its control unit, expanding the acceleration sensor module, GPS and GPRS network transmission module.The acceleration is decomposed and calculated with the Hilbert algorithm,calculating the instantaneous frequency of wave. In order to acquire the attitude angle, we have to compute the integral of the angular acceleration which is through the Kalman filter. Finally, the necessary data is sent back to the monitoring center through the GPRS network. It is proved by practice that the system can effectively achieve the instantaneous frequency and ensure the stability and reliability of the data acquisition and transfer.
Key words : Hilbert algorithm;instantaneous frequency;acceleration;Kalman filter

    隨著全球經(jīng)濟(jì)的飛速發(fā)展,對(duì)能源的需求逐日增加,以往以煤、石油等非再生的古老能源已經(jīng)不能滿足現(xiàn)在社會(huì)對(duì)能源的需求。我國(guó)有著廣闊的海岸線,對(duì)海浪能的開(kāi)發(fā)利用成為目前開(kāi)發(fā)新能源的重要方式。

    在眾多海浪發(fā)電裝置設(shè)備中均存在著對(duì)海浪能量的轉(zhuǎn)換效率低下的問(wèn)題。針對(duì)效率轉(zhuǎn)換問(wèn)題,蔡元奇教授提出了利用實(shí)時(shí)調(diào)節(jié)海浪發(fā)電裝置中擺子的固有自振頻率與海浪頻率相同的方法,進(jìn)而與海浪產(chǎn)生諧振,從而減少了發(fā)電裝置的能量損耗,提高轉(zhuǎn)換效率[1-2]。因此,需要實(shí)時(shí)掌握海浪的頻率參數(shù),要保證得到的海浪頻率的準(zhǔn)確可靠。

    本文設(shè)計(jì)了多功能海浪識(shí)別儀,以Cortex-A8作為主處理器,基于Linux操作系統(tǒng),有很強(qiáng)的可移植性與擴(kuò)展性。通過(guò)加速度傳感器采集浮標(biāo)的加速度,對(duì)此信號(hào)采取EMD處理,并對(duì)分解之后的IMF進(jìn)行閾值篩選,獲得有效分量,然后對(duì)該分量進(jìn)行希爾伯特黃變換,從而準(zhǔn)確計(jì)算出海浪的實(shí)時(shí)頻率[3]。通過(guò)陀螺儀、電子羅盤(pán)、GPS可以精確定位波浪識(shí)別儀的準(zhǔn)確方位以及姿態(tài)。通信網(wǎng)絡(luò)采用GPRS網(wǎng)絡(luò),實(shí)時(shí)將采集到的數(shù)據(jù)傳輸?shù)桨哆叡O(jiān)控中心。

1 系統(tǒng)總體結(jié)構(gòu)及功能

    海浪數(shù)據(jù)采集傳輸系統(tǒng)主要由數(shù)據(jù)采集、數(shù)據(jù)傳輸及數(shù)據(jù)處理三部分[4]組成,系統(tǒng)框圖如圖1所示。數(shù)據(jù)采集部分由加速度傳感器、陀螺儀、電子羅盤(pán)及GPS組成,主要作用是采集浮體的線加速度、角加速度、方位角以及GPS坐標(biāo)。數(shù)據(jù)傳輸部分由GSM/GPRS收發(fā)模塊組成,能夠通過(guò)網(wǎng)絡(luò)使手機(jī)短信實(shí)時(shí)接收現(xiàn)場(chǎng)數(shù)據(jù)。數(shù)據(jù)處理部分由S5PV210處理器完成數(shù)據(jù)篩選、算法及處理。

qrs5-t1.gif

2 系統(tǒng)硬件設(shè)計(jì)

2.1 S5PV210處理器

    S5PV210是三星公司推出的高性能應(yīng)用處理器,采用了Cortex-A8內(nèi)核,運(yùn)行主頻可達(dá)1 GHz,可搭載Linux系統(tǒng),帶有2路SPI、4路I2C與4路UART接口。

2.2 加速度傳感器

    選用基于VTI的3D-MEMS電容傳感技術(shù)的高性能低功耗的SCA3060三軸加速度傳感器,±2 g的測(cè)量量程、精度可達(dá)1 mg,完全滿足設(shè)備測(cè)量環(huán)境的客觀要求。將采集到的三個(gè)軸方向上的加速度數(shù)據(jù)通過(guò)SPI總線傳輸給處理器。電路圖如圖2所示。

qrs5-t2.gif

2.3 陀螺儀模塊

    選用L3GD20三軸陀螺儀芯片。它提供了較寬的測(cè)量量程,用戶有足夠的選擇空間。為了滿足測(cè)量所需,同時(shí)保證測(cè)量精度,該系統(tǒng)中選用±500°/s量程,測(cè)量精度可達(dá)±0.015°/s。該芯片采用I2C總線方式與處理器進(jìn)行數(shù)據(jù)傳輸。

2.4 GPS模塊

    采用Gstar GS-87模塊,它是一個(gè)高效能、低功耗的智能型衛(wèi)星接收模塊。其工作電壓為3.3 V,定位精度可達(dá)10 m以內(nèi),通過(guò)串口與處理器進(jìn)行通訊,通過(guò)GPRS網(wǎng)絡(luò)將所需數(shù)據(jù)傳回監(jiān)控中心。

2.5 GSM/GPRS模塊

    選用中興的MF210模塊,本設(shè)計(jì)中利用SIM卡通過(guò)聯(lián)通網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)數(shù)據(jù)傳輸,外圍電路圖如圖3所示。

qrs5-t3.gif

2.6 電子羅盤(pán)

    選用SCH9005集成電路模塊,該芯片集成了高精度氣壓傳感器和高精度磁傳感器,且具有溫度測(cè)量、氣壓測(cè)量、指南針?lè)轿粶y(cè)量功能。氣壓測(cè)量分辨率為±1 hPa,測(cè)量范圍是300 hPa~1 000 hPa,羅盤(pán)精度為±2°,分辨率為1°,以地磁的正北角為0°,模塊采用I2C接口將數(shù)據(jù)傳送給處理器。

3 系統(tǒng)軟件設(shè)計(jì)

3.1 數(shù)據(jù)采集部分

    Linux操作系統(tǒng)中,上層用戶空間通過(guò)調(diào)用內(nèi)核空間的系統(tǒng)接口函數(shù)來(lái)完成對(duì)底層硬件的操作。因而要完成芯片的功能,首先需要編寫(xiě)底層的驅(qū)動(dòng)程序,其次是上層的應(yīng)用程序。本設(shè)計(jì)中所選芯片運(yùn)用到了I2C、SPI、UART 3種通信協(xié)議方式。雖然Linux系統(tǒng)內(nèi)核一般自帶有3種總線的驅(qū)動(dòng)程序,但是其總線子系統(tǒng)框架復(fù)雜,不易移植,且編寫(xiě)應(yīng)用程序時(shí)不方便,因而考慮重新編寫(xiě)基于對(duì)GPIO端口操作的字符設(shè)備驅(qū)動(dòng)來(lái)完成對(duì)傳感芯片的數(shù)據(jù)操作[5]

    S5PV210芯片帶有3路I2C、兩路SPI接口和4路UART接口。電子羅盤(pán)和陀螺儀選用I2C方式通信,在I2C字符驅(qū)動(dòng)程序中,直接通過(guò)地址映射對(duì)寄存器進(jìn)行操作,配置寄存器I2CCON、I2CSTAT,設(shè)置其工作方式為主機(jī)模式,使能I2C中斷,設(shè)定其工作頻率為400 kHz。

    GPS和GPRS的串口傳輸選用“dev/ttyS0”和“dev/ttyS1”,在上層用戶空間中直接編寫(xiě)應(yīng)用程序,設(shè)置串口波特率為9 600 bit/s,8 bit數(shù)據(jù)傳輸,無(wú)奇偶校驗(yàn)位。程序讀取GPS返回的GPRMC(推薦定位信息),該信息包含了UTC時(shí)間,定位狀態(tài),經(jīng)緯度,地面速率以及航向角。

3.2 數(shù)據(jù)傳輸部分

    系統(tǒng)采用GPRS網(wǎng)絡(luò)傳輸方式實(shí)現(xiàn)現(xiàn)場(chǎng)和岸邊通信。

    對(duì)于GPRS網(wǎng)絡(luò)傳輸時(shí),處理器將經(jīng)過(guò)處理后得到的海浪頻率、儀器的傾斜角、GPS地理方位等數(shù)據(jù)發(fā)送給GPRS網(wǎng)絡(luò),GPRS網(wǎng)絡(luò)提供通信鏈路,將這些信息發(fā)送給固定IP地址,在監(jiān)控中心的上位機(jī)程序需要進(jìn)行socket網(wǎng)絡(luò)編程,通過(guò)靜態(tài)IP地址看到數(shù)據(jù)。

    在ARM發(fā)送端,Linux系統(tǒng)啟動(dòng)之后,首先要對(duì)串口進(jìn)行初始化,配置串口參數(shù),其次,對(duì)GSM模塊設(shè)置AT指令,主要用到的指令有AT+CGDCONT=1,“IP”,“CMNET”接入網(wǎng)絡(luò);AT+TCPSERV設(shè)置上位機(jī)IP地址,AT+TCPPORT配置上位機(jī)監(jiān)聽(tīng)端口設(shè)置。然后,通過(guò)AT+CONNETCIONSTART請(qǐng)求建立網(wǎng)絡(luò)連接,再通過(guò)AT+OTCP登陸網(wǎng)絡(luò),數(shù)據(jù)傳輸時(shí),將數(shù)據(jù)打包封裝直接發(fā)送到GPRS網(wǎng)絡(luò),流程如圖4所示。

qrs5-t4.gif

3.3 數(shù)據(jù)處理

3.3.1 海浪頻率的提取

    以所測(cè)得的三軸加速度為數(shù)據(jù)分析對(duì)象推算出海浪頻率,由于海浪波形具有隨機(jī)性,混亂性,而且在測(cè)量加速度信號(hào)時(shí),采集系統(tǒng)的測(cè)量誤差、外界環(huán)境的干擾或其他因素的影響,使得測(cè)量到的加速度信號(hào)包含大量的噪聲。這些噪聲理論上可以使用傅里葉變換和小波變換進(jìn)行分析處理,可是在實(shí)測(cè)數(shù)據(jù)中,發(fā)現(xiàn)所測(cè)信號(hào)為非平穩(wěn)非線性信號(hào),而傅里葉變化并只能處理平穩(wěn)信號(hào),雖然小波變換在理論上能夠處理非平穩(wěn)非線性信號(hào),但是在實(shí)際實(shí)踐過(guò)程中,發(fā)現(xiàn)處理效果并不理想,所以引入了希爾伯特黃變換算法。

    該算法可以簡(jiǎn)單的表示為兩個(gè)步驟,首先需對(duì)原始信號(hào)進(jìn)行EMD分解。EMD分解主要目的是將原始信號(hào)分解為多個(gè)IMF分量。IMF具有以下兩個(gè)特點(diǎn):其極點(diǎn)數(shù)個(gè)數(shù)和零點(diǎn)數(shù)個(gè)數(shù)最多相差一個(gè);其極大值點(diǎn)確定的包絡(luò)線與極小值點(diǎn)確定的包絡(luò)線的和必須為零。

   (1)將信號(hào)x(t)的極大值與極小值形成的包絡(luò)線取平均得到均值曲線l(t),之后用原始信號(hào)x(t)減去均值曲線l(t)得到l1(t),判斷l(xiāng)1(t)是否滿足IMF分量的兩個(gè)條件,若滿足則得到第一個(gè)IMF,若不滿足,則將l1(t)視為新的原始信號(hào)繼續(xù)重復(fù)以上步驟。最后得到n個(gè)IMF與一個(gè)殘余分量r。

    qrs5-gs1.gif

    在n個(gè)IMF中,為了獲取原始信號(hào)中的主要成分信號(hào)分量,將分量信號(hào)與原始信號(hào)的相關(guān)系數(shù)設(shè)為篩選參考量,當(dāng)相關(guān)系數(shù)大于0.7時(shí),可確定該IMF為原始信號(hào)主要成分,篩選閾值設(shè)為0.7。

    (2)進(jìn)行Hilbert變換。對(duì)于信號(hào)x(t),Hilbert變換定義為:

    qrs5-gs2.gif

    對(duì)每一個(gè)IMF進(jìn)行Hilbert變換,從而得到了信號(hào)的瞬時(shí)頻率。借助Hilbert變換,可得到x(t)的解析信號(hào):

qrs5-gs3.gif

3.3.2 浮體傾角的提取

    L3GD20陀螺儀可以測(cè)得三個(gè)方向上的角加速度,對(duì)各方向上的角加速度積分即可得到該方向上的傾角度數(shù)。由于陀螺儀在輸出時(shí),會(huì)存在數(shù)據(jù)漂移,如果直接對(duì)數(shù)據(jù)積分會(huì)造成偏移誤差越來(lái)越大,最后導(dǎo)致數(shù)據(jù)無(wú)法使用。因此,用卡爾曼濾波對(duì)數(shù)據(jù)進(jìn)行處理[7],卡爾曼濾波實(shí)質(zhì)上是依據(jù)實(shí)測(cè)數(shù)據(jù)對(duì)隨機(jī)量進(jìn)行最小二乘估計(jì),可以對(duì)物體的實(shí)時(shí)運(yùn)行狀態(tài)進(jìn)行估計(jì)和預(yù)測(cè)。

3.4 軟件整體流程

    海洋波浪作為觀測(cè)對(duì)象,其頻率很低不會(huì)超過(guò)5 Hz,根據(jù)采樣定理,將三軸加速度傳感器的采樣頻率設(shè)定為10 Hz。采樣點(diǎn)數(shù)為2 048,采樣時(shí)間為3.5 min。將陀螺儀采樣頻率設(shè)為20 Hz。軟件整體流程如圖5所示。

qrs5-t5.gif

4 實(shí)驗(yàn)條件及結(jié)果

    為了較為準(zhǔn)確地測(cè)試系統(tǒng)采集數(shù)據(jù)的穩(wěn)定性及準(zhǔn)確性,將測(cè)試地點(diǎn)選為湖水面積為33 km2的東湖內(nèi),湖面的波浪相比于海浪,沒(méi)有海風(fēng)的作用、氣壓變化、地形因素等客觀條件影響,其波浪形成條件雖然不如海浪嚴(yán)苛和復(fù)雜,且波浪振幅和頻率均比海浪小。但是,兩者之間具有波浪的共性,均是由風(fēng)產(chǎn)生的水面波動(dòng),均可視作由無(wú)限多個(gè)振幅不同、頻率不同、方向不同、相位雜亂的波組成,因此可以作為測(cè)試場(chǎng)地達(dá)到我們測(cè)量波浪頻率的目的。

    試驗(yàn)現(xiàn)場(chǎng)平均波高為3~5 cm,頻率為1 Hz左右,但是由于試驗(yàn)期間受到?jīng)_鋒舟的影響,致使波高有時(shí)達(dá)到10 cm左右,頻率降低到0.5 Hz左右。

    利用MATLAB對(duì)采集到的角度與線加速度進(jìn)行分析,其角度曲線圖如6所示,經(jīng)過(guò)卡爾曼濾波之后的角加速度進(jìn)行積分,不會(huì)再產(chǎn)生多大的漂移與誤差,效果良好,其波形近似正弦曲線,間接反映出良好的波浪震蕩特性。角度的大小可近似反應(yīng)波浪振幅的強(qiáng)度,當(dāng)角度震蕩越大,波浪振幅強(qiáng)度越強(qiáng)。

qrs5-t6.gif

    由希爾伯特算法計(jì)算得到的頻率數(shù)據(jù)如表1所示,算法處理時(shí)間約為10 s,能夠很迅速地處理數(shù)據(jù),分析得出波浪頻率,保證實(shí)時(shí)性。計(jì)算所得頻率與實(shí)際頻率相符,經(jīng)多次驗(yàn)證,該算法能夠很好地從非平穩(wěn)非線性的隨機(jī)信號(hào)中,獲取信號(hào)主要成分,能夠保證數(shù)據(jù)輸出的可靠性。

qrs5-b1.gif

    本文借助ARM及Linux開(kāi)發(fā)平臺(tái)完成了對(duì)波浪頻率、溫度及氣壓的測(cè)量,實(shí)現(xiàn)了浮標(biāo)的姿態(tài)及定位,通過(guò)GPRS網(wǎng)絡(luò)實(shí)時(shí)地將數(shù)據(jù)反饋到監(jiān)控中心,達(dá)到了遠(yuǎn)程海浪數(shù)據(jù)監(jiān)測(cè)的目的。

    該設(shè)計(jì)具有良好的實(shí)時(shí)性、可靠性及準(zhǔn)確性。其創(chuàng)新點(diǎn)在于將希爾伯特算法運(yùn)用于加速度信號(hào)的分析當(dāng)中,并且通過(guò)希爾伯特變換計(jì)算出了波浪的瞬時(shí)頻率,同時(shí)以Linux系統(tǒng)為平臺(tái),具有很強(qiáng)的擴(kuò)展性,方便波浪浮標(biāo)采集系統(tǒng)的二次開(kāi)發(fā)。

參考文獻(xiàn)

[1] 蔡元奇.共振波力發(fā)電裝置:中國(guó),CN201110233308.7[P].2011-08-16.

[2] 蔡元奇.共振波力發(fā)電裝置:中國(guó),CN201120295878.4[P].2011-08-16.

[3] 文圣常.海浪理論與計(jì)算原理[M],北京:科學(xué)出版社,1984.

[4] 劉國(guó)棟.波浪浮標(biāo)數(shù)據(jù)處理方法研究[D].天津:天津大學(xué),2011.

[5] 徐海林.基于ARM-Linux的IIC串行通信[J].微處理器與可編程控制器,2013(20):85-86.

[6] 賈瑋.基于DSP的EMD算法實(shí)現(xiàn)[D].太原:中北大學(xué),2009.

[7] 張杰.基于MEMS陀螺儀和加速度計(jì)的動(dòng)態(tài)傾角傳感器[J].2012(9):141-142.

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