首页/文章/ 详情

结构工程师狂喜:如何用代理模型快速评估结构强度

7小时前浏览3

迫于领导/甲方/内心的压力,我们在做结构仿真时,经常要算很多案例。每算一次,都要调整几何,重画网格和再次求解。

虽然没技术含量,但谁做谁知道,很磨人。

1.jpg

本文展示个更快的方法,用代理模型快速评估一个新方案的结构强度。

案例背景是航天飞船的一个薄壁承力结构。结构本身就复杂,受力后还牵涉到非线性和屈曲。用常规的有限元方式去评估它的结构强度,计算成本有亿点高。

2.png

下面这个表格就是用有限元计算得到的结果,其中X1~X12是结构的设计参数。后面几列是输出值,其中就包括我们最关心的应力。

3.png


差不多200组,仿真工程师要熬多少个日夜。

我们这个案例要做的,就是基于这些数据,训练得到一个代理模型。之后再遇到新的结构就直接用代理模型计算,那速度相比有限元不知道快到哪里去了。

创建代理模型第一步,打开数据建模软件DTEmpower,没安装的可以去天洑软件官网下载,安装就自带免费试用。

4.png

软件启动后,新建项目导入数据表格。

然后创建流程,选择专业模式。之后在画布依次拖入数据读取、空值处理、变量设定、数据清理AIOD、重要性分析MDA,以及数据分割节点。

然后连线,表示数据传递。

5.png


这些节点都什么作用呢?

数据读取不说了。

空值处理,将存在空值的数据行删除。你打开数据表细看,能发现有些行的数据是存在空值的。那这一行就不能用来做模型训练,需要删除。

变量设定,确定模型的自变量和因变量。显然,X1~X12这12列是自变量,应力就是因变量。

数据清理AIOD,删除异常数据。AIOD会给每组数据的风险值打个分,分数越高表示它是异常值的风险越大,要抓紧删除,防止影响模型精度。

MDA节点,删除不重要的变量。模型的自变量很多,但并不是每个都重要。MDA会评估自变量的重要性,对那些不重要的,也要抓紧删除,防止影响模型精度。

数据分割节点的作用,是把数据分成两部分,一部分用来做模型训练,一部分用来测试模型精度,软件默认按照3:1的比例分割。

接下来,关键的一步:生成代理模型。

但生成过程用什么算法呢?不知道,需要尝试。

所以我们干脆用多种算法同时训练,最后做模型精度对比,选精度高的。

6.png

然后连线。注意,数据分割到模型对比节点这一条线,别忘了做调整。要注意传递的数据应该是测试集,test data,而不是训练集。

7.png


流程搭建好,点击开始跑起来。软件运行到某一个节点,需要你输入时会弹出来。

在数据清理节点,散点图能看出来有两个点的风险值明显偏高,那就把这两个点剔除,害群之马不可留。

8.png

在重要性分析节点,发现大部分变量的重要性都很低,只有X4、X8和X12比较重要。到X3,重要性就只有0.0063了。那我们就把重要性阈值设置为0.01,不重要的都删了,只保留三个。

9.png


运行结束,点开模型对比结果,可查看几个代理模型的精度。

10.png


一般我们看决定系数R2,越大越好,GBDT胜。

平均绝对百分比误差mape,越小越好,GBDT胜。

11.png

接下来,见证奇迹的时刻——用GBDT代理模型评估新结构的应力。

找到GBDT模型,点击评估,输入三个设计值,点击计算,一瞬间就知道了应力结果,快如闪电。

12.png

只要新的输入相比训练数据没有过度外推,即范围不相差太大,评估精度是有保证的。

你还能把这个模型保存或者下载下来,通过模型读取和模型计算节点调用,批量计算新结构强度。

大功告成,有没有发现数据建模全程都没有写代码?对代码过敏者非常友好。

欢迎到天洑软件官网下载DTEmpower,零门槛上手数据建模,免费试用。

(提示:本案例所用数据在DTEmpower安装目录的ApplicationData文件夹下)

通用
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-08-04
最近编辑:7小时前
天洑软件
中国工业设计软件自主研发▪高企
获赞 442粉丝 193文章 252课程 5
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