舰船科学技术  2018, Vol. 40 Issue (12): 99-103   PDF    
基于遗传混沌粒子群混合算法的船舶动力定位推力分配研究
李新想, 王锡淮, 肖健梅     
上海海事大学 物流工程学院,上海 201306
摘要: 针对船舶动力定位系统中一类非线性有约束的推力分配问题,提出了一种以粒子群算法为基础,并引入混沌理论和遗传算法中交叉及变异策略的混合算法。建立以推进系统能耗最小为目标,包括推进器功率消耗、磨损、推力误差等;以推进器推力、方位角的工作范围和变化速率等为约束条件的多变量非线性有约束优化问题。通过仿真表明,该算法能够解决该优化问题,而且能够兼顾船舶推进系统的能耗和操纵性能,有效地提高了船舶动力定位系统的相关性能。
关键词: 动力定位     推力分配     粒子群算法     遗传算法     奇异结构     推进系统    
Research on thrust allocation of ship dynamic positioning based on genetic chaos particle swarm optimization algorithm
LI Xin-xiang, WANG Xi-huai, XIAO Jian-mei     
Logistics Engineering College, Shanghai Maritime University, Shanghai 201306, China
Abstract: To solve the problem of a class of nonlinear constrained thrust distribution in ship dynamic positioning system, a hybrid algorithm based on particle swarm algorithm and crossover and mutation strategy in chaotic theory and genetic algorithm is proposed. To establish the multivariate nonlinear constrained optimization problem, by the minimum propulsion system energy consumption as the goal, including propulsion power consumption, wear and tear, thrust error, avoid singular structure, etc; by the propeller thrust, the azimuth Angle scope of work and change rate as constraint . The simulation results show that the proposed algorithm can solve the optimization problem, and can improve the energy consumption and maneuverability of the ship propulsion system, improve the performance of the ship dynamic positioning system effectively.
Key words: dynamic positioning     thrust distribution     particle swarm optimization     genetic algorithm     singular structure     propulsion system    
0 引 言

为了克服传统锚泊的应用局限性,目前大多数船舶都装备有动力定位系统,此系统依靠船舶自身推进系统产生推力来抵消外部环境的干扰,使船舶保持在某一位置及首向,以此来保证其正常行驶或作业。推进系统是动力定位系统的执行机构扮演着重要的角色。推力分配问题就是推进系统实时地分配推力及推力角到各个推进器的过程,即船舶推进系统根据控制系统给出的控制指令,通过推力分配单元将控制系统的指令合理、高效的分配到推进系统的各个推进器上,确定各个推进器的推力及方位角,以提供抵消外界环境的干扰且驱动船舶运动的力及力矩[1]

因此认为推力分配问题就是含有约束的最优化问题,目前主要分为线性二次规划无约束的推力优化分配问题,线性二次规划有约束的推力优化分配问题和非线性约束推力优化分配问题[14]。常见的求解推力分配问题的方法主要有伪逆法、序列二次规划法、推进器分组法、奇异值分解和滤波法以及阻尼最小方差法等,其中发展最好的就是序列二次规划法,但运用在推力分配问题是显得较为繁琐。由于近年来智能算法的兴起,很多学者都开始使用智能算法对推力分配问题进行求解,如遗传算法[5]等。虽然群智能优化算法在处理推力分配约束条件上具有计算简单、处理速度块等优势,但要在实际工程中应用,必须解决局部最优、搜索效率等问题。

本文提出的遗传混沌粒子群混合算法,其实质是针对粒子群优化算法易依赖初始值、易陷入局部最优、以及后期收敛速度慢、精度较差等缺点,在粒子初始化时加入混沌变量,提高种群多样性和遍历性,并引入遗传算法中的交叉和变异算子,增强了算法的全局收敛性和搜索速度。并将该算法运用到有约束的非线性推力分配问题上,最后通过仿真验证,证实该算法在该问题的可行性。

1 船舶动力定位数学模型

为了对船舶推力分配进行更好的研究,首先要建立一个有DP应用特性的船舶非线性数学模型

1.1 船舶运动学

对于只研究纵荡、横荡、首摇3个自由度的水平面内的船舶[6],运动学方程可以用下式表示:

$\dot \eta = {{R}}(\psi ){{v}}, $ (1)

