本案例以带肋板的支架为研究对象,演示在Workbench平台下,如何使用SCDM和Mechanical进行参数化仿真分析的完整流程。
1、案例描述
支架的几何结构和承载如下所示,肋板结构由三点生成的B-Spline曲线控制,对样条曲线上B点的X、Y方向位置尺寸进行参数化;研究不同肋板结构下,侧向加载5.0MPa压力和底端固定约束时,支架在X方向的最大变形量。
实现方法:在Workbench平台下,首先使用SCDM脚本功能创建参数化模型,然后在Mechanical中对压力载荷数值与X方向最大变形量进行参数化,最后在ParameterSet下进行参数化研究。
2、SCDM脚本参数化
在SCDM中可以创建脚本组和脚本参数,然后绑定脚本建模代码,实现在WB下几何的全参数化,并且可在ParameterSet下同步管理输入参数。接下来演示脚本参数化详细过程。
打开WorkbenchR1,新建“StaticStructural”分析系统,双击Geometry进入SCDM软件。然后在群组(Group)面板下,单击右键选择“创建脚本组”命名为“Bracket”,并创建两个初值为5.0的脚本变量:midXcoor和midYcoor,最后编辑脚本组中的建模代码,操作过程如下。
支架几何建模过程如下图所示;按照操作过程,在打开的脚本编辑器中输入以下脚本建模代码。#PythonScript,APIVersion=V17ClearAll()#绑定群组中的脚本参数midPtInfo=(Parameters.midXcoor,Parameters.midYcoor)#Step1:CreateblocksBlockBody.Create(Point.Create(MM(0),MM(0),MM(0)),Point.Create(MM(40),MM(5),MM(35)),ExtrudeType.ForceAdd)BlockBody.Create(Point.Create(MM(0),MM(0),MM(0)),Point.Create(MM(5),MM(40),MM(35)),ExtrudeType.ForceAdd)BlockBody.Create(Point.Create(MM(0),MM(0),MM(15)),Point.Create(MM(20),MM(20),MM(20)),ExtrudeType.ForceIndependent)#Step2:CreateB-SplinesectionPlane=Plane.Create(Frame.Create(Point.Create(MM(5),MM(5),MM(5)),Direction.DirY,Direction.DirX))ViewHelper.SetSketchPlane(sectionPlane)points=List[Point2D]()points.Add(Point2D.Create(MM(0),MM(15)))points.Add(Point2D.Create(MM(midPtInfo[0]),MM(midPtInfo[1])))#createparameterspoints.Add(Point2D.Create(MM(15),MM(0)))SketchNurbs.CreateFrom2DPoints(False,points)ViewHelper.SetViewMode(InteractionMode.Solid)#Step3.1:PullB-SplinetotoolFacessel_edge=Selection.Create(GetRootPart().Curves[0])ExtrudeEdges.Execute(sel_edge,Point.Origin,Direction.DirZ,MM(30),ExtrudeEdgeOptions())#Step3.2:SliceBodybytoolFacesselection=Selection.Create(GetRootPart().Bodies[1])toolFaces=Selection.Create(GetRootPart().Bodies[2].Faces[0])SplitBody.Execute(selection,toolFaces,True)#Step3.3:DeleteBodiesDelete.Execute(Selection.Create(GetRootPart().Bodies[2:4]))#Step3.4:CombineBodiesCombine.Merge(Selection.Create(GetRootPart().Bodies),None)
创建命名组用于Mechanical中通过NamedSelection选定加载位置,因为回放脚本时,SCDM会重头开始构建模型,并为所有实体分配新ID,所以采用几何选取(GeometrySelection)的方式指定加载位置会更新失败。
本案例中,我们通过面索引分别选中压力和固定约束面,创建Selection实例,然后命名为“FixedSurface”和“PressSurface”;最后选中实体命名为“BracketBody”;脚本代码如下。
defcreate_ns(sel,name):ns=NamedSelection.Create(sel,Selection())ns.CreatedNamedSelection.SetName(name)#Creationofthenamedselectionscreate_ns(Selection.Create(GetRootPart().Bodies[0].Faces[0]),"FixedSurface")create_ns(Selection.Create(GetRootPart().Bodies[0].Faces[1]),"PressSurface")create_ns(Selection.Create(GetRootPart().Bodies[0]),"BracketBody")将上述所有建模代码输入到脚本编辑器中,确认后重新运行脚本组,以检查脚本的有效性,效果如下。可以看到,通过脚本可以实现参数化建模,并且能自动识别载荷加载位置,最后创建命名组。
3、Mechanical参数化
关闭SCDM软件,然后双击WB下的“StaticStructural”分析系统中Model单元格,进入到Mechanical软件中。在Mechanical软件中,任何以“口”符号为前缀的输入或输出都可以参数化。
指定仿真模型材料:在结构树Materials节点处,右键插入MaterialAssignment,在属性框中Scope组下通过NamedSelection选中BracketBody命名组,指定材料为默认的结构钢。
设置MultiZone网格划分方法:在结构树Mesh节点处,右键插入Method,在属性框中Scope组下通过NamedSelection选中BracketBody命名组,设置方法为MultiZone,对整个几何体划分六面体网格。设置固定约束:在结构树StaticStructure节点处,右键插入FixedSupport,在属性框中Scope组下通过NamedSelection选中FixedSurface命名组。
设置压力载荷:在结构树StaticStructure节点处,右键插入Pressure,在属性框中Scope组下通过NamedSelection选中PressSurface命名组。输入压力值为5.0MPa,然后点中Magnitude前“口”将压力输入值进行参数化。
创建X方向变形云图:在结构树Solution节点处,右键插入DirectionDeformation,在属性框中的Results组下,然后点中Maximum前“口”,将最大X方向变形量进行参数化。
4、Workbench参数化驱动
在SCDM和Mechanical中定义的参数,显示在Workbench中ParameterSet选项卡中,可在选项卡界面下直接更改参数,通过参数驱动重新生成几何模型、网格和仿真结果。
创建如下设计点,点击UpdateAllDesignPoints,Workbench会在后台通过参数驱动SCDM和Mechanical软件,开始计算所有设计点工况。得到各设计点下的结果如下,保存项目文件退出。
作者:小田老师
精选:王华*
编辑:刘义美
校对:栗夏
排版:李俊苗
优选录播课点击图片查看详情
×××点个在看·永远收敛预览时标签不可点收录于话题#个上一篇下一篇