首页/文章/ 详情

利用python脚本在ANSYS workbench仿真中进行单元级别的材料属性随机赋值!

28天前浏览377

在有限元仿真分析中,我们习惯将整个结构或某个部件赋予一组确定的、均匀的材料参数,如:弹性模量 E=210 GPa、泊松比 v=0.3、屈服强度 σy=250 MPa……,这些数字整齐而确定,给我们一种“一切尽在掌握中”的安全感。然而,现实世界的材料却并非如此。


例如,以一块混凝土试块为例:混凝土内部散布着大小不一的骨料、砂浆体和微小的孔隙;再拿一片航空发动机叶片来看:由于铸造工艺的微小偏差,材料在不同位置的晶粒取向和力学性能存在差异。这种微观层面的“不完美”并不是缺陷,而是材料的固有特征,仿真中我们时常假定材料是各向同性的。但如果我们在仿真中故意忽略这些随机性,就等于用了一种平均化的策略去判断仿真8结果的状况——缺少了一些关键的细节。


材料属性随机赋值,是一种将材料“真实”属性引入仿真模型的关键技术。它的核心思路是:在已划分好网格的有限元模型上,不是给每个单元赋予相同的材料参数,而是根据预定义的规则随机地、但有据可依地赋予不同的材料属性。这种“从均匀到非均匀”的转变,能够揭示确定性仿真无法捕捉的一些关键信息。



-01-

从均匀网格到非均匀应力场


材料属性随机赋值的原理很简单,大致可分为三步过程:


第一步,建立均匀网格。我们可以将实体模型离散化为许多个微小的网格单元,每个单元就是结构部件的一块微小的材料“拼图”。此时,所有单元的材料属性完全相同,这个阶段就是传统有限元仿真分析的网格划分过程。


第二步,随机赋值。根据预定义的概率分布(如正态分布、Weibull 分布等),对每个单元独立或空间相关地采样材料参数。有的单元可能被赋予“相 A”(如基体材料),有的被赋予“相 B”(如增强相),有的则是“相 C”(如孔隙或化合物相)。——每块片段的材质就不同了。


第三步,求解与后处理。将这组非均匀的材料场交给有限元求解器,在载荷与边界条件下进行求解。由于相邻单元的刚度不同,应力传递时会在界面处发生应力集中,形成“非均匀应力场”——这正是真实材料在载荷下的典型行为。


从以上流程可以很容易理解:当两块强度、刚度不同的材料拼接在一起时,应力在界面处会发生不连续——刚度较硬的材料会承担更多载荷,而刚度较软的材料则得到的较少。这种载荷重分配现象,在确定性的仿真(所有单元刚度相同)中是完全看不到的。


下图 1 直观展示了前述三步流程。左侧是均匀网格,所有单元外观一致;中间是随机赋值后的网格,不同颜色代表不同的材料相;右侧是求解后的应力场,可以看到应力集中区域——那里往往正是结构可能得失效起点。


图 1:材料属性随机赋值示意图(均匀网格 → 随机材料 → 非均匀应力场)


应力集中是导致结构失效的关键机制。当某个区域的应力超过材料的强度极限时,裂纹就会从那里起源并扩展。确定性仿真由于材料均匀假设,往往会低估这种应力集中的严重程度,从而高估结构的安全裕度。而随机赋值通过引入材料的不均匀性,能够在一定程度上更真实地捕捉这些危险区域。



-02-

确定性仿真与随机仿真


确定性仿真与随机仿真两者的区别我们可以用一个比喻来理解:确定性仿真给出的是“如果世界完美,结构会怎样”的答案;而随机仿真回答的是“在真实制造条件下,结构最可能怎样失效”。对工程设计决策而言,后者的价值远大于前者。


图 2  确定性仿真与随机仿真结果对比


举个例子:

图2 (a) 展示了某结构确定性仿真的单一结果:最大应力为 285 MPa,低于许用值 350 MPa(图中红色虚线),看起来结构完全安全。工程师可能据此判断设计满足要求。但这个结论是基于材料性能处处完全一致的假设。


图2 (b) 是某机构500次随机仿真的结果分布:应力呈现明显的随机分布特征,均值约为285 MPa,但标准差达到约35MPa。更重要的是,约3.6%的样本超过了许用值——这意味着在每生产100件产品时,大约有2~3件可能存在风险。在某些安全敏感领域,这个“小概率”有时是不可接受的。


