大小舵布局水下无人航行器最优控制分配方法
doi: 10.7641/CTA.2024.30131
张鑫1,2 , 胡志强1 , 刘健1 , 曾俊宝1
1. 中国科学院沈阳自动化研究所, 辽宁 沈阳 110169
2. 中国科学院大学, 北京 101408
基金项目: 中国科学院青年创新促进会项目资助.
Optimal control allocation method for the autonomous underwater vehicle with big and small rudders layout
ZHANG Xin1,2 , HU Zhi-qiang1 , LIU Jian1 , ZENG Jun-bao1
1. Shenyang Institute of Automation Chinese Academy of Sciences, Shenyang Liaoning 110169 , China
2. University of Chinese Academy of Sciences, Beijing 101408 , China
Funds: Supported by the Youth Innovation Promotion Association.
摘要
针对中高速水下无人航行器(AUV)提高容错控制能力、兼顾机动性与控制精度等需求, 本文提出一种“非对称X型艉舵+小水平艏舵”的AUV舵布局策略, 并研究与之相适应的高效控制分配方法. 本文提出的舵布局策略通过大小舵配合, 在力矩需求较小时, 优先使用小舵以提高控制精度, 力矩需求较大时, 大小舵协作以满足机动性需求. 建立了适用于该布局策略的控制分配模型并转化为二次规划问题, 采用两阶段法求解该模型, 依次为确定大舵使能阶段和求解小舵需求阶段. 所形成的二次规划问题采用OSQP求解方法, 首先, 通过快速迭代得到中低精度解, 再进行一次解精确处理, 兼顾求解效率和精度. 最后, 通过机动性与精度、容错控制及不同二次规划方法, 求解效率对比等3方面仿真, 验证了研究方法的有效性.
Abstract
In order to improve the fault-tolerant control ability of medium-high speed autonomous underwater vehicle (AUV) and take into account maneuverability and control accuracy, an AUV rudder layout strategy of“asymmetric X-type stern rudder + small horizontal bow rudder” is proposed and an efficient control allocation method is studied. The small rudders are preferred to improve the control accuracy when the torque demand is small, and all the rudders cooperate to meet the maneuverability demand when the torque demand is large. Then a control allocation model suitable for the layout strategy is established and the model is transformed to a quadratic programming problem. The two-stage method is used to solve the model: the stage of determining the enable of the large rudders and the stage of solving the demand of the small rudders. The operator splitting quadratic program (OSQP) method is used to solve the quadratic programming problem. In the OSQP method, firstly, the low and medium precision solution is obtained by fast iteration, and then the solution precision is processed once. Finally, the effectiveness of the proposed method is verified by the simulation of maneuverability and accuracy, fault-tolerant control and the comparison of solving efficiency of different quadratic programming methods.
1 引言
水下无人航行器(autonomous underwater vehicle,AUV)控制分配技术是提高 AUV容错控制能力、降低AUV能源消耗的重要手段. 鉴于X型舵布局相比十字型舵具有更好的容错性和操纵性 [1],因此很多AUV 采用该布局,大量AUV控制分配研究与应用围绕此类 AUV(X-AUV)开展.
Yuan等 [2] 结合轨迹跟踪控制,研究了滑模 +观测器+控制分配的X-AUV控制策略,在控制分配层考虑典型舵故障(丢失、卡壳或变形)及舵饱和约束,构造了非线性二次规划的控制分配问题,并基于量子粒子群算法(quantum particle swarm optimization,QSOP)求解. 俞建成等 [3] 以7000 m载人潜水器为对象,重点阐述了控制分配的建模问题,在模型中较全面考虑了目标函数形式、各类约束条件、权系数调整原则及容错能力,并采用序列二次规划(sequential quadratic programming,SQP)求解. 李岳明等 [4] 针对 X 舵 AUV 建立了非线性控制分配模型,并采用改进的拉格朗日法求解,仿真证明了,相比传统SQP 算法,该算法在效率上有所提升,求解时间为20 ms级. 张英浩 [5] 针对X 舵AUV建立了最小二乘形式目标并考虑舵角、控制指令等式约束的控制分配问题,采用拉格朗日法、不动点法及Levy飞行法进行求解,并阐述了其容错控制能力. 在相似对象,如船舶领域中,Skulstad等 [6] 也建立了类似的控制分配模型,并采用神经网络求解. 综上,针对AUV或相关航行器的控制分配技术研究主要集中在两方面: 一是与控制算法结合,以提高控制和容错性能; 二是针对所建立的控制分配模型,探索高效的优化求解策略.
本文借鉴上述研究成果,并进一步考虑工程中其他需求: 中高速协同机动或自主回收时机动性与精度需兼顾,大样本加速仿真中对求解效率要求. 针对该需求,本文提出一种“非对称X型艉舵 +小水平艏舵”的舵布局方式,考虑机动性、控制精度、能耗等目标,舵饱和卡死等约束,建立控制分配模型. 在模型求解方面,结合最优化求解领域研究进展,通过对比,选用算子分裂二次规划(operator splitting quadratic program,OSQP)算法进行快速求解,该算法由 Bartolomeo Stellato提出,且被证明在多类优化问题中有较高效率 [7-10] .
2 “非对称X型艉舵+小水平艏舵”布局
一般X-AUV的4片舵大小相同,在水平和垂直面皆呈对称布局,在舵角度控制精度一定的情况下,很难兼顾位置姿态控制精度和机动性: 舵板越小控制精度越高,机动性越差; 舵板越大控制精度越差,机动性越高. 而一些面向复杂行为的AUV要求在某些行为中需要高机动,如避碰、围捕等,在另一些行为中又要求高精度,如协同对接作业等,为兼顾这两方面需求,本文提出一种“非对称X型艉舵+小水平艏舵”的舵布局方式,如图1所示. 艉舵采用X型舵,左下、右下采用大舵; 左上、右上采用小舵; 艏部采用2片小水平舵,即艏左、艏右. 基本使用策略是: 当操纵力矩需求较小时,优先使用小舵以提高控制精度,当操纵力矩需求较大时,大小舵同时动作以满足机动性需求.
1AUV舵布局示意图
Fig.1AUV rudder layout diagram
3 AUV控制分配问题建模
一般采用控制分配的AUV的控制结构由“控制器+控制分配算法”两层组成. 控制器根据姿态控制偏差给出俯仰、偏航、横滚3个方向的控制力矩,控制分配算法考虑执行机构操纵约束,并以一定准则将控制力矩分配到各个执行机构,如图2所示.
2AUV姿态控制结构
Fig.2AUV attitude control structure
3.1 两阶段控制分配策略
本文所提出舵布局中小舵一直参与控制,大舵根据操纵力矩需求切入切出,为实现大舵的平稳切换,本文采用两阶段的控制分配求解策略:
1)首先设置大舵的切换缓冲区间(包括上限和下限两个值)和使能标志,若舵角需求量小于下限,则大舵使能为关闭; 若大于上限,则大舵使能为启动; 若在区间内,则保持大舵为上一周期使能状态;
2)第1阶段假设所有舵都参与控制,求解出所有舵需求,并根据大舵舵角需求与缓冲区关系设置其使能,若使能标志为启动,则第1阶段解即为最终解,不需要执行第2阶段;
3)若使能标志为关闭,则将大舵置为零位,仅求解 4个小舵的控制分配问题.
3.2 控制分配原始问题模型
本节主要阐述第1阶段控制分配模型建立,将第1 阶段中大舵相关变量去掉,即构成第2阶段模型,因此第2阶段建模不再赘述.
1)待求解变量为: 舵角指令δii = 1,2,· · ·,6; 三轴操纵力矩(KcmdMcmdNcmd)等式约束松弛量εii = 1,2,3,即K松弛、M松弛、N松弛. 关于松弛变量,因三轴操纵力矩由控制器计算给出,在控制误差较大时,控制指令较大超出了舵能够提供的力矩,直接构造的力矩约束构成的可行空间可能不存在. 在工程中每个控制周期必须给出各舵角指令,即必须要有可行解,因此引入松弛变量,并在目标函数中加入松弛变量的优化目标.
2)目标函数为舵产生的阻力、舵角变化量及松弛量综合指标最小化,即
J=minδi,εi 12i=16 Xδi2u2δi2+i=16 Wiδi-δ0,i2+i=13 Ciεi2
(1)
其中:Xδi2为第i片舵阻力系数; u为前向速度,由传感器实时测量,在每个求解周期内认为是常数; δ0,i为第i片舵当前舵角值; Wi为第i片舵角变化量指标权重; Ci为第i个松弛变量权重.
3)约束条件.
加入松弛变量的力矩指令等式约束,即
i=14 Kδiu2δi+ε1=Kcmdi=14 Mδiu2δi+ε2=Mcmdi=14 Nδiu2δi+ε3=Ncmd
(2)
变量限幅:
δ i min δ i δ i max , K max K min ε 1 K max K min , M max M min ε 2 M max M min , M max M min ε 3 N max N min ,
(3)
其中KmaxKminMmaxMminNmaxNmin分别为横滚、俯仰、偏航控制力矩指令上下限.
3.3 控制分配问题转化为二次规划标准形式
描述成二次规划问题的标准形式,如下:
1)待求解变量:
x=x1 x2 x9T=δ1 δ6 ε1 ε2 ε3.
2)目标函数:
J=minx,z 12xTPx+Qx,
(4)
其中:
P=diagXδ12u2+W1, , Xδ62u2+W6, C1, C2, C3,
Q=W1δ0, 1 W6δ0, 6 0 0 0T.
3)约束条件:
将式(2)–(3)表示为矩阵形式,引入辅助变量 z =(z1 · · · z12 T,将不等式约束转化为等式约束,即
Ax=z,zC,C=L U,
(5)
A=Kδ1u2Kδ2u2Mδ1u2Mδ2u2Nδ1u2Nδ2u2I9×9Kδ6u2 1 0 0Mδ6u2 0 1 0Nδ6u2 0 0 1,
L=Kcmd-ΔMcmd-ΔNcmd-Δδ1minδ6min-Kmax+Kmin-Mmax+Mmin-Nmax+Nmin, U=Kcmd+ΔMcmd+ΔNcmd+Δδ1maxδ6minKmax-KminMmax-MminNmax-Nmin,
其中为极小量,如取 = 10−6,主要作用是防止计算机求解时,数值截断造成上限比下限小的情况.
4 AUV控制分配问题求解
控制分配问题转化为上述标准的约束二次规划问题,根据已有的二次规划求解技术研究进展,本文采用OSQP求解方法,该方法是基于交替方向乘子法(alternating direction method of multipliers,ADMM)算法的改进,可返回适当精度的解,支持并行求解,并采用稀疏矩阵表示和求解,节省矩阵存储空间和运算时间,该算法具有较高的求解效率. 下面阐述下基于该算法的控制分配求解过程.
步骤 1 给定初始值: 迭代次数k = 0,原变量x 的初值x 0 ,对偶变量y初值y 0 ,辅助变量z初值z 0 ,变量x惩罚因子σ >0,变量y惩罚因子ρ >0,变量更新加权因子α ∈(0,2);
步骤 2 算法基于对偶上升的数值迭代求解策略,设第k次迭代解表示为(x k z k),基于该解构建k + 1次迭代的拉格朗日函数,即式(6),为公式表达简洁,第k + 1次拉格朗日函数变量(x~k+1z~k+1vk+1)表示为(x~z~v),其中v为约束条件的拉格朗日乘子.
L(x~,z~,v)=minx~,z~ 12x~TPx~+vT(Ax~-z~)+yTz~-zk+σ2x~-xk22+ρ2z~-zk22.
(6)
一阶最优性条件为
L x ~ k + 1 = P x ~ k + 1 + σ x ~ k + 1 x k + A T v k + 1 = 0 , L z ~ k + 1 = ρ z ~ k + 1 z k + y k v k + 1 = 0 , L v k + 1 = A x ~ k + 1 z ~ k + 1 = 0 .
(7)
消除变量z~k+1整理得到齐次正定线性方程组
P+σIATA-ρ-1Ix~k+1vk+1=σxkzk-ρ-1yk.
(8)
可采用LDL分解求解得到x~k+1vk+1通过最优性条件第2个等式计算出,即
z~k+1=zk+ρ-1vk+1-yk.
(9)
步骤 3 以加权方式更新x k+1,即
xk+1αx~k+1+(1-α)xk.
(10)
步骤 4 以加权并向约束空间投影的方式更新 z k+1,即
zk+1Παz~k+1+(1-α)zk+ρ-1yk,
(11)
Π(·)表示该点在集合C上的投影,其几何意义是若更新后的变量不在约束空间内,则对于强凸问题其有约束的最优点为无约束最优点距离约束空间最近的点,即无约束最优点在约束空间上的投影.
步骤 5 以加权及对偶上升的方式更新对偶变量
yk+1yk+ραz~k+1+(1-α)zk-zk+1.
(12)
步骤 6 k k + 1,返回步骤2,迭代直至满足迭代终止条件.
步骤 7 解的精确处理.
一般上述迭代过程终止后,可以获得中低精度的解,为获取更高精度的解,可增加该精确求解过程,首先根据y识别出积极的约束下限和上限.
积极约束下限编号集合为
lI=i{1, , m}yi<0,
积极约束上限编号集合为
uI=i{1, , m}yi>0,
则根据对偶问题一阶最优性条件,求解下列方程组,得到x的最终精确解为
PAlITAuITAlI00AuI00xylIyuI0LlIUuI.
(13)
5 仿真验证
本节主要对文中所提出的舵布局,对机动性和精度兼顾的效果、容错效果及与其他二次规划求解算法对比求解效率等3方面进行验证. 基本的仿真条件为:
1)硬件环境: 1 GHz主频CPU,2 G内存的嵌入式控制器;
2)仿真模型: 采用某型AUV水动力参数并建立了 AUV六自由度运动学–动力学非线性模型 [11];
3)舵机模型: 采用第1节所提布局,且假设大舵面积为小舵3倍,并加入±1°的随机控制扰动;
4)行为设计: 设计2个同时变深、变向运动.
仿真初始状态: 速度2 m/s,深度20 m,航向90°; 第 1个动作: 0∼2000 s,变深、变向至深度 500 m,航向 10°; 第2个动作: 2000∼4000 s,变深、变向至深度 100 m,航向100°.
5)大舵切换缓冲区参数: [3°,5°].
5.1 控制性能验证
通过与所有舵全部参与控制的情况(策略2)对比,说明本文所提舵布局及控制分配策略(策略1)可兼顾机动性和精度,两种情况仿真结果如图3所示. 两种策略下变深、变向机动性无差别; 控制精度方面策略 2(均方根误差为0.21 m)显著优于策略1(均方根误差为0.72 m),由舵曲线放大图可见,策略1在力矩需求变小时关闭了大舵(约500 s时). 证明了策略1兼顾机动性与精度的有效性.
5.2 容错性能验证
分别在单舵卡死(1舵卡死在8°)、双舵卡死(1舵卡死在8°,2舵卡死在–10°)两种状态下,验证了本文方法的容错性.
从仿真结果可见:
1)正常状态下(图3(c)),每次变深变向开始一段大机动时存在约束松弛,之后约束基本都可满足,各个舵主要以产生最优目标进行动作,以实现对深度、俯仰角、航向角、横滚角指令跟踪;
2)在单舵卡死状态下(图4(a)),损失了一定的操纵能力,此时需兼顾优化目标及约束满足情况. 由图可见深度、航向角等指令跟踪正常,仅调整过程比正常状态长,能降低机动性完成预期动作; 横滚角相对于俯仰和航向其跟踪误差较明显,主要原因是人为将松弛量权重设置远低于其他两个姿态角,即航行中允许存在一定横滚角.
3控制性能对比曲线
Fig.3Control performance comparison curve
3)在双舵卡死状态下(图4(b)),相对单舵卡死又进一步损失了操纵能力,能完成预期动作,仅机动性低于单舵卡死情况,各控制力矩的约束松弛更加明显.
测试结果表明,通过对各个舵的自适应最优分配,AUV能够在舵正常和部分故障情况下,完成预期机动动作,且算法稳定性较高,不会出现迭代次数过多和无可行解情况,算法求解效率能够达到嵌入式芯片中毫秒级求解,满足AUV在线控制需求.
5.3 求解效率对比
在相同的控制分配模型和软硬件条件(嵌入式 Linux+arm64架构+1 G主频+2 G内存)下,本文所采用的求解方法(OSQP)与具有代表性的几类优化求解算法进行了对比分析,包括: 内点法(interior point OPTimizer,IPOPT)、积极集法(active set method,ASM)、粒子群算法(particle swarm optimization,PSO). 上述算法求解器皆采用相关开源C代码,由于篇幅所限,仅给出仿真结果,如表1所示.
4控制分配容错控制曲线
Fig.4Fault-tolerant control with control allocation
表1可见,按照目标值最优性排序本文采用的 OSQP算法得到的目标值最小,即解最优; 按照求解时间排序,OSQP求解时间仅次于ASM算法,但ASM求解精度不足. 综合评估OSQP求解效率较高.
6 结论
结合AUV机动与控制能力、节能减阻、自适应容错及在线快速求解等工程需求和当前最优化技术研究进展,研究适应该需求的AUV舵布局及其最优化控制分配方法. 首先,基于X型舵布局在操纵性方面的优势,本文提出一种“非对称X型艉舵+小水平艏舵”的舵布局方式,基本操纵策略是力矩需求较小时,优先使用小舵以提高控制精度,力矩需求较大时,大小舵同时动作以满足机动性需求. 进一步,建立了适用于该策略的控制分配模型,采用两阶段法求解该模型: 第1阶段求解出大舵使能需求,并通过设置大舵切换缓冲区保证切换平稳; 若大舵未使能,则执行第2阶段求解小舵需求. 对于形成的二次规划控制分配模型采用OSQP 求解方法,从求解步骤可见,每个控制周期需要进行两次齐次正定线性方程组求解,一次 KKT(Karush-Kuhn-Tucker conditions)条件求解; 另一次针对需要返回更高精度的解,在每个周期增加一次精确求解过程,其他迭代步骤皆为简单计算,兼顾求解效率和精度. 最后,通过仿真分析验证了所提控制分配方法的有效性,包括3方面内容: 不同策略下机动性、精度对比、容错控制效果展示及在求解效率方面与其他二次规划求解算法的对比.
14种算法求解对比
Table1The comparison of four algorithms
1AUV舵布局示意图
Fig.1AUV rudder layout diagram
2AUV姿态控制结构
Fig.2AUV attitude control structure
3控制性能对比曲线
Fig.3Control performance comparison curve
4控制分配容错控制曲线
Fig.4Fault-tolerant control with control allocation
14种算法求解对比
Table1The comparison of four algorithms
CAO Zhijun, XIAO Changrun, LI Shiqiang,et al. Comparative analysis of stability of X-rudder and C-rudder submarine. Ship Science and Technology,2021,43(4):51-55.(曹植珺, 肖昌润, 李士强, 等. X舵与十字舵潜艇稳定性对比分析. 舰船科学技术,2021,43(4):51-55.)
YUAN C, SHUAI C, MA J,et al. An efficient control allocation algorithm for over-actuated AUVs trajectory tracking with fault-tolerant control. Ocean Engineering,2023,273:1-12.
YU Jiancheng, ZHANG Aiqun, WANG Xiaohui. Constrained nonlinear control allocation of a 7000 m manned aubmarine using sequential quadratic programming. Information and Control,2006,35(4):508-512.(俞建成, 张艾群, 王晓辉. 基于SQP算法的7000 m载人潜水器有约束非线性控制分配研究. 信息与控制,2006,35(4):508-512.)
LI Yueming, WANG Xiaoping, ZHANG Junjun,et al. X-rudder autonomous underwater vehicle control based on improved quadratic programming algorithm. Journal of Shanghai Jiaotong University,2020,54(5):524-531.(李岳明, 王小平, 张军军, 等. 基于改进二次规划算法的X舵智能水下机器人控制分配. 上海交通大学学报,2020,54(5):524-531.)
ZHANG Yinghao. Reseach on X-Rudder AUV motion control. Harbin: Harbin Engineering University,2019.(张英浩. X舵智能水下机器人运动控制方法研究. 哈尔滨: 哈尔滨工程大学,2019.)
SKULSTAD R, LI G Y, FOSSEN T I,et al. Constrained control allocation for dynamic ship positioning using deep neural network. Ocean Engineering,2023,279:1-14.
BARTOLOMEO S, GORAN B, PAUL G,et al. An operator splitting solver for quadratic programs. UKACC the 12th International Conference on Control. Sheffield: UKACC,2018:637-672.
BANJAC G, GOULART P, STELLATO B,et al. Infeasibility detection in the alternating direction method of multipliers for convex optimization. Journal of Optimization Theory and Applications,2019,183(2):490-519.
SCHUBIGER M, BANJAC G, LYGEROS J. GPU acceleration of ADMM for large-scale quadratic programming. Journal of Parallel and Distributed Computing,2020,144:55-67.
BANJAC G, STELLATO B, MOEHLE N,et al. Embedded code generation using the OSQP solver. IEEE the 56th Annual Conference on Decision and Control. Melbourne: IEEE,2017:1906-1911.
PRESTERO T. Development of a six-degree of freedom simulation model for the REMUS autonomous underwater vehicle. The 12th International Symposium on Unmanned Untethered Submersible Technology. Honolulu: IEEE,2001:450-455.