本发明涉及船舶动力定位技术领域,尤其是涉及一种基于遗传算法与模拟退火算法结合的半潜式海洋钻井平台动力定位系统的推力分配方法。
背景技术:
随着人类对海海洋的不断开发,传统的锚泊定位系统已经无法满足深海水域的钻井作业的需求,而动力定位系统能够利用钻井平台自身配备的推进器,抵御海上环境的干扰,实现平台位置与艏向的保持,而且具有定位精度高,机动性强、不受海域深度限制等优点,是深海作业设备必备的保障装备之一。
平台动力定位系统推力分配的任务是将动力定位控制器输出的三自由度控制指令按照一定的分配策略,合理地分配给各个推进器,使其输出期望的合力和力矩。现阶段的平台一般会配备多台推进器,因此在满足控制指令的前提下会存在多组解。在考虑推进器能量消耗、推进器磨损、推力误差等因素的情况下,可将推力分配问题归结为一个非线性最优化问题。
经检索发现,公开号为cn102508431a,名称为“一种海洋钻井平台动力定位系统推力分配方法”的专利申请中,运用粒子群算法实现推力分配。公开号为cn106773741a,名称为“一种无人船动力定位系统及方法”的专利申请中,运用加入改进惯性因子的粒子群算法实现推力分配,单一的粒子群算法在寻优过程中,随机性特别大,每一次的寻优结果会在最优值附近波动,因此利用粒子群算法产生的推力分配结果中,各推进器推力与方位角变化频率特别高,这对推进器的控制是十分不利的,推进器的频繁动作会加剧推进器磨损,缩短推进器的使用寿命。公开号为cn103092077a,名称为“动力定位系统的推力分配方法”的专利申请中,利用序列二次规划算法来实现推力分配。但序列二次规划算法对初始值的依赖特别大,初始值选取不当可能会造成找不到最优解的现象。公开号为cn102385665a,名称为“采用遗传算法的船舶动力定位系统推力分配方法”的专利申请中,运用遗传算法实现推力分配,单一的遗传算法为了得到全局最优解,会需要足够多的迭代次数去寻优,这样势必会造成计算复杂度的成倍增加。
技术实现要素:
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于遗传算法与模拟退火算法结合的推力分配方法。
本发明的目的可以通过以下技术方案来实现:
一种基于遗传算法与模拟退火算法结合的推力分配方法,包括以下步骤:
1)推力分配系统从动力定位控制器获得当前推进器的三轴指令,包括纵向力、横向力和首摇扭矩;
2)建立动力定位系统的推力分配数学模型;
3)建立推力分配模型的目标函数和约束条件;
4)应用遗传算法与模拟退火算法结合的寻优方法对推力分配模型进行求解,得到最优的分配推力方案,并将其转化为各推进器的推力指令以及方位角指令。
所述的步骤2)中,动力定位系统的推力分配数学模型描述为:
其中,tact为动力定位系统的推力,xt为全回转推进器在纵荡方向的推力总和,yt为横荡方向的推力总和,nt为扭矩总和,b(α)为推力分配矩阵,f为全回转推进器各自产生的推力大小,[lxi,lyi]为第i个推进器的安装位置,α=[α1…αi]为全回转推进器各自产生推力的方位角。
所述的步骤3)中,推力分配模型的目标函数为:
其中,α和f分别为全回转推进器的方位角和推力大小,wk为所有执行机构能量消耗,p为权值,fk为第k个推进器的推力大小,stqs为惩罚因子,(α-α0)tω(α-α0)为约束项,用以约束推力角的变化,使得相邻两次推力分配的推力角变化最小,α0为前一时刻全回转推进器的推力角,ω为避免推进器角度频繁调节的惩罚项,
所述的步骤3)中,推力分配模型的约束条件为:
惩罚推力误差s约束:
s=tact-b(α)f
推力大小约束:
fmin≤f≤fmax
其中,fmin,fmax为每个全回转推进器可产生推力的下限、上限;
旋转方位角大小约束:
αmin≤α≤αmax
其中,αmin,αmax为每个全回转推进器可以旋转角度的下限、上限;
推力变化率约束:
δfmin≤f-f0≤δfmax
其中,f0为前一时刻推进器产生的推力,δfmin,δfmax为推力大小变化的下限、上限;
旋转方位角的变化率约束:
δamin≤a-a0≤δamax
其中,δαmin,δαmax为旋转角度变化速率的下限和上限。
所述的步骤4)具体为:
将推力分配模型的目标函数作为混合算法中的适应度函数,其约束条件为混合算法中的解空间,首先运用遗传算法探寻全局解,然后将遗传算法中获得的最优解作为模拟退火算法的输入进行局部最优解的探寻,最终输出全局最优解,最后将其解码为各推进器的推力指令以及方位角指令。
所述的步骤4)具体包括以下步骤:
将推力分配模型的目标函数作为混合算法中的适应度函数,其约束条件为混合算法中的解空间,将解空间的解数据表示成遗传空间的遗传型串结构数据,初始解采用完全随机的方法产生,具体步骤包括:
41)以编码形式生成初始群体;
42)采用适应度函数进行初始群体中各个个体的适应度评估;
43)将选择算子作用于群体;
44)将交叉算子作用于群体;
45)将变异算子作用于群体;
46)进行终止条件的判断并解码为各推进器推力的大小及其方位角;
47)将遗传算法中解码的各推进器推力的大小和其方位角作为初始解输入到模拟退火算法中,将推力分配模型的目标函数作为模拟退火算法的适应度函数,将推力分配模型的约束条件作为模拟退火算法的解空间;
48)冷却参数表初始化;
49)根据metropolis的重要性采样方法,设定一个参数t为控制参数,将目标函数值设为内能e,固体在一个温度下的状态等同于目标函数的一个解xi,随着控制参数t的逐渐下降,固体内部的粒子不断重排列,生成新的解xi,固体的内能e逐渐下降,即目标函数值也逐渐下降,最终将达到全局最小;
410)进行终止条件的判断并给出最终的各推进器推力的大小及其方位角;
411)将最终指令发送至各推进器。
与现有技术相比,本发明具有以下优点:
一、本发明公开了一种基于遗传算法与模拟退火算法结合的推力分配方法,其特点是满足动力定位系统分别对纵荡、横荡和艏摇三个自由度的控制指令的基础上,实现所有执行机构能耗最小、磨损最低的目标,本发明在充分考虑遗传算法与模拟退火算法地优缺点地基础上,将两者结合,使得两者地缺点能够得到有效地弥补,大大提高了算法的全局寻优性能,能够快速有效地解决动力定位系统推理分配问题,具有很高的实用价值。
二、本发明针对单一遗传算法与单一模拟退火算法地缺点,对两者进行融合,克服了由于单一遗传算法容易出现过早收敛,迭代效率低等缺点,同时又以遗传算法地输出结果作为模拟退火算法的初始值,克服了单一模拟退火算法对初始值依赖程度大的缺点,融合算法寻优精度高,工程实用性强。
三、本发明遗传算法的作用主要是给出一个初始值,因此并不需要特别高的精度,因此在满足寻优精度的前提下,不需要耗费大量的时间去进行迭代,能够大大减少计算时间,满足了动力定位系统的实时性要求。
附图说明
图1为全回转推进器的结构布置图。
图2为本发明的动力定位系统的结构框图。
图3为本发明的方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
图1为推进器布置示意图。此示意图以某半潜式钻井平台为模型,以此模型为计算对象,说明本发明方法。钻井平台上设有8个全回转推进器。最大推力为540kn,推力额定变化速率为4.67kn/s;角度额定旋转速率为0.0175rad/s。
由于平台的推进器的数目高达8个,每个推进器均可产生不同大小和方向的推力,所以存在着无数多个不同的推力和方向的组合满足特定的水平力和船摇力矩。图2表示了本发明的总体框架,动力定位系统是一个庞大而复杂的集成性系统,所包含的设备非常繁多复杂,所涉及的专业面也较广,主要由测量系统、控制系统、推力分配系统三大子系统组成:
1.测量系统:完整的测量系统由定位参考单元、艏向测量单元、环境参考单元和垂直参考单元组成,用于测量船舶或平台实时的位置及艏向、运动状态和所处环境状态。
2.控制系统:由一台装有控制器即控制软件的计算机执行控制,控制整个定位过程。同时计算机也作为人工控制台使用,提供人机交互工作的平台,便于操作员监控管理。
3.推力分配系统:动力定位系统的执行机构,由数个推力器组成,用于产生动力定位所需的控制力。
图3为本发明的方法示意图。
步骤1、推力分配系统从动力定位控制器获得当前控制器三轴指令,包括纵向力、横向力和船摇扭矩。
步骤2、建立动力定位系统的推力分配模型的数学描述为:
tact=[xt,yt,nt]t=b(α)f。
其中,xt为8个全回转推进器在纵荡方向的推力总和,yt为横荡方向的推力总和,nt为扭矩总和,f=[f1…f8]t为8个全回转推进器各自产生的推力大小。
b(α)为推力分配矩阵,表达式中[lxi,lyi]为第i个推进器的安装位置,α=[α1…α8]为8个全回转推进器各自产生推力的方位角。
步骤3、建立推力分配问题的目标函数和约束条件;
其中目标函数为:
上式中,j(a,t,s)代表推力分配问题的目标函数,上述表达式的含义是,通过选取不同的a和f,使得目标函数值最小;其中a和f分别代表推进器的方位角和推力大小;第一项
约束条件为:
s=tact-b(α)f
fmin≤f≤fmax
αmin≤α≤αmax
δfmin≤f-f0≤δfmax
δamin≤a-a0≤δamax
上式中,第一项用于惩罚推力误差;第二项是限制推进器的推力大小范围,fmin,fmax指每个全回转推进器可产生推力的下限、上限;第三项是限制推进器旋转方位角的大小范围,αmin,αmax指每个推进器可以旋转角度的下限、上限;第四项是约束推进器的推力变化率,f0为前一时刻推进器产生的推力,δfmin,δfmax为推力大小变化的下限、上限;第五项是约束推进器的旋转方位角的变化率,δαmin,δαmax表示旋转角度变化速率的下限和上限,α0为前一时刻推力角。
在本实施例中,具体取值为p=50,ω=10×diag[1,1,1,1,1,1,1,1],δ=le6,ε=le-6,fmax=540kn,fmin=0kn,δfmin=-4.67kn,δfmax=4.67kn,δαmin=-0.0175rad/s,δαmax=0.0175rad/s,q=[1000,0,0;0,1000,0;0,0,1000])。
步骤4、用遗传算法与模拟退火算法的结合求解推力的优化问题;
推力分配的目标函数为混合算法中的适应度函数,其约束条件为混合算法中的解空间,首先运用遗传算法探寻全局(次)解,然后将遗传算法中获得的最优解作为模拟退火算法的输入进行局部最优解的探寻,最终输出全局最优解,最后将其解码为各推进器的推力指令以及方位角指令。
采用遗传算法与模拟退火算法结合的推力分配方法,其特征在于:所述步骤4的具体步骤包括:
步骤5,遗传算法的适应度函数为该步骤(3)中的目标函数;解空间为该步骤(3)中的约束条件,将解空间的解数据表示成遗传空间的遗传型串结构数据,该串结构数据的不同组合变构成了不同的值;初始解采用完全随机的方法产生,具体步骤如下:
步骤6,以编码形式生成初始群体;
在本实施例中,本发明不要求遗传算法获得非常精确的解,只需得到最优解的大致范围,因此种群数目和迭代次数可以相应设置的小一些,以增加算法计算速度。因此本发明中遗传算法参数:种群规模定为50,最大进化代数为21,进化比例0.8;
步骤7,使用适应度函数进行初始群体中各个个体的适应度评估;
步骤8,将选择算子作用于群体;
步骤9,将交叉算子作用于群体;
步骤10,将变异算子作用于群体;
步骤11,进行终止条件的判断并解码为各推进器推力f的大小和其方位角a;
步骤12,将遗传算法中解码的各推进器推力f的大小和其方位角a作为初始解输入到模拟退火算法中,模拟退火算法的适应度函数为该步骤3中的目标函数;解空间为该步骤3中的约束条件;
步骤13,冷却参数表初始化;
步骤14,根据metropolis的重要性采样方法,设定一个参数t为控制参数,将目标函数值设为内能e,固体的讴歌温度下的状态等同于目标函数的一个解xi,随着控制参数t的逐渐下降,固体内部的粒子不断重排列,生成新的解xi,固体的内能e也逐渐下降,即目标函数值也逐渐下降,最终将达到全局最小;
步骤15,进行终止条件的判断并给出最终的各推进器推力f的大小和其方位角a;
步骤16,将最终指令发送至各推进器。
本发明的工作原理如下:
通过钻井平台状态观测器得到钻井平台的实际位置与艏向并与设定的位置和航向进行比较,将两者的偏差传递给控制器,由控制器输出所需的三自由度控制指令,再经过推力分配得到各执行机构的控制指令,以此来抵消外部环境的作用。本发明主要涉及推力分配优化方法,即如何将控制器输出的控制指令变成各执行机构的控制指令。
以上描述了本发明的基本原理、主要特征和本发明的优点,本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,再不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权力要求书及其等同物界定。