一种基于改进蜣螂算法的船舶推力分配方法
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及动力定位船舶推力分配技术领域,具体涉及一种基于改进蜣螂算法的船舶推力分配方法。
背景技术
船舶动力定位系统作为一种被广泛应用于海洋工程船上的具备高技术含量的海洋装备,其在海洋探索特别是在深海探测领域发挥着重要作用,目前动力定位系统已经广泛应用于科学考察船、供给船、钻井船等。推力分配环节在动力定位过程中发挥着至关重要的作用,它是连接控制系统和推进系统之间的纽带。动力定位船舶推力分配是一种复杂的高度非线性优化问题,传统推力分配方法计算较复杂且易陷入局部极值点,群智能算法由于不依赖于对象问题的代价函数和约束形式,使得传统推力分配中存在的上述问题都可迎刃而解,为推力分配问题求解开辟了另一条路径,但群智能算法以牺牲时间为代价,需要解决稳定性、可靠性和快速收敛性问题。本发明运用改进的蜣螂算法从全局优化角度出发,在综合考虑能耗、机械磨损、奇异性和偏差性能指标前提下进行推力分配求解,该推力分配方法通过空间区块化和“精英”筛选法初始化种群、引入动态种群边界及“类梯度法”进行种群更新进行算法多策略改进,从而可以获取稳定的、可靠的、快速的全局最优解,提高定位精度、实现节能减排。
发明内容
针对上述现有技术存在的缺点,本发明提供了一种基于改进蜣螂算法的船舶推力分配方法,能够快速获取稳定的、可靠的全局最优推力分配结果,并提高推力分配精度、降低能耗。
为了实现上述目的,本发明采用的技术方案如下:
一种基于改进蜣螂算法的船舶推力分配方法,包括如下步骤:
步骤1、初始化船舶各类参数:结构参数、状态参数、推力和角度约束条件、推进器功率与推力关系系数、计算增量式等式约束项齐次线性方程组解;
其中,增量式等式约束项齐次线性方程组表达式为:
其中,(l
步骤2、根据当前和历史数据信息计算推力分配等式约束项特解、个体变量动态边界;
其中等式约束项特解为
个体变量动态边界的界定是通过构造不等式约束矩阵利用消元法求取;
步骤3、初始化改进蜣螂优化算法参数,包括种群大小、最大迭代次数、运用空间区块化和“精英”筛选法获取初始种群等;
步骤4、运用原始蜣螂优化算法进行个体变量更新,具体实现步骤如下:
步骤4.1、判别当前更新个体是否为滚球蜣螂,否则执行步骤4.2,是则生成(0,1)之间的随机数δ
x
其中,C
步骤4.2、判别当前更新个体是否为卵球,否则执行步骤4.3,是则根据下列公式更新卵球位置;
其中,
步骤4.3、判别当前更新个体是否为小蜣螂,否则执行步骤4.4,是则根据下式更新小蜣螂位置;
其中
步骤4.4、根据下式更新偷盗蜣螂位置;
x
其中S为设定常数,g为一维随机向量,维度与个体变量维度相等;
步骤5、运用变步长“类梯度法”进行个体变量更新,该策略的基本思想是:选取需要深度优化的个体(通常选取若干最优个体)沿若干等距空间进行搜索,获取最优进化方向,沿该方向继续搜索进化直至进化停止或达到设定进化次数,重复以上等距空间最优方向多步搜索法直至满足进化结束条件;
步骤6、判别是否达到最大迭代次数,是则执行步骤7,否则执行步骤4;
步骤7、输出推力分配结果,更新船舶状态参数,跳至步骤2进行下一个周期推力分配计算。
优选的,所述步骤2中,个体变量动态边界的具体界定方法如下:
设T
其中a
其中,K
优选的,所述步骤3中,运用空间区块化和“精英”筛选法获取初始种群具体实施方法为:
设种群个体维度为N,第j维变量的上下限为
其中μ为设定常数,
其中n为调节因子,根据上述可知每个空间区块种群的产生由两部分组成,一部分是运用混沌算子单独生成,另一部分是由对称的空间区块通过小孔成像反向学习法映射产生,每个空间块产生大量种群;
设空间区块数为N
优选的,所述步骤5中,变步长“类梯度法”更新个体变量的具体实施方法为:
设进行变步长“类梯度法”深度优化的某个最优粒子为X
步骤5.1、初始化参数,随机产生M个方向粒子X
步骤5.2、计算X
其中s
X
按照上述公式对M个方向分别计算粒子X
步骤5.3、沿最优方向继续最优粒子X
X
C
步骤5.4、判别是否达到等距空间最优方向多步搜索法最大迭代次数M
步骤5.5、深度优化结束,更新个体和全局最优值。
与现有技术相比,本发明具有以下有益效果:
本发明所提出的推力分配方法通过采用等式约束项的特解解系数为个体变量,降低搜索空间维度和范围,为算法获取可靠解和快速收敛奠定基础;另外通过空间区块化和“精英”筛选法初始化种群,增加初始种群分散性和“精英”个体数量,提高寻优效率和收敛稳定性;引入动态种群边界,获取合理搜索空间,提高算法收敛速度;最后运用变步长“类梯度法”进行种群更新,模拟区域遍历搜寻,实现较少迭代次数获取可靠解,故本发明推力分配方法相对现有技术更能快速获取稳定的、可靠的推力分配结果,同时可以提高推力分配精度和实现节能减排。
附图说明
图1是本发明的流程示意图;
图2是本发明纵向力输出曲线图;
图3是本发明横向力输出曲线图;
图4是本发明合力矩输出曲线图;
图5是本发明绝对偏差和曲线图;
图6是本发明推进器消耗功率曲线图。
具体实施方式
下面结合附图2-6、表2-3和船模实例对本发明的技术方案进行详细说明:
一种基于改进蜣螂算法的船舶推力分配方法,包括如下步骤:
步骤1、初始化船舶各类参数:结构参数、状态参数、推力和角度约束条件、推进器功率与推力关系系数、计算增量式等式约束项齐次线性方程组解,部分参数如下所示:
表1推进器的部分参数
增量式等式约束项齐次线性方程组表达式为:
求上述齐次线性方程组解,其基础解为[0,-1,0,1,0]
步骤2、根据当前和历史数据信息计算推力分配等式约束项特解、个体变量动态边界;
其中,等式约束项特解为
个体变量动态边界的具体界定方法如下:
设T
其中a
针对上述不等式矩阵运用“消元法”便可获得个体变量r
步骤3、初始化改进蜣螂优化算法参数,包括种群大小为40、最大迭代次数分别为5和100、运用空间区块化和“精英”筛选法获取初始种群等,其中运用空间区块化和“精英”筛选法获取初始种群具体实施方法为:
种群个体维度为2,设第j维变量的上下限为
其中μ为设定常数,
其中n为调节因子(本实例取值1),根据上述可知每个空间区块种群的产生由两部分组成,一部分是运用混沌算子单独生成,另一部分是由对称的空间区块通过小孔成像反向学习法映射产生,每个空间块产生大量种群;
空间区块数4个,最终选择种群数40个,每个空间区块初步选择种群概率0.6,则初始种群“精英”化选择策略是:每个空间区块保留最优的6个个体变量作为最终种群个体,按上述准则初步在每个区块空间选择一定种群个体,剩下的初始化种群个体则在余下的海量种群中择优筛选。
步骤4、运用原始蜣螂优化算法进行个体变量更新,具体实现步骤如下:
步骤4.1、判别当前更新个体是否为滚球蜣螂,否则执行步骤4.2,是则生成(0,1)之间的随机数δ
x
其中θ为介于0至π的偏转角度,但当θ等于0、π/2或π时位置不更新,x
步骤4.2、判别当前更新个体是否为卵球,否则执行步骤4.3,是则根据下列公式更新卵球位置;
其中
步骤4.3、判别当前更新个体是否为小蜣螂,否则执行步骤4.4,是则根据下式更新小蜣螂位置;
其中
步骤4.4、根据下式更新偷盗蜣螂位置;
x
其中g为一维随机向量,维度与个体变量维度相等;
步骤5、运用变步长“类梯度法”进行个体变量更新,该策略的基本思想是:选取需要深度优化的个体(通常选取若干最优个体)沿若干等距空间进行搜索,获取最优进化方向,沿该方向继续搜索进化直至进化停止或达到设定进化次数,重复以上等距空间最优方向多步搜索法直至满足进化结束条件;变步长“类梯度法”更新个体变量的具体实施方法为:
设进行变步长“类梯度法”深度优化的某个最优粒子为X
步骤5.1、初始化参数,随机产生16个方向粒子X
步骤5.2、计算X
其中s
X
按照上述公式对M个方向分别计算粒子X
步骤5.3、沿最优方向继续最优粒子X
X
C
步骤5.4、判别是否达到等距空间最优方向多步搜索法最大迭代次数M
步骤5.5、深度优化结束,更新个体和全局最优值。
步骤6、判别是否达到最大迭代次数,是则执行步骤7,否则执行步骤4;
步骤7、输出推力分配结果,更新船舶状态参数,跳至步骤2进行下一个周期推力分配计算。
表2最大迭代次数为5输出结果对比
表3最大迭代次数为100输出结果对比
结果说明:
表2和表3中对比算法分别为粒子群算法(PSO)、麻雀优化算法(SSA)、鲸鱼优化算法(WOA)、哈里斯鹰优化算法(HHO)、蜣螂优化算法(DBO)、本发明改进蜣螂优化算法(IDBO),图2至图5中对比算法为序列二次规划法(SQP),代价函数设置相同,个体变量边界值设置相同(除了本发明算法采取动态边界),为测试算法的稳定性,每种优化算法连续运行20次,迭代次数分别取5和100进行测试,表2和表3中偏差、功率和时间皆为100个采样周期总和,偏差是指纵向力绝对偏差、横向力绝对偏差和力矩绝对偏差总和。
表2数据可知,当迭代次数较少情况下,除了本发明算法之外的其它五种群智能优化算法寻优结果中偏差都比较大且波动较大,而本发明算法的偏差最小(偏差产生主要在第80采样周期时发生需求量跃变推进器物理条件约束限制导致的)且波动非常小,表明本发明算法稳定性更强且收敛精度更高;功率数据表明本发明算法更能节能减排;当然本发明算法耗时最长,但并没有出现数量级别的差距,且完全满足工程应用需求。
表3数据可知,当迭代次数增加时,除了本发明算法之外的其它没有改进的五种群智能优化算法的偏差和功率都呈现出明显降低趋势,其中粒子群算法、哈里斯鹰算法和蜣螂算法寻优结果较好且与本发明算法寻优结果相差不多,而本发明算法的寻优结果与迭代次数较少时寻优结果差不多,表明本发明算法在较少迭代次数时已经获取全局最优或接近全局最优的可靠解,其它算法受迭代次数影响相对较大且需要较大迭代次数来收敛,结合两表分析可知本发明算法可以用最少时间获取稳定的、可靠的全局最优解。
由于本发明算法寻优结果稳定性高,每次运行皆可获得可靠解且输出差别甚微,故图2至图6中本发明算法数据随机选择了最后一次运行结果与SQP算法进行比较,从图中波形可以看出本发明算法获得了更好的推力分配解,本发明算法的偏差更小、能耗更低(SQP算法绝对误差总和为145.08,消耗总功率为23.66kW),然而SQP算法耗时更低为2.271s稍微优于本发明,这也是传统算法的最大优势,此外从图中还可以看出在期望值发生较大跃变SQP算法需要更长时间恢复稳定输出且易发生震荡输出现象,群智能算法在处理该情况时比传统算法具有较大优势。
综上所述,本发明所提出的推力分配方法具备快速收敛能力,获取的推力分配结果稳定、可靠,提高推力分配精度和实现节能减排,此外本发明推力分配算法可以灵活考虑偏差、能耗、机械磨损和奇异性指标,可以根据实际需求修改各个指标系数进行不同工况的推力分配优化。实验也表明该算法能满足工程应用实时性需求又能提高推力分配各项性能指标。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
- 一种基于改进的鱼鹭算法的船舶推力分配方法
- 一种基于人工蜂群改进算法的船舶动力定位系统的推力分配方法