APP下载

基于改进粒子群算法的船舶航向PID控制研究

2020-12-26王恒家王化明吴巧瑞

关键词:舵角航向极值

陈 林,王恒家,王化明,吴巧瑞

(1.浙江海洋大学东海科学技术学院,浙江舟山 316000;2.浙江海洋大学船舶与机电工程学院,浙江舟山 316022)

船舶航向控制的稳定关系到船舶航行的安全。传统PID 控制算法具有鲁棒性好、控制精度高、可靠性高等特点,直至今天仍被广泛应用于船舶自动舵的控制。由于船舶的运动具有大惯性、大时滞、非线性等特点,传统PID 控制算法不能很好的控制船舶的运动,特别在受到外界高频扰动时容易造成系统动荡,难以对船舶的航向控制进行准确控制。随着现代控制理论的发展,出现了许多群体智能优化算法[1-3],将群体智能优化方法与PID 控制算法相结合,来确定PID 的参数,进而提高PID 控制系统的性能。

粒子群优化算法被广泛应用在参数的寻优问题,通过各粒子之间的信息交流、协作,获得问题的最优解,将粒子群优化算法应用于船舶航向PID 控制的参数优化问题,可以提高船舶的航向控制性能。但是标准粒子群算法存在早熟、容易陷于局部极值,此后出现了一些改进型粒子群算法。任子武等[4]加入变异算子,对选中的粒子以一定的变异概率进行变异。金翠云等[5]在粒子群优化算法的基础上,考虑最差位置信息,对粒子的状态进行更新。南杰琼等[6]利用随机扰动正弦来调整粒子的惯性权值,在搜索初期加大粒子群的全局搜索能力。黄洋等[7]利用倒S 型函数对粒子惯性权值的非线性调整。戴文智等[8]采用对数递减调整粒子的惯性权值。改进型粒子群优化算法提升了粒子在解空间的搜索能力,加快了粒子群优化算法的收敛速度。

综合分析,本文将随机扰动正弦调整粒子惯性权值和变异算子组合在一起对粒子群优化算法进行改进,利用改进粒子群优化算法对船舶航向PID 控制的参数进行优化,在得到参数后,仿真船舶在静水和波浪下的航向运动,并与基于人工整定PID 参数的船舶航向运动进行比较。

1 船舶运动数学模型

船舶在水面上的运动十分复杂,一般需要建立六自由度运动方程才能准确描述船舶的运动状态。在研究船舶航向自动控制时可以简化船舶运动模型,仅考虑输入舵角与航向输出之间的关系。不考虑舵机特性。本文采用Nomoto 模型作为船舶运动模型,即:

其中,K,T 可通过公式计算得到:

其中,a11,a12,a21,a22,b11,b21计算方法参文献[9],与航速、两注间长、船宽、满载吃水、方形系数、排水量、重心距中心距离、舵叶面积有关。

2 船舶航向控制性能优化

利用PID 控制算法实现对船舶航向的控制,其系统流程如图1 所示。由于传统PID 控制参数一般是经验确定,在外界环境多变时,控制系统的性能会受到很大干扰,控制精度会下降很大。本文利用改进粒子群优化算法确定PID 算法的3 个参数值,提高PID 控制系统的抗干扰能力和控制精度。优化算法的思想是寻找一组PID 参数值使得控制系统的性能最佳。

图1 基于PID 控制参数调整的船舶航向控制系统Fig.1 Ship heading control system based on PID control parameter adjustment

2.1 航向控制系统目标函数

目标函数是判断系统控制性能的强弱的指标。对于船舶航向控制运动,当设定航向与实际航向偏差较大时,沿设定航向的速度分量下降,需要通过控制舵角降低航向偏差,但会增大了航行的阻力。在建立船舶航向控制系统的目标函数时,需要将舵角和航向偏差都考虑在内。采用目标函数[10]如下:

其中,λ 为舵角加权系数。当J 取最小值时,舵角与航向偏差组合值达到最小,船舶具有很好的航向控制性能。

2.2 粒子群算法原理及改进

2.2.1 改进粒子群算法

粒子群优化算法(Particle Swarm optimization,PSO)适合于求解函数最优极值问题,函数的变量个数对应着粒子的维度。在D 为搜索空间,设定粒子数目为n,第i 个粒子的位置为xi=(xi1,xi2,…,xiD),第i 个粒子的飞行速度为vi=(vi1,vi2,…,viD)。每次迭代,单个粒子历史经历最好的位置称为个体极值pbest,种群经历过最好的位置称为全局最优极值gbest,粒子的位置和速度根据式(3)更新。

w 为惯性权重;c1和c2为加速常数,一般c1,c2∈[0,4];r1,r2为[0,1]区间的随机数;vid为第i 个粒子在第d 维的速度;xid为第i 个粒子在第d 维的位置。

2.2.2 改进粒子群优化算法

