舰船科学技术  2022, Vol. 44 Issue (7): 68-73    DOI: 10.3404/j.issn.1672-7649.2022.07.013   PDF    
基于改进蚁群算法的船舶路径规划及跟踪控制
李伟, 张军, 宁君, 周京     
大连海事大学 航海学院,辽宁 大连 116026
摘要: 针对船舶自动化研究领域中的路径规划和路径跟踪2个问题,提出一种基于改进蚁群算法的船舶路径规划方法。为了更好解决传统蚁群算法存在的问题,使用人工势场法改进蚁群算法信息素更新策略,统筹船舶路径规划与船舶路径跟踪控制问题,通过引入神经网络对船舶动力学子系统的未知不确定项进行逼近,设计一种基于径向基神经网络算法的滑模控制器,仿真实验验证了本文所提出算法的有效性。
关键词: 路径规划     蚁群算法     闭环控制系统     神经网络    
Ship path planning and following control based on improved ant colony algorithm
LI Wei, ZHANG Jun, NING Jun, ZHOU Jing     
Navigation College, Dalian Maritime University, Dalian 116026, China
Abstract: Aiming at the two problems of path planning and path tracking in the field of ship automation research, proposes a ship path planning method based on improved ant colony algorithm. In order to better solve the problems of the traditional ant colony algorithm, the artificial potential field method is used to improve the pheromone update strategy of the ant colony algorithm, and the ship path planning and ship path tracking control issues are coordinated, and the unknown uncertainty of the ship dynamics subsystem is introduced by the neural network. The items are approximated, and a sliding mode controller based on radial basis function neural network algorithm is designed,Simulation experiments verify the effectiveness of the algorithm proposed in this paper.
Key words: path planning     ant colony algorithm     closed loop control system     neural network    
0 引 言

路径跟踪是船舶运动控制中的重要内容,可以实现船舶从地图上任意位置作为起点,通过控制系统的控制,使得船舶能够跟踪并最终稳定在期望跟踪路径上,而且不受时间的限制。路径跟踪是船舶导航系统中重要的组成部分[1-2],目前关于船舶路径跟踪的研究中,大多使用直线或者简单的三角函数曲线作为给定路径进行跟踪,没有参考真实的海洋环境,研究内容过于理想化,实际应用性较差。本文将采用路径规划生成的航线作为输入信号,对船舶进行路径跟踪,对于海上航行有重要意义。

制导算法一直都是船舶运动控制的重要研究模块,视线制导方法(line of sight,LOS)是一种应用广泛的船舶制导算法,其主要应用在船舶直线路径跟踪中[3]。LOS算法的原理是将船舶位置映射为船舶首向角,通过实时提供期望首向角,使船舶平滑地行驶在路径上。Healey等[4]首先利用LOS制导律对船舶进行控制,Fossen等[5]运用LOS算法进行船舶路径跟踪,将输出空间减少为两自由度,并且利用矢量反演法开发了一种动态反馈的非线性控制器。上述算法虽然具有控制器简单、算法有效等优点,但其不能实时调整位置误差。Ryeok等[6]提出一种模型预测控制的方法,将前视距离加入到控制器中,使得船舶能根据预测信号调整位置,提高了跟踪效能。朱骋等[7]基于Mamdani模型调整了LOS控制策略,通过自适应模糊控制修正LOS控制参数,改进了传统LOS算法各项参数固定,不能实时调整的特点。

上述算法在建模时没有考虑风、浪、流等真实海洋因素的影响,实用性较差,船舶在大洋航行时路径跟踪困难。为了解决这个问题,Qiu等[8]采用了轨迹线性化控制技术及有限时间干扰观测器,可以准确地观测到不确定的动态因素和未知的外界干扰,提升了路径跟踪的准确性,实现了期望的路径跟踪。Liang等[9]提出了一种模糊反步滑模控制器,该控制器可以抑制外部干扰和避免抖震,实现水下船舶对三维路径的精确跟踪。沈智鹏等[10]使用神经元自适应迭代滑模控制方法,补偿船舶受到的内外扰动和系统建模不确定项,解决了复杂海洋环境干扰下船舶的路径跟踪问题。Fossen等[12]针对风浪流等因素产生的船舶航行漂角问题,将自适应理论与LOS制导律结合,此方法将漂角看作常量引入到LOS制导律中,有效补偿了由于海洋环境引起的漂角,增强了控制器的鲁棒性。

