首页/文章/ 详情

LS-OPT联合Abaqus求解器仿真优化流程

2年前浏览5897

LS-OPT系列二:LS-OPTabaqus的联合仿真优化

LS-OPT没有abaqus求解器接口,因此如果需要联合abaqus进行优化仿真设计,需要通过其他接口来设置,比如通过ANSA进行前处理进行设计变量的创建,然后通过User-Defined接口来调用abaqus求解器。这种方法也是比较优选的方式,一般流程是:ANSA(前处理)→ABAQUS(求解)→Meta(后处理),后续会详细介绍这种方法。

本文采用另一种常规的联合的方式:通过User-Defined调用ABAQUS直接联合仿真,这主要包括两个方面的内容:1.设计变量的创建,由于LS-OPT没有ABAQUS软件接口,因此没有像nastran那样支持求解器本身的参数化创建的方法,只能使用LSOPT软件内置的参数化设置方法,这种方法适用于所有的求解器文件,如《LS-OPT联合Nastran求解器仿真优化流程》一文中nastran求解文件参数化设置同样可以使用这种方法来创建。2.设计响应的创建,对于设计响应的创建,可以使用常用的处理方法如:《使用hypergraphhyperview批处理进行后处理用于联合优化软件》或《使用Meta进行后处理用于联合优化软件》中所述的方法,本文使用不借用其他商业后处理软件的方式,即使用LSOPT自带的接口来创建设计响应,其中需要使用python语言对abaqus的结果文件进行后处理来生成所需的文件,用于创建设计响应。这其中有两种处理方法:1.使用LSOPTFile接口;2.使用User-Defined Postprocessor接口。

一、设计变量的创建(求解文件的参数化)

LSOPT参数化的命令格式为:

<<expression:[i]field-width>>

其中i为可选关键字,为整数变量的声明

示例:一个lsdyna的关键字文件

*SECTION_SHELL

1, 10, , 3.000

0.002, 0.002, 0.002, 0.002

可以创建参数化文件为:

*SECTION_SHELL

1, 10, , 3.000

<<Thickness_3>>,<<Thickness_3>>,<<Thickness_3>>,<<Thickness_3>>

创建了一个变量名为Thickness_3的设计变量

或者:

*SECTION_SHELL

1, 10, , 3.000

<<Thickness_3:10>>,<<Thickness_3:10>>,<<Thickness_3:10>>,<<Thickness_3:10>>

创建了一个变量名为Thickness_3且占10个字符位的设计变量

 

二、设计响应的创建

方法一:使用lsoptfile接口

filestage模块下的Responses中,如果使用file接口创建设计响应,需要注意:1.file文件只能创建一个单变量2.file文件中只需要保护输出的结果,不包含其他任何信息

以上两个注意事项在创建file结果文件时需要特别注意。

image.png


选择file后在New response中设置Name为设计响应的名称。

方法二:使用User-DefinedPostprocessor创建设计响应

image.png

其中,output file为包含需要创建设计响应的结果文件,其文件的格式为:

#

RESPONSES

1mass0.12

2stress210.2

3strain0.02

END

 

以上为标准输出格式,其中RESPONSESEND等关键字需要保持完全一致。


算例:

问题描述:长100mm,宽10mm,厚度为2mm的壳单元模型,一端固定约束,另一端受20N的载荷力。将壳单元厚度设置为优化变量,结构最大应力结果作为设计响应。

image.png

.设计变量参数化:

image.png

根据以上描述的方法,将壳单元的厚度设置为变量名为TH01的设计变量。

*SHELL SECTION, ELSET=auto1, MATERIAL=steel

2.0

设置为:

*SHELL SECTION, ELSET=auto1, MATERIAL=steel

<<TH01>>

如果还需要对其他参数创建设计变量,安装同样的方法操作即可。

 

二、设计响应的创建

方法一:使用lsoptfile接口

要通过file接口创建设计响应,需要将结果输出到一个文件中,创建时按照注意事项创建。

image.png

通过python处理odb结果文件,将最大应力结果写入到max_stress.txt文件中。

image.png


结果文件中只包含最大应力结果数值。除此没有其他任何信息。

三、LSOPT优化流程的创建

image.png

image.png


1.选择User-Defined

2.选择运行abaqus的命令文件

abaqus的运行命令文件abaqusstart.bat中需要包含提取结果文件max_stress的命令:

image.png

注意:需要在命令中添加abaqus正确运行完成后传递给LSOPT的结束信号’N o r m a l’

3.选择参数化的输入文件

由于使用LSOPT自带的参数化设置方法 会是参数没有初始值,变量范围等信息,因此需要打开Setup模型中进行参数化的设置,本例中,设置参数TH01的初始值为1.0,变量为离散型变量,值为{1.0,2.0,3.0,4.0}

image.png



4.stage中选择Response

5.选择FILE

6.选择max_stress.txt结果文件

7.修改设计响应的名称为max_stress

然后设置优化算法,设计约束,设计目标,迭代终止条件等即可。


另外一种方法:

一、设计变量参数化

同方法一。

二、设计响应的创建

方法二:使用User-DefinedPostprocessor创建设计响应

要通过User-Defined Postprocessor接口创建设计响应,需要将结果输出到一个文件中,创建时按照注意事项创建。

image.png

通过python处理odb结果文件,将最大应力结果写入到max_stress.txt文件中。

image.png

需要注意结果文件中的格式要求。只要按照要求的格式输出才可以保证LSOPT可以识别结果。

三、LSOPT优化流程的创建

image.png

image.png


1.选择User-Defined

2.选择运行abaqus的命令文件

abaqus的运行命令文件abaqusstart.bat中需要包含提取结果文件max_stress的命令:

image.png


3.选择参数化的输入文件

image.png


4.由于后处理程序使用的是User-DefinedPostprocessor模型,和abaqus求解模型是相对独立的两个模块,运行计算时会产生两个文件夹。因此,在运行User-Defined Postprocessor定义的程序时,如果需要使用abaqus的结果文件,因此需要设置两个模块之间的数据传递。

5. TS_Abaqus.odb结果文件传递给User-DefinedPostprocessor模块。

image.png

6.选择User-DefinedPostprocessor

7.选择运行python的命令文件

image.png

8.选择结果文件,此时LSOPT软件会自动识别结果文件中的设计响应

image.png

然后设置优化算法,设计约束,设计目标,迭代终止条件等即可。



理论科普瞬态动力学代码&命令其他软件AbaquspythonANSA
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-06-24
最近编辑:2年前
CAE学习之家
本科 | CAE仿真 专业团队、精致服务!
获赞 80粉丝 9257文章 38课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