式中: $\eta = {\left[ {x,y,\psi } \right]^{\rm T}}$ 是惯性坐标系下的位置坐标矢量, ${{v}} = {[u{\rm{ }}v{\rm{ }}r]^{\rm T}}$ 是随船坐标系下的速度坐标向量。其中旋转矩阵 ${{R}}(\psi )$ 的表达式如下:

${{R}}(\psi ) = \left[ \begin{gathered} \cos \psi \quad - \sin \psi \quad {\rm{ 0}} \\ \sin \psi \quad\ \cos\psi \quad\ {\rm{0}} \\ {{ \ 0 \quad\quad\ \ 0 \quad \quad \ 1}} \\ \end{gathered} \right]{\text{。}}$ (2)
1.2 船舶动力学

动力定位船舶在水平面上低速航行时,变化缓慢,因此忽略了科里奥立向心矩阵 ${{C}}({{v}})$ 对船舶运动的影响以及非线性阻尼矩阵[6],得到简化的船舶低频运动模型。

${{M}}\dot v + {{Dv}} = {{\tau }} + {{{R}}^{\rm T}}(\psi ){{b}}{\text{。}}$ (3)

式中: ${{\tau }} = {[{\tau _u}{\rm{ }}{\tau _v}{\rm{ }}{\tau _{\rm{r}}}]^{\rm T}}$ 为船舶推进系统在纵荡、横荡、首摇3个自由度上的力和力矩; ${{b}} = {[{b_1}{\rm{ }}{b_2}{\rm{ }}{b_3}]^{\rm T}}$ 表示外界环境的干扰; ${{M}}$ 为船舶质量矩阵。

2 推力分配问题

船舶推力分配问题通常可以看作是一个多变量有约束的非线性优化问题,通过建立合适的目标函数和约束条件,从而将推进系统的能量消耗、控制系统与推进系统之间的推力误差、推进器磨损等因素降到最低,保证船舶的操纵性,将控制系统的指令分配到各个推进器上,确定各推进器的推力及方位角[7]

2.1 推力分配数学描述

推力分配单元主要的功能是接受来自控制系统发出的力和力矩指令,通过一定的方法确定各个推进器的推力以及推力角大小,其原理如图1所示,数学描述如下:

图 1 动力定位系统的推力分配原理图 Fig. 1 Schematic diagram of thrust allocation in power system
${\bf{\tau }} = {{B}}(\alpha )U{\text{。}} $ (4)

式中: $\tau = {[{\tau _u} {\tau _v} {\tau _r}]^{\rm T}}$ 为船舶推进系统在纵荡、横荡、首摇3个自由度上所需要的力和力矩, ${{u,\alpha }}$ 表示推进器的推力及推力角。 ${{B(\alpha }})$ 是推进器位置结构矩阵,有

${{B}}\left( {\bf{\alpha }} \right) \!\!=\!\! \left[\!\!\! {\begin{array}{*{20}{c}} {\cos \,({\alpha _1})\,\;}& \!\!\!\!\!\!\cdots \!\!\!\!\!\!&{\cos ({\alpha _i})\,} \\ {\sin ({\alpha _1})}& \!\!\!\!\!\!\cdots\!\!\!\!\!\! &{\sin ({\alpha _i})} \\ {lx1\sin ({\alpha _1}) - ly1\cos ({\alpha _1})}& \!\!\!\!\!\!\cdots\!\!\!\!\!\! &{lxi\sin ({\alpha _i}) - lyi\cos ({\alpha _i})} \end{array}} \!\!\!\right],$

式中, $\left( {{l_{{x_i}}},{l_{{y_i}}}} \right)$ 表示推进器在船体坐标系下的位置。

2.2 推力分配的目标函数及约束条件

推力分配问题的约束条件除了需要满足力的平衡方程外,还需要考虑推进器推力、方位角的极值以及推力及方位角变化范围等推进器自身的性能约束,即有如下约束表达式:

