基于CATIA、ABAQUS、ANSA、ISIGHT的钢管应变的联合仿真优化
2024/1/18 16:57:00
「以“虚”为“实”」 一般钢管对焊呈现如图一所示,在焊接钢管承受轴向荷载时,焊缝材料在轴向会发生较大的应变,导致焊缝材料损伤破裂。部分客户或厂家于是采用如图二的方式,在焊缝外部添加一个加强环,使得当钢管承受轴向荷载时,减小焊缝的轴向的应变。于是便产生了一个问题,既当外部加强环采用何种尺寸时,能够使得在其体积最小时(既成本最低时),焊缝的轴向应变也能最小,从而增加焊缝寿命。本文结合Isight多学科优化软件,ABAQUS通用有限元软件,ANSA Morph 网格变形,CATIA V5 CAD建模,进行DOE和 Optimization,寻找到外部加强件的较优尺寸。
![]() ![]() ![]() ![]() ![]() ![]()
用NotePad++打开运行后产生的 .dat文件,可以看到,文件内已输出焊缝单元的应变分量,并且ABAQUS自动汇总最大和最小应变发生的单元。
用ANSA的脚本编辑器编写脚本,如下图不再解释,因为已经有详尽的注释。 如下图编写批处理文件,在没有ANSA GUI的情况下运行前页编写的PY脚本。 注:ansa64如果找不到,请在windows环境变量Path添加相关路径。 Set_Weight计算器说明,由于本次优化需要寻找在外部加强件体积小,即成本低的情形下,焊缝Y向应变最小。这个2个优化的目标,一来互相矛盾,二来他们的数值的数量级差的太多,因此在此处设定一个计算器用来调整优化因子的权重。 名为Modify_PY的DataExchanger组件,是用来修改先前编写的ANSA PY脚本,修改的是用来进行网格变形的 2 个参数的值,并把这 2 个值作为ISIGHT的参数纳入到优化流程中。由右下图所示,组件创建了2个名为length、thickness的参数,修改了PY文件,并把修改后的PY输出。 名为Run_INP 的 OS Command组件,运行了先前创建的批处理文件“Weld_Opt_Sample-1.bat”,此批处理调用ABAQUS求解器,求解了网格变形后的由Gen_INP组件生成的INP文件。并输出dat 文件,其中包含了焊缝Y方向的应变信息,如下图。 名为Read_Result的DataExchanger组件,读取了Run_INP组件产生的dat文件,并把焊缝Y方向的应变分量E22输出为Result参数。 创建一个计算器,原因有二: 1、前面的组件输出的E22应变分量参数Result可能具有正负,因此在计算器内取绝对值,并取名AbsResult输出。 2、由于thickness和length参数的改变,会引起外部加强件的体积改变,在计算器里计算出体积。作为V0l输出。 编辑DOE2的实验设计组件,选择length和thickness为因子,AbsResult和V0l为响应,目标都设为最小DOE,抽样方法请自定。 由于这个优化流程是一个多目标优化,解将可能是一个解集,存在一个 Pereto前沿,需要决策层来决定选取解集中的哪个解进行进一步的优化,因此创建一个循环,重新输入后续优化的thickness和length的初值,并对体积响应做了一个范围约束。创建循环的目的是防止体积约束范围的大值和小值发生输入反转,而使得后续优化过程出错。 复制DOE2 ,并黏贴到Loop组件后面,用Optimization组件替换掉 DOE组件,于是形成后续如下图的Optimization1的优化流程。双击 Optimization1组件,进行如图设定,其中V0l1的Lower Bound和 Upper Bound需要从前面的loop组件的输出参数映射过来。 运行ISIGHT流程,可得到DOE2的运行结果,左下图表示的运行历程,绿色行表示ISIGHT认为的较优解,蓝色行表示可接受的解。 打开 2D Scatter Plots,找到AbsResult和V0l 的关系图,双击展开,可以看到横轴为加强件的体积,纵轴为焊缝的E22应变绝对值,较好的解当然是横轴和纵轴都为0,即不加任何加强的时候,E22应变为0,这是不可能的。所以,会得到一组靠近原点的Pereto解集,即图中蓝色点。此时需要决策层来决定选取哪个点进行后续优化。 选取如图的Pereto解集里的某个解,可以看到,此时的外部加强件的体积是 1030200mm3。转到History标签后,可以看到此时的length是52.5,即外部加强件2头都伸长了52.5mm,thickness是-6,即厚度减小了6mm。 流程已经运行完DOE2,此时运行于Loop,流程弹出对话框,要求重新定义 length、thickness,最大体积VolMax、最小体积VolMin,输入后,会检查是否VolMin小于VolMax,如果OK,流程将会把这些参数流入后续的优化组件作为优化的因子初值和加强件的体积约束范围。这里输入 length=52.5、thickness=-6,VolMin=900000、VolMax=1100000。点击OK继续: 流程进入 Optimization1 进行求解: 历程情况,其中绿色为求得的较优解,黄色为轻微超过或者少于体积约束的解,红色为坏解,完全超越了体积约束。 E22应变和体积的关系图,纵轴为E22,横轴为体积,可见左侧蓝线为最小允许体积,右侧红线为最大允许体积,绿色点为求得的较优解,红色点为超差的坏点。 将仿真置于设计的核心位置,即充分利用仿真技术来消除相关风险,将产品线性地推向市场(杜绝重复设计),使产品如期运行,并具有预期的使用寿命。从构思到报废再到循环再用,仿真如果能够在整个产品生命周期提供助力,降低风险、明确责任,以及节约成本,将会挖掘出产品更大的价值。只有当仿真摆脱孤岛式的传统模式并成为设计的核心内容时,才能充分发挥其潜力。
-END- |
「以“虚”为“实”」
一般钢管对焊呈现如图一所示,在焊接钢管承受轴向荷载时,焊缝材料在轴向会发生较大的应变,导致焊缝材料损伤破裂。部分客户或厂家于是采用如图二的方式,在焊缝外部添加一个加强环,使得当钢管承受轴向荷载时,减小焊缝的轴向的应变。于是便产生了一个问题,既当外部加强环采用何种尺寸时,能够使得在其体积最小时(既成本最低时),焊缝的轴向应变也能最小,从而增加焊缝寿命。本文结合Isight多学科优化软件,ABAQUS通用有限元软件,ANSA Morph 网格变形,CATIA V5 CAD建模,进行DOE和 Optimization,寻找到外部加强件的较优尺寸。






