舰船科学技术  2022, Vol. 44 Issue (8): 64-68    DOI: 10.3404/j.issn.1672-7649.2022.08.013   PDF    
基于改进粒子群优化算法的自主水下航行器深度控制
罗建超1,2, 朱心科2     
1. 上海交通大学,上海 200240;
2. 自然资源部第二海洋研究所,浙江 杭州 310012
摘要: 为解决欠驱动自主式水下航行器的定深控制问题,建立欠驱动自主式水下航行器的数学模型,选用经典的PID控制器对其进行控制。为使控制器的各项性能指标良好,控制器的参数整定选用粒子群优化算法。粒子群算法在迭代过程中容易出现粒子早熟现象,为了避免这一现象,本文引入指数函数,对粒子群迭代公式的惯性权重进行动态调整,延长了粒子的大范围搜索时间。在Matlab 2019b环境下进行仿真,通过纵向对比,证明了改进算法的可行性,将改进后的算法与ZN整定算法进行对比,结果表明,改进粒子群算法表现更佳。
关键词: 粒子群优化     PID控制器     自主水下航行器     惯性权重    
Depth control of autonomous underwater vehicle based on improved particle swarm optimization algorithm
LUO Jian-chao1,2, ZHU Xin-ke2     
1. Shanghai Jiaotong University, Shanghai 200240, China;
2. Second Institute of Oceanography, Hangzhou 310012, China
Abstract: In order to solve the problem of depth determination control of the underactuated autonomous underwater vehicle, a mathematical model of the underactuated autonomous underwater vehicle was established, and the classical PID controller was used to control the underactuated autonomous underwater vehicle. In order to improve the performance of the controller, the particle swarm optimization algorithm is used to set the parameters of the controller. Particle swarm optimization (PSO) is prone to precocity in the iterative process. In order to avoid this phenomenon, this paper introduces exponential function to dynamically adjust the inertia weight of PSO iterative formula, which prolongs the large-range searching time of particles. The simulation result in Matlab 2019b demonstrated the feasibility of the improved algorithm. The improved algorithm is compared with the ZN tuning algorithm, and the results show that the improved particle swarm optimization algorithm performs better.
Key words: particle swarm optimization     PID controller     autonomous underwater vehicle     inertia weight    
0 引 言

近年来,自主水下航行器(automatic underwater vehicle,AUV)在海洋探测领域得到了越来越多的应用,尤其在海底地形勘测领域有着重要地位。然而,水下复杂的环境给AUV的控制带来挑战,欠驱动AUV的运动控制成为研究的热点,深度控制是其中一个经典的问题[1]

经典的PID控制器在欠驱动AUV的深度控制上应用广泛,神经网络、模糊系统[2]等被用来优化PID控制器。刘丽萍等[3]将自适应率引入控制器,得到的自适应反演滑模轨迹跟踪控制器对海流等因素带来的影响进行补偿,避免了对PID参数的整定。

粒子群优化算法(particle swarm optimization,PSO)是一种随机全局优化技术[4],其拥有代码量小、易于实现、参数较少等优点。胡坤等[5]利用PSO对系统的非线性PID控制参数进行优化;针对PSO易陷入局部最优解的问题,杨巍等[6]提出了动态权值自适应粒子群算法;在此基础上,张继荣等[7]提出了惯性权重余弦调整的粒子群优化算法(inertial weight cosine particle swarm optimization,IWCPSO),加快了粒子收敛后期的收敛速度。

本文在上述算法的基础上,引入指数函数对PSO的惯性权重进行调整,将改进后的优化算法用于PID的参数优化,并与经典的Ziegler-Nichols(ZN)整定法[8]进行比较。结果表明,改进后的PSO兼顾了收敛速度和精度,表现更佳。

1 欠驱动自主水下航行器建模

本文使用的大地坐标系和载体坐标系分别记作 $ {S}_{E}(E,{X}_{e},{Y}_{e},{Z}_{e}) $ $ {S}_{B}(B,x,y,z) $ ,它们之间的转换由旋转矩阵实现,记作 $ {C}_{B}^{E} $ $ {C}_{E}^{B} $ ,在体坐标系下,规定垂直水平面向上为 $ z $ 轴的正方向。记广义方位矩阵 $ \mathbf{\eta }={[{X}_{e},{Y}_{e},{Z}_{e},\varphi ,\psi ,\theta ]}^{{\rm{T}}} $ ,广义速度矩阵 $ \mathit{v}= {[u,v,w,p,q,r]}^{{\rm{T}}} $ ,广义力矩阵 $ \mathbf{\tau }={[{F}_{x},{F}_{y},{F}_{z},R,M,N]}^{{\rm{T}}} $ ,矩阵中的前3个参数代表大地坐标系下的位置信息,后3个参数代表载体坐标系下的角度信息。由于欠驱动AUV的横向和垂向没有推力,也没有推力使AUV绕体坐标系的 $ x $ 轴旋转,因此上述广义速度矩阵可以简化为 $ \mathit{v}= [u,v, $ $ w,q,r]^{{\rm{T}}} $ $ u $ $ v $ $ w $ 分别表示AUV的速度在体坐标系的 $ x $ $ y $ $ z $ 轴上的投影, $ q $ $ r $ 分别为AUV绕体坐标系的 $ y $ $ z $ 轴的旋转角速度。广义力矩阵可以简化为 $ \mathbf{\tau }= $ $ [{F}_{x},\mathrm{0,0},0,{\delta }_{s},{\delta }_{r}] $ $ {F}_{x} $ 代表AUV尾部的推力, $ {\delta }_{s} $ $ {\delta }_{r} $ 分别代表舵机的力矩。

