基于MPC 算法的AUV 空间航迹跟踪控制
2021-01-19张子昌徐雪峰侯成刚
张子昌,徐雪峰,侯成刚
(天津航海仪器研究所九江分部,江西 九江 332007)
0 引 言
AUV 作为一种高度自动化水下自主航行装备,对海洋开发和探测有着重要的作用和意义。对AUV 来说,自主航行控制作为其核心关键技术,是AUV 真正实现自治的必要条件,因此也一直是备受关注的研究热点。对AUV 自主航行控制技术来说,除基础的航向、深度和姿态控制外,跟踪预设的期望路径点航行是其非常重要和关键的功能。本文主要针对采用首、尾舵控制机构的AUV,研究其空间路径点的跟踪控制算法。
水下潜器的路径跟踪控制问题是近年来备受关注的热门课题,Do K.D[1]考虑了仅有4 个推力器的AUV路径跟踪问题,结合Lyapunov 直接法、反演方法以及参数映射等方法提出了一种AUV 以定常轴向速度跟踪指定路径的方法。王银涛等[2]研究了AUV 定常速度下的非时间参考路径跟踪问题,将跟踪控制问题分为导引和控制2 个部分,导引部分基于视线导引原理输出AUV 参考航向,控制部分构造了一种将航向控制器和路径跟踪控制器并行结合的混合型路径跟踪控制器。So-Ryeok Oh 等[3]针对欠驱动船舶的路径点跟踪控制在视线导航法的基础上采用了基于状态空间形式的模型预测控制算法,并通过仿真验证了模型预测控制相较传统的PID 控制算法具有更佳的控制效果。王宏健等[4]研究了欠驱动自主水下航行器的三维路径跟踪控制问题,针对基于虚拟向导建立的三维路径跟踪误差模型,采用滤波反步法设计跟踪控制器,增加了系统对噪声的鲁棒性。朱大奇等[5]针对水下机器人轨迹跟踪控制的速度跳变问题,提出一种基于生物启发神经动力学模型的自治水下机器人三维轨迹跟踪控制算法,基于水下机器人对算法进行了仿真实验。文献[6 - 7]提出了自适应区域跟踪控制方法,通过对AUV 建模不确定性项进行在线辨识,使AUV 能够从任意初始位姿收敛到目标区域,但在目标区域边界上出现容易出现震荡而难以收敛于目标区域中。文献[8]进一步地提出了一种PD 神经滑模自适应区域跟踪控制方法,采用径向基函数神经网络对动力学模型中的未知项进行自适应估计,采用滑模控制项对神经网络逼近误差进行补偿。程相勤[9]针对欠驱动UUV 的三维路径跟踪问题提出了一种离散滑模预测的控制方法,提高了欠驱动UUV 在海流干扰情况下的空间曲线路径跟踪控制的精度并提升了控制系统的鲁棒性。
本文首先应用视线导航法和垂直面制导算法将路径点跟踪控制问题转化为航向、深度和纵倾的跟踪控制问题,再设计基于状态空间模型的模型预测控制算法使得AUV 能收敛到期望航向、深度和纵倾达到预期的路径点跟踪控制效果。
1 系统模型建立
由于AUV 在水下的航行是六自由度的空间运动,对于其六自由度的运动学以及动力学建模,可参考一般潜艇以及AUV(自主水下机器人)的建模方法。参考文献[10]中给出的AUV6 空间运动坐标系,如图1所示。
结合刚体动力学方程的矢量表达形式,可将AUV 的动力学以及运动学方程[11]表示为:
图 1 AUV 的运动坐标系以及固定坐标系Fig. 1Body-fixed frame and earth-fixed frame for AUV
式中:ν=[u,v,w,p,q,r]T为AUV 在运动坐标系下分解的速度以及角速度,u,v,w分别为运动坐标系下的纵向、横向和垂向线速度,p,q,r分别为运动坐标系下的横倾角速度、纵倾角速度和转首角速度;η=[x,y,z,φ,θ,ψ]为固定坐标系下的位置和欧拉角,x,y,z 分别为固定坐标系下的纵向、横向以及垂向位置,φ,θ,ψ分别为固定坐标系下的横倾角、纵倾角和航向角; M 为包含附加质量的系统惯性矩阵, C (ν)为包含附加质量的刚体科里奥利向心力矩阵;D(ν)为阻尼系数矩阵;g(η)为重力和浮力引起的均衡力矢量;g0为AUV 压载水舱提供的均衡力矢量; ω为风、浪、流等外部环境干扰作用力和力矩;τ=[Fx,Fy,Fz,Mx,My,Mz]为AUV 推进系统的力和力矩矢量,考虑到航行的能耗,在不需要精确动力定位航行时,依靠全方位推进器产生纵向推力 Fx,转首力矩 Mz和纵倾力矩 My作为航行的主要驱动力更为节省能源,所以可认为系统的被控输入量只有此3 项,而其他3 项可由控制器生成的控制输入再计算得出,且经计算验证均为较小的值。J(η)为运动坐标系到固定坐标系的转换矩阵,其表达式为:
2 航迹制导算法
针对水下潜器的路径跟踪问题的误差建模主要有2 种思路,一种是在Serret-frenet 坐标系下建立误差模型,另一种为运用导航视线法将跟踪误差模型简化为简单的航速控制、航向控制以及纵倾控制问题,目前水平面视线导航法已经应用得相当成熟,其原理如图2 所示。要驱使AUV 收敛到由水平面离散路径点(···,Pk-1,Pk,Pk+1,···)构成的路径,则艇体质心至路径段(Pk-1,Pk) 的 横向距离 ek需收敛至0,同时航向角 ψ收敛至αk-1。运用视线导航法,首先由艇体质心至(Pk-1,Pk)段路径的垂直距离 ek以 及Δ=n1L ( L为艇长, n1为一正实数)可计算出视线导引点PLOS(xlos,ylos)在固定坐标系下的坐标,再求取艇体质心至视线导引点PLOS的视线导航航向角ψlos, 则航向角 ψ收敛至 ψlos可确保艇体位置收敛到直线路径段(Pk-1,Pk)。当艇体质心位于以路径点 Pk半径为 R =n2L( n2为正实数)的圆内,则将导航的目标点切换至下一个目标点Pk+1。
图 2 直线航迹段视线导航法示意图Fig. 2Body-fixed frame and earth-fixed frame for AUV
垂直面航迹制导算法如果采用视线导航算法将垂直面位置偏差解算为指令纵倾的会造成以下问题:1)AUV 垂直面内航行对纵倾角有一定限制,采用视线导航法进行解算将造成部分参数难以调整。2)AUV在进行垂直面机动控制的过程中,深度速率的控制必须同时考虑垂向速度和纵倾,采用视线导航法解算指令纵倾角而忽略垂向速度,将引起较大的航迹控制偏差。因此,本文通过分析AUV 垂直面运动特性以及仿真验证等方法,采用指令深度速率、指令深度以及指令纵倾三者结合的方式作为垂直面的航迹跟踪控制算法。
其中指令深度与指令纵倾的解算方法如图3 所示。当前时刻的指令深度为AUV 当前位置点在航迹线上的投影点的垂直位置,其解算方法为:
式中:为距目标航迹点的纵向位移,指令纵倾为当前航迹线的期望潜浮角χk:=atan2(zk+1-zk,xk+1-xk)。由航迹线解算出的指令深度速率与AUV 的当前航速相关,其解算方法为:
图 3 垂直面指令深度、指令纵倾、指令深度速率解算方法Fig. 3Calculation method of vertical plane command depth,command trim ,command depth rate
3 控制器设计
模型预测控制(Model Predictive Control, MPC)是20 世纪70 年代发展起来的一类控制算法,算法采用多步预测、滚动优化以及反馈校正等控制策略,使得模型预测控制具有控制效果好、鲁棒性强且对模型精确性要求较低等优点,同时可以考虑到执行机构的约束性。预测控制算法另一个明显的优势便是可以将各类约束条件加入到控制过程当中使得控制系统更具有安全性[12],因此基于以上几点考虑,本文设计一种基于状态空间模型的预测控制算法用于AUV 深度控制算法。
3.1 线性化模型
由于AUV 的非线性模型十分复杂,不宜直接作为控制器设计的模型,故需将AUV 的六自由度非线性模型简化成线性模型以便于控制器的设计。本文考虑路径点跟踪控制问题,并假定AUV 的纵向速度 u保持不变,即u˙=0,同时忽略水平面和垂直面运动的耦合作用,将AUV 的非线性模型线性化成状态方程形式的系统模型,下面以垂直面控制为例介绍控制器设计过程。
其中,x=[w,q,θ,ζ]T是系统的状态量, u =Mz为系统的控制输入量是被控系统的输出量。 Ad,Bd, Cd分别为离散化后的状态空间模型矩阵。当外部环境存在干扰时,由于典型的状态反馈控制律u(k)=-Kx(k)中不包含积分环节,所以针对状态反馈控制,状态量一般都会存在静差,考虑到实际建模的误差以及控制过程中存在的噪声,为消除稳态时的静差,在基于状态空间方程的预测控制中,采用基于增广状态的状态空间模型,用Δu(k) ( 其中Δu(k)=u(k)-u(k-1)为控制输入的变化率)代替u(k)作为控制输入量使系统能够实现无静差控制[13],则将状态空间方程改写成如下形式:
3.2 未来状态预测
不考虑测量噪声对状态量的影响,即整个状态向量是可测的,得zˆ(k|k)=z(k)(其中 ξ ˆ(k|k)代表 k时刻预估的 k 时刻的状态量估计值),设定预测时域为 Ny以及控制时域 Nc,系统的预测模型为:
3.3 约束优化
将性能指标函数定义为:
其中 r为设定的参考轨迹,也即由垂直面制导算法得出的动态期望航向角ψlos,其中 Q =diag(q1,···,qNy)为Ny维的输出误差权值矩阵, R =diag(r1,···,rNc) 为 Nc维的输入权值矩阵。
对于AUV 的路径跟踪控制问题而言,由于执行器的物理约束,转首力矩的大小受到一定的限制,也即控制输入量需满足一定的约束条件,也即u(k)需满足:
将式(13)代入式(15)并展开得到下式:
式中等号右边第1 项为确定值,与优化无关,在计算时可只考虑后2 项的影响,并将后2 项写成标准的二次型形式,同时将输入量的约束写成向量形式,则可将式(16)写成新的标准二次型约束优化问题,得到:
其中 S =HTQH+R, f=HTQT(Pξ(k)-r),W=[I -I]T,U=[,则式(18)也即标准的QP(二次规划)问题,采用二次规划算法便可求出式(18)的最优解,假设由式(19)计算出的最优解为 Δ Uopt(k),依据模型预测控制的滚动优化策略,取最优解的第1 列Δuopt(k)即可作为当前时刻的控制器输出增量:
则当前时刻的控制器最优输出值为上一时刻的控制器输出值加上当前时刻的控制器增量值,即
在此基础上进行滚动优化便可得出整个控制过程的最优控制输入。
4 仿真示例
本文采用Matlab/Simulink 仿真工具,首先设定空间离散路径点,并由AUV 实时位置信息,采用水平面视线导航算法和垂直面制导算法推算出动态的期望航向角、期望深度、期望纵倾、或深度速率,再由MPC控制器解算出期望控制输入量 Mz*,并通过执行器闭环模块得出最终的系统控制输入量,整个控制系统的原理框图如图3 所示。
设定控制机构需满足的约束条件为umin<u <umax,Δumin<Δu <Δumax,预测时域为 Ny为35,控制时域Nc为4。仿真算例1 为垂直面航迹控制,离散路径点序列为[0 0 30] [2000 0 260] [4 000 0 60] [6 000 0 160] [8 000 0 60] [10 000 0 160] [12 000 0 60] [14 000 0 60] [2 000 0 260] m,其路径点跟踪效果仿真示意图如图4 所示。
可知,AUV 能实现垂直面的路径点跟踪。图5 为路径跟踪过程中的纵倾和深度曲线,AUV 与设定路径的垂直距离误差仿真结果如图6 所示。
图 4 路径点跟踪控制原理框图Fig. 4Block diagram of waypoint tracking control principle
图 5 垂直面路径点跟踪曲线Fig. 5The curve of way-point following with current
图 6 纵倾和深度曲线Fig. 6The curve of trim and depth
仿真算例2 为空间路径点跟踪控制,空间路径点序列为[0 0 60],[2 000 2 000 140],[2 000 4 000 60], [0 6 000 140],[-2 000 4 000 60],[-2 000 2 000 140],[0 0 60] m,路径跟踪效果如图7 所示。图8 和图9 分别为水平面和垂直面的航迹偏差。
5 结 语
本文针对AUV 的空间路径点跟踪控制问题,采用水平面视线导航法计算AUV 指令航向,采用垂直面制导算法计算AUV 的垂直面指令深度、指令纵倾和指令深度速率,采用模型预测控制算法用于AUV 的航向和深度控制。仿真结果表明,空间航迹控制算法能达到较高的控制精度,采用的指令深度+指令纵倾+指令深度速率的控制方法能使AUV 尽快的航行至指令轨迹并跟踪垂直面航迹,分析航迹偏差曲线,可发现只有在航迹切换过程中才有明显的航迹偏差出现,且垂直面切换时潜浮角的改变越小,也即垂直面航迹越平坦时,航迹控制的精度也越高,对应的航迹切换过程中的航迹偏差也越小。
图 7 垂直距离偏差曲线Fig. 7The curve of vertical distance deviation
图 8 空间路径点跟踪曲线Fig. 8The curve of spatial way-point following with current
图 9 水平面航迹偏差曲线Fig. 9The curve of horizontal plane tracking error
图 10 垂直面航迹偏差曲线Fig. 10The curve of vertical plane horizontal plane tracking error