一种基于BP神经网络算法的船型优化方法
技术领域
本发明涉及一种船型优化方法,特别是涉及一种基于BP神经网络算法的船型优化方法。
背景技术
船舶在海上航行时,波浪对船舶的影响不可避免,较大的波浪会导致甲板上浪,船舶舒适性降低,甚至危及人员生命安全。船舶在波浪中的阻力对船舶的快速性影响至关重要。为了降低在航行过程中的燃料消耗和二氧化碳排放,在船舶设计时必须要将船舶在波浪中的性能考虑进去。然而,现有的船型优化设计上,仅考虑了船舶在静水中的阻力性能,却未对船舶在波浪中的性能进行优化。因此,基于波浪工况的船型优化设计成为了技术难点。
目前,在船型优化设计领域中,基于雷诺平均-流体体积函数方法(RANS-VoF)的船型优化设计已经成为当下的主流方法。然而基于雷诺平均-流体体积函数方法的长耗时问题为船舶工业的快速、高效的生产带来了巨大困难,同时基于波浪工况的船舶总阻力计算所需要的时间往往是基于静水工况下船体总阻力计算所需要的时间的两倍甚至更多。
发明内容
本发明的目的是提供一种基于BP神经网络算法的船型优化方法,通过对船体在波浪中的阻力进行优化,以得到在波浪中阻力更佳的船型,以及提高船型优化效率。
本发明技术方案如下:一种基于BP神经网络算法的船型优化方法,依次包括以下步骤:
步骤1、根据粒子群优化算法生成一组粒子群设计变量X(t)=(x1,x2,...,xi,...,xm),每个设计变量粒子xi,i=1,2,…,m,对应一组船型修改参数;
步骤2、采用任意曲面变形技术根据设计变量粒子xi修改原船体几何形状,获得与船型修改参数一一对应的船体新几何;
步骤3、计算步骤2得到的新几何的船舶排水量,如果修改后的船体新几何与原船体几何形状的船舶排水量一致,则转向步骤4,否则转向步骤1;
步骤4、采用BP神经网络算法计算船体新几何在波浪中的总阻力;
步骤5、将步骤4得到的船体新几何在波浪中的总阻力输入到粒子群算法中,根据粒子群算法的变换规则生成一组新的粒子群设计变量X(t+1),并返回步骤2继续下一次优化,直到粒子群算法达到最大迭代次数,然后停止计算,并输出最佳粒子所对应的船体几何。
进一步地,所述步骤1根据粒子群优化算法生成一组粒子群设计变量为初始化粒子群优化算法参数,包括:最大迭代次数Tmax、粒子数目m、权重系数ωmax和ωmin、加速系数c1和c2,将当前优化代数设置为t=1,t≤Tmax;在三维空间中,随机产生m个粒子x1,x2,...,xi,...,xm,构成种群X(t),随机产生各粒子初始速度v1,v2,...,vi,...,vm,构成种群V(t),其中第i个粒子的位置为xi=(xi,1,xi,2,...,xi,j),速度为vi=(vi,1,vi,2,...,vi,j),j为船型修改参数的数量;
所述步骤5包括:
步骤501、将步骤4得到的船体新几何在波浪中的总阻力,作为适应度值大小来评价每个粒子的好坏,存储当前各粒子的最佳位置pbest和适应值,并将种群中适应值最优的粒子作为整个种群中的最佳位置gbest;
步骤502、通过公式vi,j(t+1)=ωvi,j(t)+c1r1[pi,j-xi,j(t)]+c2r2[pg,j-xi,j(t)]和xi,j(t+1)=xi,j(t)+vi,j(t+1)更新粒子的速度和位置,产生新的种群X(t+1);vi,j为第i个粒子的当前速度;ω表示惯性权重系数;c1和c2表示正的加速系数;r1和r2为0到1之间的随机数;pi,j表示第i个例子迄今找到的最佳位置pbest;pg,j是整个粒子群搜索到的最佳位置gbest;xi,j为第i个粒子的当前位置;
步骤503、采用公式
f≤f
avg更新优化算法的权重系数,其中,ω
max和ω
min分别为惯性权重系数的最大值和最小值;f表示粒子当前的目标函数值;f
avg表示当前所有粒子的平均目标值;f
min表示当前所有粒子的最小目标值;
步骤504、更新粒子的pbest和gbest;
步骤505、判断t是否等于Tmax,如果满足条件,则输出最佳粒子所对应的船体几何;否则t=t+1,并返回步骤502继续搜索。
进一步地,所述步骤2以任意曲面变形技术修改母型船依次包括以下步骤:
步骤201、确定母型船几何模型;步骤202、创建任意曲面变形控制体:在母型船几何模型外设置不同的任意曲面变形控制体;步骤203、插入控制面:对已建立好的控制体插入控制面来控制待修改区域的几何形状;步骤204、设置控制参数:对建立的控制体设定控制参数,所述控制参数包括控制点的位置和移动的方向;步骤205、冻结控制体;步骤206、几何变形:修改控制点的移动距离和方向,控制体的形状发生变化,进而改变母型船的形状,获得新的船型。
进一步地,所述步骤4包括:
步骤401、由原船体几何形状确定船型修改参数及参数变换范围,再采用拉丁超立方算法在参数变化范围内构建一系列样本点,最后采用任意曲面变形技术修改母型船,获得一系列与样本点一一对应的样本船型,所有样本船型构成样本船型集合;
步骤402、采用雷诺平均-流体体积函数方法计算样本船型集合中每一个样本船型的在波浪中的总阻力,将计算得到的所有样本船型的在波浪中的总阻力的数据进行整合,构成一套完整的样本数据集U;
步骤403、建立BP神经网络,用步骤402中的样本数据集的样本数据对BP神经网络进行训练;
步骤404、完成BP神经网络训练之后,采用复相关系数和均方根误差对训练完成的模型进行精确性验证,如满足精确性要求则进入步骤405,否则回到步骤401重新设定样本船型并进行后续步骤402至步骤404;
步骤405、根据训练完成的BP神经网络,计算待预测的新船型在波浪中的总阻力。
进一步地,所述步骤402采用雷诺平均-流体体积函数方法计算样本船型集合中每一个样本船型的设计目标值依次包括以下步骤:
步骤402a、首先根据样本船型构建数值计算域,然后采用重叠网格方法对计算域划分网格,进行网格质量检查,获得计算流体动力学数学模型;
步骤402b、选择数值求解方法,采用连续方程和雷诺平均方程作为整个流场的控制方程,采用标准κ-ε湍流方程封闭雷诺平均方程,采用流体体积函数方法捕捉水和空气的交界面,采用压力耦合方程组的半隐式方法求解压力耦合方程;
步骤402c、建立数值波浪水池,入口方式采用速度入口方法建立波浪入口,出口添加阻尼项来消除波浪;
步骤402e、设置动网格,选择6自由度求解器,设置船舶质量、惯性矩和随船坐标系,其中随船坐标系原点在船体重心位置;
步骤402f、初始化设置,包括数值波浪水池的边界情况;
步骤402g、迭代计算,直到达到最大迭代次数。
进一步地,所述步骤403用步骤402中的样本数据集的样本数据对BP神经网络进行训练,包括:
步骤403a、网络初始化:将样本数据集U作为BP神经网络的输入数据,然后随机设定网络中的连接权值与阈值、网络训练目标精度Emin,将船型样本数据集的样本数q和训练次数t设置为1,误差E设置为0,学习率η设置为0到1之间的小数;
步骤403b、输入船型样本数据集并计算各层输出;
其中,y
j为第j个隐含层输出向量,j=1,2,…,l,l为隐含层向量个数;d
k为输出层船型总阻力值,k=1,2,…,m,m为输出层向量个数;x
i为第i个输入层向量,i=1,2,…,n,n为输入层向量个数;v
ij为输入层到隐含层的网络权值矩阵;w
jk为隐含层到输出层的网络权值矩阵;函数f(x)为
其中,q表示第q个样本船型数据,q=1,2,…,Q,Q为样本船型集总数;
表示对第q个样本进行训练,然后计算所有m个粒子对第q个样本的输出层误差Eq,s表示船型在波浪中的实际总阻力大小;d为采用BP神经网络计算得到的船型在波浪中的总阻力大小;
步骤403d、计算网络各层误差信号:
其中,j=1,2,…,l;k=1,2,…,m;
和
为输出层和隐含层误差信号;
步骤403e、调整各层权值大小:
其中,j=1,2,…,l;k=1,2,…,m;i=1,2,…,n;
步骤403f、检查是否完成所有样本的训练:如果q<Q,则q=q+1,t=t+1,返回步骤步骤403b重新计算。否则转向步骤403g;
步骤403g、判断网络误差是否达到要求,即Eq<Emin,如果满足要求,则算法结束;否而,令E=0,q=1并返回步骤403b重复计算。
本发明技术方案与现有技术相比,具有以下有益效果:该方法以BP神经网络算法代替传统基于雷诺平均-流体体积函数(RANS-VoF)算法的数值模拟过程,快速地评价船舶在波浪中的水动力性能,以任意曲面变形技术修改船体几何形状,以粒子群算法作为优化算法,在船型空间内探索最佳船型。针对BP神经网络的船型优化方法能够改善传统基于RANS-VoF船型优化方法的优化效率,提高船型优化方法在生产设计上的适用性,同时在船型优化上考虑了波浪的耦合作用,能够更加精确的获得优良船型,提高最佳船型的实用性。综上所述,本发明能够有效的替代基于RANS-VoF长耗时的船型设计方法,从理论优化阶段向实际工程应用进行转化。为船舶工业中的船型设计方案的选取和船型优化设计提供理论依据,同时具有一定的工程应用价值。
附图说明
图1是船型优化设计方法的构建流程。
图2是粒子群优化算法的计算流程。
图3是基于任意曲面变形算法的船型变换流程图。
图4是基于任意曲面变形算法的船型变换变型实例。
图5是BP神经网络算法的构建流程。
图6是BP神经网络的训练流程图。
具体实施方式
下面结合实施例对本发明作进一步说明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等同形式的修改均落于本申请所附权利要求所限定的范围内。
确定优化设计变量:任意曲面变形体上的控制点作为设计变量,其中控制点位置的修改能够改变船舶实际几何形状。
确定优化目标:船舶在波浪中的总阻力。
确定优化限制条件:通过修改船体吃水来保证船舶排水量固定不变。
将优化算法、几何重构方法和BP神经网络相结合构建一套自动化的船型优化方法。其中优化算法采用粒子群算法,几何重构方法采用任意曲面变形方法。结合图1至图6所示,本发明具体实施步骤如下(本步骤所涉及的所有参数请参见结合图中详细说明):
(1)以三个参数为例修改舰船DTMB5512船体几何形状,根据粒子群优化算法生成一组粒子群设计变量X(t)=(x1,x2,...,xi,...,xm),其中第i个粒子xi=(xi,1,xi,2,xi,3),xi,1,xi,2,xi,3为三个修改参数。粒子群优化算法的计算流程可参见结合图2的详细说明。
(2)采用任意曲面变形技术根据设计变量xi修改船体几何形状,获得与设计变量一一对应的新几何。三个参数船体几何形状修改流程可参见结合图3的详细说明。
(3)计算步骤(2)的得到的各个船型的船舶排水量,如果排水量与原船型一致,则转向步骤(4),否则转向步骤(1)。
(4)采用BP神经网络算法计算船舶在波浪中的阻力。BP神经网络算法的构建方法可参见结合图4的详细说明。
(5)将步骤(4)得到的船舶在波浪中的阻力输入到粒子群算法中,根据算法自身的变换规则生成一组新的粒子群,并返回步骤(2)继续下一次优化,直到达到最大迭代次数Tmax,停止计算,并输出最佳粒子所对应的船体几何为最佳船型。
结合图2所示,粒子群优化算法的计算流程步骤如下:
(1)初始化粒子群优化算法参数,包括:最大迭代次数Tmax、粒子数目m、权重系数ωmax和ωmin(其中权重系数具体含义可参见下文公式(3)所示)、加速系数c1和c2。将当前优化代数设置为t=1(t≤Tmax)。在三维空间中,随机产生m个粒子x1,x2,...,xi,...,xm,构成种群X(t),随机产生各粒子初始速度v1,v2,...,vi,...,vm,构成种群V(t)。其中第i个粒子的位置为xi=(xi,1,xi,2,xi,3),xi,1、xi,2和xi,3表示修改船型的三个参数。
(2)采用BP神经网络算法计算船舶在波浪中的总阻力,并将计算的结果作为适应度值大小来评价每个粒子的好坏,存储当前各粒子的最佳位置pbest和适应值,并将种群中适应值最优的粒子作为整个种群中的最佳位置gbest。
(3)通过公式(1)、(2)更新粒子的速度和位置,产生新的种群X(t+1)。
vi,j(t+1)=ωvi,j(t)+c1r1[pi,j-xi,j(t)]+c2r2[pg,j-xi,j(t)] (1)
xi,j(t+1)=xi,j(t)+vi,j(t+1) (2)
其中,i=1,2,...,m;j=1,2,3;vi,j为第i个粒子的当前速度;ω表示惯性权重系数;c1和c2表示正的加速系数;r1和r2为0到1之间的随机数;pi,j表示第i个例子迄今找到的最佳位置pbest;pg,j是整个粒子群搜索到的最佳位置gbest;xi,j为第i个粒子的当前位置。
(4)采用公式(3)更新优化算法的权重系数。
其中,ωmax和ωmin分别为惯性权重系数的最大值和最小值;f表示粒子当前的目标函数值;favg表示当前所有粒子的平均目标值;fmin表示当前所有粒子的最小目标值。
(5)更新粒子的pbest和gbest。
(6)判断t是否等于Tmax?如果满足条件,则输出最佳粒子xb=(xb,1,xb,2,xb,3)(b∈[1,m])所对应的船体几何;否则令t=t+1,并返回步骤(3)继续搜索。
三个参数船体几何形状修改流程可以采用Sculptor软件进行,请参见图3及图4,在该软件中具体由以下方式进行:
(1)导入母型船DTMB5512几何模型。
(2)创建任意曲面变形控制体:在DTMB5512船型外部创建任意曲面变形控制体,即:一个长方体控制体。
(3)插入控制面:在船体声呐罩区域附件创建多个控制面,目的是为了生成船型参数,以达到对船体声呐罩改型。
(4)设置控制参数:以三个参数为例,设计变量定义为xxi,yyi和zzi(这三个参数分别对应粒子群算法中的第i个粒子xi,1,xi,2和xi,3)。对于图4中交叉的几个控制面中,取No.1,No.2和No.3作为控制点,然后确定三个控制点的移动方向(No.1沿着x轴方向移动,No.2和No.3沿着y轴方向移动)。然后制定控制点No.1的移动范围是[-2,2],控制点No.2的移动范围是[-3,3],控制点No.3的移动范围是[-3,3],其中负号代表控制点向船内侧移动,正号代表控制点向船外侧移动。控制参数xxi表示在[-2,2]范围内的一个值,yyi和zzi表示在[-3,3]范围内的一个值。那么根据控制参数xxi和yyi和zzi即可确定控制点No.1,No.2和No.3的移动距离和方向。
(5)冻结控制体。
(6)几何变形:根据船型修改参数xxi,yyi和zzi修改控制点No.1,No.2和No.3的位置,让No.1点沿着x轴移动xxi厘米,No.2和No.3点分别沿着y轴移动yyi厘米和zzi厘米。那么任意曲面变形控制体的形状发生变化,进而改变母型船的形状,获得新的样本船型,变形结果如图4中新船型所示。
结合图5所示,BP神经网络算法的构建方法步骤如下:
(1)在进行基于BP神经网络算法的船舶水动力性能评价时,需要设定母型船。然后以母型船为例,确定船型修改参数及参数变换范围,然后采用拉丁超立方算法在参数变化范围内构建Q个样本点TT=(rk,sk,tk)(k∈[1,Q]),然后采用任意曲面变形技术修改母型船,获得与Q个样本点一一对应的样本船型。
(2)然后采用RANS-VoF方法评价每个样本点所对应的样本船型在波浪中的总阻力。随后将数据进行整合,构成一套完整的样本数据集U=(rk,sk,tk,Rk),其中Rk为第k个样本船型在波浪中的总阻力。
(3)将步骤(2)中的样本数据集U作为原始数据,对BP神经网络进行训练。
(4)完成BP神经网络模型训练之后,采用复相关系数R2和均方根误差RMSE对该模型进行精确性验证,其中验证要求为R2≥0.9,具体计算公式如下:
式中:k∈[1,Q],R
k为采用RANS-VoF方法计算的第k个船型在波浪中的总阻力;
为采用RANS-VoF方法计算的第k个船型在波浪中的总阻力;
为采用深度信念网络算法预测的第k个船型在波浪中的总阻力。
(5)通过精度验证之后,该模型即可对与母型船相似的新船型的水动力性能进行预测。如果精确验证未满足,需要返回步骤(1)重新构建样本船型,并重复步骤(1)到步骤(5),以最终获得满足精度要求的水动力性能评估模型。
具体的,BP神经网络算法的构建方法步骤(2)中采用RANS-VoF方法评价每个样本点所对应的样本船型在波浪中的总阻力的具体实施步骤如下:
(201)首先根据一个样本点{rk,sk,tk}所对应的样本船型k构建数值计算域,然后采用重叠网格方法对计算域划分网格,获得CFD数学模型。
(202)选择数值求解方法,采用连续方程和RANS方程作为整个流场的控制方程,采用标准κ-ε湍流方程封闭RANS方程,采用流体体积函数(VoF)方法捕捉水和空气的交界面,采用压力耦合方程组的半隐式(SIMPLE)方法求解压力耦合方程。
(203)建立数值波浪水池,入口方式采用速度入口方法建立波浪入口,出口添加阻尼项来消除波浪。
(204)设置动网格,选择6DOF求解器,设置船舶质量和惯性矩。
(205)初始化设置,包括数值波浪水池的边界情况。
(206)迭代计算,直到最大迭代次数,停止计算,输出船舶在波浪中的总阻力Rk。
请结合图6所示,对BP神经网络进行训练的具体训练过程包括:
(301)网络初始化。将样本数据集U=(rk,sk,tk,Rk)作为BP神经网络的输入数据,然后随机设定网络中的连接权值与阈值、网络训练目标精度Emin。将船型样本数据集的样本数q和训练次数t设置为1。误差E设置为0,学习率η设置为0到1之间的小数。
(302)输入船型样本数据集并计算各层输出;
其中,y
j为第j个隐含层输出向量,j=1,2,…,l,l为隐含层向量个数;d
k为输出层船型总阻力值,k=1,2,…,m,m为输出层向量个数(此处m与结合图2说明的步骤(1)中随机产生的m个粒子相等);x
i为第i个输入层向量,i=1,2,…,n,n为输入层向量个数;v
ij为输入层到隐含层的网络权值矩阵;w
jk为隐含层到输出层的网络权值矩阵;函数f(x)为
(303)通过公式(7)计算网络输出误差。
其中,q表示第q个样本船型数据,q=1,2,…,Q,Q为样本船型集总数(此处Q与结合图5说明的步骤(1)中的样本总数一致);
表示对第q个样本进行训练,然后计算所有m个粒子对第q个样本的输出层误差Eq。s表示船型在波浪中的实际总阻力大小;d为采用BP神经网络计算得到的船型在波浪中的总阻力大小。
(304)通过公式(8)计算网络各层误差信号。
其中,j=1,2,…,l;k=1,2,…,m;
和
为输出层和隐含层误差信号。
(305)根据公式(9)调整各层权值大小。
其中,j=1,2,…,l;k=1,2,…,m;i=1,2,…,n。
(306)检查是否完成所有样本的训练。如果q<Q(最大样本数),则q=q+1,t=t+1,返回步骤(302)重新计算。否则转向步骤(307)。
(307)判断网络误差是否达到要求,即Eq<Emin,如果满足要求,则算法结束。否而,令E=0,q=1并返回步骤(302)重复计算。