根据牛顿-欧拉方程,欠驱动AUV在载体坐标系下的六自由度动力学方程可表示为:

$ {M}\dot{\mathit{v}}+C\left(\mathit{v}\right)\mathit{v}=\mathit{\tau }+\mathit{\omega } 。$ (1)

其中: $ {M} $ 为广义质量矩阵, $ C\left(\mathit{v}\right) $ 为Corioslis矩阵, $ \mathit{\omega }\in {R}^{6\times 1} $ 为环境干扰项。经推算,欠驱动AUV的非线性微分方程可表示为:

$ \left\{\begin{array}{l}\dot{u}=\dfrac{{m}_{2}}{{m}_{1}}vr-\dfrac{{m}_{3}}{{m}_{1}}wq-\dfrac{{d}_{1}}{{m}_{1}}u+\dfrac{1}{{m}_{1}}{F}_{x}+{\omega }_{1},\\ \dot{v}=-\dfrac{{m}_{1}}{{m}_{2}}ur-\dfrac{{d}_{2}}{{m}_{2}}v+{\omega }_{2},\\ \dot{w}=\dfrac{{m}_{1}}{{m}_{3}}uq-\dfrac{{d}_{3}}{{m}_{3}}w+{g}_{1}+{\omega }_{3},\\ \dot{q}=\frac{{m}_{3}-{m}_{1}}{{m}_{5}}uw-\dfrac{{d}_{4}}{{m}_{5}}q-{g}_{2}+\dfrac{1}{{m}_{5}}{b}_{1}{\delta }_{s}+{\omega }_{4},\\ \dot{r}=\dfrac{{m}_{1}-{m}_{2}}{{m}_{6}}uv-\dfrac{{d}_{5}}{{m}_{6}}r+\dfrac{1}{{m}_{6}}{b}_{2}{\delta }_{r}+{\omega }_{5}。\end{array}\right. $ (2)

式中: $ {m}_{1}=m-{X}_{\dot{u}}$ $ {m}_{2}=m-{Y}_{\dot{v}} $ $ {m}_{3}=m-{Z}_{\dot{w}} $ ${m}_{5}= {I}_{y}- $ $ {M}_{\dot{q}}$ $ {m}_{6}={I}_{z}-{N}_{\dot{r}} $ $ {g}_{1}=(W-B)\mathrm{cos}\theta $ ${g}_{2}= ({z}_{g}W- {z}_{b}B) $ $ \mathrm{sin}\theta$ $ {d}_{1}={X}_{u}+{X}_{u\left|u\right|}\left|u\right| $ ${d}_{2}={Y}_{v}+{Y}_{v\left|v\right|}\left|v\right| $ ${d}_{3}= {Z}_{w}+ {Z}_{w\left|w\right|} $ $ \left|w\right|$ ${d}_{4}={M}_{q}+{M}_{q\left|q\right|}\left|q\right| $ ${d}_{5}={N}_{r}+{N}_{r\left|r\right|}\left|r\right| $ ${b}_{1}= {u}^{2}{M}_{{\delta }_{s}}$ $ b_2= $ $ u^2N_{{\delta }_r} $

其中: $ {m} $ $ {m}_{(\cdot )} $ 分别为AUV的质量和由流体作用产生的附加质量; $ {I}_{(\cdot )} $ 为AUV的绕轴转动惯量; $ {X}_{(\cdot )} $ $ {Y}_{(\cdot )} $ $ {Z}_{(\cdot )} $ $ {M}_{(\cdot )} $ $ {N}_{(\cdot )} $ 为粘性流体水动力系数; $ {z}_{g} $ $ {z}_{b} $ 分别为载体坐标系下重心和浮心在 $ {z} $ 轴上的坐标; $ {W} $ $ {B} $ 分别为AUV所受的重力和浮力[9],设 $ {w}_{(\cdot )}=0 $ ,忽略环境干扰。

2 PID控制器原理

PID控制器的结构简单,控制原理易于理解,具有很好的鲁棒性,其诸多优点使其成为运用最广的控制器之一。

PID控制器的原理如图1所示,由比例、积分、微分3个部分构成。In为目标信号,Out为被控对象的输出,二者的差值e为偏差信号,u为控制器输出。被控对象的输入信号可表示为:

$ {u}\left({t}\right)={K}_{p}e\left(t\right)+{K}_{i}{\int }_{0}^{t}e\left(t\right){\rm{d}}t+{K}_{d}\frac{{\rm{d}}e\left(t\right)}{{\rm{d}}t}。$ (3)

式中,当参数 $ {K}_{i}=0 $ 时,图1所示结