基于DRNN-S控制的AUV三维轨迹跟踪方法
2021-12-12周则兴
周则兴
(中国船舶科学研究中心,江苏 无锡 214082)
0 引 言
过去一二十年中,AUV的轨迹跟踪控制系统的设计方法一直是研究的热点之一。Yuh等[1]对此进行了全面而细致的研究。同时,各类生产活动对AUV的自主能力要求越来越高,例如使用AUV定期检查海上平台的圆柱形桩基,往往需要AUV沿螺旋线下沉以提高作业效率。欠驱动机器人轨迹跟踪主要的难点在于缺少能够对全自由度直接进行控制的独立推进器。因此,欠驱动机器人受漂移力或波浪力等非线性时变扰动的影响更大。Nakamura等[2]较早开展了对欠驱动AUV非线性控制方法的研究,但是其动力学模型比较粗糙,没有考虑强非线性和强耦合的离心力、科氏力项的影响。
随着非线性控制理论的发展,有很多专家学者基于更为完整的动力学模型对欠驱动AUV的运动控制稳定性和控制律进行了广泛的研究,包括轨迹跟踪[3-5]、路径点跟踪[6]、水下管道跟踪[7-8]、水下入坞控制、水下避障[9]等,但是这些运动控制研究通常基于三自由度的全驱动或欠驱动AUV动力学模型,着重关注AUV三自由度的运动特性,忽略了其他的运动特性。如Xiang等[10]基于反步法和李雅普诺夫直接法设计了AUV水平面运动控制器。Xu等[11]针对欠驱动AUV的水平面轨迹跟踪问题设计了自适应动态滑模控制器。也有一些研究者直接基于五或六自由度AUV动力学模型进行控制器设计,如Khoshnam等[12]设计了神经网络自适应鲁棒控制器,进行了海流扰动下AUV三维轨迹跟踪运动仿真,取得了较好的跟踪效果。王宏健等[13]设计了滤波反步法控制器,完成了水下三维曲线轨迹的跟踪运动仿真。贾鸣鹤等[14]设计了神经网络自适应反馈控制器,完成了AUV对三维螺旋下潜轨迹的跟踪。
本文首先给出了欠驱动六自由度AUV动力学模型和大部分该AUV的水动力导数。之后,通过虚拟目标法建立了欠驱动AUV的轨迹跟踪误差方程,并设计了DRNN-S控制器。最后,本文在Matlab平台上进行了欠驱动AUV三维曲线轨迹跟踪运动仿真,展示了轨迹跟踪过程中的AUV姿态变化、AUV舵角响应、推力响应。仿真结果显示,DRNN-S控制器可用于欠驱动AUV的三维轨迹跟踪控制。
1 AUV动力学模型
水下机器人六自由度动力学与运动学方程[15]如下:
式中:M为惯量矩阵,包含AUV的质量属性和惯性类水动力系数;C和D阵为离心力和科氏力矩阵,包含众多粘性项水动力导数; τ为驱动力和力矩;f为扰动力和力矩项;JΘ为艇体坐标系到固定坐标系的变换矩阵; ς ={u,v,w,p,q,r}为机器人的六自由度速度和角速度分量,其中,u为艇体轴向速度,v为艇体侧向速度,w为艇体垂向速度,p为艇体横摇角速度,q为纵摇角速度,r为首摇角速度;G为艇体回复力矩;η={x,y,z,φ,θ,ψ}为固定坐标系下的AUV位姿,x,y,z为AUV重心位置坐标,φ为横滚角, θ为纵倾角, ψ 为回转角。
zg为艇体坐标系下重心的垂向坐标,本文默认艇体坐标系原点在AUV重心,且忽略运动过程中AUV重心位置的变化,有zg=0。zb为艇体坐标系下AUV浮心垂向坐标,对于水下机器人,通常有zb>0。
2 AUV三维轨迹跟踪误差方程
如图1所示,{N}为固定坐标系,{B}为艇体坐标系,{V}为跟踪轨迹上的虚拟坐标系。要保证AUV能够实时跟踪三维曲线轨迹,{B}应与{V}一直保持重合。
图1 {N},{B},{V}坐标系Fig.1 {N}, {B} and {V} coordinate system
定义{N}坐标系下的跟踪误差为ηe=[x-xdy-yd z-zd]T。{B}坐标系下的跟踪误差为 εe=[xeyeze]T,两坐标系下的运动误差有如下关系[16-17]:
对式(2)微分可得:
展开式(4)可化简如式(5)所示,经以上述变换后得到{B}坐标系下的误差方程以及误差微分方程。之后,将根据运动误差方程,针对欠驱动AUV设计DRNN-S控制器,控制器输出轴向驱动力 τx,垂直舵角 δr和水平舵角 δs。本文运动仿真中,设定轴向驱动力取值范围为 τx∈[0, 500],N。设定舵角范围为δr/δs∈ [-25, 25]。
3 DRNN-S自适应控制器
由于欠驱动AUV动力学模型的强非线性和耦合性,三维轨迹跟踪运动中使用线性控制器往往无法取得较好的跟踪效果。本文设计了DRNN-S控制器,使用混合控制器可以避免DRNN在线迭代学习过程中不容易发散,而神经网络又能补偿S面控制器的输出,提高S面控制器的鲁棒性。S面控制器是一种非线性无模型控制器,类似模糊PD控制器,对于非线性系统有较好的效果,得到了大量的应用和改进。李岳明等[18]在S面基础上改进提出了自适应S面控制器,并基于李雅普诺夫稳定性理论进行了稳定性分析。仿真表明自适应S面控制可以显著减小超调、加速收敛。自适应S面位置跟踪方程如下[18]:
式中:us为S面控制器的输出量,k1和k2是增益参数,e,e˙ 为输入位置偏差和偏差微分, Δf为适应环境干扰的自适应调整项。S(Δe0)为S控制函数,et为t时刻位置偏差, γ 为使能因子, δ为低通滤波因子。 αt为时间渐消因子。 βt为时刻t速消因子。仿真中取增益参数如下:
DRNN是一种3层在线学习神经网络,相对于传统的前馈神经网络,该网络对非线性系统有更好的拟合效果。DRNN的性能指标函数如下:
其中混合控制器总输出ut(k)=ud(k)+us(k)。仿真初始阶段,自适应S面输出作为总输出的主要部分。随着DRNN的不断迭代,神经网络对非线性动力学模型的拟合度提高,均方误差E(k)趋于零,DRNN的输出量ud(k)逐渐作为总输出的主要部分。当环境发生改变时,DRNN拟合效果变差,自适应S面控制器再次作为总输出的主要部分。
4 仿真结果与讨论
仿真实验在Matlab平台上进行。仿真使用的流线型AUV动力学方程如式(1),AUV驱动方式为尾部单螺旋桨推进器和尾部十字形舵。方程所用到的系数如表1所示,包括了AUV全部惯性类水动力系数和部分粘性类水动力系数。动力学模型中的不确定部分使用下式模拟:
表1 AUV水动力系数表Tab.1 The hydrodynamic coefficients for an AUV
其中,cw1=0.5,cw2=0.25,cw3=0.5。
AUV质量属性为特征长度L=2.38 m,m=167 kg,Ixx= 4.73 kg·m2,Iyy= 70.27 kg·m2,Izz= 71.38 kg·m2。忽略AUV非对角转动惯量。
三维曲线轨迹方程如下:
图2~图4为了欠驱动AUV三维轨迹跟踪效果。图2中,AUV从[-50 50 0]位置出发,开始跟踪三维曲线轨迹,轨迹起点为[ 0 0 0],终点为[500 -200 50]。图3和图4为轨迹跟踪运动在x-y和x-z平面的投影,可以看出在x=200和x=400处,由于AUV十字舵的耦合效应,导致水平舵受到较大影响,舵效变差,垂直跟踪误差变大。图5为AUV在x,y,z方向的跟踪误差ex,ey,ez,在跟踪轨迹曲率变化剧烈的地方,跟踪误差也变大了。但总体来看,跟踪误差还是较小的。结合图6,由于欠驱动AUV动力学模型的强耦合性,轨迹曲率变化剧烈的地方,尾舵操舵幅度也变大了,垂直舵和水平舵呈现了类似的操舵响应。图7和图8为AUV轴向速度跟踪误差和推力变化,在仿真初始阶段,由于AUV的起点与轨迹起点不重合,AUV保持了较大的推力400N,以超过期望值的速度趋向期望轨迹,当接近期望轨迹后,推力下降,轴向速度逐渐跟踪上期望速度。
图2 AUV三维轨迹跟踪Fig.2 Three-dimensional trajectory tracking for an AUV
图3 三维轨迹跟踪x-y平面投影Fig.3 XY plane prejection for three-dimensional trajectory tracking
图4 三维轨迹跟踪x-z平面投影Fig.4 XZ plane prejection for three-dimensional trajectory tracking
图5 位置跟踪偏差Fig.5 Tracking errors
图6 舵角响应Fig.6 Rudder response
图7 轴向速度跟踪偏差Fig.7 X-axis velocity error
图8 推力响应Fig.8 Thrust response
综上,基于DRNN-S自适应控制器,欠驱动AUV能以较小误差实时跟踪三维曲线轨迹。
5 结 语
本文通过在Matlab平台进行仿真,验证了DRNNS非线性无模型控制器在欠驱动AUV三维轨迹跟踪任务中有良好的控制效果,基于虚拟目标法建立的跟踪误差方程,AUV能保持较小的跟踪误差对曲线轨迹进行实时跟踪。通过组合DRNN与自适应S面控制器,建立了DRNN-S混合控制器。通过组合两种非线性鲁棒控制器,一方面提高了神经网络对非线性强耦合动力学模型的拟合效果,克服了神经网络直接拟合动力学模型时容易发散的问题。另一方面,由于DRNN在线学习后可以补偿S面控制器的输出,减少了手动调整S面控制器增益参数的工作量。