进入21世纪以来,运载工具正在向智能化、无人化方向发展.推力分配技术是实现各类运载工具自主高精度运动控制的关键.推力分配旨在以较小的能耗、高精度和高实时性的要求,将控制器输出的合力与合力矩分配为各个推进器的推力,使各推进器协调工作,最终达到控制器所期望的运动控制效果.目前在船舶领域推力分配一直是研究的热点,因此针对不同的推力分配问题,国内外研究者提出了大量的推力分配方法.文献[1]将过驱动船舶的推力分配大致分为线性二次无约束、线性二次有约束和非线性有约束的推力分配问题.求解线性二次无约束推力分配问题时,须要将目标函数近似转化为二次型.最小二乘法、拉格朗日法、非递归算法和伪逆法等解析解法最早被用于推力分配的研究[2-3].解析解法的优势在于计算速度快、实时性高,缺点在于无法考虑推进器的物理约束,无法解决推力饱和时的分配偏差问题.针对该类问题,许多研究者提出了新的解决办法,如分组分配方法[4]、加权伪逆法[5-6]、重分配伪逆法[7]等.针对有约束推力分配问题,解析解法显然不再适用,序列二次规划法(SQP)[8-9]、有效集法[10]、增广拉格朗日乘子法[8]等迭代算法被广泛用于带约束的推力分配问题求解.迭代算法相较于解析解法,虽然在实时性上略逊一筹,但其求解精度更高且具备处理各种复杂约束的能力,因此在工程中被广泛应用.近年来一些智能算法也被用于推力分配问题的求解,如遗传算法[11]、多种群并行混合的粒子群算法[12]及并行混合粒子蜂群算法[13].智能算法相较于传统迭代算法的优势在于其拥有更强的全局优化能力,但缺点在于往往须要提出更好的策略来避免算法早熟和提高实时性.文献[14]提出了一种神经网络方法求解推力分配问题,为推力分配优化算法开辟了新思路.本研究为了解决推力分配中的非线性复杂约束问题,同时实现优化求解和更高的实时性,基于极限学习机(ELM)原理提出了一种极限学习机推力分配方法,并利用SQP算法优化求解的特点生成用于极限学习机训练的样本数据,使极限学习机推力分配算法达到与SQP算法相同的优化求解精度,同时极限学习机算法本身不须要迭代计算,可以使推力分配实时性得到大幅度提高.本研究以船舶动力定位的推力分配为例来验证方法的有效性.1 推力分配模型1.1 推进器布局推进器的类型、参数及布置位置决定了推力分配数学模型的构建,本研究的动力定位船舶推进器布局示意图如图1所示,图中1号、2号为主推进器,沿X轴线方向布置;3号至5号为侧推进器,沿Y轴线方向布置.所有推进器为定轴推进器,推进器角度不可发生改变.10.13245/j.hust.211207.F001图1推进器布局示意图1.2 目标函数推力分配数学模型的目标函数体现了推力分配所要实现的目标,通常须要根据不同的控制需求和工作模式来制定.本研究参考文献[15-16],建立二次型目标函数min P(u,s)=uTWu+sTQs, (1)式中:P为推力分配总的优化目标;u为推进器的推力;s为松弛变量;W,Q为权值矩阵;uTWu为推进器的总功耗;sTQs最小化分配力和力矩与控制输出之间的误差.1.3 约束条件推力分配的任务是将控制器输出的合力与合力矩分配到各个推进器,使各推进器推力作用于船体所达到的效果与控制期望一致,由此可以构建推进器推力与控制器输出之间的等式约束关系.推进器的推力可表示为u=[u1,u2,u3,u4,u5]T, (2)式中uk (k=1,2,…,5)为第k个推进器的推力.根据推进器布置建立的配置矩阵B可表示为B=1100000111-ly1-ly2lx3lx4lx5∈R3×5, (3)式中:ly和lx分别为x和y轴方向的长度;R为3×5的矩阵.等式约束条件可表示为equ.:τ-B∙u=s, (4)式中τ=[X,Y,N]T为控制器输出的力和力矩.不等式约束条件可表示为inequ.:Tkmin≤uk≤Tkmax;(u0k-Δuk)≤uk≤(u0k+Δuk), (5)式中:Tkmax为第k个推进器推力上限;Tkmin为第k个推进器推力下限;Δuk为第k个推进器的最大推力变化率;u0k为第k个推进器当前周期的推力初值.2 极限学习机原理极限学习机是为了对反向传播算法进行改进以提升学习效率并简化学习参数的设定[17],其网络结构如图2所示.10.13245/j.hust.211207.F002图2极限学习机网络结构图极限学习机的网络结构由一层输入层、一层隐含层和一层输出层构成.假设输入层有n个输入变量,隐含层有L个神经元,输出层有m个输出变量.信息从输入层到输出层仅单向传递,没有反馈过程.输入变量x=[x1,x2,…,xn]T,输出变量y=[y1,y2,…,ym]T,输入层和隐含层之间的权值矩阵a=[a1,a2,…,aL]T∈RL×n,输入层和隐含层之间的偏置向量b=[b1,b2,…,bL]T,隐含层和输出层之间的权值矩阵β=[β1,β2,…, βL]T∈RL×m.在极限学习机网络中,权值矩阵a和偏置向量b一经随机初始化即不再改变,输入变量的信息以确定的线性关系传递给隐含层的神经元,隐含层的神经元再将信息通过激活函数G(ai,bi,xj)输出,最终乘以权值矩阵β就完成了输出层信息的输出.这样对于Q个任意不同的样本,其计算关系为∑i=1LβiG(ai,bi,xq)=yq    (q=1,2,…,Q), (6)写成矩阵运算的形式为Hβ=Y, (7)式中:H为隐含层的输出矩阵,      H=[h(x1),h(x2),⋯,h(xQ)]T=G(a1,b1,x1)G(a2,b2,x1)⋯G(aL,bL,x1)G(a1,b1,x2)G(a2,b2,x2)⋯G(aL,bL,x2)⋮G(a1,b1,xQ)G(a2,b2,xQ)⋯G(aL,bL,xQ)∈RQ×L; (8)Y为输出层的输出矩阵,Y=[y1,y2,⋯,yQ]T∈RQ×m. (9)当H和Y已知时,β通过广义逆的方式可求得β=Η†Y, (10)式中Η†为H的广义逆矩阵.因此,极限学习机的训练过程可以概括为三步:a. 为输入层和隐含层之间的权值矩阵a和偏置向量b分配随机数;b. 计算隐含层的输出矩阵H;c. 计算隐含层和输出层之间的权值矩阵β.3 基于极限学习机的推力分配方法根据极限学习机原理,提出基于极限学习机的推力分配方法,结合推力分配问题设计推力分配器,并提出了一种用于极限学习机训练的样本数据生成方法.3.1 极限学习机推力分配器设计采用极限学习机网络进行推力分配器的输入输出变量设计,须要充分考虑控制器输出和推力分配结果之间的映射关系.因此,设计极限学习机推力分配器的输入变量及输出变量,x=[Xi,Yi,Ni,u1i-1,u2i-1,u3i-1,u4i-1,u5i-1]T; (11)y=[u1i,u2i,u3i,u4i,u5i]T, (12)式中:输入变量x的前3个元素取第i周期控制器输出的合力与合力矩,第4个到第8个元素取第i-1周期各推进器的推力;输出变量y的5个元素取通过极限学习机推力分配器求解的第i周期的各推进器推力.激活函数选取sigmoid函数,即sigmoid(H)=1/(1+e-H). (13)3.2 数据集生成方法神经网络的泛化性能取决于网络结构的优劣和训练样本的数量与质量,因此须要设计极限学习机网络模型参数并采集合适的训练样本.通常训练样本的获取代价较高,例如文献[15]用模拟船在仿真平台上使用手动模式采集训练样本,产出投入比较低.针对该问题本研究提出了一种更为高效且优化的数据集样本生成方法,其流程如图3所示.10.13245/j.hust.211207.F003图3数据集生成方法流程图数据集生成方法主要流程大致分为以下几步:a. 推进器参数初始化;b. 通过第i周期各推进器推力计算第i+1周期各推进器推力可行域;c. 在推力可行域内随机生成推进器推力rand uki+1;d. 通过rand uki+1计算合力与合力矩τi+1=[Xi+1,Yi+1,Ni+1];e. 将τi+1=[Xi+1,Yi+1,Ni+1]和ui=[u1i,u2i,u3i,u4i,u5i]代入SQP推力分配算法进行优化,求解得到ui+1=[u1i+1,u2i+1,u3i+1,u4i+1,u5i+1],这样[τi+1,ui]为一组输入数据,[ui+1]为一组与之对应的输出数据,它们共同组成一个样本数据;f. 当计算周期i大于需要的样本数量Q时,终止计算,对可能推力分配求解失败的样本进行剔除后得到数据集.所提出的这种数据集生成方法的优势在于:a. 操作方便,避免通过仿真实验或者实船实验收集数据;b. 效率高,可以在极短的时间内获得大量的样本数据;c. 样本质量高且优化,所有的样本均是由SQP算法优化求解得到的推力分配数据,将传统的SQP算法能够考虑推进器物理约束和优化求解的优势都表现在样本数据中;d. 样本分布广泛,样本可以在推进器推力上下限、推力变化率上下限和控制力上下限范围内广泛分布,使得ELM网络学习到尽可能全面的数据集样本.4 仿真实验4.1 仿真条件对所设计的极限学习机推力分配方法进行仿真实验,推进器的布置与参数见表1,表中:Tmax为推进器推力上限;Tmin为推进器推力下限;Δu为推进器推力变化率;x,y为横、纵坐标.10.13245/j.hust.211207.T001表1推进器布置与参数推进器序号Tmax/NTmin/NΔu/Nx/my/m110-102-0.88-0.15210-102-0.880.1535-510.700.0045-510.600.0055-51-0.700.004.2 数据集生成根据提出的样本生成方法,生成1×104个样本数据的仿真结果如图4和图5所示,单个样本数据对应的控制周期t=1 s.10.13245/j.hust.211207.F004图4纵向力、横向力和艏摇力矩样本数据10.13245/j.hust.211207.F005图5各推进器推力样本数据图4给出了样本数据中控制与推力分配产生的纵向力FX、横向力FY和艏摇力矩MN,图5给出了各推进器推力情况.可以看出:无论是输出的控制力和力矩,还是各推进器推力都能广泛分布于所设置约束的上下限范围之内,且推力变化率的限制也表现在其中.对生成1×104个样本数据重复进行了10次操作,平均用时88.810 s,即每个样本数据8.881 ms.4.3 推力分配离线仿真实验采用所生成的样本数据进行训练,重新生成1 000个随机数据进行离线仿真测试,推力分配结果如图6和图7所示,单个样本数据对应的控制周期t=1 s.离线仿真实验采用sigmoid函数作为拟合函数,隐含层神经元数量为300个,1×104个样本数据的训练总时长为0.216 s,1 000个测试数据的极限学习机推力分配总时长为4.042 s (即每个样本数据4.042 ms),SQP推力分配用时为每个样本数据8.881 ms,本研究设计的极限学习机推力分配方法相比SQP推力分配方法,用时大幅度缩短,实时性提高了54.5%.以上用时数据均为10次仿真结果取平均值.10.13245/j.hust.211207.F006图6推力分配合力和力矩离线仿真结果10.13245/j.hust.211207.F007图7各推进器推力分配离线仿真结果图6为控制与推力分配产生的纵向力FX、横向力FY和艏摇力矩MN,图7为各推进器的推力分配结果.以SQP推力分配结果作为基准,极限学习机推力分配结果在X,Y,N,u1,u2,u3,u4,u5上的平均绝对误差(MAE)分别为1.72×10-6,7.67×10-7,6.81×10-7,3.49×10-6,3.6×10-6,6.05×10-7,5.2×10-7,8.99×10-7.结合图6和图7可以看出:无论是分配力合力和力矩还是各推进器的推力,本研究设计的极限学习机推力分配方法与SQP推力分配方法得到的结果平均绝对误差均在10-7~10-6量级,表明两种方法具有相同的优化求解精度,且极限学习机算法泛化性能良好.4.4 推力分配在线仿真实验为了进一步验证所设计方法的有效性,将极限学习机推力分配器嵌入动力定位系统框架中进行在线仿真实验.由于在线仿真条件更为复杂,每个周期推力分配的结果都会实时影响到船舶位置、艏向及控制器的输出,为了达到良好的推力分配精度和控制效果,将极限学习机推力分配器的隐含层神经元个数调整至600个.在水平面动力定位模式下,推力分配结果如图8~11所示.10.13245/j.hust.211207.F008图8艏向角变化仿真结果10.13245/j.hust.211207.F009图9船舶水平位置变化仿真结果10.13245/j.hust.211207.F010图10推力分配合力和力矩在线仿真结果10.13245/j.hust.211207.F011图11各推进器推力在线仿真结果动力定位仿真条件下的船舶初始位置为(0 m,0 m),初始艏向角为0°,目标位置为(5 m,5 m),目标艏向角为60°,环境流场的流向角为30°,流速为0.15 m/s,单个控制周期时间t=0.5 s.在线仿真实验采用sigmoid函数作为拟合函数,隐含层神经元数量为600个,1×104个样本数据的训练总时长为0.641 s,1 000个测试数据的极限学习机推力分配总时长为4.176 s,即每个样本数据4.176 ms.可以看出:增加隐含层神经元数量只略微增加了训练过程的时间,对推力分配的实时性并不产生明显的影响.图8为动力定位仿真过程中船舶的艏向角(ψ)变化,船舶从初始艏向角逐渐调整到目标艏向角,并且最终收敛在60°附近.图9为船舶的位置变化(X为北向位置,Y为东向位置),船舶从初始位置逐渐运动到目标位置,并且最终停留在(5 m,5 m)附近.以上结果表明:在控制器能够执行动力定位任务的前提下,极限学习机推力分配器可以分配控制器输出的力/力矩,初步验证了所设计的极限学习机推力分配器的正确性与有效性.图10为控制与推力分配产生的纵向力FX、横向力FY和艏摇力矩MN,所设计的极限学习机推力分配器可以对控制器的输出进行实时推力分配,并且未出现分配失败的情况.推力分配与控制输出在X,Y,N之间的平均绝对误差分别为3.56×10-6,6.79×10-6,1.74×10--6,说明该方法在动力定位在线联调仿真下仍具备较高的推力分配精度.图11显示了各推进器推力仿真结果,各推进器的推力平滑、连续,未出现明显抖振现象,推力变化率均在设计变化率的范围内,说明该方法实现了良好的推力分配效果.以上均证明了本研究设计的极限学习机推力分配方法的正确性和有效性.5 结论本研究提出了一种基于极限学习机的推力分配方法,包括一种数据集生成方法和极限学习机推力分配算法.以船舶动力定位中的推力分配问题为例进行了离线和在线仿真实验,结果表明该方法求解精度与SQP方法相当,但求解时间大大缩短,实时性大幅度提高更加满足工程的需要.主要结论如下.a. 本研究设计的极限学习机推力分配方法为一种神经网络模型预测方法,与SQP方法具有相同的求解精度,在本文的算例中分配实时性提高了54.5%.由于生成数据集和极限学习机模型训练需提前单独进行,再将参数导入极限学习机推力分配器,因此其所消耗的时间不需计入分配实时性的考量中.b. 网络结构的优劣与训练样本的数量和质量决定了神经网络的泛化性能,通过仿真实验证明了所设计数据集生成方法的有效性和优势.c. 极限学习机推力分配器的求解精度和实时性与神经网络的结构和参数设置有关,须要针对不同的实际问题进行极限学习机推力分配器的设计、误差分析和实时性分析.d. 该方法在三自由度的船舶动力定位问题中已经有良好的表现,更高维自由度及复杂推进器模型的推力分配问题求解是继续研究的重点.在其他领域的推力分配问题中,该方法也能适用.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读