路径规划及跟踪控制是指船舶根据任务需要规划出最优航线,并沿着期望航线航行到目标点。Shen等[13]结合样条路径模板对船舶进行路径规划,利用非线性模型预测控制技术进行船舶路径跟踪,提高了算法的抗干扰性和运行效率。张力行[14]将A*算法与COLREGs相结合对欠驱动船舶进行路径规划,然后将LOS与神经网络控制器结合解决了欠驱动船舶路径跟踪的问题,这种方法在多种海洋环境的仿真实验中行之有效。

综合上述文献可以看出,目前船舶路径规划及跟踪控制中还存在着算法缺陷[15-16]、路径不平滑[17]和路径跟踪信号为虚拟信号等问题。本文使用人工势场法改进统蚁群算法,弥补了传统蚁群算法的不足。并在此基础上对改进蚁群算法规划出的路径进行路径拟合,将拟合后的平滑路线作为输入信号进行路径跟踪,使用双环闭合控制系统作为运动学控制子系统,对船舶进行路径跟踪。使用神经网络对动力学子系统的不确定项进行逼近,实现了对内外扰动及未建模动态的补偿,有效跟踪了运动学控制子系统给出的期望速度。

1 基于改进蚁群算法的船舶路径规划

在传统蚁群算法初期,各个路径上的信息素浓度都相等,蚂蚁搜索目标点的随机性比较大,通过引入人工势场法,提高了蚁群算法的搜索效率;蚁群算法依靠蚂蚁个体进行独立的路径搜索,通过蚂蚁间的信息素交换逐步优化路径,避免了人为的干预,算法的全局搜索能力和鲁棒性较好,可以有效解决人工势场法目标不可达和陷入局部最小值等问题。为了让蚂蚁获得更出色的路径寻优能力,本文通过4种方式改进蚁群算法:

1.1 改变信息素的更新策略

蚁群算法中信息素浓度可以决定蚂蚁的走向,是一个非常重要的环节。在算法开始时,蚂蚁会随机选择路径进行搜索,部分蚂蚁可能会选择离目标点比较长的路径更新信息素,这会误导后续蚂蚁的路径选择,导致最优路径收敛缓慢,针对这个问题,本文进行以下改进:

由于人工势场法在蚁群算法前期对蚂蚁有指导作用,可以使用人工势场法改进信息素:

$ {\tau ''_{ij}}\left( h \right) = \left\{ \begin{array}{*{20}{l}} {\tau _{ij}}\left( h \right) + \delta {{\tau '}_{ij}}\left( h \right),&h \leqslant {h_a} ,\\ {\tau _{ij}}\left( h \right){\text{,}}&h > {h_a} 。\end{array} \right. $ (1)

式中: $ \tau^{\prime}(h) $ 代表第 $ h $ 代引入人工势场法的势场信息素; $ \tau_{i j}^{\mu^{\mu}}(h) $ 为采用第 $ h $ 代势场信息素求得的势场蚁群信息素浓度; $ h_{a} $ 代表更新代数的最大值; $ \delta $ 代表势场信息素系数。

当信息素浓度过大或过小,蚂蚁会停止搜索目标点,导致算法不能正常运算下去。为了避免出现这个问题,引入信息素的浓度极值 ${\tau _{\min }}$ ${\tau _{\max }}$ ,让势场蚁群信息素浓度一直处于一定的范围内,如下式:

$ {\tau ''_{ij}}\left( h \right) = \left\{ \begin{array}{*{20}{l}} {\tau _{\min }}{\text{,}}\qquad \;\;&{{\tau ''}_{ij}}\left( h \right) < {\tau _{\min }},\\ {{\tau ''}_{ij}}\left( h \right),&{\tau _{\min }} < {{\tau ''}_{ij}}\left( h \right) < {\tau _{\max }} ,\\ {\tau _{\max }}{\text{,}}&{{\tau ''}_{ij}}\left( h \right) > {\tau _{\max }} 。\end{array} \right. $ (2)
1.2 改进信息素挥发系数

信息素挥发系数 $\rho $ 会影响每条路径上信息素的浓度,在算法寻优过程中尤为重要。传统蚁群算法中的 $\rho $ 在整个算法收敛过程中是不变的, $\rho $ 值设定过大,虽然会增强前期的收敛能力,但是当蚂蚁找到错误路径时,容易陷入局部最优; $\, \rho $ 值设定过小,前期大量的蚂蚁会迷失方向,收敛过慢。为了让算法更好地运行,引入信息素阈值,并且使用信息素调节系数改进挥发因子更新方式:

$ \lambda = 1 - {e^{\frac{{{N_c} - {N_{\max }}}}{{{N_{\max }}}}}} ,$ (3)
$ \rho ' = \left\{ \begin{array}{*{20}{l}} {\rho _{\min }}{\text{,}}\qquad &\rho < {\rho _{\min }} ,\\ \lambda \times \rho, &{\rho _{\min }} < \rho < {\rho _{\max }} ,\\ {\rho _{\max }},&\rho > {\rho _{\max }} 。\end{array} \right. $ (4)
$ {\tau ''_{ij}}\left( h \right) = \left\{ \begin{array}{*{20}{l}} {\tau _{\min }}{\text{ ,}}\quad &{{\tau ''}_{ij}}\left( h \right) < {\tau _{\min }} ,\\ {{\tau ''}_{ij}}\left( h \right), {\tau _{\min }} < {{\tau ''}_{ij}}\left( h \right) < {\tau _{\max }} ,\\ {\tau _{\max }}{\text{,}}&{{\tau ''}_{ij}}\left( h \right) > {\tau _{\max }} 。\end{array} \right. $ (5)

式中: $ \lambda $ 为挥发因子调节系数,且 $ \lambda \in(0,1) $ $ \,\rho_{\text {min }} $ $ \,\rho_{\max } $ 为信息素挥发因子调节的阈值。

经过以上改进:

$ {\tau _{ij}}\left( {h + 1} \right) = \left( {1 - \rho '} \right){\tau ''_{ij}}\left( h \right) + \Delta {\tau _{ij}}\left( h \right) 。$ (6)
1.3 改进启发函数

传统蚁群算法的启发函数由欧氏距离决定,主要依靠启发信息指导蚂蚁进行路径搜索,信息素浓度会随着蚂蚁迭代次数的增多而增大,但是启发信息一直保持着初始值,对蚂蚁的指导作用越来越小。而且在计算启发信息时,没有考虑到欧氏距离中障碍物对蚂蚁的影响,会使算法陷入局部最优解。为了解决上述问题,用人工势场法干预传统蚁群算法中启发信息的计算,表达式如下:

$ {\eta _A}\left( t \right) = {a^{{F_{total}}(P)\cos \varphi }} 。$ (7)

式中: $ \eta_{A}(t) $ 代表势场启发函数; $ F_{\text {tad }}(P) $ 代表船舶在人工势场法中受到的合力; $ \varphi $ 代表船首向与合力 $ F_{\text {tad }} (P) $ 的夹角。

信息素浓度在算法初期比较低,势场启发信息前期对蚁群的指导作用比较重要,但是前期信息启发信息值较小,后期信息素浓度较大,势场启发函数作用较小。为了增强前期的信息启发信息,削弱后期启发信息,启发信息值的大小由势场启发信息因子控制:

$ \sigma = \frac{{{N_{\max }} - {N_c}}}{{{N_{\max }}}} ,$ (8)

式中:σ代表势场启发信息因子,且 $ \sigma \in[0,1] $ $ N_{c} $ 为当前蚁群迭代数; $ N_{\max } $ 为蚁群最大迭代数。

改进后的启发函数为:

$ {\eta '_{ij}}\left( t \right) = \frac{{{a^{{F_{total}}\left( P \right)\cos \varphi }}}}{{{d_{ij}}}} \times \frac{{{N_{\max }} - {N_c}}}{{{N_{\max }}}} 。$ (9)

由上式可以看出,当船舶处于人工势场法合力为零的点时,启发信息不为0,依然可以指导船舶前进,解决了人工势场法中目标不可达的问题。此时状态转移规则更新为:

$ P_{ij}^k(t) = \left\{ {\begin{array}{*{20}{l}} {\frac{{{{\left[ {{\tau _{ij}}(t)} \right]}^\alpha }{{\left[ {{{\eta '}_{ij}}(t)} \right]}^\beta }}}{{{{\displaystyle\sum\limits_{s \subset allowe{d_k}(t)} {\left[ {{\tau _{is}}(t)} \right]} }^\alpha }{{\left[ {{{\eta '}_{is}}(t)} \right]}^\beta }}}\;\;,\quad j \in allowe{d_k}(t)\quad } ,\\ {0,\quad \qquad \quad \quad \quad \quad \quad \quad \quad \;\,\quad j \notin allowe{d_k}(t)} 。\end{array}} \right. $ (10)

此外,算法在迭代后期,随着选择路径的减少,所需要的蚁群规模也会相应的减少。因此可以用迭代次数影响蚁群规模,让蚁群规模随着迭代次数的增加而减少,并设置最小蚁群规模:

$ m = \left\{ {\begin{array}{*{20}{l}} m \times \dfrac{{{N_{\max }} - {N_c}}}{{{N_{\max }}}},& m > {m_{\min }} ,\\ {m_{\min }},& m \leqslant {m_{\min }} 。\end{array}} \right. $ (11)

式中, $ m_{\text {min }} $ 为设定的最小种群规模。通过对种群规模的改进,可以减少算法后期的计算量,提高了运行效率。

1.4 改进斥力势场函数

在传统人工势场法中,斥力函数是障碍物与船舶间距离的倒数取二次方,斥力势场影响的范围比较广,并且斥力势场容易产生波动,致使船舶在很短的时间内无法做出避碰行动。为了解决上述问题,本文引入斥力指数改进斥力函数:

$ {U_{rep}}^\prime \left( P \right) = \left\{ \begin{array}{*{20}{l}} \dfrac{1}{2}{k_{rep}}{e^{ - d{{\left( {P,O} \right)}^2}}},\, & d\left( {P,O} \right) \leqslant {d_0} ,\\ 0 , & d\left( {P,O} \right) > {d_0} 。\end{array} \right. $ (12)

当目标点附近有一个体积较大的障碍物时,由于船舶和障碍物的距离很近,此时障碍物对船舶的斥力很大,导致船舶不能到达目标点。针对以上问题,引入斥力势场系数 $\xi $ ,规定斥力势场系数为船舶与目标点欧式距离的平方,则 $\xi = d{\left( {P,G} \right)^2}$ 。改进后的斥力势场函数为:

$ \begin{split} {U_{rep}}^{\prime \prime }\left( P \right) =& \xi {U_{rep}}^\prime \left( P \right) = \\ &\left\{ \begin{array}{*{20}{l}} \dfrac{1}{2}{k_{rep}}d{\left( {P,G} \right)^2}{e^{ - d{{\left( {P,O} \right)}^2}}}, & d\left( {P,O} \right) \leqslant {d_0} ,\\ 0{\text{,}} & d\left( {P,O} \right) > {d_0} 。\end{array} \right. \\[-25pt] \end{split}$ (13)

改进后的斥力函数为:

$\begin{split} {F'_{rep}}\left( P \right) &= - \nabla {U_{rep}}^{\prime \prime }\left( P \right) =\\ &\left\{ \begin{array}{*{20}{l}} {k_{rep}}d{\left( {P,G} \right)^2}d\left( {P,O} \right){e^{ - d{{\left( {P,O} \right)}^2}}}{n_{OP}},& d\left( {P,O} \right) \leqslant {d_0} ,\\ 0,& d\left( {P,O} \right) > {d_0} 。\end{array} \right. \end{split}$ (14)

从式中可以看出,当船舶与障碍物距离为0时,船舶受到障碍物的斥力也为0,解决了陷入局部最优和目标不可达等问题。

人工势场法合力函数为:

$ {F'_{total}}\left( P \right) = {F'_{rep}}\left( P \right) + {F_{att}}\left( P \right) 。$ (15)
2 控制律的设计 2.1 位置控制律的设计

为了实现 $x$ 跟踪 ${x_d}$ $y$ 跟踪 ${y_d}$ ,首先要设计控制律 $U$ 。设置理想的跟踪轨迹为 $\left[ {{x_d},{y_d}} \right]$ ,则跟踪误差方程为:

$ \left\{ {\begin{array}{*{20}{c}} {{{\dot x}_e} = U\cos \theta - {{\dot x}_d}} ,\\ {{{\dot y}_e} = U\sin \theta - {{\dot y}_d}} ,\end{array}} \right. $ (16)

${y_e} = y - {y_d}$ 时,为了方便计算,可以取:

$ \left\{ {\begin{array}{*{20}{l}} {U\cos \theta }& = &{{u_1}} ,\\ {U\sin \theta }& = &{{u_2}} ,\end{array}} \right. $ (17)

针对 ${\dot x_e} = U\cos \theta - {\dot x_d}$ ,取滑模函数 ${s_1} = {x_e}$ ,可以得到:

$ {\dot s_1} = {\dot x_e} = {u_1} - {\dot x_d} ,$ (18)

控制律为:

$ {u_1} = {\dot x_d} - {k_1}{s_1} ,$ (19)

式中, ${k_1} > 0$

通过以上求解,可以得到 ${\dot s_1} = - {k_1}{s_1}$ 。取Lyapunov函数 ${V_x} = \dfrac{1}{2}s_1^2$ ,则 ${\dot V_x} = {s_1}{\dot s_1} = - {k_1}s_1^2$ ,即 ${\dot V_x} = - 2{k_1}{V_x}$ ${V_x}(t) = {e^{ - 2{k_1}t}}{V_x}(0)$ ,从而 ${x_e}$ 指数收敛于0。

针对 ${\dot y_e} = U\sin \theta - {\dot y_d}$ ,取滑模函数 ${s_2} = {y_e}$ ,可以得到:

$ {\dot s_2} = {\dot y_e} = {u_2} - {\dot y_d} ,$ (20)

设计控制律为:

$ {u_2} = {\dot y_d} - {k_2}{s_2} ,$ (21)

式中, ${k_2} > 0$

通过以上求解,可以得到 ${\dot s_2} = - {k_2}{s_2}$ 。取Lyapunov函数 ${V_y} = \dfrac{1}{2}s_2^2$ ,则 ${\dot V_y} = {s_2}{\dot s_2} = - {k_2}s_2^2$ ,即 ${\dot V_y} = - 2{k_2}{V_y}$ ${V_y}(t) = {e^{ - 2{k_2}t}}{V_y}(0)$ ,从而 ${y_e}$ 指数收敛于0。

由式(17)可以得到 $\dfrac{{{u_2}}}{{{u_1}}} = \tan \theta $ ,令 $\theta \in ( - \text{π} /2, \text{π} /2)$ ,则可以求得满足理想路径跟踪θ为:

$ \theta = \arctan \frac{{{u_2}}}{{{u_1}}} 。$ (22)

求得的 $\theta $ 为式(16)和式(18)所要求的船舶航向角,理想轨迹的船舶航向角为 ${\theta _d}$ 。如果 $\theta = {\theta _d}$ ,则理想的轨迹控制律可以实现,但是在实际模型式(12)中,初始阶段的 $\theta $ ${\theta _d}$ 不可能完全一致,这样就会导致跟踪系统式(13)的不稳定。因此,需要将式(19)求得的船舶航向角当成理想值:

$ {\theta _d} = \arctan \frac{{{u_2}}}{{{u_1}}},$ (23)

式中, ${\theta _d} \in ( - {\text{π}} /2, {\text{π}} /2)$

综上所述,可以得到实际的位置控制律为:

$ U = \frac{{{u_1}}}{{\cos {\theta _d}}} 。$ (24)
2.2 姿态控制律的设计

$\theta $ ${\theta _d}$ 有误差时,会造成控制律无法精确实现,只有通过更快的收敛算法,使 $\theta $ 快速跟踪 ${\theta _d}$ ,才能解决这个问题。将通过设计姿态控制律 $r$ ,实现 $\theta $ 跟踪 ${\theta _d}$ 。取 ${\theta _e} = \theta - {\theta _d}$ ,滑模函数为 ${s_3} = {\theta _e}$ ,可以得到:

$ {\dot s_3} = {\dot \theta _e} = r - {\dot \theta _d} ,$ (25)

姿态控制律为:

$ \omega = {\dot \theta _d} - {k_3}{s_3} - {\eta _3}{{\rm{sgn}}} {s_3} 。$ (26)

式中, ${k_3}$ ${\eta _3}$ 为函数系数,且 ${k_3} > 0$ ${\eta _3} > 0$

通过以上求解,可以得到 ${s_3} = - {k_3}{s_3} - {\eta _3}{{\rm{sgn}}} {s_3}$

取Lyapunov ${V_\theta } = \dfrac{1}{2}s_3^2$ 函数,则 ${\dot V_\theta } = {s_3}{\dot s_3} = - {k_3}{s_3} - {\eta _3} $ $ \left| {{s_3}} \right| \leqslant - {k_3}s_3^2$ ,即 ${\dot V_\theta } \leqslant - 2{k_3}{V_\theta }$ ${V}_{\theta }(t)\leqslant {e}^{-2{k}_{3}t}{V}_{\theta }(0)$ ,从而实现 $\theta $ 指数收敛于 ${\theta _d}$

2.3 闭环系统的设计

本文的控制系统是由内外环构成的闭环系统,内环系统为姿态子系统,外环系统为位置子系统,指令信号 ${\theta _d}$ 由外环系统产生后,传递给内环系统,内环系统通过滑模控制律实现对中间指令信号的追踪。采用工程上一般采用的方法来稳定内环滑模控制,即外环收敛速度小于内环收敛速度的方法,通过 $\theta $ 快速跟踪 ${\theta _d}$ ,来保证闭环系统的稳定性。在本算法中通过调整内外环控制增益系数,保证内环收敛速度远大于外环收敛速度。具有内外双环的闭环系统如图1所示。

图 1 具有双环的闭环系统结构 Fig. 1 Closed loop system structure with double loops
3 基于神经网络技术的船舶动力学滑膜控制

在真实的海洋环境航行时,船舶容易受到海洋环境的干扰,使得船舶运动具有典型的不确定性、大惯性、长时滞等特点。参考文献[17],设计基于径向基神经网络的船舶动力学滑膜控制器,跟踪运动学制导律给出的期望速度。

将设计拓展到动力学控制,动力学控制器的目标是跟踪制导律给定的参考速度。船舶动力模型可以表示为:

$ \left\{ {\begin{array}{l} {{m_u}\dot u = {f_u}\left( {u,\nu ,r} \right) + {\tau _u} + {\tau _{{\text{nw}}}}},\\ {{m_\nu }\dot v = {f_\nu }\left( {u,\nu ,r} \right) + {\tau _{\nu w}}} ,\\ {{m_r}\dot r = {f_r}\left( {u,\nu ,r} \right) + {\tau _r} + {\tau _{nv}}} ,\end{array} } \right. $ (27)

由于 $u = U\cos (\theta )$ ,可以得到

$ \begin{split} {\dot u = \dot U\cos \left( \theta \right) - U\sin \left( \theta \right)} = { \dot U - 2\dot U{{\sin }^2}\left( {\dfrac{\theta }{2}} \right) - U\sin \left( \theta \right)} 。\end{split} $ (28)

可以得到 $U$ $r$ 的动态方程为:

$ \left\{ {\begin{array}{*{20}{l}} {{m_u}\dot U = {f_u}\left( {u,\nu ,r} \right) + {u_u} + {u_{dw}} + 2{m_u}\dot U{{\sin }^2}\left( {\dfrac{\theta }{2}} \right) + {m_u}U\sin \left( \theta \right)} ,\\ {{m_r}\dot r = {f_r}\left( {u,\nu ,r} \right) + {u_r} + {u_{rw}}} 。\end{array} }\right. $ (29)

动力学控制器的控制目的是让船舶跟踪期望前向速度与期望角速度,即

$ \left\{\begin{array}{l}\underset{t\to \infty }{\mathrm{lim}}\left|{U}_{t}-U\right|\leqslant {\delta }_{1}\hfill,\\ \underset{t\to \infty }{\mathrm{lim}}\left|r-{r}_{r}\right|\leqslant {\delta }_{2},\hfill \end{array}\right. \left\{\begin{array}{l}\underset{t\to \infty }{\mathrm{lim}}\left|{U}_{t}-U\right|\leqslant {\delta }_{1},\hfill \\ \underset{t\to \infty }{\mathrm{lim}}\left|r-{r}_{r}\right|\leqslant {\delta }_{2}。\hfill \end{array}\right. $ (30)

式中, ${\delta _1}$ ${\delta _2}$ 为较小的正数。

神经网络用于估计动力学模型不确定性与外部海洋环境的扰动,有界控制律给出控制力与力矩。式(28)可转化为如下一阶非线性控制系统,如下式:

$ \dot x = f(x) + u + d(t) 。$ (31)

式中: $x$ 表示系统状态变量,且 $ x = [\dot U,\dot r] $ $u$ 表示控制输入,且 $ u = [{m_u}^{ - 1}{u_u},{m_r}^{ - 1}{u_r}] $ $f(x)$ 表示非线性函数,且 $ f(x) = [{f_1},{f_2}] $ $d(t)$ 表示有界系统扰动,且 $ d(t) = [{m_u}^{ - 1} {u_{dw}}, $ $ {m_r}^{ - 1}{u_{rw}}] $ $ \left| {d(t)} \right| \leqslant D $

$ \begin{gathered} {f_1} = {m_u}^{ - 1}({f_u}\left( {u,\nu ,r} \right) + 2{m_u}\dot U{\sin ^2}\left( {\frac{\theta }{2}} \right) + {m_u}U\sin \left( \theta \right)r) ,\hfill \\ {f_2} = {m_r}^{ - 1}{f_r}\left( {u,\nu ,r} \right) 。\hfill \\ \end{gathered} $ (32)

取制导律的参考速度为 $ {x_d} = [{U_d},{r_d}] $ ,速度跟踪误差为 $ e = [{e_u},{e_r}] = x - {x_d} $ ,控制目标 $ \mathop {\lim }\limits_{t \to \infty } e \to 0 $

取滑模函数:

$ s = c \displaystyle\int_0^t e{{\rm{dt}}} + e(t) ,$ (33)

式中, $c > 0$ ,可以得到

$ \begin{split} \dot s =& ce + \dot e = \dot x - {{\dot x}_d} + ce =\\ &u + d(t) + f(x) - {{\dot x}_d} + ce= u + F(x) - {{\dot x}_d} + c\dot e。\end{split} $ (34)

式中, $F(x) = f(x) + d(t)$

3.1 控制器的设计

由上述分析可以得出

$ F(x) - \hat F(x) = {W^{*{\rm{T}}}}h(x) + \varepsilon - {{\hat W}^{\rm{T}}}h(x) = - {{\tilde W}^{\rm{T}}}h(x) + \varepsilon ,$ (35)

定义Lyapunov函数为

$ V = \frac{1}{2}{s^2} + \frac{1}{{2\gamma }}{\tilde W^{\rm{T}}}\tilde W ,$ (36)

式中, $\gamma > 0$ $\tilde W = \hat W - {W^*}$

可以得到:

$ \dot V = s\dot s + \frac{1}{\gamma }{\tilde W^{\rm{T}}}\dot {\hat W} = s(ce + F(x) + u - {\dot x_d}) + \frac{1}{\gamma }{\tilde W^{\rm{T}}}\dot {\hat W} ,$ (37)

设计控制律为:

$ u = - ce - \hat F(x) + {\dot x_d} - \eta {sgn} (s) ,$ (38)

式中, $\eta {sgn} (s)$ 为鲁棒项,则

$ \begin{split} \dot V =& s(F(x) - \hat F(x) - \eta {sgn} (s)) + \frac{1}{\gamma }{{\tilde W}^{\rm{T}}}\dot {\hat W} = \\ & s( - {{\tilde W}^{\rm{T}}}h(x) + \varepsilon - \eta {sgn} (s)) + \frac{1}{\gamma }{{\tilde W}^{\rm{T}}}\dot {\hat W} = \\ &\varepsilon s - \eta \left| s \right| + {{\tilde W}^{\rm{T}}}\left(\frac{1}{\gamma }\dot {\hat W} - sh(x)\right) 。\end{split} $ (39)

$\eta > {\left| \varepsilon \right|_{\max }}$ ,自适应律为

$ \dot {\hat W} = \gamma sh(x) 。$ (40)

得到 $\dot V = \varepsilon s - \eta \left| s \right| \leqslant 0$

$\dot V \equiv 0$ 时, $s \equiv 0$ ,根据拉萨尔不变性原理,闭环系统趋于稳定,当 $t \to \infty $ 时, $s \to 0$

图 2 控制系统 Fig. 2 Control system
3.2 仿真实验

控制指令为 $ {x_d} = [{U_d},{r_d}] $ ,控制律采用式(37),自适应律采用式(39)取 $\gamma = 50$ $\eta = 0.5$ 。根据网络输入 ${x_1}$ ${x_2}$ 的实际范围来设计高斯基函数的参数,参数 $c$ $b$ 的取值分别为 $\left[ { - 2\quad - 1\quad 0\quad 1\quad 2} \right]$ 和3。网络权值中各个元素的初始值取0.1,仿真结果如图3图7所示。

图 3 动力学控制力矩 Fig. 3 Dynamic control torque

图 4 动力学系统控制力 Fig. 4 Control force of dynamic system

图 5 合速度引导律 Fig. 5 Combined speed guidance rate

图 6 系统不确定项 Fig. 6 System uncertainty

图 7 姿态引导律 Fig. 7 Attitude guidance rate
4 结 语

本文针对船舶路径规划和跟踪控制问题,详细分析了传统蚁群算法与人工势场法存在的问题以及产生原因,使用人工势场法对蚁群算法中的信息素更新规则和启发函数进行了改进,并优化了人工势场法中的斥力势场函数,设计出了运算效率更高的蚁群算法。使用改进蚁群算法规划出的航线作为参考输入信号,通过对船舶运动学控制子系统和船舶动力学控制子系统设计控制率,实现了船舶对改进蚁群算法规划航线的路径跟踪及控制。采用神经网络逼近船舶控制系统中的不确定项,设计一种基于径向基神经网络的船舶动力学控制子系统控制率,补偿了船舶在航行时受到风浪流的干扰,实现了对运动学控制子系统引导律的跟踪,仿真实验验证了控制器的有效性。

参考文献
[1]
NIE J, LIN X. Failos guidance law based adaptive fuzzy finite-time path following control for underactuated msv[J]. Ocean Engineering, 2019, 195: 106726.
[2]
ZHENG Z, XIE L. Finite-time path following control for a stratospheric airship with input saturation and error constraint[J]. International-Journal of Control, 2019, 92(2): 368-393. DOI:10.1080/00207179.2017.1357839
[3]
曾华宝. 基于终端滑模的欠驱动船舶路径跟踪自适应控制[D]. 大连: 大连海事大学, 2020.
[4]
HEALEY A J, LIENARD D. Multivariable sliding mode control for autonomous diving and steering of unmanned underwater vehicles[J]. Oceanic Engineering IEEE Journal of, 1993, 18(3): 327-339. DOI:10.1109/JOE.1993.236372
[5]
FOSSEN T I, BREIVIK M, SKJETNE R. Line-of-sight path following of underactuated marine craft[J]. IFAC Proceedings Volumes, 2003, 36(21): 211-216. DOI:10.1016/S1474-6670(17)37809-6
[6]
OH S R, SUN J. Path following of underactuated marine surface vessels using line-of-sight based model predictive control[J]. Ocean Engineering, 2010, 37(2-3): 289-295. DOI:10.1016/j.oceaneng.2009.10.004
[7]
朱骋, 庄佳园, 张磊, 等. 无人水面艇自适应路径跟踪算法[J]. 导航与控制, 2019, 18(1): 44-50. DOI:10.3969/j.issn.1674-5558.2019.01.006
[8]
QIU B, WANG G, FAN Y, et al. Path following of underactuated unmanned surface vehicle based on trajectory linearization control with input saturation and external disturbances[J]. International Journal of Control Automation and Systems, 2020, 18(4): 1-12.
[9]
LIANG X, QU X, WAN L, et al. Three-dimensional path following of an underactuated auv based on fuzzy backstepping sliding mode control[J]. International Journal of Fuzzy Systems, 2017, 20: 640-649.
[10]
沈智鹏, 景富盛. 欠驱动船舶路径跟踪神经元自适应迭代滑模控制[J]. 哈尔滨工程大学学报, 2019, 40(3): 489-494.
[11]
FOSSEN T I, LEKKAS A M. Direct and indirect adaptive integral line-of-sight path-following controllers for marine craft exposed to ocean currents[J]. International Journal of Adaptive Control and Signal Processing, 2017, 31(4): 445-463. DOI:10.1002/acs.2550
[12]
FOSSEN T I, PETTERSEN K Y, GALEAZZI R. Line-of-sight path following for dubins paths with adaptive sideslip compensation of drift forces[J]. IEEE Transactions on Control Systems Technology, 2015, 23(2): 820-827. DOI:10.1109/TCST.2014.2338354
[13]
SHEN C, SHI Y, BUCKHAM B. Integrated path planning and tracking control of an auv: a unified receding horizon optimization approach[J]. IEEE/ASME Transactions on Mechatronics, 2017, 22(99): 1163-1173.
[14]
张力行. 欠驱动船舶路径规划及跟踪算法研究[D]. 上海: 上海交通大学, 2017.
[15]
曾国奇, 赵民强, 刘方圆, 等. 基于网格PRM的无人机多约束航路规划[J]. 系统工程与电子技术, 2016, 38(10): 2310-2316. DOI:10.3969/j.issn.1001-506X.2016.10.13
[16]
XUE Z, LIU J, W U Zhengxing, et al. Development and path planning of a novel unmanned surface vehicle system and its application to exploitation of qarhan salt lake[J]. Science China(Information Sciences), 2019, 62(8): 084202. DOI:10.1007/s11432-018-9723-5
[17]
刘陆. 欠驱动无人船的路径跟踪与协同控制[D]. 大连: 大连海事大学, 2018