基于艇身自由变形的游艇减阻优化方法与流程

文档序号:22388604发布日期:2020-09-29 17:52阅读:243来源:国知局
基于艇身自由变形的游艇减阻优化方法与流程
本发明属于游艇艇身流体力学减阻仿真优化设计领域,特别涉及一种基于艇身自由变形的游艇减阻优化方法。
背景技术
:游艇的艇身设计和优化贯穿着整个游艇设计流程,在游艇设计的时候不仅要考虑游艇的外形,还要考虑游艇的流体力学性能,只有综合考虑各个因素,才能设计出造型优美且流体力学性能好的艇身造型。游艇造型优化与普通船舶造型优化具有相关性,针对船舶的优化方法同样可以适用于游艇的造型优化。国内外对船舶的造型优化主要集中于以降低船舶在行驶过程中所受到的总阻力为目标进行的,从型线到基于径向基函数的船舶几何造型重构,再到后来基于自由变形的几何造型重构,贯穿在这些造型优化方法中的始终是样本数据采集、建立优化代理模型和寻优算法的研究,在研究过程中建立代理模型的准确性以及代理模型的泛化能力在优化过程中起着关键的作用,一个好的代理模型在一定程度可以保证通过优化算法得到的最优值不会陷入局部最优解。现在大部分代理模型的建立主要是采用传统的二次响应面以及克里金模型,这些代理模型具有拟合能力强的特点,然而衡量一个代理模型是否拥有较好的鲁棒性,对未知数据是否拥有较好的泛化能力才更为重要。技术实现要素:本发明的目的在于克服现有技术的不足,提供一种采用机器学习中的网格搜索方法对代理模型进行优化,通过遗传算法快速确定设计变量的最优组合方案,具有原理简单、可操作性强、设计灵活、可靠性高及适用面广等特点的基于艇身自由变形的游艇减阻优化方法。本发明的目的是通过以下技术方案来实现的:基于艇身自由变形的游艇减阻优化方法,其特征在于,包括以下步骤:s1、以游艇的总阻力为优化目标,建立基于关键控制点进行自由变形的游艇外流场仿真模型;s2、基于样本点和响应值构建stacking集成学习的代理模型,使用机器学习中的网格搜索策略和和五折交叉验证方法优化代理模型;s3:利用遗传算法对所建立的stacking集成学习的代理模型进行全局寻优,得到设计变量的最优组合;基于设计变量的最优组合,利用自由变形技术对原始艇身实现相应变形,采用逆向工程技术将变形后的艇身stl格式文件转化为step格式文件,得到优化艇身模型。进一步地,所述步骤s1包括以下子步骤:s11、在游艇舭部、底部以及船首区域选择关键控制点作为优化设计变量,利用拉丁超立方抽样进行设计变量样本点的选取;基于自由变形技术对艇身进行变形,采用逆向工程技术将艇身stl格式文件转化为step格式文件;最后再添加上游艇舱室,得到完整的游艇模型;s12、建立艇身外流场仿真计算域,利用ansysicem对游艇计算域进行网格划分,将网格文件导入fluent并添加相应的边界条件,并进行数值仿真,得到艇身的总阻力值。进一步地,所述步骤s2具体实现方法为:基于实验设计的样本点及其响应的有限元仿真响应,建立stacking集成学习的代理模型并验证其精度;stacking集承学习的代理模型具有两层结构:第一层为初级学习器,第二层是以上一层学习器的输出结果作为输入数据进行训练的次级学习器;训练stacking集成学习过程中使用网格搜索策略寻找最佳的参数组合,并采用平均绝对误差mae对基础学习器进行评估,从sklearn机器学习库中选择最佳的五个基础学习器,每个基础学习器都应该是回归模型;选择次级学习器时利用mae和相对平均绝对误差rmae进行评估,从多个待选模型中选择出最好的次级模型作为stacking集成学习的第二层模型;使用python编程实现stacking集成学习类的定义,类中提供predict()接口,将模型定义为类后可以对模型进行序列化避免重复训练,序列化工具使用python中的pickle模块。进一步地,所述步骤s3具体实现方法为:以游艇总阻力最低为优化目标,利用遗传算法对所建立的stacking集成学习的代理模型进行全局寻优,得到设计变量控制点的最优组合;寻优过程中使用pickle模块提供的反序列化工具,将训练好的模型载入内存,在计算目标函数时调用模型的predict()函数接口即可提供相应的响应值;基于优化得到的设计变量控制点最优组合,利用自由变形技术对游艇艇身进行变形;然后采用逆向工程技术将变形后的艇身stl格式文件转化为step格式文件;最后再添加上游艇舱室,得到完整的游艇模型。本发明的有益效果是:本发明将基于自由变形技术对游艇进行变形、拉丁超立方抽样和stacking集成学习代理模型运用于游艇流体力动力学减阻仿真优化中,通过对少量试验方案结果的分析建立近似代理模型,采用机器学习中的网格搜索方法对代理模型进行优化,通过遗传算法快速确定设计变量的最优组合方案,以实现游艇的减阻优化。该优化方法具有原理简单、可操作性强、设计灵活、可靠性高及适用面广等特点,对游艇流体动力学减阻优化研究具有重要指导和借鉴意义。附图说明图1为本发明的基于艇身自由变形的游艇减阻优化方法的流程图;图2为游艇变形控制点示意图;图3为基于控制点样本1的网格变形图;图4为stacking集成学习模型算法流程图;图5为网格搜索流程图;图6为五折交叉验证算法示意图;图7为使用遗传算法对stacking模型寻优收敛过程图。具体实施方式下面结合附图进一步说明本发明的技术方案。如图1所示,本发明的基于艇身自由变形的游艇减阻优化方法,包括以下步骤:s1、以游艇的总阻力为优化目标,考虑自由变形时由于游艇变形过程中排水量变化对总阻力的影响,建立基于关键控制点进行自由变形的游艇外流场仿真模型;步骤s1中主要对艇身吃水线以下部位进行自由变形,建立适当的自由变形控制网格,选取变形部位的控制点进行控制。自由变形(ffd)技术的思路是通过构造出从初始物体到目标物体所在三维空间的三维映射关系对目标物体进行变形。由于在自由变形技术中,物体表面与控制点进行了关联,这就使得可以通过自由变形技术对想要变形的部位进行精确的变形,在试验设计的帮助下可以得到更多有用的模型以便采集样本数据。ffd技术基本原理如:(1)先根据待变形的区域的大小确定一个立方体区域,这个立方体区域被称为格子,然后通过局部坐标变换将代表物体嵌入到格子中;(2)在格子上建立控制顶点的栅格,将格子变成三维张量积bezier体;(3)通过对格子的控制点进行调整,使得格子产生变形,格子的变形将会传递给待变物体,从而实现待变形物体的几何变形。在数学上,使用三张量积bernstein多项式来定义ffd,船体外表面上任意一点的笛卡尔坐标x就可以表示为:其中bi,l(s),bj,m(t)和bk,n(u)分别为l,m和n次berstein多项式基函数;qi,j,k为控制晶格顶点的三维坐标。使用ffd技术对游艇进行几何变形的流程如下:(1)将游艇艇身沿纵向划分为m个点,沿垂直方向划分为n个点,使得游艇被划分为m×n个网格;(2)将游艇表面的网格点在三个方向归进行一化,即使网格点的坐标从(x,y,z)变为(x/l,y/b,z/h),坐标表达式中l,b,h分别为目标游艇的船长、船宽和型深;(3)将网格点装入格子中;(4)利用式(1)建立映射关系;(5)选择若干个由控制点组成的设计变量;(6)改变设计变量的值,通过映射关系获得游艇网格点的新坐标,然后将新的网格点拟合成新的游艇曲面;(7)重复第6步即可获得多个不同造型的游艇。根据上述技术原理得到步骤s1的具体实现方法为:s11、根据游艇外流场仿真分析结果中的艇身表面压力分布以及对总阻力组成成分进行分析,通过改变游艇吃水线一下部位造型可以有效降低压差阻力,从而降低总阻力。故根据艇身自由变形控制框架的设置,选取舭部的两排控制点1的坐标y1和z1,如图2(a)所示;船底一排控制点2的坐标z2和x2,如图2(b)所示;船首前方一列控制点3的坐标x3作为优化设计变量,如图2(c)所示。其中x表示沿艇身长度方向移动,船尾到船首移动方向为正向;y表示沿艇身宽度方向移动,往艇身外侧移动方向为正向;z表示沿艇身高度方向移动,艇身竖直向上移动方向为正向。综合考虑控制点变形大小对艇身造型的外观影响,并且考虑游艇变形过程中排水量的改变,限定排水体量的原因是因为一般情况下,限定排水量变化就可以在一定程度上减小排水量改变对阻力造成的影响。由于待优化游艇的排水体积为27.907m3,排水体积大,因此在保证排水量变化对游艇阻力影响不大的情况下还要保证游艇有一定的变形空间,以便能够通过变形得到总阻力更小的游艇造型,所以规定将游艇最优造型排水体积相对于原始游艇不得减少超过5%,但可以允许排水量增大,因为总阻力不变的情况下,若游艇排水体积增大,这也算是对游艇的优化,各控制变量偏移量的取值边界设置如表一所示。表一控制点偏移量取值范围按表一中控制点的偏移量,通过自由变形对游艇变形,样本点1变形后的网格图如图3所示。控制点偏移值取极限时,最大排水体积为31.631m3,相对于原始游艇排水体积增大了13.34%;最小排水体积为26.737m3,相对于原始游艇排水体积减少了4.19%,因此,所给出的控制点偏移取值范围符合要求。用拉丁超立方抽样进行设计变量样本点的选取,如表二所示。根据实验设计方案,基于自由变形技术,实现艇身的变形。采用逆向工程技术将艇身stl格式文件转化为step格式文件,最后再添加上游艇舱室,得到完整的艇身模型。根据游艇艇身尺寸,建立艇身外流场仿真计算域。利用ansysicem进行网格划分,将网格文件导入fluent并添加相应的边界条件,选择合适的求解算法和求解器进行数值仿真,得到相应艇身的总阻力值,如表三。表二试验设计控制点样本表三样本游艇总阻力值样本序号总阻力值(n)样本序号总阻力值(n)138071.1851638051.073239200.9691738501.634339193.0681838330.912437650.161939060.899539066.4582039617.136639035.5072138163.894738455.182239591.876838374.7682338145.634937974.922437913.1371039167.3072538977.8551138902.1422638604.8551239334.7672738008.1551337980.6542839062.5251438298.5122938227.1681539840.2273038967.278s12、建立艇身外流场仿真计算域,利用ansysicem对游艇计算域进行网格划分,将网格文件导入fluent并添加相应的边界条件,选择合适的求解算法和求解器进行数值仿真,得到相应艇身的总阻力值。s2、基于样本点和响应值构建stacking集成学习的代理模型,使用机器学习中的网格搜索策略和和五折交叉验证方法优化代理模型;具体实现方法为:基于实验设计的样本点及其响应的有限元仿真响应,建立stacking集成学习的代理模型并验证其精度;训练过程使用网格搜索策略找到stacking集成学习基础学习器和次级学习器的最佳参数组合。stacking集承学习的代理模型具有两层结构:第一层为初级学习器,第二层是以上一层学习器的输出结果作为输入数据进行训练的次级学习器;训练stacking集成学习过程中使用网格搜索策略寻找最佳的参数组合,并采用平均绝对误差mae对基础学习器进行评估,从sklearn机器学习库中选择最佳的五个基础学习器,每个基础学习器都应该是回归模型;选择次级学习器时利用mae和相对平均绝对误差rmae进行评估,从多个待选模型中选择出最好的次级模型作为stacking集成学习的第二层模型;使用python编程实现stacking集成学习类的定义,类中提供predict()接口,将模型定义为类后可以对模型进行序列化避免重复训练,序列化工具使用python中的pickle模块。stacking集成学习模型如图4所示,本实施例中使用五个基学习器的staking算法,其流程如下:(1)将训练数据集随机划分为大小相同的d1,d2...d5五个数据集,其中表示以第i个数据集作为测试数据时其余四个数据集作为训练数据集;(2)首先使用数据集对模型1进行训练,训练出来的模型对d1测试集进行预测得到p11;同样地,使用数据集对模型1进行训练,然后对d2预测得到p12;使用相同的方法,对模型1训练五次,最终得到新的数据集p1=average(p11,p12...p15)t;(3)使用上一步训练的五个模型1对待预测的测试集进行预测分别得到t11,t12...t15,得到新的测试集t1=average(t11,t12...t15)t;(4)对模型2到模型5,重复第(2)步和第(3)步,最终得到新的训练数据集p=(p1,p2...p5)和新的测试集t'=(t1,t2...t5);(5)将p和原始标签作为次级学习器的训练数据,使用训练后的模型对t'进行预测,即可得到最终的预测结果。在五折交叉验证下,采用平均绝对误差(mae)对基础学习器进行评估,并采用网格搜索策略,网格搜索策略如图5所示。五折交叉验证的方法如图6所示,从sklearn机器学习库中选择最佳的五个基础学习器,其中基础学习器为回归模型,其结果如表四所示,五个最佳模型分别为randomforestregressor、svr、bayesianridge、extratreesregressor和kneighborsregressor。选择次级学习器时利用mae和相对平均绝对误差(rmae)进行评估,从多个待选模型中选择出最好的次级模型作为stacking集成学习的第二层模型,次级模型结果如表五所示,由于对代理模型使用优化算法时需要对未知数据进行预测,因此模型的预测能力十分重要,从表五中可以看到elasticnet、kernelridge和lasso模型在5折交叉验证下的rmae都为1.32%,在使用全部数据作为训练集和测试集时,模型lasso的rmae结果最小,为1.52%,所以选择lasso模型作为stacking模型的次级学习器。在训练模型时为训练的模型提供predict()接口,并使用python的pickle模块将训练完成的模型序列化。表四模型选择回归模型名称默认参数下的评估最佳参数下的评估randomforestregressor650.05633.44gradientboostingregressor833.61798.39svr614.46583.94linearsvr28559.1928559.19elasticnet688.96681.86sgdregressor250350937549766.68139707063490458.52bayesianridge578.56578.56kernelridge12667.1712667.17extratreesregressor738.17590.70xgbregressor828.49828.49adaboostregressor760.62676.67baggingregressor720.86650.73decisiontreeregressor924.21919.02kneighborsregressor599.12594.98表五不同次级模型的拟合能力和预测能力结果对比评估准则mae表达式为:评估准则rmae表达式为:s3:利用遗传算法对所建立的stacking集成学习的代理模型进行全局寻优,得到设计变量的最优组合;基于设计变量的最优组合,利用自由变形技术对原始艇身实现相应变形,采用逆向工程技术将变形后的艇身stl格式文件转化为step格式文件,得到优化艇身模型;具体实现方法为:以游艇总阻力最低为优化目标,利用遗传算法对所建立的stacking集成学习的代理模型进行全局寻优,使用遗传算法对stacking模型寻优收敛过程图如图7所示,得到设计变量控制点的最优组合;寻优过程中使用pickle模块提供的反序列化工具,将训练好的模型载入内存,在计算目标函数时调用模型的predict()函数接口即可提供相应的响应值;基于优化得到的设计变量控制点最优组合,利用自由变形技术对游艇艇身进行变形;然后采用逆向工程技术将变形后的艇身stl格式文件转化为step格式文件;最后再添加上游艇舱室,得到完整的游艇模型。本实施例建立的优化目标函数如下所示:minf(x)式中,f(x)为建立的代理模型函数,x=(y1,z1,z2,x2,x3)t。寻优过程中使用pickle模块提供的反序列化工具,将训练好的模型载入内存,在计算目标函数时调用模型的predict()函数接口即可提供相应的响应值。遗传算法部分参数如表六所示,按照该参数进行迭代,最优解出现在第15代,最后得到最优解为y1=-151.42,z1=176.54,z2=94.44,x2=-161.5,x3=40.84,总阻力值为36904.51n。表六遗传算法参数(部分)设置名称参数设置种群规模200迭代次数1000交叉概率0.9变异概率0.1根据遗传算法求解出来的解,对原始游艇进行自由变形和逆向建模,划分网格后利用fluent进行仿真,得到总阻力值为37145.63n。基于优化得到的设计变量控制点最优组合,利用自由变形技术对游艇艇身进行变形。采用逆向工程技术将变形后的艇身stl格式文件转化为step格式文件。与原始艇身模型相比,利用自由变形技术对艇身进行流体动力学减阻优化,最大的减阻优化率达到了5.81%,而且误差较小,相对误差仅为0.65%。在设定最大吃水深度为1m时,优化后的游艇排水体积为28.390m3,相对于原始游艇在吃水深度为1m时的排水体积增加了1.73%,因此优化后的游艇不仅在总阻力上有所减少,而且排水体积增大,增加了游艇的载荷能力。优化前后在不同傅汝德数下游艇总阻力如表六所示,结果显示,使用本方法对游艇进行艇身造型优化,优化后的游艇总阻力在不同工况下皆有下降。表七不同傅汝德数下游艇优化前后总阻力fr优化前总阻力(n)优化后总阻力(n)阻力优化(%)0.052573.9962497.1152.990.14634.2754405.3584.940.211515.8610956.3284.860.322888.10721367.8246.640.435917.50234074.0475.13本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1