杨 震,王 岩,原 新
(1.哈尔滨工程大学 自动化学院,哈尔滨 150001;2.中国船舶重工第703研究所,哈尔滨 150078)
由于受到随机的、方向紊乱的海浪力和其他干扰力的作用,船舶横摇运动表现出较强的非线性、非平稳性。对横摇运动随时间变化规律的预报研究具有重要的意义,不仅可为大风浪下舰船航行、舰载机安全起降等提供安全保障,也有利于提升舰载武器、装备的使用效能。因此,这项研究一直以来得到了世界各国的重视,预报精度也在不断提高[1-4]。近年来,随着支持向量机(support vector machines,SVM)算法的快速发展,为船舶运动预报领域注入了新的活力[5-6],然而目前基于支持向量机的预报方法大都采用离线训练方式,没有考虑样本动态特性导致长时间预报精度下降过快的问题,而且其学习速度缓慢,对船舶横摇运动姿态预报这样实时性要求高的问题不具有适用性。因此,研究支持向量机的在线式预报,成为一种船舶运动预报的新思路[7-8]。另外,现有的预报方法采用单一的预报模型进行时间序列建模,但对于变化异常复杂、表现出多变量动态演化行为的非线性时间序列,单一的预报模型很难直接表示其非线性,难以取得更好的预报效果[9-11]。因此,针对具有很强随机性及包含丰富特征信息的时间序列,从分而治之的思想出发,研究一种基于经验模式分解的预报技术,将复杂的横摇运动姿态时间序列预报问题转换为若干个规律性较强的分量预报问题,通过合并预报结果来得到精确的预报值,从而降低建模难度,提高预报精度。基于以上思想,本文提出一种采用EMD和在线最小二乘支持向量机(online least squares support vector machine,OLSSVM)的船舶横摇运动姿态混合智能预报方法。该方法包括时序的经验模式分解、分量重构、基于OLSSVM的分量预报和结果叠加四个部分。将船舶横摇运动姿态的分解域智能预报结果和离线SVM预报结果进行了比较分析,结果表明该方法具有较明显的优势,不仅降低了建模预报的难度,同时也提高了预报精度和效率。
EMD是近年来出现的一种处理非线性非平稳时间序列的新目标数据分析方法,它依据信号本身的局部特征信息进行自适应分解,不需要预先设定参数,因此克服了依赖预报人员主观经验的问题。通过EMD分解,可得到有限个独立的、近乎周期的本征模式分量(Intrinsic Mode Function,IMF),这些IMF能够突出原始数据的不同局部特征信息,有利于发掘数据内部蕴含的变化规律。虽然有些IMF仍然保持着不同程度的非平稳性,但是在它们之间的相互影响却被隔离开来,利用这种隔离可以尽可能地减小非平稳行为对预报的影响。
采用EMD对信号进行分解的步骤如下:
(1)取信号局部最大值点和局部最小值点。
(2)利用3次样条线分别把局部极大值点和局部极小值点连接起来形成上包络线emax1(t)和下包络线emin1(t)。由极大值包络线与极小值包络线取平均得到均值包络线m1(t),
(3) 计算 X(t)与m1(t)之差,记为h1(t)。
判断 h1(t)是否满足IMF的条件,如不满足,则重复循环k次,直到得到第一个IMF,记为c1(t)。
(4) 从原始信号X(t)中分离出分量IMF1,得到余项R1(t):
当余项R(t)变成常量或单调函数,不能再从中提取满足IMF的分量,分解过程结束。原始信号X(t)被分解为n个基本模式分量IMF1…IMFn和一个残余分量r(t)的和:
考虑到预报算法训练样本的需求,对数据进行EMD处理往往会得到十几个或二十几个相对平稳的分量,然而随着数据的变化,自适应分解得到的分量个数不一定相同,且每个分量的平稳程度有着很大的差异。若对各分量直接逐个进行建模与预报,其建模难度将相当大。由于某些分量呈现出相近的变化规律,如果能根据这些规律对所有分量进行分类重构,从而得到固定数目的分量,然后针对性地建立多步预报模型,将会大大提高计算效率。因此为使分量所包含的特征信息集中并且预报对象的数目固定,选择游程判别法对分解所得的IMF和残余分量r(t)进行波动程度的检验[12]。
设某分量IMF或r(t)所对应的时间序列为 {k (t)},t=1,2,…n,均值为在 k(t )中比小的观察值记为“-”,比大的观察值记为“+”,这样可以把 k(t)转化为一个只有“+”和“-”的符号序列。 之后,将每段连续相同的符号序列称为一个游程,则一个符号序列就具有若干个游程。可见,游程总数的大小反映了该IMF或r(t)的波动程度。因此根据游程数阈值对分解所得到的IMF和r(t)进行分类,并将这些IMF和r(t)重构为高频、中频和低频三个分量。对于重构后的各分量,可根据其各自特征采用不同的预报方法,再将预报的结果重组,也可以采用某一种预报方法,对不同的分量只需对预报模型作相应的参数调整,即可有效降低预报成本。
由于船舶运动是一个随时间不断变化的动态过程,在预报过程中不断有新的数据产生,较旧的样本与当前及未来的运动特征相关性较小,较新的样本相关性较大。为使预报模型能准确快速地反映系统当前及未来的特征,研究基于支持向量机的在线式预报算法,实现在线学习预报,成为一种船舶运动预报的新思路。
根据结构风险最小化原则,并使样本拟合误差最小化,回归问题变为约束优化问题:
C为惩罚因子。为求解上述优化问题,建立Lagrange函数:
根据 Karush-Kuhn-Tuncker(KKT)条件,有
消去方程(9)中的ei,w后的线性方程组为:
最小二乘支持向量机的训练问题归结为一个线性方程组的求解问题,比需要求解一个二次规划问题的标准支持向量机要简单快速得多,而且能够扩展为自回归的形式来处理动态问题。
本文采用基于分块矩阵求逆公式的递推算法进行增加样本和删除样本的处理[13],即在每次训练过程中增加新样本的同时,剔除时间窗口中最老的样本,窗口中参与训练的样本个数保持不变。这样做是为了及时学习系统的新特性,并且降低关联性较弱的老样本对学习精度的影响,减小计算复杂性,提高学习速度,进而保证预报实时性。
对于在线学习,样本随着时间窗式移动,样本个数保持不变。用t时刻的l个学习样本构造方程(10)后,记,则方程(10)可表示成
可求得上述方程的解为
利用分块矩阵求逆公式[10]计算Ut,则
在t+1时刻,新样本 (xt+l,yt+l)加进来,旧样本 (xt, yt)被抛弃掉,则Ht+1也是一个l×l的方阵:
同样利用分块矩阵求逆公式计算Ut+1,则
(1)设定核函数及有关参数、时间窗口长度l的值。
(2) 运用增量式算法在线学习初始的l个样本求出Ut和,用(13),(14)式解出 at,bt,代入(11)式得出回归函数。
(3)增加一个新样本,并剔除一个旧样本,用(18)式计算Ut+1,并计算at+1和bt+1,进而解出回归函数。
(4)重复(3),进行下一时刻的学习,完成固定窗口在线学习。
考虑数据间的时序相关性,样本数据的好坏直接影响到预报精度,距离越近的点,所具特性越接近。 设预报时序为,取相关维数为m,将时间序列转换为m维的新数据空间为:
则有:X2=F ( X1),X3=F ( X2)…,XM=F( XM-1),即:
由于Xt+1中前m-1维是已知的历史数据,则可化为单输出得:
这里f(x)是一个从Rm到R的映射,预报问题的实质就是如何获得关于f(x)的一个最佳近似。由于 f(x)一般具有较强的非线性,所以宜采用非线性函数拟合这种映射。结合OLSSVM算法,得到用于训练的样本为
本文采用接力式的在线实时预报方式。设当前训练样本如(22)式所示,时间窗口长度为M,当第一个新样本进入窗口时,剔除窗口中最老的样本X1,又得到如(22)式所示的训练样本集,并运用OLSSVM算法进行在线训练,得到当前回归函数
进而获得第一步的预报为
其中:XM+1=[xM+1,xM+2,xM+3,…,xM+m]。
第二步的预报为
其中:XM+2=[xM+2,xM+3,xM+4,…,xM+m+1]。
以此类推,第p步的预报模型为
其中:XM+p=[xM+p,xM+p+1,xM+p+2,…,xM+p+m-1]。
当第二个样本进入到时间窗口中时,同样剔除此时训练集中最老的样本X1,经过OLSSVM算法在线训练、实时预报模型p步预报,完成接力式在线实时预报。可见,带有遗忘机制的在线训练只需保存固定长度的M个样本,克服了随时间推移样本累积导致计算复杂性增加以及旧样本过多影响预报精度的问题,实现了预报模型更新,提高了建模速度;p步预报能保证较高的预报精度,避免了因一次连续预报时间过长导致的精度下降,接力式的方式可完成长时间的实时在线预报。本文采用上述在线最小二乘支持向量机实时预报模型作为各IMF分量统一的预报模型,这样针对各分量只需作输入参数调整即可,避免了采用不同预报方法带来的参数计算繁琐的弊端。
综上所述,本文提出的分解域混合智能预报模型主要包括EMD分解、IMF重构、OLSSVM分量预报和结果叠加三个模块,其结构如图1。具体步骤如下:
(1) 采用EMD算法将时间序列x(t),t=1,2,…,n进行分解,得到若干个具有不同振幅和频率且相互独立的IMF及余项x(t),它们按从高频到低频的顺序排列。
(2)选择游程判别法对分解所得的IMF和余项 r(t)进行波动程度检验,进而将其分类,重构为高频、中频和低频三个分量。
(3)针对具有不同变化规律的高频、中频和低频这三个分量,分别建立不同结构的在线最小二乘支持向量机预报模型。
图1 EMD-Elman船舶运动多步预报结构图Fig.1 Multi-step forecast diagram of ship motion based on EMD-Elman
(4)将高频、中频和低频这三个分量的预报值进行叠加,得到原序列x(t)的预报值
以某大型船舶在海浪有义波高 4 m,遭遇浪向角分别为 60°(斜浪)、90°(横浪)、和 180°(顶浪)时的横摇角时序为例,对本文提出的预报方法进行测试。每组数据的采样时间为0.5 s,仿真时间为1 000 s,共2 000个数据。首先对横摇时序训练样本进行EMD分解,得到各基本模式分量。以海浪有义波高4 m,浪向角为60°时的横摇角时间序列为例,图2是其500 s的横摇时序曲线及进行分解后的各模式分量。可见,经EMD处理后共产生5个基本模式分量IMF1~IMF5和1个剩余分量RES.。其中IMFl的频率较高,代表摇荡信号中的高频成分,而RES.是低频成分,代表信号中含有的非线性趋势项。
图2 EMD分解结果Fig.2 Decomposition results of EMD
其次,由于时长分别为1 000 s的每个横摇时间序列经过分解后所得到的模式分量个数不确定也不相同,为使单预报模型的个数固定且预报分量的特征信息集中,采用游程判别法分别计算每个横摇时间序列经EMD分解后所得到的各分量的游程个数,结果如表1所示。
表1 各分量的游程数Tab.1 The run-lengths of components
之后,设定高频分量的阈值n1=50,即大于n1的为高频分量,低频分量的阈值n2=10,即小于n2的为低频分量,其余在区间10≤n1≤50中的为中频分量。因此,对于斜顺浪情况,将IMF1作为高频分量,IMF2~IMF3叠加作为中频分量,IMF4~IMF5和RES.作为低频分量;对于横浪情况,将IMF1作为高频分量,IMF2~IMF3叠加作为中频分量,IMF4~IMF7和RES.作为低频分量;对于斜顶浪情况,将IMF1作为高频分量,IMF2~IMF4作为中频分量,IMF5~IMF6和RES.作为低频分量;对于顶浪情况,将IMF1~IMF2叠加作为高频分量,IMF3~IMF4作为中频分量,IMF5~IMF6和RES.作为低频分量。四种海情下的横摇角时间序列重构后的结果如图3所示。可见,经重构后原始横摇角时间序列都变成了频率从高到低排列且特征信息集中的三个分量,由此便可针对不同的分量设计不同结构的OLSSVM预报模型。
图3 重构结果Fig.3 The reconstruction components of time series
图4 各分量的预报值与实际值Fig.4 Forecast and real value of each component
针对每个横摇角时间序列的高频、中频和低频分量,应用OLSSVM预报方法分别建模预报,之后把各个频率的预报结果自适应累加起来作为最终的预报结果。图4给出了各船舶横摇角时间序列的高频、中频、低频分量的300~330 s预报值与实际值的对比结果,图5给出了各频率分量自适应叠加后的预报值与实际值对比结果。表2给出了各时序300~330 s的预报误差统计结果。
表2 EMD分解域船舶运动混合智能预报误差统计结果Tab.2 Error statistics of hybrid intelligent forecast result for ship motion based on EMD
为了更好地说明分解域智能预报模型在船舶横摇时间序列预报中的优越性,同时也给出了基于支持向量机的预报模型对上述横摇角时序的预报结果,如图6所示。利用性能指标对预报结果进行统计分析,如表3所示。
图5 分解域混合智能预报值与实际值Fig.5 The forecast and real value of hybrid intelligent forecast model based on EMD
图6 基于支持向量机的横摇时序预报结果Fig.6 Forecast result of the rolling time series based on online support vector machines
表3 基于支持向量机的预报误差统计结果Tab.3 Error statistic result of forecast based on online support vector machines
分析图5和6,并对比误差统计表2和3,可得到如下规律:
(1)在基于支持向量机预报模型和分解域智能预报模型中,各时序提前10 s的横摇角预报值与实际值吻合均较好,说明所建立的两种多步预报模型均符合横摇角的变化规律。
(2)从各横摇时序的预报统计误差来看(表2和表3),随着预报时间的增加,均方根误差和相对均方根误差总体上都是增加的趋势,预报精度均呈下降趋势。
(3)具体到两种预报方法的比较。从图5和图6来看,分解域混合智能预报模型的横摇角预报值在绝大多数预报点较基于支持向量机预报方法的预报值更接近实际值。从表2和表3可以看出,基于分解域预报方法的统计误差值基本上都比相应的基于支持向量机预报方法的小,说明前者的预报精度总体上要比后者高。这表明分解域智能预报模型不仅提高了预报的整体精度,而且保证了大多数预报点与实际横摇角的偏离程度较小,能够在一定程度上提高横摇角预报的准确性;另外,采用在线训练预报的模式更加确切地解释了存在于样本中的可变性,提高了在信息贫乏和不确定条件下的预报效率。
本文提出了一种分解域船舶横摇运动姿态混合智能预报方法。该方法基于经验模式分解算法和分量重构策略降低了预报模型对复杂非线性时间序列精确建模的难度,同时采用带有遗忘机制的在线最小二乘支持向量机对样本集进行学习,具有在线更新样本集、在线学习预报的特点。从实例仿真可以看出,此方法预报结果的均方根误差和相对均方根误差均小于基于支持向量机的预报模型,且预报精度不会随时间下降过快,说明分解域船舶横摇运动姿态在线预报模型具有良好的性能,同时还可以将其应用于其它领域的预报中。