用NotePad++打开运行后产生的 .dat文件,可以看到,文件内已输出焊缝单元的应变分量,并且ABAQUS自动汇总最大和最小应变发生的单元。
用ANSA的脚本编辑器编写脚本,如下图不再解释,因为已经有详尽的注释。
如下图编写批处理文件,在没有ANSA GUI的情况下运行前页编写的PY脚本。
注:ansa64如果找不到,请在windows环境变量Path添加相关路径。
Set_Weight计算器说明,由于本次优化需要寻找在外部加强件体积小,即成本低的情形下,焊缝Y向应变最小。这个2个优化的目标,一来互相矛盾,二来他们的数值的数量级差的太多,因此在此处设定一个计算器用来调整优化因子的权重。
名为Modify_PY的DataExchanger组件,是用来修改先前编写的ANSA PY脚本,修改的是用来进行网格变形的 2 个参数的值,并把这 2 个值作为ISIGHT的参数纳入到优化流程中。由右下图所示,组件创建了2个名为length、thickness的参数,修改了PY文件,并把修改后的PY输出。
名为Run_INP 的 OS Command组件,运行了先前创建的批处理文件“Weld_Opt_Sample-1.bat”,此批处理调用ABAQUS求解器,求解了网格变形后的由Gen_INP组件生成的INP文件。并输出dat 文件,其中包含了焊缝Y方向的应变信息,如下图。
名为Read_Result的DataExchanger组件,读取了Run_INP组件产生的dat文件,并把焊缝Y方向的应变分量E22输出为Result参数。
创建一个计算器,原因有二:
1、前面的组件输出的E22应变分量参数Result可能具有正负,因此在计算器内取绝对值,并取名AbsResult输出。
2、由于thickness和length参数的改变,会引起外部加强件的体积改变,在计算器里计算出体积。作为V0l输出。
编辑DOE2的实验设计组件,选择length和thickness为因子,AbsResult和V0l为响应,目标都设为最小DOE,抽样方法请自定。
由于这个优化流程是一个多目标优化,解将可能是一个解集,存在一个 Pereto前沿,需要决策层来决定选取解集中的哪个解进行进一步的优化,因此创建一个循环,重新输入后续优化的thickness和length的初值,并对体积响应做了一个范围约束。创建循环的目的是防止体积约束范围的大值和小值发生输入反转,而使得后续优化过程出错。
复制DOE2 ,并黏贴到Loop组件后面,用Optimization组件替换掉 DOE组件,于是形成后续如下图的Optimization1的优化流程。双击 Optimization1组件,进行如图设定,其中V0l1的Lower Bound和 Upper Bound需要从前面的loop组件的输出参数映射过来。
运行ISIGHT流程,可得到DOE2的运行结果,左下图表示的运行历程,绿色行表示ISIGHT认为的较优解,蓝色行表示可接受的解。
打开 2D Scatter Plots,找到AbsResult和V0l 的关系图,双击展开,可以看到横轴为加强件的体积,纵轴为焊缝的E22应变绝对值,较好的解当然是横轴和纵轴都为0,即不加任何加强的时候,E22应变为0,这是不可能的。所以,会得到一组靠近原点的Pereto解集,即图中蓝色点。此时需要决策层来决定选取哪个点进行后续优化。
选取如图的Pereto解集里的某个解,可以看到,此时的外部加强件的体积是 1030200mm3。转到History标签后,可以看到此时的length是52.5,即外部加强件2头都伸长了52.5mm,thickness是-6,即厚度减小了6mm。
流程已经运行完DOE2,此时运行于Loop,流程弹出对话框,要求重新定义 length、thickness,最大体积VolMax、最小体积VolMin,输入后,会检查是否VolMin小于VolMax,如果OK,流程将会把这些参数流入后续的优化组件作为优化的因子初值和加强件的体积约束范围。这里输入 length=52.5、thickness=-6,VolMin=900000、VolMax=1100000。点击OK继续:
流程进入 Optimization1 进行求解:
历程情况,其中绿色为求得的较优解,黄色为轻微超过或者少于体积约束的解,红色为坏解,完全超越了体积约束。
E22应变和体积的关系图,纵轴为E22,横轴为体积,可见左侧蓝线为最小允许体积,右侧红线为最大允许体积,绿色点为求得的较优解,红色点为超差的坏点。
将仿真置于设计的核心位置,即充分利用仿真技术来消除相关风险,将产品线性地推向市场(杜绝重复设计),使产品如期运行,并具有预期的使用寿命。从构思到报废再到循环再用,仿真如果能够在整个产品生命周期提供助力,降低风险、明确责任,以及节约成本,将会挖掘出产品更大的价值。只有当仿真摆脱孤岛式的传统模式并成为设计的核心内容时,才能充分发挥其潜力。
-END-