由于粒子群优化算法存在早熟,在求解函数最优极值时,容易陷入局部最优,导致得到的解是函数的局部最优解,而非函数全局最优解。惯性权重的取值影响到粒子群在解空间中的搜索性能。当惯性权重取值较大时,粒子群会在更大范围的解空间中搜索可能解,全局搜索能力较强;惯性权重取值较小时,粒子群的局部搜索能力较强。本文采用随机正弦递减调整惯性权重的值,使得在初期,粒子表现为全局搜索,当获得全局最优解后,惯性权重迅速递减,粒子表现为局部搜索,加快算法的收敛速度。惯性权重值随机扰动正弦递减的公式[6]表示为:

其中,h=π*iter/2MaxIter,iter为当前迭代次数,MaxIter 为最大迭代次数。

为防止粒子早熟收敛,在调整粒子惯性权重的基础上,对每个粒子采取概率变异策略,将选中粒子位置转到解空间的其他区域进行搜索。一般变异概率Pm取0.001~0.1,变异后粒子的位置[4]为:

其中,randn()为均值为0、方差为1 的随机分布。

2.3 PID 参数整定

船舶航向控制系统PID 参数优化过程实际上是利用改进粒子群算法求解使得式(2)最小值的一组粒子x=(x1,x2,x3),粒子的位置分别对应PID 的3 个参数值。每次迭代,可以得到单个粒子历史最小值和种群最小值,每个粒子的位置向着这2 个最小值对应的位置方向移动。在迭代结束后可确定得到一组具有最佳位置的粒子,使得式(2)的值在整个迭代过程中最小,粒子的位置分别对应PID 算法的3 个参数,即为优化后的PID 参数值。

参数整定步骤:

Step1:粒子群初始化,设置粒子的数目,迭代次数,粒子飞行的速度限制[Vmin,Vmax],粒子每个维度位置限制[xmin,xmax],每个粒子随机产生位置x=(x1,x2,x3)和速度v=(v1,v2,v3)。

Step2:根据式(2)计算每个粒子对应的J 值。迭代初期,粒子随机产生的位置作为各自的个体极值pbest,种群中使得J 值最小的粒子作为全局最优极值gbest。

Step3:由公式(4)计算每个粒子的惯性权重。

Step4:采用式(3)更新粒子的飞行速度vid和位置xid。若粒子的速度vid>Vmax,vid=Vmax;vid<Vmin,vid=Vmin。

Step5:引入变异算子,随机对粒子的位置变异更新。若rand>Pm,则执行式(5)。

Step6:判断粒子是否飞离搜索范围。若xid<xmin,xid=xmin;xid>xmax,xid=xmax。xi1表示KP,xi2表示KI,xi3表示KD。

Step7:由式(2)计算每个粒子的J 值。令单个粒子与各自个体极值比较,更新个体极值pbest;令所有粒子与全局最优极值比较,更新种群的全局最优极值gbest。

Step8:判断是否迭代次数是否大于最大迭代次数。若不满足条件,跳至Step3,继续循环执行,反之跳出循环。

Step9:输出全局最优解及其对应的粒子的位置,即得到最佳的KP,KI,KD。

2.4 PID 航向控制算法

利用航向偏差、比例系数、积分系数、微分系数求出输入舵角,公式为:

其中,KP为比例系数,T1积分时间常数,TD微分时间常数,δ(t)为控制器输出,e(t)为指定航向角s 与实际航向角φ(t)的偏差。

3 仿真与分析

本文采用“育龙”轮为研究对象,船舶的自身参数[11]:两柱间长为126 m,船宽为8 m,方形系数为0.681,满载排水量为14 278.12^3,舵叶面积为18.8 m2,船速为15 kn,重心距中心距离为0.25 m。本文中改进粒子群优化算法参数设置:粒子数目为20;加速常数c1=c2=2;惯性权重的取值wmax=0.9,wmin=0.4;粒子在空间中的飞行速度取值范围为[-1,1];粒子位置最小设置为 [0,0,0],最大位置为[10,0.1,100];最大进化迭代次数为100 次;最小适应度值为0.1。λ 取0.1。变异概率Pm取0.08。标准PSO 无λ、Pm,其他参数设置与上面保持一致。基于惯性权重随机正弦递减PSO、基于变异PSO 是根据上面部分参数设置。机械舵角限制为≤25°。采用MATLAB 软件编写改进粒子群优化算法,利用Simulink 仿真工具建立船舶航向控制系统,如图2所示,图中KP,KI,KD对应每一个输入粒子的位置分量,将两者结合起来实现对PID 控制参数的优化,从而提高船舶航向控制性能。

图2 基于Simulink 仿真工具的船舶航向控制系统模型Fig.2 Ship heading control system model based on Simulink simulation tool

3.1 静水环境下仿真

