APP下载

基于改进BFO优化的高速无人艇航向PD控制*

2018-12-27茅云生董早鹏曾小龙

关键词:风浪游动航向

包 涛 茅云生 董早鹏 杨 鑫 曾小龙

(武汉理工大学交通学院 武汉 430063)

0 引 言

无人艇在海上高速航行过程中受风浪流等环境干扰较大,且其航向控制系统具有复杂的非线性特征,这对其控制算法要求较高.Minorsky[1]提出的基于输出反馈的PID控制器后,这种最初的自动航向控制器获得了长足的进步.然而,在复杂、精细的无人艇上,粗略的传统PID控制显示出了它的缺陷,因此,各国学者开始研究一些新的航向控制方法,Fang等[2]采用基于神经模糊算法的自整定控制器实现船舶航向最优调整,但是实施较为复杂; Zheng等[3]基于粒子群算法进行船舶航向控制;Sarda等[4]采用非线性比例导数的反推的滑模反馈控制器来控制无人艇的位置和航向,然而其仅重点考虑了风对艇的影响;Kim等[5-6]则采用了遗传算法来整定PID控制器的参数;徐国平等[7-8]则在网络平台基础上着重控制的简便和实时性上做了很多努力,取得了一定的成果.

Passino[9]提出了细菌觅食算法(BFO),这是一种新式的生物智能优化算法,和蚁群算法、粒子群算法等智能优化算法类似,其也是一种随机搜索算法,是通过模拟自然界生物群落行为从而寻求全局最优的仿生优化算法.细菌觅食算法作为一种新的机遇群体的优化工具,其具有比其他智能算法更好的取得全局极值的能力.Pan等[10]使用细菌觅食算法进行细胞图像分割.考虑到算法本身较强的全局搜索能能力,本文将其应用在高速无人艇的航向控制参数优化上,但是对于传统BFO算法,其同样存在收敛速度较慢,精度受步长初值影响大等缺点[11],因此,本文提出了一种改进的细菌觅食算法,加强了其收敛速度和控制精度,并将其应用于船舶航向PD控制中,同时在无风浪流干扰的理想环境和有干扰的一般环境中,分别基于实验室半物理仿真平台验证了改进的BFO算法的优化效果.

1 无人艇航向操纵运动及风浪流干扰模型

1.1 无人艇航向操纵运动模型

无人艇航向非线性操纵运动模型为[12]

(1)

式中:r为首摇角速率;δ为舵角;T为追随性时间常数;K为舵角增益;α为Norbbin系数,其数值可以由螺旋实验确定;d为干扰;ψ为航向角.

1.2 无人艇风浪流干扰模型

无人艇在航行中必然会收到环境扰动的影响,在对无人艇航向控制进行仿真时,建立合适的扰动模型是一个重要环节.作用与无人艇的环境扰动分为两类,一类是风、流扰动;另一类是海浪扰动.

在工程上,风流扰动可以用一个常值加上白噪声来模拟,其就可以较好模拟风流干扰.对于海浪扰动,按式(2)建立波浪干扰模型,模型使用谱分析理论,将有色噪声的海浪扰动用白噪声经过形成滤波器后输出的波高来代替,再利用波高及波高变化率与扰动力矩的关系计算出波高所对应的扰动力矩,根据扰动力矩与舵角的关系,可得到海浪扰动所对应的舵角角度值[13].

(2)

式中:L为波高;k1为有色噪声比例系数;wgn为高斯白噪声;G(s)为有色噪声到波高的传递函数;N为首摇扰动力矩;α为航向与海浪的夹角;C1,C2,ρ1为试验确定的系数;K为比例系数,与船的尺寸、吨位、转载等有关;V为航速(m/s);δl为等效干扰舵角.

2 船舶航向控制器设计

2.1 细菌觅食算法(BFO)基本原理

BFO算法具有对初值和参数选择不敏感、鲁棒性强和简单易于实现,以及并行处理和全局搜索等优势.该算法求解问题主要包括四个流程:趋向性操作、聚集性操作、复制性操作和迁徙性操作.在求解时,用细菌在搜索空间中的位置代表所求问题的解,用适应度函数值表示所求问题的解的好坏程度.

1) 趋向性操作 细菌在觅食过程中将会进行旋转和游动两个运动,算法模拟细菌进行趋向操作的具体方式为

(3)

式中:θi(j,k,l)为第i个细菌在第j次趋化,第k次复制,第l次驱散时细菌所在的位置;C(i)为细菌的游动步长;Δ(i)为细菌在搜索空间内的任意方向上的一个随机向量.

2) 聚集性操作 细菌在寻找食物时,每个细菌之间具有引力和斥力,引力使食物多处细菌越来越多,斥力使食物稀少处细菌越来越少.细菌聚集行为的数学模型为