$\left\{ \begin{gathered} U{\rm min} \leqslant U \leqslant U{\rm max}, \hfill \\ \Delta U{\rm min} \leqslant U - U_0 \leqslant \Delta U{\rm max}, \hfill \\ \alpha {\rm min} \leqslant \alpha \leqslant \alpha {\rm max}, \hfill \\ \Delta \alpha {\rm min} \leqslant \alpha - \alpha_0 \leqslant \Delta \alpha {\rm max}{\text{。}} \hfill \\ \end{gathered} \right.$ (5)

式中: $U,\alpha $ 分别为当前时刻推进器的推力及推力角; ${U_{\min }},{U_{\max }},{\alpha _{\min }},{\alpha _{\max }}$ 分别为推进器推力及方位角的最小、最大范围。一般推进器的方位角是固定不变的,但是由于全回转推进器可以在水平面内进行360 °的全方位旋转,而推进器之间会有相互影响,进而会使推进器损失一部分推力,因此有必要对推进器方位角的限制。 ${U_0},{\alpha _0}$ 表示推进器在前一时刻的推力及推力角的大小。 $U\Delta \min ,U\Delta \max ,\Delta \alpha \min ,\Delta \alpha \max $ 分别为推力及推力角的最大最小变化范围。

一般考虑到能量消耗、推力分配误差、奇异结构以及推进器的磨损,推力分配目标函数可用下式表示:

$\begin{split} \min J(\alpha ,U,s) = P\mathop \Sigma \limits_{i = 1}^m {\left| U \right|^{\tfrac{3}{2}}} + {s^{\rm T}}{ Q}s + \\ {(\alpha - \alpha 0)^{\rm T}}{\varOmega} (\alpha - \alpha 0) + \frac{\delta }{{\varepsilon + \det [B(\alpha ){B^{\rm T}}(\alpha )]}}{\text{。}}\end{split} $ (6)

式中: $P$ 为用来调节推进系统能量消耗占优化目标的权重; $s$ 为推进系统产生的横向、纵向力及回转力矩与控制系统的偏差。 ${ Q} > 0$ 是一个正定对角矩阵,其对角元素值应选取的足够大以保证松弛变量 $s$ 接近于0。 ${\varOmega } > 0$ 是一个正定矩阵,用来调整推进器方位角变化占优化目标的权重。最后一项用来避免奇异结构的发生。奇异结构会导致船舶出现暂时性的失控,应该尽量去避免它。式中 $\varepsilon $ >0(一个很小的数)用来避免数值问题, $\delta $ ≥O为惩罚权值。

3 遗传混沌粒子群混合算法 3.1 粒子群优化算法及其缺陷

粒子群算法是一种群智能算法,粒子作为其基本的组成单位。首先将粒子在可行解空间中进行随机的初始化,在这里,假设D维空间中第i个粒子的位置和速度分别为 ${x_i}\left( t \right) = \left( {{x_{i1}}\left( t \right),{x_{i2}}\left( t \right),\Lambda ,{x_{id}}\left( t \right)} \right)$ $ {\upsilon _i}(t) = ({\upsilon _{i1}}(t),$ ${\upsilon _{i2}}(t),\; \cdots \;,{\upsilon _{id}}(t))$ ,种群中粒子的位置、速度按照一定方向不断地进行更新,同时用适应度值表示每个粒子的优劣。粒子在解空间中运动时,个体所经历位置中计算得到的适应度值最优位置称之为个体极值用 ${P_i} = ({P_{i1}},{P_{i2}}, \cdots ,{P_{id}})$ 表示,记作Pbest,种群中的所有粒子搜索到的适应度值最优位置称之为群体极值用 $Pg = (P_{g1},P_{g2}, \cdots ,P_{gd})$ 表示,记作gbest。粒子每更新一次位置,就计算一次适应度值,并且通过比较新粒子的适应度值和个体极值 、群体极值的适应度值更新个体极值Pbest和群体极值gbest,同时在每次迭代过程中,粒子根据2个极值来动态调整自身的位置和速度,其更新方程为[10 – 11]

$\begin{gathered} {\upsilon _{id}}(t + 1) = \omega {\upsilon _{id}}(t) + {c_1}{r_1}({p_{id}}(t) - {x_{id}}(t))+ \hfill \\ \;\quad \quad \quad \quad {c_2}{r_2}({p_{gd}}(t) - {x_{id}}(t)) , \hfill \\ \end{gathered} $ (7)
${x_{id}}(t + 1) = {x_{id}}(t) + {\upsilon _{id}}(t){\text{。}} $ (8)

式中: $\omega $ 为惯性权重; $d = 1,\,2,\; \cdots \,D$ $i = 1,\,2,\; \cdots \;,n$ t为当前迭代次数; ${c_1},{c_2}$ 为非负的常数,称为加速度因子; ${r_1},{r_2}$ 为服从[0,1]上的随机数。基本粒子群优化算法在搜索过程中存在易陷入局部最优的缺点,并且求解精度不高、收敛速度上也不是很理想,故需要对其进行改进。

3.2 混沌优化算子

在分析基本粒子群优化算法后,发现粒子群算法在初始化阶段存在缺陷,即粒子群初始化过程是随机的,随机过程虽然大多可以确保初始解群分布均匀,但对个体的质量却不能保证。如果初始化不好的话,就会出现粒子远离最优解得情况,影响了进化过程的收敛。故采用混沌系列初始化粒子的位置和速度,在不改变粒子群初始化时随机性本质情的况下,利用混沌提高了种群的多样性和粒子搜索的遍历性[10]

本文采用Logistic混沌映射,其方程如下:

${z_{k + 1}} = \mu {z_k}(1 - {z_k}){\text{。}} $ (9)

式中: ${z_k}$ 为实值序列, $\mu $ 为参数,在[3.5714484]中取值。

该混沌映射有以下几个特性[10]:1)该混沌序列不收敛;2)非周期性;3)遍历(0,1)区域;4)混沌序列不可预测。根据以上分析并考虑到混沌特性,本文将混沌变量在粒子群初始化时就加入,使粒子群在初始化时可以更好地靠近最优解,有效地增加粒子群的求解效率和解的质量

