随着全球经济的飞速发展,对能源的需求逐日增加,以往以煤、石油等非再生的古老能源已经不能满足现在社会对能源的需求。我国有着广阔的海岸线,对海浪能的开发利用成为目前开发新能源的重要方式。
在众多海浪发电装置设备中均存在着对海浪能量的转换效率低下的问题。针对效率转换问题,蔡元奇教授提出了利用实时调节海浪发电装置中摆子的固有自振频率与海浪频率相同的方法,进而与海浪产生谐振,从而减少了发电装置的能量损耗,提高转换效率[1-2]。因此,需要实时掌握海浪的频率参数,要保证得到的海浪频率的准确可靠。
本文设计了多功能海浪识别仪,以Cortex-A8作为主处理器,基于Linux操作系统,有很强的可移植性与扩展性。通过加速度传感器采集浮标的加速度,对此信号采取EMD处理,并对分解之后的IMF进行阈值筛选,获得有效分量,然后对该分量进行希尔伯特黄变换,从而准确计算出海浪的实时频率[3]。通过陀螺仪、电子罗盘、GPS可以精确定位波浪识别仪的准确方位以及姿态。通信网络采用GPRS网络,实时将采集到的数据传输到岸边监控中心。
1 系统总体结构及功能
海浪数据采集传输系统主要由数据采集、数据传输及数据处理三部分[4]组成,系统框图如图1所示。数据采集部分由加速度传感器、陀螺仪、电子罗盘及GPS组成,主要作用是采集浮体的线加速度、角加速度、方位角以及GPS坐标。数据传输部分由GSM/GPRS收发模块组成,能够通过网络使手机短信实时接收现场数据。数据处理部分由S5PV210处理器完成数据筛选、算法及处理。
2 系统硬件设计
2.1 S5PV210处理器
S5PV210是三星公司推出的高性能应用处理器,采用了Cortex-A8内核,运行主频可达1 GHz,可搭载Linux系统,带有2路SPI、4路I2C与4路UART接口。
2.2 加速度传感器
选用基于VTI的3D-MEMS电容传感技术的高性能低功耗的SCA3060三轴加速度传感器,±2 g的测量量程、精度可达1 mg,完全满足设备测量环境的客观要求。将采集到的三个轴方向上的加速度数据通过SPI总线传输给处理器。电路图如图2所示。
2.3 陀螺仪模块
选用L3GD20三轴陀螺仪芯片。它提供了较宽的测量量程,用户有足够的选择空间。为了满足测量所需,同时保证测量精度,该系统中选用±500°/s量程,测量精度可达±0.015°/s。该芯片采用I2C总线方式与处理器进行数据传输。
2.4 GPS模块
采用Gstar GS-87模块,它是一个高效能、低功耗的智能型卫星接收模块。其工作电压为3.3 V,定位精度可达10 m以内,通过串口与处理器进行通讯,通过GPRS网络将所需数据传回监控中心。
2.5 GSM/GPRS模块
选用中兴的MF210模块,本设计中利用SIM卡通过联通网络进行实时数据传输,外围电路图如图3所示。
2.6 电子罗盘
选用SCH9005集成电路模块,该芯片集成了高精度气压传感器和高精度磁传感器,且具有温度测量、气压测量、指南针方位测量功能。气压测量分辨率为±1 hPa,测量范围是300 hPa~1 000 hPa,罗盘精度为±2°,分辨率为1°,以地磁的正北角为0°,模块采用I2C接口将数据传送给处理器。
3 系统软件设计
3.1 数据采集部分
Linux操作系统中,上层用户空间通过调用内核空间的系统接口函数来完成对底层硬件的操作。因而要完成芯片的功能,首先需要编写底层的驱动程序,其次是上层的应用程序。本设计中所选芯片运用到了I2C、SPI、UART 3种通信协议方式。虽然Linux系统内核一般自带有3种总线的驱动程序,但是其总线子系统框架复杂,不易移植,且编写应用程序时不方便,因而考虑重新编写基于对GPIO端口操作的字符设备驱动来完成对传感芯片的数据操作[5]。
S5PV210芯片带有3路I2C、两路SPI接口和4路UART接口。电子罗盘和陀螺仪选用I2C方式通信,在I2C字符驱动程序中,直接通过地址映射对寄存器进行操作,配置寄存器I2CCON、I2CSTAT,设置其工作方式为主机模式,使能I2C中断,设定其工作频率为400 kHz。
GPS和GPRS的串口传输选用“dev/ttyS0”和“dev/ttyS1”,在上层用户空间中直接编写应用程序,设置串口波特率为9 600 bit/s,8 bit数据传输,无奇偶校验位。程序读取GPS返回的GPRMC(推荐定位信息),该信息包含了UTC时间,定位状态,经纬度,地面速率以及航向角。
3.2 数据传输部分
系统采用GPRS网络传输方式实现现场和岸边通信。
对于GPRS网络传输时,处理器将经过处理后得到的海浪频率、仪器的倾斜角、GPS地理方位等数据发送给GPRS网络,GPRS网络提供通信链路,将这些信息发送给固定IP地址,在监控中心的上位机程序需要进行socket网络编程,通过静态IP地址看到数据。
在ARM发送端,Linux系统启动之后,首先要对串口进行初始化,配置串口参数,其次,对GSM模块设置AT指令,主要用到的指令有AT+CGDCONT=1,“IP”,“CMNET”接入网络;AT+TCPSERV设置上位机IP地址,AT+TCPPORT配置上位机监听端口设置。然后,通过AT+CONNETCIONSTART请求建立网络连接,再通过AT+OTCP登陆网络,数据传输时,将数据打包封装直接发送到GPRS网络,流程如图4所示。
3.3 数据处理
3.3.1 海浪频率的提取
以所测得的三轴加速度为数据分析对象推算出海浪频率,由于海浪波形具有随机性,混乱性,而且在测量加速度信号时,采集系统的测量误差、外界环境的干扰或其他因素的影响,使得测量到的加速度信号包含大量的噪声。这些噪声理论上可以使用傅里叶变换和小波变换进行分析处理,可是在实测数据中,发现所测信号为非平稳非线性信号,而傅里叶变化并只能处理平稳信号,虽然小波变换在理论上能够处理非平稳非线性信号,但是在实际实践过程中,发现处理效果并不理想,所以引入了希尔伯特黄变换算法。
该算法可以简单的表示为两个步骤,首先需对原始信号进行EMD分解。EMD分解主要目的是将原始信号分解为多个IMF分量。IMF具有以下两个特点:其极点数个数和零点数个数最多相差一个;其极大值点确定的包络线与极小值点确定的包络线的和必须为零。
(1)将信号x(t)的极大值与极小值形成的包络线取平均得到均值曲线l(t),之后用原始信号x(t)减去均值曲线l(t)得到l1(t),判断l1(t)是否满足IMF分量的两个条件,若满足则得到第一个IMF,若不满足,则将l1(t)视为新的原始信号继续重复以上步骤。最后得到n个IMF与一个残余分量r。
在n个IMF中,为了获取原始信号中的主要成分信号分量,将分量信号与原始信号的相关系数设为筛选参考量,当相关系数大于0.7时,可确定该IMF为原始信号主要成分,筛选阈值设为0.7。
(2)进行Hilbert变换。对于信号x(t),Hilbert变换定义为:
对每一个IMF进行Hilbert变换,从而得到了信号的瞬时频率。借助Hilbert变换,可得到x(t)的解析信号:
3.3.2 浮体倾角的提取
L3GD20陀螺仪可以测得三个方向上的角加速度,对各方向上的角加速度积分即可得到该方向上的倾角度数。由于陀螺仪在输出时,会存在数据漂移,如果直接对数据积分会造成偏移误差越来越大,最后导致数据无法使用。因此,用卡尔曼滤波对数据进行处理[7],卡尔曼滤波实质上是依据实测数据对随机量进行最小二乘估计,可以对物体的实时运行状态进行估计和预测。
3.4 软件整体流程
海洋波浪作为观测对象,其频率很低不会超过5 Hz,根据采样定理,将三轴加速度传感器的采样频率设定为10 Hz。采样点数为2 048,采样时间为3.5 min。将陀螺仪采样频率设为20 Hz。软件整体流程如图5所示。
4 实验条件及结果
为了较为准确地测试系统采集数据的稳定性及准确性,将测试地点选为湖水面积为33 km2的东湖内,湖面的波浪相比于海浪,没有海风的作用、气压变化、地形因素等客观条件影响,其波浪形成条件虽然不如海浪严苛和复杂,且波浪振幅和频率均比海浪小。但是,两者之间具有波浪的共性,均是由风产生的水面波动,均可视作由无限多个振幅不同、频率不同、方向不同、相位杂乱的波组成,因此可以作为测试场地达到我们测量波浪频率的目的。
试验现场平均波高为3~5 cm,频率为1 Hz左右,但是由于试验期间受到冲锋舟的影响,致使波高有时达到10 cm左右,频率降低到0.5 Hz左右。
利用MATLAB对采集到的角度与线加速度进行分析,其角度曲线图如6所示,经过卡尔曼滤波之后的角加速度进行积分,不会再产生多大的漂移与误差,效果良好,其波形近似正弦曲线,间接反映出良好的波浪震荡特性。角度的大小可近似反应波浪振幅的强度,当角度震荡越大,波浪振幅强度越强。
由希尔伯特算法计算得到的频率数据如表1所示,算法处理时间约为10 s,能够很迅速地处理数据,分析得出波浪频率,保证实时性。计算所得频率与实际频率相符,经多次验证,该算法能够很好地从非平稳非线性的随机信号中,获取信号主要成分,能够保证数据输出的可靠性。
本文借助ARM及Linux开发平台完成了对波浪频率、温度及气压的测量,实现了浮标的姿态及定位,通过GPRS网络实时地将数据反馈到监控中心,达到了远程海浪数据监测的目的。
该设计具有良好的实时性、可靠性及准确性。其创新点在于将希尔伯特算法运用于加速度信号的分析当中,并且通过希尔伯特变换计算出了波浪的瞬时频率,同时以Linux系统为平台,具有很强的扩展性,方便波浪浮标采集系统的二次开发。
参考文献
[1] 蔡元奇.共振波力发电装置:中国,CN201110233308.7[P].2011-08-16.
[2] 蔡元奇.共振波力发电装置:中国,CN201120295878.4[P].2011-08-16.
[3] 文圣常.海浪理论与计算原理[M],北京:科学出版社,1984.
[4] 刘国栋.波浪浮标数据处理方法研究[D].天津:天津大学,2011.
[5] 徐海林.基于ARM-Linux的IIC串行通信[J].微处理器与可编程控制器,2013(20):85-86.
[6] 贾玮.基于DSP的EMD算法实现[D].太原:中北大学,2009.
[7] 张杰.基于MEMS陀螺仪和加速度计的动态倾角传感器[J].2012(9):141-142.