分享

Workbench结构参数化仿真分析

 伊伊爸 2022-05-30 发布于湖北

本案例以带肋板的支架为研究对象,演示在Workbench平台下,如何使用SCDMMechanical进行参数化仿真分析的完整流程。

1、案例描述

支架的几何结构和承载如下所示,肋板结构由三点生成的B-Spline曲线控制,对样条曲线上B点的X、Y方向位置尺寸进行参数化;研究不同肋板结构下,侧向加载5.0MPa压力和底端固定约束时,支架在X方向的最大变形量。

图片

实现方法:在Workbench平台下,首先使用SCDM脚本功能创建参数化模型,然后在Mechanical中对压力载荷数值与X方向最大变形量进行参数化,最后在Parameter Set下进行参数化研究。

2、SCDM脚本参数化

在SCDM中可以创建脚本组和脚本参数,然后绑定脚本建模代码,实现在WB下几何的全参数化,并且可在Parameter Set下同步管理输入参数。接下来演示脚本参数化详细过程。

  • 打开Workbench 2019R1,新建“Static Structural”分析系统,双击Geometry进入SCDM软件。然后在群组(Group)面板下,单击右键选择“创建脚本组”命名为“Bracket”,并创建两个初值为5.0的脚本变量:midXcoor和midYcoor,最后编辑脚本组中的建模代码,操作过程如下。

图片

  • 支架几何建模过程如下图所示;按照操作过程,在打开的脚本编辑器中输入以下脚本建模代码。
图片

# Python Script, API Version = V17ClearAll()# 绑定群组中的脚本参数midPtInfo = (Parameters.midXcoor, Parameters.midYcoor)# Step1:Create blocksBlockBody.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:Create B-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])))  #create parameterspoints.Add(Point2D.Create(MM(15), MM(0)))SketchNurbs.CreateFrom2DPoints(False, points)ViewHelper.SetViewMode(InteractionMode.Solid)# Step3.1:Pull B-Spline to toolFacessel_edge = Selection.Create(GetRootPart().Curves[0])ExtrudeEdges.Execute(sel_edge, Point.Origin, Direction.DirZ, MM(30), ExtrudeEdgeOptions())# Step3.2:Slice Body by toolFacesselection = Selection.Create(GetRootPart().Bodies[1])toolFaces = Selection.Create(GetRootPart().Bodies[2].Faces[0])SplitBody.Execute(selection, toolFaces, True)# Step3.3:Delete BodiesDelete.Execute(Selection.Create(GetRootPart().Bodies[2:4]))# Step3.4: Combine BodiesCombine.Merge(Selection.Create(GetRootPart().Bodies), None)
  • 创建命名组用于Mechanical中通过Named Selection选定加载位置,因为回放脚本时,SCDM会重头开始构建模型,并为所有实体分配新ID,所以采用几何选取(Geometry Selection)的方式指定加载位置会更新失败。

  • 本案例中,我们通过面索引分别选中压力和固定约束面,创建Selection实例,然后命名为“FixedSurface”和“PressSurface”;最后选中实体命名为“BracketBody”;脚本代码如下


def create_ns(sel, name):    ns = NamedSelection.Create(sel, Selection())    ns.CreatedNamedSelection.SetName(name)# Creation of the named selectionscreate_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下的“Static Structural”分析系统中Model单元格,进入到Mechanical软件中。在Mechanical软件中,任何以“口”符号为前缀的输入或输出都可以参数化。

  • 指定仿真模型材料:在结构树Materials节点处,右键插入Material Assignment,在属性框中Scope组下通过Named Selection选中BracketBody命名组,指定材料为默认的结构钢。

图片

  • 设置MultiZone网格划分方法:在结构树Mesh节点处,右键插入Method,在属性框中Scope组下通过Named Selection选中BracketBody命名组,设置方法为MultiZone,对整个几何体划分六面体网格。

图片

  • 设置固定约束:在结构树Static Structure节点处,右键插入Fixed Support,在属性框中Scope组下通过Named Selection选中FixedSurface命名组。

图片

  • 设置压力载荷:在结构树Static Structure节点处,右键插入Pressure,在属性框中Scope组下通过Named Selection选中PressSurface命名组。输入压力值为5.0MPa,然后点中Magnitude前”将压力输入值进行参数化。

图片

  • 创建X方向变形云图:在结构树Solution节点处,右键插入Direction Deformation,在属性框中的Results组下,然后点中Maximum前”,将最大X方向变形量进行参数化。

图片

4、Workbench参数化驱动

在SCDM和Mechanical中定义的参数,显示在Workbench中Parameter Set选项卡中,可在选项卡界面下直接更改参数,通过参数驱动重新生成几何模型、网格和仿真结果。

图片

创建如下设计点,点击Update All Design Points,Workbench会在后台通过参数驱动SCDM和Mechanical软件,开始计算所有设计点工况。得到各设计点下的结果如下,保存项目文件退出

图片

图片

作者:小田老师

精选:王华军

编辑:刘义美 | 校对:栗夏

排版:李俊苗


图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多