基于船舶航向控制系统模型,设置指定航向角。在静水环境下,分别采用标准PSO、基于惯性权重随机正弦递减PSO、基于变异PSO 以及本文的改进PSO 对目标函数的J 值进行寻优。算法每次迭代,可以得到粒子群中最小J 值,当J 值趋于稳定且保持不变时,即可得到一组PID 参数使得控制系统控制性能最佳,然后根据PID 航向控制算法调整船舶的航向角到达指定航向角,之后保持船舶的航向角不变。

图3 优化算法的收敛速度比较Fig.3 Comparison of convergence speed of optimization algorithms

如图3 所示,随着迭代次数的增加,采用标准和所有改进粒子群优化算法得到粒子群值最终保持稳定都非常接近,表明所有算法都已收敛,可以确定一组使得控制系统性能最佳的PID 参数。本文改机粒子群优化算法在搜索前期具有更小值,迭代次数在2~16 次时,粒子陷入局部极值,之后便跳出局部搜索,在解空间的其他部分继续搜索可能解,表现为全局搜索。本文改进的粒子优化算法在迭代次数为17 次时,就已经获得种群的最小值,且随着迭代次数的增加,值基本保持不变,表明算法收敛速度很快。与其他粒子群优化算法相比,本文改进粒子群优化算法的具有更快的收敛速度和良好的全局搜索能力。

利用临界比例法整定PID 控制参数,经过多次测试后确定一组PID 参数,即KP=3,KI=0.002,KD=40,仿真船舶以5 度航向保持直线航行,与采用本文改进粒子群优化PID 算法计算的结果进行对比。图4 是仿真船舶在静水条件下航向保持运动时的航向角和舵角变化曲线。

图4 在静水条件下船舶航向角与舵角的变化曲线Fig.4 Curve of ship heading angle and rudder angle under hydrostatic conditions

从图4(a)看出人工整定的PID 参数应用到航向控制系统中,航向角在达到指定航向角后会继续增加,系统出现超调现象,而改进粒子滤波算法优化得到PID 参数使得控制系统可以很好的控制航向,未出现超调现象。从图4(b)可以看到通过舵机调整船舶的航向,改进粒子群算法中的舵角摆舵幅度较小,控制效果更好。

3.2 波浪环境下仿真

波浪对船舶运动影响较大,二阶波浪力会导致船舶的航向发生偏离,在研究船舶的航向保持运动时不可忽略。采用白噪声驱动波浪的传递函数来模拟海浪干扰,作为一种干扰舵角叠加到由PID 控制律计算得到的舵角上。采用6 级风作用下典型的二阶振荡环节传递函数[8]。传递函数为:

波浪条件下各优化算法种群最小J 值迭代对比如图5 所示:

图5 各优化算法对比Fig.5 Comparison of convergence speed of optimization algorithms

如图5 可知,在波浪条件下,本文改进的粒子群优化算法在迭代初期就可以找到较小的值。在迭代次数为18 次时,种群最小值达到最小,且在之后的迭代保持不变,算法已经收敛,即找到一组使得PID 控制系统性能最优的一组参数。与其他优化算法相比较,该改进算法具有较快的收敛速度和全局搜索性能。

图6 为波浪条件下船舶航向保持运动的航向角与舵角变化曲线,粒子群优化后的PID 参数控制系统在控制航向时未出现超调,且在波浪条件下,可以控制船舶的航向角维持在5°上下,航向角波动幅值比基于临界比例法的控制系统的航向波动幅值小。受波浪的干扰影响,舵角波动较为频繁,一般都在±5°之内。

通过改进粒子优化算法可计算得到在不同条件下使得航向控制系统性能最佳的PID 参数值,如表1所示。

图6 波浪条件下船舶航向角与舵角的变化曲线Fig.6 Curve of ship heading angle and rudder angle under wave conditions

表1 不同环境下改进粒子群优化得到的控制参数值Tab.1 Control parameter values obtained by improved particle swarm optimization under different conditions

4 结论

本文采用改进粒子群优化算法优化PID 参数,进而提升船舶航向控制系统性能。在目标函数寻优时,分别采用本文改进PSO、标准PSO、基于变异PSO、基于权重正弦调整PSO 四种方法,将得到结果进行对比,表明本文改进PSO 在目标函数寻优时具有更快的收敛速度。分别采用人工整定的PID 参数、本文改进PSO 确定的PID 参数仿真船舶5 度偏航运动,结果表明采用第二种方法不会出现超调,控制效果更好。

猜你喜欢

舵角航向极值
风浪干扰条件下舰船航向保持非线性控制系统
极值(最值)中的分类讨论
极值点带你去“漂移”
全回转推进器舵角反馈装置结构及问题的分析
基于数字信号处理的舵角反馈指示系统
知坐标,明航向
极值(最值)中的分类讨论
极值点偏移问题的解法
操舵仪检测平台中舵机运动模拟装置设计与实现∗
考虑几何限制的航向道模式设计