图2(c) 展示了材料参数与响应之间的感性关系:横轴是弹性模量 E,纵轴是最大应力。每个散点代表一次材料属性随机赋值的结果,红色虚线是趋势线。



-03-

随机场理论的“有据可依”

 

需要明确一点,材料的随机赋值并不是毫无规律地“抛骰 子”。真正有价值的工程应用需要遵循严谨的理论框架,具体包含以下三个关键要素:


一、空间相关性。相邻单元的材料属性往往不是独立的,而是具有空间相关性。例如,如果某个区域的材料强度较低,它周围的材料强度也往往偏低,而不是随机跳变。这种相关性通常通过协方差函数来建模,常见的包括指数型和 Matern 型。常用的 Karhunen-Loeve 展开(KLE)方法能将高维随机场分解为有限维度的正交基,大幅降低随机变量的维度,从而显著减少蒙特卡洛所需的有限元求解次数。


其二,相体积分数约束。在复合材料 RVE 模型中,各相的体积分数必须符合实验测量值。例如,混凝土中骨料约占 40%、砂浆约占 55%、孔隙约占 5%,随机分配必须在此约束下进行。如果不加以约束,得到的微观结构就不能代表真实材料,计算出的等效性能也就失去了物理意义。


其三,概率分布匹配。材料属性(如弹性模量、强度)应从实测统计分布中采样,而非人为假设。强度通常服从 Weibull 分布(这是材料科学中最广泛使用的强度分布模型),弹性模量则常用正态分布或对数正态分布。分布参数应来源于材料厂商提供的材料数据手册,或者组织自己的实验测试。


上述三点共同保证了随机赋值的物理合理性。只有同时满足空间相关性、体积分数约束和概率分布匹配,随机材料赋值的结果才能真正反映工程实际。


本文中,笔者编制的脚本只是简单地具备体相体积分数约束,概率分布方面采用的是 Fisher-Yates 洗牌算法,为均匀分布随机,空间相关性方面也未进行完善,主要原因在于该脚本原本用于材料热工的仿真,根据前面的理论可知,不太适合作为力学方面的仿真求解(下面案例结果分析),但可以作为一种对材料属性随机处理的方式。



-04-

在ANSYS WB仿真中对材料属性随机赋值


以一个简单案例演示。在ANSYS中,建立一个简单的模型,如下图所示:


进入model分析设置界面,方块和圆棒之间的接触我们采用默认的绑定接触设置:


接着简单划分网格,结果如下所示:


通过笔者编制的脚本,我们可以对任意一个或多个part的单元进行材料属性的随机赋值(网格单元级的赋值)。只需要提前建立好命名选择,本例建立如下命名选择:




打开ANSYS workbench中的python脚本编辑输入框,复 制脚本代码到脚本输入框:




接着,按实际情况输入要设置的材料组分比例和材料参数。本例假设材料有3种材料组分,只需要在MATERIAL_LIST = []列表中输入材料参数即可,如下图:


注意,ratio之和要等于1,在此基础上可以将材料组分设置为任意多个。材料属性参数除了输入力学参数、也可输入热性能相关参数,这代表该脚本可以进行传热方面的前处理。


脚本中,TARGET_NAMED_SELECTION,用于指定目标实体的 Named Selection 名称,以确定哪个part将被按照脚本中设置的材料对单元进行随机分配材料属性。


示例如下:

TARGET_NAMED_SELECTION = ""  # 空字符串表示对所有体进行分配;

TARGET_NAMED_SELECTION = "mat_1"  # 仅对我们前面设置名为 mat_1 的 Named Selection 中的体分配。


本例对Named Selection为mat_1的部件进行单元随机分配材料属性,设置如下:


接着简单设置一下,约束和载荷条件,如下图:


运行脚本:


将会自动生成相关前处理和后处理APDL命令


检查没有问题后,就可以计算。


计算后,后处理中可以看到方块part被赋予了随机的材料属性(3种色块,代表3种材料),而圆杆材料为默认结构钢:


变形和应力情况如下:


我们也可以将方块和杆件全部改为随机材料,只需要将TARGET_NAMED_SELECTION设置为空字符串,即TARGET_NAMED_SELECTION  = "",此时计算后的结果如下:


可以看到,结果中应力连续性较差,有的网格节点处应力有跳变,这是因为该脚本没有进行空间相关性方面的完善。单元材料之间的变化较大时就会出现明显应力集中,可以通过多设置几组组分,减小组分之间的材料参数变化量缓解。


本脚本文件主要用于传热的分析,方法与上述一致。以下为笔者计算的一个RVE模型案例。该例可以用于如加气混凝土等材料(基体相+空气相)的传热分析。


通过以上案例,相信大家都知道该脚本的使用方法了,但这里需要强调一下使用时需要注意以下事项:


① 该脚本仅适用于 ANSYS Workbench 2020 R2 版本,其他版本未测试,可能存在 API 差异;

② 模型必须先完成网格划分,脚本不负责网格划分;

③ 材料比例之和应接近或等于 1,否则最后一种材料会自动调整;

④ 使用 Named Selection 指定目标体时,需先在 Mechanical 中创建 Named Selection;

⑤ 脚本会自动删除旧的 RandomMatAPDL 和 Post_MaterialPlot 命令,但建议手动删除后,再运行脚本;

⑥ 脚本中定义的材料不会出现在左侧材料树中,如需在材料树中查看,需在 Engineering Data 中手动创建同名材料;

⑦ 求解完成后,可在 Solution Information 中查看材料分配验证信息;

⑧图片中不同颜色代表不同材料,配合 material_legend.txt 文件查看材料名称。


#ANSYS #python #单元级别材料随机赋值


来源:薛定谔的Cube
MechanicalWorkbench复合材料航空python铸造裂纹理论材料ANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-07-28
最近编辑:28天前
巴郡撸猫人
硕士 签名征集中
获赞 15粉丝 25文章 73课程 0
点赞
收藏
作者推荐

ANSYS Workbench焊接结构疲劳分析(等效结构应力法)

