本发明涉及船舶自动化工程领域,更具体的说,是基于人工智能方法的一种更为有效的动力定位智能自抗扰控制方法。
背景技术:
动力定位系统(dynamicpositioningsystem,dps)是一种闭环的自动控制系统,其主要工作方式就是通过各传感器将船舶实际的运动信息,即船舶的实际位置,和外界的风浪流扰动的的大小传回控制系统,然后系统将船舶目标位置与实际位置的相对比,再结合风浪流的扰动影响,自行计算出使船舶到达目标位置的各个推力器的推力,最后使得船舶的实际位置与目标位置相对应。该种系统使得船舶克服了传统抛锚定位无法在深海定位的缺点,满足了许多深海作业船舶的定位需求。
目前动力定位控制器采用的控制方法有pid控制,自适应控制,反步法控制,模糊控制,神经网络控制,自抗扰控制(activedisturbancerejectioncontrol,adrc)等。而对于传统的pid控制而言,其在控制动力定位系统时,无法满足船舶控制精度和稳定性的要求。由于实际船舶运动的复杂性,和外部环境的影响的随机性和难以预测性,使得自适应控制方法并不能有效解决动力定位系统的控制问题。模糊控制,反步法和神经网络控制等新的控制方法的出现,使得船舶动力定位系统的控制上取得了一定的进展,但也存在很多问题。比如这些控制方法对控制对象模型要求较高,且这些控制方法不易被直接运用到实际工程设计中。
adrc控制器在船舶动力定位上的控制效果上有改进,而且它对船舶数学模型的精度要求不高,但adrc的算法复杂、参数多,使得调节参数的过程变得非常繁琐,而且短期内人工直接试凑出的参数运用到adrc控制器上时,效果不佳。
将神经网络嵌入adrc中的扩张状态观测器(extendstateobserver,eso)模块处,会有效分担eso预测的扰动大小,从而提升adrc控制器的控制效果。致使人工试凑参数的adrc控制器在加入神经网络时,也可以达到较好的控制效果。但传统的bp神经网络的收敛速度慢,而且很容易产生局部最优解,从而使网络训练过程的效率得不到保证。这就导致难以找到与adrc控制器相匹配的bp网络模块。
南洋理工大学黄广斌教授等人提出了极限学习机(extremelearningmachine,elm)算法。elm是一种快速的的单隐层神经网络(single-hiddenlayerfeedforwardneuralnetwork,slfn)训练算法。该算法的特点是在网络参数的确定过程中,隐层节点参数随机选取,在训练过程中无需调节,只需要设置隐含层神经元的个数,即可获得唯一最优解;而网络的输出权值是通过最小化平方损失函数得到的最小二乘解。这样网络参数的确定过程中无需任何迭代步骤,从而大大降低网络参数的调节时间。与传统的神经网络训练方法相比,该方法具有学习速度快、泛化性能好等优点。
将elm嵌入到adrc中的eso模块处,凭借其分担eso预测扰动大小的能力,来提高控制器的控制效果。这一控制方法运用到船舶动力定位控制,即基于elm的船舶动力定位adrc控制技术可以改善dps的鲁棒性,并且提高船舶动力定位的控制精度。
技术实现要素:
本发明的目的是为了克服设计船舶动力定位adrc控制器的时,控制参数难试凑的缺点,设计一种基于elm的船舶动力定位adrc控制方法。
为实现上述目的,本发明采用技术方案是:一种基于极限学习机的船舶动力定位自抗扰控制方法,其包括以下步骤:步骤s1:建立含有环境干扰的船舶定位控制系统的数学模型;步骤s2:设计船舶动力定位adrc控制系统;船舶动力定位adrc控制系统包括若干个动力定位控制器;步骤s3:选取动力定位控制系统的参数;步骤s4:设计一elm模块;步骤s5:将elm模块嵌入到adrc控制系统中,形成具有elm的动力定位控制器。
在本发明一实施例中,步骤s1包括以下具体步骤:将海洋环境干扰分为风、浪、流干扰;采用船舶低速运动模型,研究船舶在纵荡、横荡和艏摇三个自由度的运动,以此建立这三个自由度的船舶定位控制系统数学模型;外加风、浪、流三扰动;最终形成含有环境干扰的船舶定位控制系统的数学模型。
在本发明一实施例中,步骤s2包括以下步骤:步骤s21:所述船舶定位控制系统的数学模型由三个自由度数学模型组成,设计含有三个船舶动力定位控制器分别对三个自由度控制的船舶动力定位adrc控制系统;步骤s22:每个船舶动力定位控制器由二阶的跟踪微分器td、三阶的扩张状态观测器eso、及非线性状态误差反馈单元nlsef构成;步骤s23:td输出v1和v2,v1为跟踪输入信号v(t),v2为输入信号v(t)的微分;eso输出z1,z2和z3;z1,z2为各变量观测量,z3为扩张变量观测量;生成俩误差信号:e1=v1-z1和e2=v2-z2;nlsef将俩误差信号进行非线性组合。
在本发明一实施例中,步骤s4包括以下步骤:步骤s41:收集eso的输出数据(z1,z2,z3),将其作为elm的训练样本数据:{(z1i,z2i,z3i)|z1i,z2i∈rd,z3i∈rm,i=1,…,n};步骤s42:确定隐层输出函数
在本发明一实施例中,步骤s5包括以下步骤:将eso的部分输出数据(z1,z2)连接到elm模块,然后elm模块的输出接到控制对象反馈回eso的线路上。
在本发明一实施例中,还包括步骤s6:设定具体的位置和艏向信号输入到adrc控制系统的输入端,然后将该设定信号与船舶实际运动信号进行差值对比,再在经过结合基于elm的adrc控制系统的运算处理后,其输出端连接船舶推力分配系统,再连接推进器,推进器输出端连接船舶定位控制器的输入端,输出端信号在传到adrc控制系统输入端。
与现有技术相比,本发明改善了人工试凑参数下的adrc控制器的效果不佳的情况。
附图说明
图1是本发明的系统结构图。
图2是常规的船舶动力定位自抗扰控制结构图。
图3是船舶运动变量图。
图4是基于elm的船舶动力定位自抗扰控制结构图。
图5是控制策略设计步骤流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步解释说明。
本发明的基于elm的船舶动力定位adrc控制方法,包括如下步骤:
步骤s1:建立含有环境干扰的船舶定位控制系统的数学模型;
步骤s2:设计船舶动力定位adrc控制系统;船舶动力定位adrc控制系统包括若干个动力定位控制器;
步骤s3:选取动力定位控制系统的参数;
步骤s4:设计一elm模块;
步骤s5:将elm模块嵌入到adrc控制系统中,形成具有elm的动力定位控制器。
步骤s1中海洋环境干扰主要分为风、浪、流等干扰,船舶运动在海洋环境中会受到其干扰力的影响,船舶运动表现为复杂的多向运动,可用纵荡、横荡、垂荡、横摇、纵摇、艏摇来表示。实际进行动力定位控制系统研究时,多采用船舶低速运动模型,主要研究船舶在纵荡、横荡和艏摇三个自由度,以此建立这三个自由度的数学模型,外加风、浪、流三扰动数学模型即可。
步骤s2中根据船舶的数学模型可知,要将船舶动力定位adrc控制系统设计为二阶控制系统。船舶的实际数学模型主要由三个自由度数学模型组成,设计含有三个adrc控制器分别对三个自由度控制的船舶动力定位adrc控制系统。二阶船舶动力定位adrc控制系统由二阶的跟踪微分器(tracking-differentiator,td),三阶的扩张状态观测器(eso),还有非线性状态误差反馈(nonlinearstateerrorfeedback,nlsef)构成。td输出v1和v2,v1为跟踪输入信号v(t),v2为输入信号v(t)的微分,eso输出z1,z2和z3。z1,z2为各变量观测量,z3为扩张变量观测量。
生成俩误差信号:e1=v1-z1和e2=v2-z2(1.1)
nlsef将俩误差信号进行非线性组合。
步骤s3设计好船舶动力定位控制器后,在进行调整控制器参数时,需注意参数大小限定的范围,经过不断地人工试凑,来提高控制器的控制效果。
步骤s4在设计elm的具体方法就是将eso的输出数据作为elm的训练数据。elm算法如下:针对训练数据样本{(xi,ti)xi∈rd,ti∈rm,i=1,λ,n},具有l个隐层神经元的单隐层前向神经网络的输出函数表达式为:
其中
hβ=t的最小二乘解
h叫做隐层输出矩阵,相应的第i列表示第i隐层元对应的于输入x1,x2,λxn的输出量,第j行表示所有的隐层元对应于输入xj的输出量。结合以上公式,具体应用到求取船舶动力定位adrc控制器的elm网络模块如下:
收集eso的输出数据(z1,z2,z3),将其作为训练样本数据:
{(z1i,z2i,z3i)|z1i,z2i∈rd,z3i∈rm,i=1,…,n}
确定隐层输出函数
随机生成隐层节点参数
计算隐层输出矩阵h;
求解网络输出权值β:β=h÷t(其中h÷=(hth)-1ht)。(1.5)
步骤s5将训练好的elm模块嵌入到adrc控制器中,即将eso的部分输出数据(z1,z2)连接到elm模块,然后elm模块的输出接到控制对象反馈回eso的线路上。
基于elm的adrc控制器的船舶动力定位模拟控制系统,其独特之处就在于,该系统由嵌入了elm的自抗扰控制器(1),推力分配(2),推进器(3),船舶运动数学模型(4),风浪流干扰信号(5)构成。该系统具体流程即,设定具体的位置和艏向信号输入到adrc的输入端,然后将该设定信号与船舶实际运动信号进行差值对比,再在经过结合基于elm的adrc的运算处理后,其输出端连接推力分配,再连接推进器,推进器输出端连接船舶运动数学模型的输入端,输出端信号在传到adrc输入端。整个流程如图1所示。图2是常规的船舶动力定位自抗扰控制结构图。
在本发明一具体实施例中,
1)建立含有环境干扰的船舶定位控制系统的数学模型。
船舶在水平面的运动通常用纵荡,横荡,艏摇运动来描述。船舶运动变量图参见图3。
假设船舶左右对称,并忽略风浪流等干扰产生的高频作用影响,船舶运动低频数学模型可以写为:
其中
2)设计船舶动力定位adrc控制器
根据二阶自抗扰控制器的设计可以得到控制算法:
td离散形算法
二阶td离散形式为:
式中fhan(v1,v2,r,h)为最速控制综合函数,v1跟踪系统输入信号v,v2跟踪v的导数,r,h为要调节的参数,t为步长。
eso离散算法:
对于二阶系统,eso离散算法为:
式中z1(k),z2(k),z3(k)为扩张状态观测器对船舶的状态变量的估计,y(k)为系统被控输出,δ1,δ2,β1,β2,β3为可调参数,t为采样步长。
nlsef的离散算法:
nlsef形成控制量的离散算法为:
式中kp,kd,δ1,δ2,a1,a2,b0为可调参数。
在动力定位的控制系统中,可以把船舶的三种水平面运动(纵荡、横荡、艏摇)当作相互独立的,因此设计三个adrc控制器来实现船舶动力定位adrc控制。
步骤3)根据实际调试情况来设置步骤2)中的各个参数。
步骤4)将调试好的adrc动力定位控制器借助matlab进行运行仿真,并分别收集三个eso各自的三维数据,z1(k),z2(k),z3(k)。
选定好elm中所含神经元的个数,将z1(k),z2(k)设为训练的输入,z3(k)设定为训练输出,进行训练,具体训练如下:
确定隐层输出函数
随机生成隐层节点参数
计算隐层输出矩阵h;
求解网络输出权值β:β=h÷t(其中h÷=(hth)-1ht)。
经过不断的调试神经元个数,测试后得到较好的elm模块。
步骤5)将训练好的elm模块分别嵌入到对应的eso模块。基于elm的船舶动力定位自抗扰控制结构图参见图4。
本发明的整体控制策略设计步骤流程图参见图5。
以上所述仅为本发明的一较佳实施例,凡依本发明申请专利范围所做的变化与修饰,皆属于本发明的涵盖范围。