您好, 访客   登录/注册

基于PCA和SAPSO的船舶风压差神经网络预测模型

来源:用户上传      作者:

  摘要:为提高船舶风压差的预测精度,使船舶能够更快稳定在计划航线上以保障航行安全,提出一种基于主成分分析(principal component analysis, PCA)法和自适应粒子群优化(self-adaptive particle swarm optimization, SAPSO)算法的船舶风压差神经网络预测模型。该方法采用PCA法对航行数据进行预处理,然后将数据输入由SAPSO算法优化的BP神经网络中,改变以往通过复杂的数学建模计算风压差的方法,提高预测的时效性和准确性。利用实船数据对模型进行船舶风压差的实时预测仿真,结果验证了该预测模型具有较高的可靠性。
  关键词: 船舶;风压差预测;主成分分析(PCA);自适应;粒子群优化
  中图分类号: U675.79    文献标志码: A
  Neural network prediction model of ship leeway angle
  based on PCA and SAPSO
  QIN Ke, BU Renxiang, LI Tieshan, LIU Yong, ZHENG Liming
  (Navigation College, Dalian Maritime University, Dalian 116026, Liaoning, China)
  Abstract: In order to improve the prediction accuracy of ship leeway angle so that the ship can be stabilized on the planned route more quickly to ensure navigation safety, a neural network prediction model of ship leeway angle is proposed based on the principal component analysis (PCA) method and the self-adaptive particle swarm optimization (SAPSO) algorithm. In the method, the navigation data are preprocessed by the PCA method, and the processed data are input into the BP neural network optimized by the SAPSO algorithm. It changes the previous method of calculating the leeway angle through complex mathematical modeling, and improves the timeliness and accuracy of prediction. The real-time prediction simulation of ship leeway angle by the model is carried out with the real ship data, and the results show that the prediction model has high reliability.
  Key words: ship; leeway angle prediction; principal component analysis (PCA); self-adaption; particle swarm optimization
  0 引 言
   随着航运业的快速发展,船舶的航行安全和效率问题日益得到重视。船舶风压差预测可以使船舶快速稳定在计划航线上,减小航迹带宽度,对于船舶航行安全和效率都有重要的理论与现实意义。然而,船舶在海上的运动不但具有非线性、时滞性,而且受风、浪、流等因素影响较大,这些都增加了船舶风压差预测的难度[1]。
  在利用船舶运动模型预测风压差的方法中,由于船舶装载量、航速和外界环境等的变化对船舶风压差的影响很大,难以建立船舶实时运动数学模型,且这种方法对数据源的要求较高,所以研究的船舶大多处于理想状态[2]。张润涛[3]通过建立风、流干扰下的船舶运动数学模型对船舶的风流压差进行了研究,但运算过程复杂且受多种不确定干扰因素影响;余力等[4]提出运用风流压差表,通过别尔舍茨方法求取船舶风压差系数;SUN等[5]基于经验公式,利用转向前后风舷角的变化预测转向后的风流压差。以上方法都需要建立数学模型。20世纪80年代以来,随着人工智能技术的快速发展,船舶风压差预测的研究有了新方向。神经网络因其具有较强的非线性映射能力,在船海工程以及其他工程领域得到了广泛的应用[6-8]。然而,传统的BP神经网络本身存在一些缺陷:网络的训练参数的选择具有随机性;预测模型容易陷入局部最小值;模型的收敛速度变化不定。[9-10]专家学者[11-12]在传统BP神经网络模型的基础上引入各种人工智能优化算法以克服其缺点,进而改善传统BP模型的非线性映射能力,但这些优化模型仍容易出现早熟所导致的过早收敛现象,搜索效率难以大幅度提高,影响了其在实际工程中的应用。主成分分析(principal component analysis,PCA)法是多元统计方法中的一种研究多变量间相关性的方法[13],通过线性变换去除多个相关变量的冗余信息,保留方差大的项,通过选取特征值大于1或贡献率大的主分量作为输入变量减少神经网络的输入变量维数[14]。
  为能够实时预测船舶風压差、提高预测精度,本文提出一种基于PCA法和自适应粒子群优化(self-adaptive particle swarm optimization,SAPSO)算法的BP神经网络模型(PCA-SAPSO-BP神经网络模型)。使用PCA法对数据特征进行提取,保留主要特征并剔除冗余信息,然后将数据导入建立的预测模型中,根据训练集得出的映射规则输出相应的结果。采用PCA-SAPSO-BP神经网络模型对实船的风压差进行预测仿真,验证了该模型预测船舶风压差的有效性,提高了准确性和实时性。   1 船舶风压差
  船舶在风的影响下航行时会向下风方向漂移,风中航迹线与船首线的夹角称为风压差角[15]。风压差角用α表示,当船舶左舷受风时α为正值,当船舶右舷受风时α为负值。
  运用统计学求取风压差角的经验公式[15]为α=K(vw/vs)1.4(sin Qw+0.15sin(2Qw))
  (1)式中:K为风压差系数,(°);vw和vs分别为风速和船速,m/s;Qw为风舷角。
   由式(1)可以看出,想要得出风压差系数,需要改变风速、船速、航向。船舶风压差系数的获取需要应用大量的实验数据回归得到,对数据有很高的要求且需要反复验证。由风压差系数引起的误差为系统误差,其大小为±(0.5°~1.0°)。
   在实际的航海过程中,船舶风压差需要驾驶人员根据公式不断计算获得,过程复杂且烦琐,而且装载量的变化也会大大增加风压差的计算误差,通常误差绝对值大于3.0°。
  2 算法的实现
  2.1 PCA法
  通过PCA法剔除冗余信息,减少神经网络的输入变量维数[13]。对于数据中存在的大量重复信息,使用相似函数进行剔除。计算相邻两组数据的相似度,其函数为Rij=exp-1δxi-xj2
  (2)
  δ=ni=1(max xi-min xj)
  (3)式中:xi和xj为相邻的两组数据;Rij为相邻两组数据的相似度;δ为归一化参数。如果Rij<λ(λ<1),则保留两组数据,否则删除一组数据,以此减少神经网络的数据输入量,避免数据灾难[13]。
  2.2 PSO-BP算法
  BP网络是多层前馈神经网络,其训练过程分为输入信息的正向传播和输出误差的反向传播两部分[16]。预测模型采用梯度下降法调节权值和阈值,使得误差函数值最小。为防止模型在学习过程中出现过拟合现象导致的数值振荡,加入动量项。同时为解决BP神经网络模型因网络参数选择不当而陷入局部最小值问题,提高收敛速度,专家学者引入了粒子群优化(particle swarm optimization,PSO)算法。在粒子寻优过程中首先对每个微粒子按照对应的法则进行速度和位置的初始化,在循环求解时每个微粒子通过一定的速度对个体极值和群体极值进行寻优跟踪,并更新自身的位置。微粒子获得的最优值表示个体极值,群体极值则为全部微粒子得到的最优值。
  设整个搜寻范围内有N个微粒子,微粒子为一个d维向量,其第i个微粒子的位置为Xi=(Xi1,Xi2,…,Xid),速度为vi=(vi1,vi2,…,vid)。第i个微粒子寻找到的最优位置为Pi=(Pi1,Pi2,…,Pid),整个粒子群搜索到的最优位置为Pg=(Pg1,Pg2,…,Pgd)。微粒子状态更新如下:
   vid=wvid+c1r1(Pid-Xid)+c2r2(Pid-Xid)
  (4)Xid=Xid+vid
  (5)式中:i=1,2,…,N;c1和c2为非负加速度常数,本文c1=c2=2;w为惯性因子;r1和r2是在[0,1]上的随机数。为改善微粒子的优化效率,算法将每个微粒子的位置和速度进行适当限制:Xid∈(-Xmax,Xmax),vid∈(-vmax,vmax),其中Xmax和vmax均为常数。
  2.3 SAPSO算法
  PSO算法虽然能较快地提高模型的收敛速度,但同时也存在搜索精度低、迭代效率在末期逐渐下降等缺点。引入一种变异算子来改善PSO算法。该算子将一部分随机变量再次随机初始化,更新神经网络的权值和阈值,使得最优微粒子得以跳出之前求解得出的最优位置,算法的搜索范围扩大。该算子增加了寻找到更优解的概率,其实质为在每次微粒子迭代更新后,将其再以一定的概率初始化。自适应变异算子程序如下:
   if rand>c
  pop(j,pos)=λ*rands(1,1)
  其中:j为微粒子群规模数量;λ为微粒子群位置最大值;pos为离散的均匀随机正整数;c为正的常数,通常小于1。
  模型适应度函数曲线比较  图1为SAPSO-BP模型和PSO-BP模型适应度函数曲线比较。基于MATLAB仿真环境,选取120组数据对传统PSO-BP和SAPSO-BP模型进行训练。模型初始参数设置为c1=c2=1.6,微粒子群规模为20,迭代训练学习步数为100,微粒子的初始速度在[-2,2]范围内,初始位置在[-3,3]范围内。对传统PSO-BP和SAPSO-BP模型进行训练。图1中:传统PSO-BP模型迭代至约35次时,其适应度值基本稳定在1.0左右,也就是近似陷入了局部最优;SAPSO-BP模型的适应度值则持续减小,最终达到0.6。可以得出结论:PSO-BP模型的适应度值明显比SAPSO-BP模型的大,表明了SAPSO-BP模型相对于PSO-BP模型可以更快地跳出局部最优,进而寻找到最优解。适应度函数表达式如下:E=Yk-Ok
  (6)式中:Ok为实际输出值;Yk为预测输出值。
  2.4 SAPSO算法训练BP神经网络
   本文仿真实验的数据为船舶的真实数据,选取一段时间内经PCA法筛选出的船舶航向稳定时的数据,避免船舶转向时转船力矩对风压差的影响,提高模型的准确性。每一时刻的数据由船舶航向、航速、风压差角组成,其中:船舶航向和航速为输入,风压差角为输出,采用双隐含层结构,输入层2个节点、每个隐含层7个节点、输出层1個节点,其网络模型结构设置为2-7-7-1。共选取120组数据,前70组用于SAPSO-BP模型的仿真学习,后50组则用于仿真预测。该算法的实现步骤如下:
  第一步:加载船舶航向、航速和风压差数据,并将数据归一化,建立SAPSO-BP神经网络模型。SAPSO-BP模型的初始参数c1=c2=1.6,微粒子群规模为20,迭代训练学习步数为100。经过多次仿真测试,本文将每个微粒子的初始速度规定在[-2,2]范围内,初始位置规定在[-3,3]范围内。   第二步:将算法中的微粒子位置设置为BP网络模型的参数,再由适应度函数表达式得出微粒子初始适应度值。
  第三步:在网络模型训练学习过程中,每个微粒子通过更新公式进行速度和位置的更新,并根据误差函数获得新的适应度值。将自适应变异算子添加到PSO算法中,由变异公式进行微粒子群体极值和个体极值的更新。
  第四步:误差准则判断。若最优解的个体适应度值达到设置的误差要求,或迭代次数满足设置要求,则算法执行下一步;若不满足相应的准则要求,则返回第三步继续循环求解寻优。
  第五步:SAPSO算法的计算循环结束,把求解得到的模型参数赋给BP神经网络模型。
  第六步:设定BP神经网络的网络参数(迭代次数为1 000,学习目标为0.000 1,学习率为0.1)。最后使用被赋予最优参数的BP神经网络模型进行风压差预测。
   PCA-SAPSO-BP模型算法流程见图2。
  3 仿真结果与讨论
  将实测数据分别导入BP和SAPSO-BP预测模型中,得到各自的结果,通过对预测误差的比较来判定预测精度。为准确衡量出不同预测模型的预测精度,将均方根误差(EMS)和相关系数(CC)作为预测模型的性能评价指标,公式如下:EMS=nk=1(yk-y ^k)2N
  (7)
  CC=nk=1(yk-y -k)(y ^k-y ^ -k)nk=1(yk-y -k)2nk=1(y ^k-y ^ -k)2
  (8)式中:N为预测数据的数量;yk和y -k分别为船舶風压差的观测值和观测值的平均值;y ^k和y ^ -k分别为船舶风压差的预测值和预测值的平均值。
  3.1 PCA-BP模型的船舶风压差预测
  预测结果  如图3所示(横坐标预测点数表示船舶风压差的预测样本点数量),PCA-BP船舶风压差预测模型虽然在一些预测点上的预测值与实测值之间的差值(预测误差)较大,但预测值与实测值变化曲线基本吻合。网络模型通过连续的数据学习,能够学习到船舶风压差的变化规律(说明PCA-BP神经网络对非线性拟合有较强的映射能力),但在预测末期出现了误差变大的现象。图4中,PCA-BP模型预测误差绝大多数在[-0.6°,+0.6°]范围内,但在两个预测点上出现了较大的误差,最大误差为1.0°。由图5可知,BP预测模型的相关系数CC=0.991 5。
  3.2 PCA-SAPSO-BP模型的风压差预测
  如图6所示,PCA-SAPSO-BP模型预测值与实际值之间的拟合情况明显优于PCA-BP模型,特别明显地消除了PCA-BP模型在预测末期出现的系统误差。由图7可知, PCA-SAPSO-BP预测模型的预测误差在[-0.4°,+0.4°]范围内,误差明显减小。由图8可知, PCA-SAPSO-BP预测模型的相关系数CC=0.999 3。
  3.3 仿真结果分析
  本仿真使用相同的实测船舶数据对模型进行训练,得到相应的预测结果。由预测结果可知: PCA-SAPSO-BP模型的预测误差与PCA-BP模型相比由1.0°下降到0.4°,误差明显减小,且误差值相对稳定;PCA-BP模型和PCA-SAPSO-BP模型的均方根误差分别为0.379 6°和0.135 0°,经计算PCA-SAPSO-BP模型的预测精度比PCA-BP模型的提高了64.4%。
   为进一步验证优化模型的有效性,在相同条件下对几种不同的神经网络模型进行仿真,得到各自的结果。由表1可知,PCA-SAPSO-BP模型比其他模型的预测精度高。
  4 结论与展望
  本文建立一种基于主成分分析(PCA)的改进BP网络来预测船舶风压差。该算法将自适应粒子群用于BP模型参数的优化,然后输入经PCA法筛选出的数据。此方法克服了传统BP神经网络模型易于陷入局部最优以及对模型的初始权值和阈值选择敏感等缺点,提高了模型的全局搜索能力。通过对比仿真结果与PCA-BP、PCA-PSO-BP模型的预测结果,验证了本文提出的PCA-SAPSO-BP船舶风压差预测模型具有较高的预测精度,为风压差的实时预测提供了一种新的有效途径。
  参考文献:
  [1] 章文俊, 刘正江. 基于小波神经网络的船舶运动预报[J]. 大连海事大学学报, 2013, 39(2): 25-28. DOI: 10.16411/j.cnki.issn1006-7736.2013.02.010.
  [2] 甄荣, 金永兴, 胡勤友, 等. 基于AIS信息和BP神经网络的船舶航行行为预测[J]. 中国航海, 2017, 40(2): 6-10.
  [3] 张润涛. 船舶风流压差的仿真研究[D]. 大连: 大连海事大学, 2008.
  [4] 余力, 朱建达. 用舰船实测风压差表求解舰船风力系数[J]. 船舶, 2007(2): 20-24.
  [5] 王飞. 空中交通流时间序列的复杂度分析[J]. 科学技术与工程, 2018, 18(33): 117-121.
  [6] SUN Wuchen, BU Renxiang, LIU Yong, et al. Prediction of leeway and drift angle based on empirical formula[C]// 2018 7th International Conference on Transportation and Traffic Engineering. Beijing, 2018: 196-199.
  [7] 张泽国, 尹建川, 胡江强, 等. 基于减聚类ANFIS模型的船舶横摇运动实时预测[J]. 上海海事大学学报, 2017, 38(1): 7-11, 67. DOI: 10.13340/j.jsmu.2017.01.002.   [8] YIN Jianchuan, ZOU Zaojian, XU Feng. Sequential learning radial basis function network for real-time tidal level predictions[J]. Ocean Engineering, 2013, 57(2): 49-55.
  [9] LIN Yu-Jen. Prevention of transient instability employing rules based on back propagation based ANN for series compensation[J]. International Journal of Electrical Power & Energy Systems, 2011, 33(10): 1776-1783.
  [10] BASERI H, BAKHSHI-JOOYBARI M, RAHMANI B. Modeling of spring-back in V-die bending process by using fuzzy learning back-propagation algorithm[J]. Expert Systems with Applications, 2011, 38(7): 8894-8900.
  [11] 范慶波, 江福才, 马全党, 等. 基于PSO的BP神经网络-Markov船舶交通流量预测模型[J]. 上海海事大学学报, 2018, 39(2): 22-27, 54. DOI: 10.13340/j.smu.2018.02.005.
  [12] 张开生, 黄谦. 基于粒子群优化BP神经网络的脉象识别方法[J]. 现代电子技术, 2018, 41(3): 96-100, 106. DOI: 10.16652/j.issn.1004-373x.2018.03.023.
  [13] 陈勇, 李鹏, 张忠军, 等. 基于PCA-GA-LSSVM的输电线路覆冰负荷在线预测模型[J]. 电力系统保护与控制, 2019, 47(10): 110-119. DOI: 10.19783/j.cnki.pspc.180668.
  [14] 刘珊珊, 谢晓尧, 景凤宣, 等. 基于PCA的PSO-BP入侵检测研究[J]. 计算机应用研究, 2016, 33(9): 2795-2798.
  [15] 郭禹, 张吉平, 戴冉. 航海学[M]. 大连: 大连海事大学出版社, 2015.
  [16] 潘俊虹, 王宜怀, 吴薇. 基于优化BP神经网络的物理量回归方法[J]. 计算机科学, 2018, 45(12): 170-176. DOI: 10.11896/j.issn.1002-137X.2018.12.027.
  (编辑 贾裙平)
  收稿日期: 2019- 05- 24 修回日期: 2019- 12- 13
  基金项目: 国家自然科学基金(61751202,61803064); 辽宁省自然科学基金(20180550082,20170540093)
  作者简介: 秦可(1991—),男,山东聊城人,硕士研究生,研究方向为船舶避碰及船舶运动控制,(E-mail)761708730@qq.com;
  卜仁祥(1973—),男,辽宁岫岩人,副教授,博士,研究方向为船舶运动控制,(E-mail)burenxiang@dlmu.edu.cn
转载注明来源:https://www.xzbu.com/4/view-15302100.htm