(4)

式中:dat为引力的深度;wat为引力的宽度;hre为斥力的高度;wre为斥力的宽度.

通过式(4),可以修正细菌的适应度值,使细菌聚集更迅速.

3) 复制性操作 细菌的进化过程也符合达尔文的“适者生存、优胜劣汰”进化准则.为了模拟进化的过程,算法使用基于式(5)的一系列操作来模拟这种现象.

(5)

式(5)定义为细菌i的健康值函数,其可以衡量细菌的健康值程度,即其觅食能力的大小.算法将健康值较大的一般保留并复制一次,将健康值小的一半舍弃,保证细菌群落觅食能力提升同时群落大小不变.

4) 迁徙性操作 细菌在生存环境中可能逐渐迁徙到其他环境以应对突发的不良环境变化(如自然灾害).为了模拟这种行为,算法给定了一个既定的迁徙概率Ped,在经过数次复制操作后,某些细菌发生迁徙.这种操作有利于算法跳出局部最优解,从而寻找出全局最优解.

2.2 改进的细菌觅食算法

2.2.1趋化步长的改进

原始算法的趋化步长是固定值,这使得算法出现了两个问题,即步长大小不容易确定和不同健康值细菌之间无法体现出差异.

包敏[14]提出了一种新的自适应分维步长公式为

(6)

式中:Cd为第d维的步长;stepd为第d维的初始化步长.angle为[0,360°]上的随机数.

尽管式(6)改进了原始算法固定步长的缺点,但是其自身依然存在一些不足:使用(j+k+l)实现步长的减小操作作用有限,本文将加法操作改为乘法操作,使算法前期靠近最优值更快,后期小步幅搜索更精确;式(6)使用cos(2π(angle/360°))控制方向,该操作虽然可以实现寻优方向的控制,但是每一维度都进行360°范围内的前进,无疑大量进行了无用的运算,造成运算速度下降,本文将其改进为每一维度只进行前进或后退随机步长,大大减小了算法运算量.

综上,改进后的自适应分维步长公式为

(7)

式中:rand为[-1,1]上的随机数.

改进后的分维步长使细菌在每一维度分别前进不同步长,运算简单,效果好.

2.2.2游动操作的改进

BFO算法确定步长后,随即进行游动操作,但是原始算法细菌在游动操作后进行适应度值的判断,优于上一位置继续游动,劣于上一位置停止游动.这种操作虽然可以基本实现功能,但是游动到劣势位置的细菌无法回到原始的优势位置,甚至可能在随后的游动操作中在原始的优势位置和当前的劣势位置间不断重复,造成运算的极大浪费.

针对这个问题,本文提出了一种智能探针操作,赋予细菌一个智能探针,对细菌即将进入的下个位置提前使用探针计算位置适应度值大小,优于目前位置则前进,劣于目前位置则不前进.该操作大大加快了算法的收敛速度,解决了细菌无谓的游动导致细菌前进到较差的适应度环境进而可能反复游动的缺点.改进后的流程框图见图1.

图1 改进的游动操作流程图

2.2.3驱散操作的改进

在基本细菌觅食算法中,细菌群落将以一个固定概率Ped发生迁徙行为,从而期望改善细菌放弃局部最优值的能力,但是该行为可能导致一些已经位于最优值附近的细菌发生迁徙,从而远离最优值,降低算法收敛的速度.

纪震等[21]针对粒子群算法曾提出过一种自适应的迁徙概率算法,尽管其针对的是粒子群,但是同样也可以应用于细菌觅食算法中,从而改进算法的收敛性.进行自适应迁徙的所有细菌为

(8)

式中:Jhealth为健康值函数,Ped为基本迁徙概率.

式(8)本质上利用了轮盘赌[22]的思想进行选择,这使得健康值最小的细菌必定会被迁移,健康值越大,被迁移的概率也就越小.

2.3 基于改进BFO的PD控制

尽管船舶航向的PD控制简单、性能较好,但是其不能适应船舶航向控制的数学模型及扰动模型的不确定性.将智能控制理论和PD相结合成为一种新的研究方向.然而基本的BFO算法因为其本身算法的局限性,在算法收敛性和稳定性方面存在一定的局限性,为了达到更好的控制效果,本文将改进的BFO算法进入到PD控制中,通过智能算法调整PD控制器的两个参数,从而更好地达到控制船舶航向的目的.基于改进BFO的PD航向控制结构图见图2.

图2 基于改进BFO的PD航向控制结构图

2.4 适应度函数的确定

为了使船舶航向调整快速、精确,本文选用了四个量作为适应度函数为

ω3ts+ω4φover

(9)