3.3 遗传交叉和变异策略

遗传算法是通过模拟生物物种繁殖进化过程得出的一种优化搜索算法。通过进行选择、交叉以及变异等遗传算子来交换种群的信息,最终使其产生符合优化目标的参数。正是由于遗传算法中这些算子,使得种群之间可以更好地交流,而粒子群算法的搜索是由靠自身粒子的不断更新速度决定的,缺少整个种群相互交流的信息机制。因此,引入遗传算法中的交叉和变异算子来改进粒子群,使其更好地进行种群间的相互交换以及跳出局部最优[10]

3.3.1 交叉操作

在算法迭代过程中引入个体交叉操作,依据一定的概率 $Pc$ (交叉概率)进行交叉操作,指定一定数量的粒子放入杂交池中,将杂交池中的粒子两两随机配对交叉,产生相同数目的子代粒子来取代父代粒子,保持粒子群的粒子总数不变。这样增加了粒子之间的信息交流和共享,提高算法的收敛速度。

3.3.2 变异操作

在算法迭代过程中为避免算法在搜索后期陷入局部最优、增加种群多样性,将变异操作引入粒子群算法中,即以一定的变异概率( $Pm$ )对粒子进行变异操作。本文采用自适应的变异概率,其计算公式如下[11]

$Pm = \left\{ \begin{gathered} \frac{{k_1({f_{\max }} - f')}}{{{f_{\max }} - {f_{avg}}}},\quad f' \geqslant {f_{avg}}, \hfill \\ k_2, \quad \quad \quad\quad \quad \;f' < favg{\text{。}} \hfill \\ \end{gathered} \right.$ (10)

式中: $k_1,k_2$ 为常数,本文考虑到推力分配动态约束优化区域问题,采用在动态约束区域内对粒子执行初始化操作,即对需要变异粒子的个体执行随机产生新个体的操作。

3.4 遗传混沌粒子群混合算法步骤

1)种群初始化:确定种群数N,随机初始化粒子的位置与速度,并限定粒子的位置与速度范围;计算种群适应度值,并初始化种群的全局最优与个体最优。

2)对全局最优粒子的进行混沌化,利用Logistic映射,生成混沌化后的种群,并更新种群的全局最优与个体最优。

3)利用式(7)和式(8)对粒子进行位置和速度更新。

4)更新个体与全局最优:若当前粒子的适应度值优于个体最优,则用当前粒子位置替换个体最优; 若当前种群粒子的适应度值优于全局最优,则用当前粒子位置替换全局最优。

5)交叉操作:随机产生一个数 $r_1$ ,若 $r_1 < {P_c}$ ,执行交叉操作。得到的子代粒子与父代粒子进行适应值比较,适应值较高的那部分粒子进入下一代。

6)变异操作:随机产生一个数 $r_2$ ,并根据式(10)计算 ${P_m}$ ,若 $r_2 < {P_m}$ ,执行变异操作。

