2. 中国船舶集团有限公司第七一〇研究所,湖北 宜昌 443003
2. The 710 Research Institute of CSSC, Yichang 443003, China
部分自主水下机器人(Autonomous Underwater Vehicle,AUV)会安装超过其自身自由度数量的控制设备(如槽道桨、X型舵等)以满足水下探测与作业在精度方面的要求[1 − 3],这些冗余的推进器共同构成了过驱动系统。过驱动系统为AUV提供了较高的机动性和可靠性,也为AUV带来了推力分配问题。
如图1所示,在航行过程中,AUV的控制算法会根据自身的位置、期望的位置、速度、当前的海洋环境等信息给出航行器所需的力和力矩。推力分配算法则旨在将航行器多个自由度所需的力和力矩合理分配到各个推进器上,使航行器切实获取到控制算法计算出的力和力矩。当控制算法给出的推力与力矩较小时,求出可行的解并不困难,此时推力分配算法应聚焦于如何求出使整体能耗更少的解。当控制算法给出的推力与力矩较大时,求出的解可能超过推进器的推力限制(或舵的舵角限制),称之为推力饱和问题,此时推力分配算法应聚焦于如何合理调节舵角和各个推进器的推力以尽可能使实际值接近目标值。
![]() |
图 1 某型AUV控制系统原理框图 Fig. 1 Schematic diagram of a certain type of AUV control system |
广泛应用于推力分配上的算法主要为直接法[4]和伪逆法[5]。直接法通过人为指定各个推进器在推力分配中的占比来增加额外约束从而进行求解。如李新飞等[6]在直接逻辑分配法中额外引入了各个推进器在单一方向上提供相同大小的力这一条件进行求解。直接法算法简洁可靠,但在节能方面效果较差且无法解决推力饱和问题。伪逆法以各推进器的推力为目标函数,可以计算出在需求的推力和力矩约束下使目标函数达到最小值的解。但伪逆法难以将各个推进器的约束限制纳入计算,无法实现可达集的全覆盖[7]。使用伪逆法进行求解在遇到推力饱和问题时需要对求解结果进行放缩,放缩得到的结果与需求值有着较大差距且未能完全发挥推进器的效能。在伪逆法的基础上,张瀚文等[8]通过更改伪逆法的权重系数对ROV进行容错推力分配,Sun等[9]使用多步分配法对X舵ROV进行推力分配,孙功武等[10]将模糊控制与伪逆法相结合对电动-液压混合推进型ROV进行推力分配。经过改进的伪逆法可实现更复杂的需求,但难以在算法中将推进器推力大小、推进角度限制纳入计算。二次规划算法[11]和序列二次规划算法[12]能够寻找在可行域约束下的最优解,但对可行域和约束条件均有一定要求。智能算法的适应范围更加广泛,能在计算时考虑更加复杂的约束条件,如Zhao等[13]使用自适应遗传算法设计半潜船动力定位系统,徐海阳等[14]提出的基于极限学习机的推力分配方法等。
本文针对某型过驱动AUV,根据其水动力系数建立动力学及运动学仿真模型,利用其推进器的空间布置及舵效参数构建推力转换矩阵,使用反步法对仿真模型进行控制以获取航行器在一段时间内的推力和力矩需求。在推力分配方面使用改进的广义既约梯度法(GRG)来求解推力分配问题。通过切换不同的目标函数和约束来分别获取能耗目标和差值目标下的最优解,并与伪逆法的求解结果进行对比。
1 推力分配问题 1.1 研究对象某型AUV主体结构如图2所示,其分别在艏部和艉部各布置有1个垂推和1个侧推,推进器形式为槽道浆,艉部带有主推,舵为十字型舵,无差分控制功能。针对某型AUV,其在横滚方向能够自平衡,忽略横滚方向自由度,推力分配算法的控制输入为由控制器产生的5个自由度方向AUV所需的力与力矩,控制输出为4个槽道推进器、十字舵及主推,输入变量个数小于输出变量,为过驱动系统。
![]() |
图 2 某型AUV主体结构 Fig. 2 Main structure of a certain model of AUV |
在AUV航行过程中,当控制器给出的推力和扭矩不会造成推力饱和时,推力分配算法应当在满足控制器要求和推进器推力限制的前提下,尽可能输出使得整体能耗最小的解。也即:
minfp(x)=∑pi(xi),i=3,…,7s.t.hj(x)=dj,j=1,…,5l⩽x⩽u。 | (1) |
针对某型号AUV,定义
当控制器给出的力超出推进器所能达到的极限时,
minfs(s)=sTs,s.t.hj(x)+sj=d,j=1,…,5l⩽x⩽u。 | (2) |
忽略舵所产生的纵向力,以航行器和舵推力的平方和作为最小化目标,假设不存在舵角和推进器推力限制,式(1)可化为:
minfp(x)=xTWx,s.t.Bx=d。 | (3) |
式中:
通过拉格朗日乘子法求取
B+w=BT(BBT)−1, | (4) |
解出
x=B+wd。 | (5) |
各种优化算法均有其适用条件,如伪逆法不适用于不等式约束问题,线性二次规划法不适用于非线性约束问题等。相比于其他优化算法,广义既约梯度法的适用范围更广,其等式约束可为非线性方程,迭代求解时可考虑变量的上下限,是求解非线性规划问题的最有效的方法之一[15]。使用广义既约梯度法的求解流程如图3所示。
![]() |
图 3 广义既约梯度法求解推力分配问题流程图 Fig. 3 Flow chart of generalized reduced gradient method for solving thrust distribution problem |
具体计算步骤如下[15](以式(1)为例):
步骤1 用伪逆法获取初始可行点
步骤2 将
步骤3 计算
∂h∂xdef=[∂h1∂x1⋯∂h1∂x7⋮⋱⋮∂h5∂x1⋯∂h5∂x7]=(∂h∂xB,∂h∂xN), | (6) |
∇xBfp=(∂fp∂x3,…,∂fp∂x7)T, | (7) |
∇xNfp=(∂fp∂x1,∂fp∂x2)T。 | (8) |
步骤4 计算既约梯度
r(xN)=dfpdxN=∇xNfp−[(∂h∂xB)−1∂h∂xN]∇xBfp。 | (9) |
步骤5 获取搜索方向
dN={0,xNk=lNk且rk(xN)>0或xNk=uNk且rk(xN)<0,−rk(xN),其他。 | (10) |
步骤6 当
¯xN=xN+λdN。 | (11) |
原广义既约梯度法在步骤6进行一维搜索时使用方法较为低效[15],先取
步骤1 初始化“狼”的位置
wr=xN+(r−1)λmaxdN/num。 | (12) |
式中:
步骤2 计算“狼”适应度,选出对应目标函数
步骤3 生成系数矩阵
At=at(2r1−1), | (13) |
Dt=|2r2wt−wr|。 | (14) |
式中:
步骤4 更新除
wr=13(∑wt−∑AtDt)。 | (15) |
参照潜艇体系[17]建立右手坐标系如图4所示。图中
![]() |
图 4 固定坐标系和运动坐标系 Fig. 4 Fixed coordinate system and motion coordinate system |
X、Y、Z分别为AUV浮心在定系下的纵向、横向、垂向坐标;
某型AUV在横倾方向能自平衡,忽略横滚方向自由度,建立AUV五自由度运动学方程[17]如下:
Rnb=[cosψcosθ−sinψcosφ+cosψsinθsinφsinψsinφ+cosψsinθcosφsinψcosθcosψcosφ+sinψsinθsinφ−cosψsinφ+sinψsinθcosφ−sinθcosθsinφcosθcosφ], | (16) |
TΘ=[sinφtanθcosφtanθcosφ−sinφsinφ/cosθcosφ/cosθ], | (17) |
J(η)=[Rnb00TΘ], | (18) |
˙η=J(η)V, | (19) |
η=[XYZθψ]T, | (20) |
V=[uvwqr]T。 | (21) |
建立AUV五自由度动力学方程[18]如下:
(m+λ11)˙u=Tx−12ρU2S(CxS−Cδrxδ2r−Cδexδ2e)−ΔGsinθ, | (22) |
(m+λ22)˙v+(mxg−λ26)˙r=Ty−mur+12ρU2S(Cβyβ+Cδryδr+C−ry−r)+ΔGcosθsinφ, | (23) |
(m+λ33)˙w−(mxg+λ35)˙q=Tz+muq−12ρU2S(Cαzα+Cδezδe+C−qz−q)+ΔGcosθcosφ, | (24) |
(Jyy+λ55)˙q−(mxg+λ53)˙w=My−mxguq+12ρU2SL(mαyα+mδeyδe+mqyˉq)−G(zgsinφ+xgcosθcosφ), | (25) |
(Jzz+λ66)˙r+(mxg−λ62)˙v=Mz−mxgur−12ρU2SL(mβzβ+mδrzδr+m−rz−r)+G(xgcosθsinφ+ygsinθ)。 | (26) |
对式(22)~式(26)进行整合,如式(27)~式(30)所示。
M=[m+λ1100000m+λ2200mxg−λ2600m+λ33−(mxg+λ35)000−(mxg+λ53)Jyy+λ5500mxg−λ6200Jzz+λ66], | (27) |
τG=[−ΔGsinθΔGcosθsinφΔGcosθcosφ−G(zgsinφ+xgcosθcosφ)G(xgcosθsinφ+ygsinθ)], | (28) |
τF=[−CxS12ρU2S−mur+12ρU2S(Cβyβ+C−ry−r)muq−12ρU2S(Cαzα+C−qz−q)−mxguq+12ρU2SL(mαyα+m−qy−q)−mxgur−12ρU2SL(mβzβ+m−rz−r)], | (29) |
τT=[Tx+12ρU2S(Cδrxδ2r+Cδexδ2e)Ty+12ρU2SCδryδrTz−12ρU2SCδezδeMy+12ρU2SLmδeyδeMz−12ρU2SLmδrzδr]。 | (30) |
整合后式(22)~式(26)可写作:
˙V=M−1(τF+τG+τT)。 | (31) |
式中:
普通螺旋桨的推力
T=KTρn2D4, | (32) |
Q=KQρn2D5, | (33) |
P=2πKQT1.5/K1.5Tρ0.5D。 | (34) |
式中:
与常规螺旋桨不同,槽道推进器在受来流影响时会发生推力损失[19]。为研究某型AUV在航行时槽道桨的推力与槽道桨所消耗的功率之间的关系,使用Fluent进行仿真。仿真结果归一化处理后如图5所示,在2 kn来流情况下,艏垂推所需求的扭矩仍和转速平方成正比,但其产生的推力不再与转速的平方成正比。
![]() |
图 5 艏垂推推力与扭矩随槽道桨转速平方变化曲线图 Fig. 5 Curve of bow thrust and torque variation with the square of channel propeller speed |
使用Fluent对其他槽道桨进行仿真,仿真结果显示,来流对艏垂推和艉侧推带来的推力影响较大,艏侧推和艉垂推位于平行中体附近,受来流影响较小,仍可按照式(34)通过推力计算功率大小。整理仿真结果绘制艏垂推和艉侧推功率随推力变化的曲线如图6所示。
![]() |
图 6 艏垂推与艉侧功率随推力变化曲线图 Fig. 6 Curve of bow vertical and stern lateral thrust power variation with thrust |
航行时,推力分配算法需要根据控制器给出的推力与力矩需求进行推力分配计算,为获取某型AUV航行时的推力与力矩需求,现以反步法设计某型AUV的航行控制器。
反步控制是常用的AUV控制方法之一[20 − 22]。其通过设计多级状态方程,逐级求解最后得出令非线性系统趋于稳定的控制输出,原理简单、实时性好。为获取AUV在航行时所需求的推力与力矩,本文基于李亚普洛夫理论,采用反步法设计某型AUV的五自由度控制器。
定义位置跟踪误差:
z1=η−ηd。 | (35) |
选取第1个李亚普洛夫函数:
V1=12zT1z1。 | (36) |
求导得:
˙V1=zT1×(˙η−˙ηd)=zT1×(J(η)V−˙ηd)。 | (37) |
以速度为虚拟输入,镇定函数
zα=−J(η)−1(k1z1−˙ηd)。 | (38) |
定义速度跟踪误差:
z2=V−zα。 | (39) |
选取第二个李亚普洛夫函数:
V2=V1+12zT2z2。 | (40) |
求导得:
˙V2=-k1zT1z1+zT2(J(η)Tz1+M−1(τF+τG+τT)−˙α)。 | (41) |
取
J(η)Tz1+M−1(τF+τG+τT)−˙α=−k2z2。 | (42) |
解得
τT=M⋅(˙zα−k2z2−J(η)Tz1)−τF−τG。 | (43) |
使用反步法控制AUV仿真模型进行螺旋下潜,如图7所示,期望轨迹与实际轨迹吻合良好。
![]() |
图 7 仿真模型螺旋下潜轨迹 Fig. 7 Simulation model spiral diving trajectory |
根据某型AUV的推进器布局及舵效参数可得:
hj(x)={x7−2(Cexx21/(Cez)2+Crxx22/(Cry)2)/ρU2S,x2+x4+x6,x1+x3+x5,Lmeyx(1)/Cey−e3x3+e5x5,Lmrzx(2)/Crz+e4x4−e6x6。 | (44) |
式中:
![]() |
图 8 推进器功率-推力拟合曲线图 Fig. 8 Power - thrust fitting curve of thruster |
以反步法操控仿真模型,使其在纵向以2 kn航速前进,在横向和垂向沿正弦曲线运动,设计式(35)中的
{ηd(1)=vxt,˙ηd(2)=(2Aπcos(2πt/T))/T,ηd(3)=Asin(2πt/T),ηd(4)=−atan(2Aπcos(2πt/T)/T/vx),ηd(5)=atan(2Aπcos(2πt/T)/T/vx)。 | (45) |
式中:vx =
![]() |
图 9 仿真模型运行轨迹 Fig. 9 Simulation model running trajectory |
图中,×为期望轨迹,即
以时间为横坐标,以单自由度实际位置与期望位置的差值为纵坐标绘制曲线,结果如图10所示。可见,以伪逆法作为推力分配算法无法以2 kn航速沿着轨迹航行,实际运行时速度低于2 kn航速,进退方向的差值在不断增加,而以广义既约梯度算法作为推力分配算法的运行结果能使AUV保持纵向航速的情况下满足该工况的机动需求。
![]() |
图 10 各方向期望位移与实际位移差值(时间变量) Fig. 10 Difference between expected displacement and actual displacement in each direction(Time variable) |
以AUV运行时的在固定坐标系上的纵向位移为横坐标,以纵向位置处对应的轨迹期望值(
![]() |
图 11 各方向期望位移与实际位移差值(纵坐标变量) Fig. 11 Difference between expected displacement and actual displacement in each direction(Vertical axis variable) |
由于图9所示算例对AUV的机动性能要求较为极限,且以广义既约梯度法作为推力分配算法的运行轨迹与以伪逆法作为推力分配算法的运行轨迹并不一致,难以对比二者在能耗上的区别。取A = 10 m再次运行仿真模型,结果如图12所示。可见A = 10 m时2种推力分配算法的运行轨迹均与期望轨迹相吻合。对2种推力分配算法的能耗进行统计,能耗计算公式:
![]() |
图 12 仿真模型运行轨迹(A=10 m) Fig. 12 Simulation model running trajectory(A=10 m) |
fp(x)=∑pi(xi),i=3,…,6。 | (46) |
式中:
pi(xi)=2πKQix1.5i/K1.5Tiρ0.5Di,i=4,6。 | (47) |
绘制航行过程中2种算法的能耗曲线如图13所示。可见以广义既约梯度算法作为推力分配算法所产生的能耗始终少于以伪逆法作为推力分配算法所产生的能耗。选取算例进行遍历,发现广义既约梯度算法的计算结果已是全局最优解。
![]() |
图 13 能耗曲线 Fig. 13 Energy consumption curve |
取t = 100 s处的工况为代表进行分析,结果如表1所示。经过广义既约梯度算法优化后,沿各方向上产生的力与力矩的总和并未发生变化,而能耗减少了15%。
![]() |
表 1 能耗分析表 Tab.1 Energy consumption analysis table |
统计获取伪逆法和广义既约梯度法在Matlab上计算出一次结果的平均运行时长,结果如表2所示,相比于伪逆法,广义既约梯度法在算法复杂度上有所增加,但其运算速度和所消耗的算力资源对于大型AUV上搭载的计算器而言仍处于可接受范围内。
![]() |
表 2 计算耗时表 Tab.2 Calculation time table |
为搭建仿真平台、获取仿真数据,建立了AUV运动学和动力学模型、设计反步控制算法,模拟获取一系列AUV运动时所需求的力与力矩数据;通过建立AUV槽道桨的Fluent仿真模型获取槽道桨能耗与推力之间关系。完成仿真平台的搭建后,分别以伪逆法和广义既约梯度法作为AUV的推力分配算法,控制AUV沿着既定轨迹航行。2次的仿真结果显示,相比于伪逆法,广义既约梯度法能适用于更加复杂的推力分配问题,在节能与减少推力饱和方面问题更具优势,能更好的发挥AUV的机动性、延长AUV的续航能力。
[1] |
刘胜, 段应坤, 张晶. X舵水下潜航器改进滑模控制策略研究[J]. 兵器装备工程学报, 2022, 43(9): 34-38+52. LIU S, DUAN Y K, ZHANG J. Research on improved sliding mode control strategy of X-rudder autonomous underwater vehicle[J]. Journal of Ordnance Equipment Engineering, 2022, 43(9): 34-38+52. |
[2] |
马晨龙. 多推进器AUV机动性能分析及推力分配研究[D]. 武汉: 武汉理工大学, 2022.
|
[3] |
孙啸天, 曾庆军, 尚乐, 等. 基于推力分配的自主水下机器人推进器容错控制研究[J]. 软件导刊, 2023, 22(11): 118-122. SUN X T, ZENG Q J, SHANG L, et al. Research on thruster fault tolerant control of autonomous underwater vehicle based on thrust distribution[J]. Software Guide, 2023, 22(11): 118-122. |
[4] |
魏延辉, 陈巍, 杜振振, 等. 深海ROV伺服控制方法研究及其仿真[J]. 控制与决策, 2015, 30(10): 1785-1790. WEI Y H, CHEN W, DU Z Z, et al. Servo control method of ROV and simulation[J]. Control and Decision, 2015, 30(10): 1785-1790. |
[5] |
TOR A, JOHANSEN T I, FOSSEN. Control allocation-A survey[J]. Automatica, 2013(49): 1087-1103. |
[6] |
李新飞, 马强, 袁利毫, 等. 作业型ROV矢量推进建模及推力分配方法[J]. 船舶力学, 2020, 24(3): 332-341. LI X F, MA Q, YUAN L H, et al. Vector propelling system model and thrust allocation for work-class ROV[J]. Journal of Ship Mechanics, 2020, 24(3): 332-341. |
[7] |
BORDIGNON K A, DURHAM W C. Closed-form solutions toconstrained control allocation problem[J]. Journal of Guidance, Control, and Dynamics, 1995, 18(5): 1000-1007. DOI:10.2514/3.21497 |
[8] |
张瀚文, 王俊雄. 基于自适应反步滑模的 AUV 推进器容错控制[J]. 水下无人系统学报, 2021, 29(4): 420−427. ZHANG H W, WANG J X, Fault-tolerant control of AUV thruster based on adaptive backstepping sliding mode[J]. Journal of Unmanned Undersea Systems, [1] 2021, 29(4): 420−427. |
[9] |
SUN G W, XIE J R, QU J Q, et al. Multistep thrust allocation method based on priority idea for remotely operated vehicle with horizontal thrusters configured as X shape[J]. International Journal of Advanced Robotic Systems, 2022, 19(2).
|
[10] |
孙功武, 苏义鑫, 毛英, 等. 基于模糊逻辑的混合推进ROV多级推力分配策略[J]. 机器人, 2023, 45(4): 472−482. SUN G W, SU Y X, MAO Y, et al. Multi-level thrust allocation method based on fuzzy logic for a remotely operated vehicle with hybrid propulsion system[J]. Robot, 2023, 45(4): 472−482. |
[11] |
赵言锋, 林明星, 代成刚, 等. ROV水动力性能及推力控制分配研究与仿真[J]. 中国科学: 技术科学, 2020, 50(3): 287-298. ZHAO Y F, LIN M X, DAI C G, et al. Research and simulation of ROV hydrodynamic performance and thrust control distribution[J]. Scientia Sinica Technologica, 2020, 50(3): 287-298. DOI:10.1360/SST-2019-0251 |
[12] |
WITKOWSKA A, SMIERZCHALSKI R. Adaptive dynamic control allocation for dynamic positioning of marine vessel based on backstepping method and sequential quadratic programming[J]. Ocean Engineering, 2018, 163: 570-582. DOI:10.1016/j.oceaneng.2018.05.061 |
[13] |
ZHAO D, DING F, TAN J, et al. Optimal thrust allocation based GA for dynamic positioning ship[C]// 2010 IEEE. International Conference on Mechatronics and Automation, 2010: 1254−1258.
|
[14] |
徐海祥, 马晨龙, 冯辉. 一种基于极限学习机的推力分配方法[J]. 华中科技大学学报, 2021, 49(12): 34−39+70. XU H X, MA C L, FENG H. A thrust allocation method based on extreme learning machine[J]. J. Huazhong Univ. of Sci. & Tech. 2021, 49(12): 34−39+70. |
[15] |
陈宝林. 最优化理论与算法[M]. 北京: 清华大学出版社, 2005.
|
[16] |
SEYEDALI M, SEYED M M, ANDREW L. Grey Wolf optimizer[J]. Advances in EngineeringSoftware, 2014, 69(3): 46-61. |
[17] |
施生达, 王京齐, 吕帮俊, 等. 潜艇操纵性[M]. 北京: 国防工业出版社, 2021.
|
[18] |
严卫生. 鱼雷航行力学[M]. 西安: 西北工业大学出版社, 2005.
|
[19] |
徐海祥. 船舶动力定位系统原理[M]. 北京: 国防工业出版社, 2016.
|
[20] |
CHE G F, ZHEN Y. Backstepping method tracking control for underactuated AUV with unknown dynamics based on action-critic networks based ADP[J]. Journal of intelligent & fuzzy systems, 2024, 46(1): 2851-2863. |
[21] |
ESFAHANI, ZAHRA, FEREIDAN, et al. Sliding mode controller design based on state estimation for underactuated AUVs in the presence of time-varying disturbances and uncertainties[J]. International journal of dynamics and control, 2023, 11(4): 1637-1652. |
[22] |
李旻, 周铸, 吕志彪, 等. 基于改进反步法的AUV直线路径跟随[J]. 舰船电子工程, 2023, 43(2): 47-53. LI M, ZHOU Z, LV Z B, et al. AUV straight-line path following based on improved backstepping method[J]. Ship Electronics Engineering, 2023, 43(2): 47-53. |