式中:e(t)为系统偏差;Δy(t)=y(t)-y(t-1);y(t)为航向输出;ts为调整时间;φover为绝对超调量,ω1-4为权值.

通过调整不同的权值大小,可以侧重加快调整速度或者减小超调量.当ω1较大时,系统侧重加快调整速度.当ω2、ω4时,函数侧重于减小系统的超调量,当ω3较大时,系统侧重于加快航向调整速度.当权值取得合适的值后,系统可以减小超调量的同时加快航向的调整时间.

3 仿真实验及结果分析

3.1 不考虑风浪流干扰的航向控制仿真

在不考虑风浪流等干扰的理想环境下,BFO算法参数设置见表1.

表1 BFO算法参数设置

注:Nc-算法趋化操作次数;Ns-趋化操作运动最大步数;Nre-复制操作次数;Ned-驱散操作次数;S-细菌个数;w1-4-适应度函数权值

得到三种算法的最终优化值,见表2.

表2 不同算法参数最终优化结果

注:Kp-PD算法比例系数;Kd-微分系数

由表2可知,相比传统PD参数整定方法,基本BFO算法得到的三个参数具有更小的即更优的适应度函数值,而改进后的BFO算法相比基本BFO算法得到的参数适应度函数值进一步减小,即进一步优化.

三种不同算法在不考虑干扰时,输入规定转向角度为30°时,航向角的变化见图3.

图3 不同算法航向角变化

由图3可知,相比基本BFO算法和传统PID算法,改进后的BFO算法到达既定航向角更加迅速;相比传统PD算法,超调量更小,稳定更快.

基本BFO算法和改进BFO算法在优化中最佳适应度的变化见图4.

图4 基本BFO算法和改进BFO算法最佳适应度

由图4可知,改进BFO算法可以搜索到更优的结果,同时收敛速度明显加快,且到达最优值时函数值大小更加稳定,这些都使改进后的BFO算法拥有更优良的控制性能.

3.2 考虑风浪流干扰的航向控制仿真

船舶航行时,不可避免的会遇到风浪流的干扰,这些干扰会加大操舵的难度,给航行带来安全隐患.

在考虑风浪流的干扰时,BFO算法设置参数见表3.经过计算,三种不同算法得到的优化值见表4,参数含义同表1~2.

表3 BFO算法参数设置

表4 考虑干扰不同算法最终优化结果

由表4可知,改进的BFO算法相比基本BFO和传统PD算法具有更优更小的适应度函数值.

三种不同算法在考虑风浪流的干扰时,输入规定转向角度为30°时,航向角的变化见图5.

图5 考虑干扰时的不同算法航向角变化

图5显示使用改进BFO算法计算的PID参数值所构成的PD控制器,在有风浪流的干扰下,改进BFO算法比传统PID拥有更小的超调量,比基本BFO算法有更小的调节时间,同时后期比传统PID有更强的稳定性.

而在考虑风浪流的干扰时,基本BFO算法和改进的BFO算法的计算过程同样有所不同,两种算法在优化过程中适应度值的变化见图6.

图6 基本BFO算法和改进BFO算法最佳适应度

由图6可知,在有风浪流的干扰下,改进BFO算法具有更强的收敛性,同时在后期有更强的稳定性.

4 结 论

1) 改进的分维自适应步长策略,实现了算法步长的自适应调整,解决了基本BFO使用固定步长容易导致算法遗失局部最优解的问题.

2) 智能探针操作方法,即对细菌即将进入的下个位置提前计算位置适应度值大小,优于目前位置则前进,劣于目前位置则不前进,解决了基本BFO重复游动可能性高的缺点.

3) 自适应迁徙概率算法的提出避免了基本BFO采用固定迁徙概率可能导致最优解消失的劣势.

4) 不论在有风浪流干扰还是没有干扰的情况下,改进BFO算法都比基本BFO算法展现出了更强的收敛性和稳定性,同时拥有更好的优化结果,改进BFO算法克服了基本BFO算法收敛速度慢的缺陷.

5) 将改进BFO算法应用于船舶航向控制PID参数的寻优中,经过半物理仿真实验,可以得知:不论是有风浪流干扰还是没有风浪流的干扰,与基本BFO算法和传统PID相比,经过改进BFO寻优后的PID控制器加快了反应速度,同时也减小了超调量,获得了更好的控制性能.

猜你喜欢

风浪游动航向
风浪干扰条件下舰船航向保持非线性控制系统
球轴承用浪型保持架径向游动量的测量
知坐标,明航向
不怕风浪的小船
把手放进袋子里
East Side Story
考虑几何限制的航向道模式设计
基于干扰观测器的船舶系统航向Backstepping 控制
海陵湾台风浪场的数值模拟
父亲