7)计算适应度值并更新个体与全局最优。

8)判断是否满足停止条件:如最大迭代数或者问题所需精度,如果满足则输出最优搜索结果,否则返回步骤3。

4 船舶动力定位推力分配仿真计算

为了验证提出的算法能够解决推力分配优化问题,即对非线性有约束问题能够求解,本文采用第2部分所述的约束条件和目标函数,另外考虑到推进器的角度约束,设置了推力禁区,以某铺管船为对象进行仿真验证,其该船舶的推进器相关参数如表1所示。

表 1 某船舶推进器相关参数 Tab.1 Parameters of a ship propeller

船舶初始位置η0=[0, 0, 0],目标位置ηd=[25, 25, 30],船舶运行在海面上,其环境扰动被设置为偏差向量,已经被设置到b=(1×103, 1.1×103, 0.5×103),仿真结果如图2所示,仿真显示,船舶在80 s后达到定位位置点并基本保持稳定。

图 2 船舶动力定位运动响应 Fig. 2 Ship dynamic positioning motion response

图3为仿真过程中7个推进器的推力及方位角变化,从图3可以看出,每个推进器的推力和方位角满足推力分配优化模型的约束条件,在每个仿真步长内,推力和方位角变化都趋于平缓,满足推进器推力及方位角变化速率的约束,说明设计的推力分配方法在减少推进器磨损方面效果良好。

图 3 推进器推力及方位角变化 Fig. 3 Thrust and azimuth curve of propeller

图4可以看出,经该推力分配算法,进行推力分配后,其合力及力矩,能够很好地跟踪控制器推力指令,说明该算法能够合理地分配推力,即该算法能够解决推力分配优化问题。

图 4 控制器推力指令与分配后实际推力指令 Fig. 4 Comparison of resultant force and moment before and after the allocation
5 结 语

针对动力定位系统中推力分配优化问题,通过引入遗传算法中的交叉和变异算子及混沌理论对粒子群算法进行改进,设计了基于混合粒子群算法的推力分配策略。通过对某铺管船的仿真,证实了该算法能够解决推力分配优化问题,该算法在兼顾能量消耗的同时,能有效的降低推进器的磨损,由于推进器角度在同一时刻并没有完全一致,故可以有效地解决推进器系统奇异结构的问题,提高了船舶的动态性能。

参考文献
[1]
杨世知, 王磊, 张申. 基于能耗最优化的动力定位推力分配逻辑算法研究[J]. 船舶力学, 2011, 3(15): 217-226.
[2]
JOHANSEN T A, FOSSEN T I, BERGE S P. Constrained Nonlinear Control Allocation with Singularity Avoidance using Sequential Quadratic Programming. IEEE Trans. Control Systems Technology, 2004, 12: 211–216.
[3]
王彦昊. 耙吸挖泥船动力定位系统推力分配策略研究[J]. 科学技术与工程, 2011, 11(2): 419-422. DOI:10.3969/j.issn.1671-1815.2011.02.047
[4]
施小成, 魏玉石, 宁继鹏, 等. 基于能量最优的组合偏置推力分配算法研究[J]. 中国造船, 2012, 5(2): 96-104.
[5]
ZHAO Da-wei, DING Fu-guang, TAN Jin-feng, et al. Optimal thrust allocation based GA for dynamic Positioning ship[J]. IEEE International Conference on Mechatronics and Automation, Xi'an, China, 2010, 1254-1258.
[6]
NGONGI W E, DU J, WANG R. Robust fuzzy controller design for dynamic positioning system of ships[J]. International Journal of Control Automation & Systems, 2015, 14(1): 1-12.
[7]
吴显法, 王言英. 动力定位系统的推力分配策略研究[J]. 航海工程, 2008, 3(37): 92-96.
[8]
T I FOSSEN. Marine control systems: guidance, navigation and control of ships, rigs and underwater vehicles. Tapir Trykkeri, 2002.
[9]
A VEKSLER, T A JOHANSEN, R SKJETNE. Thrust allocation with power management functionality on dynamically positioned vessels, in Proc. Amer. Control Conf., 2012, 6: 1468–1475.
[10]
黄席樾, 向长城, 殷礼胜. 现代智能算法理论及应用[M]. 北京: 科学出版社, 2009.