2. 自然资源部第二海洋研究所,浙江 杭州 310012
2. Second Institute of Oceanography, Hangzhou 310012, China
近年来,自主水下航行器(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 欠驱动自主水下航行器建模本文使用的大地坐标系和载体坐标系分别记作
根据牛顿-欧拉方程,欠驱动AUV在载体坐标系下的六自由度动力学方程可表示为:
$ {M}\dot{\mathit{v}}+C\left(\mathit{v}\right)\mathit{v}=\mathit{\tau }+\mathit{\omega } 。$ | (1) |
其中:
$ \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) |
式中:
其中:
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) |
式中,当参数
![]() |
图 1 PID控制器原理图 Fig. 1 PID controller schematic diagram |
粒子群优化算法(particle swarm optimization, PSO)是学者受到鸟类觅食的启发而设计出的一种寻优算法。鸟群觅食的时候会通过相互之间的信息传递来不断调整自己的飞行速度和方向,不断靠近食物。将粒子群和鸟群进行类比,得出以下迭代公式:
$ {v}_{i}^{k+1}=\omega {v}_{i}^{k}+{c}_{1}{r}_{1}\left(p{Best}_{i}^{k}-{p}_{i}^{k}\right)+{c}_{2}{r}_{2}\left(gBest-{p}_{i}^{k}\right),$ | (4) |
$ {p}_{i}^{k+1}={p}_{i}^{k}+{v}_{i}^{k+1} 。$ | (5) |
式中:
传统的惯性权重线性递减PSO公式如下:
$ \mathrm{\omega }\left(k\right)={\omega }_{{\rm{max}}}-\left({\omega }_{{\rm{max}}}-{\omega }_{{\rm{min}}}\right)\cdot\frac{k}{{k}_{{\rm{max}}}}。$ | (6) |
式中:
$ \mathrm{\omega }\left(k\right)=\mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d}\cdot{\omega }_{{\rm{min}}}\cdot\left(1-\mathrm{cos}h\right)+{\omega }_{{\rm{max}}}\cdot\mathrm{cos}h。$ | (7) |
![]() |
图 2 传统PSO,IWCPSO,IWEPSO的惯性权重变化对比图 Fig. 2 Comparison of inertia weight changes among traditional PSO, IWCPSO and IWEPSO |
式中:
$ \mathrm{\omega }\left(k\right)=\left({\omega }_{{\rm{min}}}-{\omega }_{{\rm{max}}}\right){\mathrm{e}}^{h-\frac{\text{π} }{2}}+1。$ | (8) |
式中:
具体步骤如下:
步骤1 选取性能指标:为了使欠驱动AUV的深度控制快速收敛、减小超调量,选取
$ ITAE={\int }_{0}^{\infty }t\left|e\left(t\right)\right|{\rm{d}}t,$ | (9) |
作为适应度函数,对于本文的非线性系统,性能指标为:
$ ITAE=\sum _{i=0}^{k}i\left|e\left(i\right)\right| 。$ | (10) |
式中:
步骤2 IWEPSO参数初始化:规定粒子的维数为3,设置粒子数量、速度边界和位置边界、
步骤3 粒子群的3个维度分别对应
步骤4 根据IWEPSO对惯性权重进行调整,利用迭代公式(4)和公式(5)得到新一代粒子群。每一组粒子群的位置数值代表着每一组PID控制器的3个参数值,将每次迭代得到的控制器参数代入PID控制器,对欠驱动AUV进行控制。
步骤5 当适应度函数小于步骤1所设置的值或迭代次数达到步骤1所设置的最大值,进入步骤6,否则进入步骤4。
步骤6 迭代结束,得到全局最优值。
4 仿真实验及结果分析 4.1 仿真实验图3为在研欠驱动AUV的外观图,AUV长2.32 m,最大横截面直径0.24 m。AUV上配备天线,便于在水面上运行时与控制台进行数据收发。AUV尾部的螺旋桨提供推力,螺旋桨前方的十字舵控制AUV的姿态。
![]() |
图 3 欠驱动AUV外观图 Fig. 3 Underactuated AUV appearance |
以图3所示AUV为原型,基于Matlab 2019b进行仿真,算法的流程如图4所示。式(2)所涉及的水动力参数[9]为:
![]() |
图 4 基于IWEPSO的AUV深度控制流程图 Fig. 4 Flowchart of AUV depth control based on IWEPSO |
$\begin{split} & m=2\;535\;{\rm{kg}} , {X}_{\dot{u}}=-142 \;{\rm{kg}} ,{Y}_{\dot{v}}=-1\;700\;{\rm{kg}} ,\\ &{Z}_{\dot{w}}=-4\;600\;{\rm{kg}} , {I}_{y}=1\;700\;{\rm{kg}}\cdot {{\rm{m}}}^{2} , \\ & {I}_{z}=2\;000\;{\rm{kg}}\cdot {{\rm{m}}}^{2} , {M}_{\dot{q}}=-1\;700\;{\rm{kg}}\cdot {{\rm{m}}}^{2}/{\rm{rad}} ,\\ & {N}_{\dot{r}}=-1\;350\;{\rm{kg}}\cdot {{\rm{m}}}^{2}/{\rm{rad}} ,\\ & {X}_{u\left|u\right|}=-35\;{\rm{kg}}/{\rm{m}},{Y}_{v\left|v\right|}=-667\;{\rm{kg}}/{\rm{m}} ,\\ & {Z}_{w\left|w\right|}=-2\;000\;{\rm{kg}}/{\rm{m}} , {Y}_{v}=-346\;{\rm{kg}}/{\rm{m}} , \\ & {Z}_{w}=-1\;000\;{\rm{kg}}/{\rm{m}} , {M}_{q}=-900\;{\rm{kg}} \cdot {{\rm{m}}}^{2}/{{\rm{rad}}}^{2} , \\ &{N}_{r}=-300\;{\rm{kg}}\cdot {{\rm{m}}}^{2}/{{\rm{rad}}}^{2} , \\ &{M}_{q\left|q\right|}=-1\;100\;{\rm{kg}}\cdot {{\rm{m}}}^{2}/{{\rm{rad}}}^{2} , {N}_{r\left|r\right|}=-350\;{\rm{kg}} \cdot {{\rm{m}}}^{2}/{{\rm{rad}}}^{2} 。\end{split}$ |
舵效系数
$ {\delta }_{s}={K}_{p}e\left(k\right)+{K}_{i}\sum _{i=0}^{k}e\left(i\right)+{K}_{d}\cdot \left[e\left(k\right)-e\left(k-1\right)\right]。$ | (11) |
式中的
设置学习因子
运行欠驱动AUV模型,模型的PID控制器分别用PSO,IWCPSO和IWEPSO进行参数整定,不同方法下,模型的
![]() |
图 5 传统PSO,IWCPSO,IWEPSO的适应度值变化 Fig. 5 Changes in fitness values of traditional PSO, IWCPSO and IWEPSO |
ZN法整定的PID控制器收敛性极差,因此分别用ZN法整定后的PD控制器和IWEPSO整定后的PID控制器对欠驱动AUV进行控制,并进行横向对比。AUV的深度变化如图6所示。可知,IWEPSO整定后的PID控制器可以使AUV更快达到稳定状态,且稳定过程相对平滑。设置AUV在体坐标系下绕y轴旋转的最大角度为20°,图7为AUV的纵倾角变化曲线。可知,在仿真初期,为了快速到达目标深度,基于ZN法和IWEPSO的AUV保持较大的纵倾角,当接近目标深度时,IWEPSO比ZN法相比,响应更加迅速,纵倾角减小更加及时。在仿真中后期,ZN法整定的PD控制器使AUV频繁改变纵倾角的方向,IWEPSO整定的PID控制器使AUV平滑运行,因此,IWEPSO在工程中可很大程度减小舵机损耗。
![]() |
图 6 基于ZN和IWEPSO的欠驱动AUV深度变化曲线 Fig. 6 Underactuated AUV vertical displacement and inclination curve based on ZN and IWEPSO |
![]() |
图 7 基于ZN和IWEPSO的欠驱动AUV纵倾角变化曲线 Fig. 7 Underactuated AUV inclination curve based on ZN and IWEPSO |
ZN法整定的2种控制器和IWEPSO整定的PID控制器的整定及仿真结果如表1所示。当使用ZN法进行参数整定时,需要事先选择控制器的形式,一旦选择错误,就可能导致系统发散,而IWEPSO可以直接用于PID整定,无需考虑控制器形式的选择。与ZN法整定的PD控制器相比,IWEPSO整定的PID控制器可以使AUV的上升时间和调节时间更短,极大程度加速了系统响应。
![]() |
表 1 基于ZN和IWEPSO的PID整定及仿真结果 Tab.1 PID tuning and simulation results based on ZN and IWEPSO |
本文对欠驱动自主水下航行器进行定深控制,引入指数函数对粒子群优化算法的惯性权重进行动态调整,利用改进的粒子群优化算法对PID控制器进行了参数整定。与PSO和IWCPSO进行纵向对比,证明了改进的粒子群优化算法的收敛性;与ZN整定法进行横向对比,证明了改进的粒子群优化算法的快速性和平稳性。后续将开展AUV的湖上和海上试验,并对算法做进一步修正。
[1] |
WANG H , CHEN Z , BIAN X, et al. Robust diving control of AUV with L2 disturbance attenuation method[C]// Intelligent Control & Automation. IEEE, 2012.
|
[2] |
段日逊, 龚时华. 欠驱动UUV首尾平行操舵控制器设计研究[J]. 舰船科学技术, 2019, 41(5): 65-69. |
[3] |
刘丽萍, 王红燕. 基于海流观测的欠驱动AUV自适应反演滑模轨迹跟踪[J]. 天津大学学报(自然科学与工程技术版), 2020, 57(3): 89-97. |
[4] |
EBERHART, SHI Y H. Particle swarm optimization: developments, applications and resources[C]// Congress on Evolutionary Computation. IEEE, 2002.
|
[5] |
胡坤, 王树宗, 郝英泽, 等. 基于PSO优化的潜艇深度非线性PID控制[J]. 控制工程, 2009, 16(6): 752-755. |
[6] |
杨巍, 毛剑琳, 熊晔. 一种动态权值自适应粒子群优化典型函数问题[J]. 电子科技, 2018, 31(9): 9-12. |
[7] |
张继荣, 张天. 基于改进粒子群算法的PID控制参数优化[J]. 计算机工程与设计, 2020, 41(4): 1035-1040. |
[8] |
V Bobál. Technical note self‐tuning ziegler‐nichols pid controller[J]. International Journal of Adaptive Control and Signal Processing, 1995, 9(2): 213-226. |
[9] |
陈子印. 欠驱动无人水下航行器三维路径跟踪反步控制方法研究[D]. 哈尔滨: 哈尔滨工程大学, 2013.
|
[10] |
牛芗洁, 王玉洁, 唐剑. 基于遗传算法的PID控制器参数优化研究[J]. 计算机仿真, 2010, 27(11): 180-182. |
[11] |
LIU J, PAN W, QU R, et al. Research on the application of PID control with neural network and parameter adjustment method of PID controller[C]// CSAI 18: 2018 2nd International Conference on Computer Science and Artificial Intelligence, 2018.
|
[12] |
张春慧, 吴简彤, 何昆鹏, 等. 四阶龙格-库塔法在捷联惯导系统姿态解算中的应用[J]. 声学与电子工程, 2005, 32(6): 37-38. |