前言上一篇介绍了焊缝疲劳分析结构应力法的热点应力法,在最后提到了热点应力法存在网格敏感性问题,为了解决网格敏感性这个问题,考虑了应力集中、厚度、载荷等因素对焊接疲劳寿命的影响,提出了等效结构应力幅参数(等效结构应力法),同时对比了数千个焊接件疲劳实验数据,将基于名义应力的焊接接头疲劳等级S-N曲线压缩成一个单一的基于等效结构应力的主S-N曲线,这样为焊接疲劳计算提供了更加方便、准确的分析方法。今天我们进行等效结构应力法计算过程介绍。我们从结构应力、等效结构应力计算、主S-N曲线与案例演示计算四个方面进行介绍。正文1、结构应力等效结构应力在结构应力的基础上计算得到,因此,在进行等效结构应力之前,我们必须对结构应力进行简要介绍。在热点应力法中其实已经涉猎到此部分内容,只是没有展开说,没有给出具体的概念,今天具体介绍一下。在焊接节点中,紧靠焊址缺口或焊缝端部缺口前沿的局部应力称为结构应力,其大小受到整体几何参数的影响。结构应力分析时,需要将结构应力从缺口应力中分离出来,也就是说,结构应力是不考虑缺口应力的。在结构应力不是很大的情况下,可采用厚度方向的应力分布线性化方法计算结构应力,如下图所示,结构应力分析时将厚度方向的缺口应力分离出来,结构应力为σs=σm+σbσm、σb理论计算公式如下,作为工程使用,我们仅作简单了解即可,实际在应用时不用公式计算。在焊缝仿真分析时,我们通过仿真软件计算得到焊缝区域附件的应力分布,采用厚度方向的应力分布线性化方法(得到σm、σb)计算焊址厚度方向的结构应力如下图a(这是最常用的方法,且在仿真软件中已完美集成,且疲劳分析软件也是用这个方法进行计算结构应力),或将焊址下1mm处的应力值作为结构应力图下图b所示。2、等效结构应力计算等效结构应力是基于断裂力学表达式推导得到的,等效结构应力计算公式为:ΔS为等效结构应力变化范围(也称应力区间),Δσ为结构应力变化范围t为板厚I(r)1/m为膜应力(σm)与弯曲应力(σb)状态参数。m为常数,取3.0。上式中I(r)1/m的计算相对困难,在专业的片疲劳分析软件中内置了算法,现I(r)计算公式如下:3、主S-N曲线计算主S-N曲线的焊缝疲劳计算公式为:我们称为主S-N曲线方程,式中Cd及h为实验常数,铁和不锈钢常数Cd及h见下表(参考deepseek)。在已知Cd及h的情况下,我们可以分别得到铁/不锈钢在不同存活率下的主S-N曲线,如下(仅给出中值与下限曲线)。中值:存活率代表平均水平,也就是说,有一半的试件寿命大于这条线,一半小于这条线。下限:这条线代表的是高存活率或低失效概率的设计曲线。比如-2σ(标准差)曲线,意味着有95%的试件(假设正态分布)寿命会落在这条线的上方。这是工程设计中最常用的曲线,因为它提供了一个安全的、保守的寿命预测。上限:这条线代表的是高寿命的边界。只有极少数(如2.3%)性能非常好的试件才能达到这条线以上的寿命。在工程中,我们通常不依赖这条线进行设计,因为它不安全。计算出了等效结构应力与主S-N曲线,就可以进行焊缝疲劳分析。示例1计算模型采用与热点应力法相同的模型与边界进行计算,此处仅对问题描述进行介绍,方便后文的理解,具体设置过程请参考《ANSYSWorkbench焊缝疲劳仿真分析(热点应力法)》。(1).问题描述案例模型采用T型板,焊缝采用角焊缝,完全焊透,平板厚度均为1mm,底板两侧面固定约束,立板顶面承受往复集中力,模型示意图如下图,材料采用默认的结构钢,不进行特别说明,计算焊缝的疲劳寿命。计算完成后,我们通过定义路径(Path),在需要焊缝评定区域沿厚度方向进行线性化处理,得到膜应力(σm=0.2MPa)=、弯曲应力(σb=180.22MPa)得到膜应力+弯曲应力(σm+σb=180.42MPa),即结构应力为180.42MPa,结构应力范围Δσs为360.84MPa,如下图。根据计算得到的σm+σb、σb:计算弯曲比r,如下r=≈1当弯曲比r≈1时(纯弯曲),I(r)1/m趋近于一个常数(约1.2-1.4),本文计算取1.3(deepseek查找,仅作案例演示,不具备工程价值)。I(r)1/m=≈1.3将计算得到的参数带入等效结构应力计算公式,如下ΔSs=360.84/(1*1.3)=277.56MPa计算存活率为50%的寿命N为N=(277.56/19930.2)1/-0.32=631594计算存活率为95%的寿命为N=(277.56/13875.8)1/-0.32=203714计算存活率为99%的寿命为N=(277.56/11577.9)1/-0.32=115693热点应力法相同位置计算的寿命N=136331,我们在名义应力法中介绍到,疲劳等级曲线是按照存活率97.7%进行标定的,也就是说热点应力法计算得到的寿命存活率为97.7%。等效结构应力法计算得到的寿命95%存活率时为203714,存活率为99%时寿命N为115693,热点应力法的计算寿命介于等效结构应力法95%与99%存活率之间,符合统计学规律,说明两种方法计算得到的寿命规律一致。写在最后采用公式计算时,确定I(r)1/m参数比较困难,通过计算可以看出,等效结构应力范围计算下来比结构应力范围偏小,我们可以简单、保守的采用计算结构应力范围进行计算。当然如果可能,我们尽量采用专业的疲劳分析软件进行计算,比如nCode、FE-Safe等。等效结构应力法的网格不敏感特性特别适合工程应用,实际应用过程中也不需要像上文那样线性化、提取结构应力然后进行计算得到寿命。可以采用疲劳分析软件进行计算,现在的疲劳分析软件(例如Ncode、FE-Safe)针对焊缝的疲劳寿命分析采用的就是等效结构应力法,我们在采用专业疲劳分析软件计算时,仅需指定焊址的位置、厚度方向即可进行焊缝焊址区域疲劳寿命计算,特别是在Ncode软件中根据我们定义的焊缝组件,可以自动的识别焊址,计算起来非常方便。同样的,等效结构应力法评定不能全面的反应接头细节的疲劳行为,目前仅仅局限于焊接接头焊趾的疲劳强度评估,尚不适用于裂纹起始于焊根或未焊透等处的疲劳分析。参考资料1、《焊接结构疲劳分析》[张彦华著]2013年2、基于等效结构应力法的电机机座焊接结构疲劳寿命预测_李娅娜3、Ansyshelp20234、DeepSeek--以上--来源:薛定谔的Cube

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