何成龙,迟书凯,宇文国朴,胡新遥,魏鹏飞,黎 明
(中国海洋大学 工程学院,山东 青岛,266500)
风是无人帆船移动海洋观测平台的唯一动力来源,在帆船航行过程中,根据真风风向划分出若干个航行区域,帆船需要通过真风风向和航向的关系来判断帆船目前所处区域,从而采取相应控制策略。如当真风风向和航向相反时,即帆船处于逆风区域,则帆船应采用Z 字抢风航行策略,避开该区域[1]。然而,真风在无人帆船等运动平台上无法直接测量,只能依靠航行风和相对风速度矢量计算来获取。航行风是帆船航行时所产生的风,其大小与帆船航速相等,方向与帆船航速相反(航速一般由全球定位系统(global positioning system,GPS)提供)。相对风是船载风传感器测量的风,目前海洋运动平台上风向风速测量采用的是机械式风速仪、超声波风速仪和红外线风速仪等[2]。然而,这些风速仪测量不仅受自身精度影响,还受各种海流、平台姿态以及安装位置的影响,特别是超声波风速仪对姿态的依赖性较高。帆船航行时的横滚和俯仰等运动、风传感器自身精度以及环境噪声等因素对相对风的准确测量会产生极大影响[3],因此,深入研究真风计算的方法和技术,进一步提高风帆控制系统的稳定性,对推动无人帆船技术的发展有重要意义。
目前,针对海洋运动平台上的真风测算和风向风速测量问题已有诸多研究成果。文献[4]基于相对风-船运动复合的测量方法,提出了船舶风向风速测量系统的总体测量方案,搭建的船舶真风风向风速测量系统适用于船舶风速风向的准确测量。文献[5]通过横向和纵向摇摆标定模块联动模拟船舶在风浪流扰动下的船体空间运动,形成了以摇摆角度和摇摆速度为变量的船舶真风风向风速标定数据库。文献[6]提出了基于多变量的非线性拟合补偿算法,实现船舶不同摇摆角度和摇摆速度下的风速风向高准确度动态测量。文献[7]提出一种基于空间模型的风速风向测量误差补偿算法,分析了传感器横滚和俯仰的角度变化对风向风速测量结果的影响,并通过实验验证了补偿算法的有效性。文献[8]设计了一种船舶风速风向动态测量及误差补偿的数字仿真系统,对船舶横滚、俯仰状态下的风速风向动态测量进行了误差补偿。仿真结果表明,所提方法能够消除运动姿态带来的风速风向测量影响。文献[9]提出了一种基于动态权值的数据融合算法,解决了船舶气象仪风传感器相对风融合计算的问题。文献[10]提出了基于改进卡尔曼滤波的空气温度数据融合算法,并通过仿真实验证明改进的算法在抗干扰和稳定性方面有良好的表现。
综上所述,目前针对船舶姿态变化引起真风测算存在误差的问题,现有的研究方法大多集中于研究船舶姿态和风向风速之间的关系,引入修正量或者利用拟合算法进行补偿,但是这些方法并未涉及利用姿态信息通过空间坐标旋转变换矫正提高风传感器相对风的测量精度。在真风计算时,也未涉及利用融合算法增加真风测算的准确性和可靠性。因此,文中提出一种基于数据融合的真风计算方法。首先,利用空间坐标旋转变换方法实现平台姿态对风向风速的矫正;其次,针对由于传感器精度以及安装位置影响等所产生的误差进行卡尔曼滤波;最后,利用相对风、航行风以及姿态等信息通过扩展卡尔曼滤波算法进行真风融合计算,实现满足无人帆船应用需求的真风风向风速测量。
无人帆船航行时需要根据真风数据进行风帆控制,以满足帆船的控制需求,但帆船在海上航行时无法通过传感器直接测得真风数据,需要根据帆船速度矢量三角形计算。帆船平稳航行时,船载风传感器在船上感知的风为相对风(也称表观风速),其风向记为WAWD,风速记为VAWS。自然界真正的风为真风,其方向记为WTWD,风速记为VTWS。由帆船航行所产生的风为航行风,其方向记为WSWD,与帆船航行方向相反,风速记为VSWS,与船速相等。图1 显示了航行风、相对风和真风三者的速度矢量三角形,在航行风和相对风已知的情况下,可通过速度矢量三角形计算出真风[11-12]。
图1 速度三角形Fig.1 Velocity triangle
建立大地平面直角坐标系,风向和航向均以大地正北为0°,以顺时针旋转角度增加到360°,如图1所示。在进行无人帆船风帆控制时,其控制器的输入为真风风向和风速,通过余弦定理可得
然而,帆船在海上航行时,船体由于风、浪、流等作用,姿态变化大,使得超声波风向风速仪所测相对风数据误差较大。因此,首先针对由于无人帆船姿态改变所引起的相对风风向风速测量产生的误差,采用基于空间旋转坐标系变换的方法进行风向风速矫正。同时针对传感器精度、安装位置等产生的误差利用卡尔曼滤波方法进行滤波,计算出真风风向,最后通过扩展卡尔曼滤波将相对风和航行风数据融合计算出真风。设计系统如图2 所示。
图2 设计系统整体框图Fig.2 Overall block diagram of the designed system
针对船载风传感器所测风速风向数据存在较大误差问题,进行真风风速融合计算之前,需要对该数据进行姿态矫正和滤波,为风速融合做好数据准备工作。
利用空间坐标旋转变换方法实现帆船姿态对风向风速的矫正。空间坐标旋转是指将一个坐标系通过坐标旋转矩阵转换到另一个坐标系下,实现坐标变换[13],如图3 所示,其中坐标系O-XYZ和O′-X′Y′Z′坐标系分别定义为帆船姿态发生变换前后所在的坐标系。在坐标系O-XYZ中,OX轴为船头方向,OY轴垂直于帆船左舷向外,O-XY平面位于海平面,OZ轴垂直于O-XY平面指向地心的相反方向。
图3 空间坐标旋转Fig.3 Space coordinate rotation
帆船姿态位置变化包括艏偏运动、横滚运动和俯仰运动等,其中绕OX轴旋转的运动为横滚运动,旋转角为横滚角,记为α;绕OY轴旋转的运动为俯仰运动,旋转角为俯仰角,记为β ;绕OZ轴旋转的运动为艏偏运动,旋转角为偏航角,记为γ。对于因帆船姿态位置发生变换而引起的测量误差,可利用旋转坐标转换思想把相对风数据矫正到帆船水平姿态时的状态。
对于在大地坐标系下的任意向量P=(x,y,z),可通过旋转矩阵R获得随船坐标系下的P′=(x′,y′,z′),即P=RP′,其中R为旋转正交矩阵,即RT=R-1。R的值可通过坐标轴下3 个旋转矩阵的叠加来获取,即
因此,当帆船姿态发生变化时,风传感器的空间位置发生变化,此时在随船坐标系下测得的风向量为P′,则可通过旋转矩阵求出大地坐标系下的P为
通过矫正后的向量P可以计算出风速V和风向θ分别为
帆船在航行时,风传感器所测风向风速波动复杂,在进行卡尔曼滤波时要判断风向和风速的变化原因。如果变化是由噪声引起的,则需要进行滤波抑制;如果是由风向风速本身的变化引起的,则需要进行跟随。文中选取2 种不同参数进行卡尔曼滤波。
卡尔曼滤波算法分为时间更新方程和状态更新方程[14]。
时间更新方程为
状态更新方程为
式中:N为观测噪声协方差矩阵,代表传感器的不准确性,与传感器的特性有关,一般为定值,文中取N=0.03;Q为测量噪声协方差矩阵,是由各种不确定的噪声引起的;K为卡尔曼增益。N和Q分别代表对预测值和测量值的置信度,通过影响K的值,进而影响预测值和测量值的权重。文中Q越大,表明对于预测值更信任,对风向风速的变化越敏感,反之则对观测值更信任,对噪声的反应越迟钝。文中分别采用Q1=0.000 1,N1=0.03,Q2=0.1,R2=0.03这2 组不同的参数进行卡尔曼滤波。对于不同的参数,在判断风向和风速本身发生变化时卡尔曼滤波能够很好地跟随,而对由帆船摇摆和测量噪声等产生的波动则会进行抑制。图4 和图5为以风向为例,选用不同参数的卡尔曼滤波效果,绿色线代表此时风向风速发生了突变。
图4 第1 组参数滤波效果Fig.4 Filter effect of group 1 parameters
图5 第2 组参数滤波效果Fig.5 Filter effect of group 1 parameters
由图可知,选用第1 组参数对噪声的抑制效果较好,对风向的跟随效果较差;选用第2 组参数对风向的跟随效果较好,对噪声的抑制效果较差。为同时保证噪声抑制效果和跟随效果,设计参数自适应卡尔曼滤波算法,参数选用判定如图6 所示,可实现不同情况下参数的自动切换。其原理是: 开始进行卡尔曼滤波时,保存风向数据的第1个值即 Temp=X(k),k=1,与下一时刻的风向数据作差取绝对值,即E=abs[Temp-X(k+1)],如果E>Th(Th为设定阈值,根据判定不同航行区域的死区时间来确定)则标志位 flag加1,否则卡尔曼滤波就采用第1 组参数,flag置 0;当flag=SetValue(S etValue根据风帆电机从执行命令到命令执行结束的时间(即1 个控制周期)来规定)时采用第2 组参数,同时更新 Temp=X(k),flag置 0,如果flag ≠SetValue则继续采用第1 组参数,如此往复直到程序运行结束。
图6 参数选用判定流程图Fig.6 Flow chart of parameter selection judgment
图7为使用上述算法的卡尔曼滤波结果图,可以从图中看出,滤波之后的风向数据不仅可以较好地抑制噪声,还能对风向发生变化时的数据进行快速跟随,效果良好。
图7 参数自适应卡尔曼滤波效果Fig.7 Effect of parameter adaptive Kalman filter
真风数据可通过相对风和航行风计算模型得到,针对相对风和航行风的测量存在较大误差的问题,文中利用扩展卡尔曼对相对风和航行风进行融合计算[15-16],从而得到满足风帆控制需求的真风风向和风速。
离散非线性系统的状态方程可描述为
式中:X(k)为状态向量;Z(k)为观测向量;f(·)和h(·)分 别为系统非线性状态函数和观测函数;W(k)和V(k)分别为过程噪声和观测噪声,假定两者都为均值为零的高斯白噪声且是相互独立的序列。
建立速度融合[17]数学模型,其系统状态方程为
将式中的X(k)取为x1=VSWS,x2=VAWS;状态转移方程Φ (k)取为
其系统观测方程为
将真风计算模型
作为系统观测方程,则有
由上述系统模型可以看出,系统状态方程是线性的,对 Φ(k)的求解不用进行线性化处理,但观测方程是非线性的,因此,对真风风速的计算是一个非线性估计问题,可采用扩展卡尔曼滤波器进行滤波估计。根据式(15)给出的线性化方法可将该非线性方程线性化,可以求出其雅克比矩阵为
为验证文中所提方法,搭建了帆船运动状态的风速风向测量模拟平台,如图8 所示。该平台包括转台、风扇、超声波风速风向传感器、姿态仪以及计算机等。其中: 转台为机械式三自由度转台,用于模拟帆船的横滚和俯仰状态;风扇用于产生固定风向和风速;风传感器共2 台,1 台用于固定测量风扇的风速风向以作为真风标准值,1 台搭载在转台上用于模拟帆船搭载传感器运动过程中的测量状态;姿态仪用于采集风传感器的横滚角和俯仰角;计算机用于处理采集数据。
图8 实验平台Fig.8 Experiment platform
实际航行过程中,航行风风向风速通过帆船搭载的GPS 提供,相对风数据则是由风传感器测量所得。实验中,将风扇产生的固定风向风速作为相对风数据,通过风传感器实时测量,分别给定航行风向为0°和45°,航行风速利用基准值加白噪声的方法模拟给出,分别为0、0.5、1 和2 m/s。利用转台模拟帆船的摇摆动作,并分别固定横滚角和俯仰角为-15°、-10°、-5°、5°、10°和15°。首先利用空间坐标旋转对风向和风速进行矫正,以验证风数据矫正方法的有效性;其次,利用卡尔曼算法进行滤波;最后将相对风和航行风通过扩展卡尔曼滤波进行融合计算,再与理论值计算进行比较,验证所提方法的有效性。实验框图如图9 所示。
图9 实验框图Fig.9 Experiment block diagram
4.2.1 风向风速矫正结果
当俯仰角为0°时,横滚角分别为-15°、-10°、-5°、15°、10°和5°时风向风速测量及矫正滤波结果如图10 所示,共有6 组图,每个横滚角下有2 组结果图,左图为姿态矫正之后的结果图,其中蓝色表示平稳状态下的标准值,绿色是风传感器测量值,红色是对测量值的矫正结果;右图为卡尔曼滤波之后的结果图,其中蓝色代表对测量值的矫正结果,红色代表滤波之后的结果,为了能够明显看出矫正前和矫正后的区别,对风传感器测量值也进行了滤波,图中用绿色表示。由图可知,风传感器在横滚角发生变化时其测量结果与基准值有明显误差,并且横滚角偏移越大风传感器测量数据的误差越大。经文中所提方法矫正滤波之后,其风向误差控制在±3°左右,风速误差小于0.1 m/s,效果良好。图11为横滚角为0°时,俯仰角分别为-15°、-10°、-5°、15°、10°和5°时测量及矫正滤波结果。
图11 横滚角0°时不同俯仰角风向风速矫正结果Fig.11 Correction results of wind direction and speed for different pitch angles with a roll angle of 0°
由图可知,俯仰角发生变化时也会出现俯仰角偏移越大风传感器测量数据误差越大的情况,通过矫正滤波后风向误差控制在±3°左右,风速误差小于0.1 m/s,效果良好,满足控制系统所要求的精度。
4.2.2 真风融合计算结果
设定相对风为恒定值,风速2.1 m/s,风向185°,设定航行风速分别为0、0.5、1 和2 m/s,风向分别为0°和45°,进行真风融合实验,得到结果如图12 所示。
图12 真风融合结果Fig.12 True wind fusion results
当相对风向为185°,相对风速为2.1 m/s,航行风向为0°,航行风速分别为0、0.5、1 和2 m/s 时,通过真风计算公式(无噪声干扰的理想情况下)可以算出其对应真风风向和风速分别为185°,2.1 m/s;186°,2.6 m/s;186.7°,3.1 m/s;187.5°,4.1 m/s。如图12 所示,其中图12 中每组图的上图为扩展卡尔曼滤波融合后的真风风速结果,下图为真风风向结果,可以看出结果跟理想情况下的结果非常接近。由图13(a)可知,真风风速收敛之后误差小于0.1 m/s,真风风向误差小于2°,融合效果良好。其他条件不变,当航行风向设为45°,理想情况下通过真风计算公式可以算出其对应真风风向和风速分别为185°,2.1 m/s;192.4°,2.5 m/s;198°,3.0 m/s;204.5°,3.9 m/s。通过图12(b)可以看出,融合结果跟理想情况下的理论结果非常接近,并由图13(b)可知,真风风速收敛之后误差小于0.1 m/s,真风风向计算误差收敛之后小于2°,融合效果良好。
图13 真风融合结果误差Fig.13 True wind fusion result error
针对真风获取困难的问题和无人帆船运动对风传感器所测相对风的影响,文中提出了一种基于数据融合的真风计算方法。该方法通过姿态仪获得的俯仰角和横滚角,利用空间坐标旋转变换方法对相对风进行矫正,并将航行风和矫正后的相对风进行卡尔曼滤波。矫正滤波之后的风向和标准风向误差控制在±3°,风速误差绝对值小于0.1 m/s。最后通过扩展卡尔曼滤波进行真风融合计算。结果表明,通过扩展卡尔曼滤波真风融合计算所得的真风风向误差在±2°,风速误差绝对值小于0.1 m/s,满足无人帆船风帆控制系统的要求。文中方法已通过实验验证了其有效性,但还未进行海上实航试验,后续将利用帆船海上试验进行进一步验证。