首页/文章/ 详情

基于机器学习和代理模型的吸能盒参数优化模型建立

1年前浏览2312

        这两周我都是在学习方永利老师的《CAE数值优化轻量化》里的内容,不得不说,他的内容每一篇文章都是干货满满。

        由于我联系不到他本人,再加上他文章中有些内容直接跳过, 又或是没写,我都会在这篇文章中尽量补全,包括对他的代码,我也是添加了亿点点细节,有关机器学习和代理模型的相关知识,以及代码里用到的Python第三方包的函数的使用方法,我也是在这过程中自己百度自学的,难免会有错误。

        不得不说参数优化的水很深,一般人根本把握不住。要掌握的知识实在太多,如计算机方面的一些知识,批处理命令的使用,机器学习和代理模型方面的知识,Python语言的使用等等,废话不说了,下面我们开始吧。

拿出我之前拿来当案例的宝马吸能盒,依旧是对这四个参数来创建我们的设计变量,对加速度和侵入量做设计响应。

用doepy来创建四个设计变量的范围,以及使用拉丁方生成240个DOE样本点。

将样本点生成Excel表格输出,之后我们会用到,再就是可视化样本点,这里用散点图来展示。

接下来在我们的脚本所在的文件夹下,要存在一个含有我们设计变量信息的DV_File文件,我们用我们上面创建的所有样本点里设计变量的信息来依次修改这个DV_File里不同设计变量对应的值,然后这个修改好的DV_File文件放入每个新创建的DOE文件夹内。

执行这个脚本,我们会在脚本存在的文件夹创建一个名为LHS的文件夹,里面存放着240个DOE文件夹,里面都放着不同的样本点对应的不同的设计变量值。

在我们脚本存在的文件夹下我们要新建一个名为ansa.bat的批处理文件,来启动ANSA,读取DV_File来修改我们网格模型,并输出k文件。

这里我发现照方永利老师的办法行不通,于是咨询了一下做二次开发的道友,曲线救国,修改了一下这个批处理命令,这里就不实名表扬了,怪尴尬的哈哈。在文件夹下我们还要放一个名为runtask.py的脚本,属实是用批处理命令调用外部的脚本了。这个脚本的代码也很简单,如下图。

还要放一个名为runlsdyna.bat的批处理文件,来批量提交求解文件计算。

还要放一个名为master.ansa的ansa文件,里面有我们搭建好的优化任务。下面可以讲我们的批处理计算的代码了。

这段代码就是把我上面提到的批处理文件,ansa文件,脚本文件,依次复 制粘贴到每个DOE文件夹下,然后运行。

为了防止最后的计算文件太大,我这里加了一个算完一个样本点就删除所有d3plot文件的命令。

下面开始我们的并行计算,我这里采用四个样本点一起并行计算,提高计算的效率。

从这里开始,我们就要读取我们的设计响应了,我这里用lsreader包读取binout文件

读取了nodout文件,读取了刚性墙的最大侵入量和加速度值。


这里用numpy建立了一个二维数组来存放我们的设计响应值。

首先读取我们之前储存的excel,里面包含了我们所有样本点数据,用sklearn包里的train_test_split的函数来划分我们的测试集和训练集,我这里测试集用了百分之十五,随机种子数用了80,这里随机种子数的改变,对机器学习预测值的结果也会有影响,需要自己不断调试。

创建我们的机器学习_支持向量机模型

定义一个计算R2值的函数,后面用来评判我们优化模型代理模型的精度。

我们输出我们的预测值曲线和真实计算值曲线,做一个对比。以及R2值。

支持向量机对加速度的预测,R2值百分之70,精度算是比较低的,这里面的原因,我觉得可能是模型调试问题或者是这个分析本质上不属于回归分析,因此不适合支持向量机来做数据处理,这个我后面再看。

支持向量机对侵入量的预测,R2值只有百分之三,可以说精度相当不高。

下面我们来看下使用代理模型_Krging

克里金对加速度的预测,R2值有百分之71,模型精确度比支持向量机高出一点。

克里金对侵入量的预测,R2值只有百分之3

以上内容都是自己一个人闭门造车吭哧吭哧摸索得来,主打一个励志,内容中有一些自己对结果的猜测,总有一些不对得地方,各位道友看的时候请自行甄别,在下告辞。

写在最后:

明明有商软,为什么要折腾代码。

折腾代码的原因只有两点:1.装逼。2.公司穷。除这两点外别无其它。

很明显我就是属于后者。

不过写代码确实可以帮助你更深层次的理解整个优化流程,代码的自由度也高,不受软件粗糙界面的折磨,随心所欲,这像极了道。

法地,地法天,法道,道法自然。



来源:FEAer
二次开发ANSA参数优化
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-11
最近编辑:1年前
FEAer
本科 | CAE工程师 到点就下班的CAE打工人
获赞 72粉丝 99文章 80课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