版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
主要内容:材料设置、模型简化、网格细化、约束分析、接触设置、求解设置、报错处理、结果分析
ansys版本:19.0(16.0及以上均可)
参考资料:推荐教学视频《有限元分析 张晔》(超详细 )、ansys workbench 超级学习手册(查阅用)
说明:一些基础的步骤这里只会简要提及,有疑问请看基础教程

新建工程

(workbench界面)
1.使用static structure模块
2.设置分析类型:点击geometry,右侧属性框中analysis type

模型导入

(workbench界面)
文件格式
最好使用以下三种格式的模型:
x_t格式:效果较好(推荐),偶尔会有破面
step格式:效果较好,偶尔会有破面
iges格式:效果好,但文件较大,导入速度慢,且会自动改文件名,不方便查找
常见导入问题
破面:模型某个面丢失,导致无实体,仿真分析时会报错。常常是由于一些密集细小的特征,如螺纹等。
解决方法
1.导入模型后放大仔细检查。
2.重新导入,使用ansys自带的建模软件spaceclaim打开模型(别用DM),能避免大部分问题
3.仍然无法解决的话,使用spaceclaim删除细小特征(软件操作很方便,保证一用就会)
注: spaceclaim低版本可能没有;在geometry处右键可以找到spaceclaim。

模型简化

简化原则
1.关键部位尽量保持原样;非关键部位尽量去除细小结构,如:倒角、螺纹、小孔、槽。
2.连接刚度较大的两个零件组合为一个整体
注: 地面等支撑结构可以直接去除,等效成固定约束。但往往会造成错误的等效,很需要经验。不建议这样做
具体操作
1.模型简化:使用spaceclaim。(相当方便,具体操作参考 本文开头教程链接)
2.零件组合成整体:进入DM界面,选择两个零件,右键→form new part
注意:如果合并的两个零件间有间隙,仿真时仍然会视为两个物体;如果是两零件干涉,则可以正常合并。
关于应力奇异
1.定义:理论应力值为无穷大,仿真时应力值随网格加密而增大,且永远达不到精度要求(见:结果分析);
2.理论上讲,所有非光滑过渡的地方都有可能产生应力奇异;
3.不影响变形,仅影响局部的应力。若处在非危险部位可直接忽略。

设置材料

(workbench界面)
(如果使用默认材料——结构钢 可以跳过这一部分)
使用常见材料
如果使用的是铝、泥土等常见材料,可以直接从材料库中导入
具体操作:workbench界面,双击 engineering data进入材料库界面,点击菜单栏下的engineering data sources,找到对应的数据库,找到对应材料,点击 加号 添加。点击engineering data sources回到材料库界面,可以看到添加的新材料。(操作如下)
使用自定义材料
1.双击 engineering data进入材料库界面
2.在contact of engineering data处,输入材料名
3.左侧选择需要的参数,拖至材料属性窗(中下部)
3.设置参数值(操作如下)
材料属性说明
杨氏模量(必须):isotropic elasticity(各向同性弹性):Young’s modulus
泊松比(必须):isotropic elasticity(各向同性弹性):poisson’s ratio
密度dengsity(非必须):考虑重力、惯性力时才需要添加
屈服强度(非必须):用安全系数云图显示结果时才需要添加
其他材料属性(非必须):如比热容等,涉及到才需要添加,一般不用管
注: 泊松比对仿真影响较小,金属材料可统一取0.3
自定义材料库
略,用处不大。若需要请看推荐视频《有限元分析 张晔》的第24课开头部分

设置接触

(mechanical界面)
具体操作
添加接触:点击connection,快速选择栏中:contact.*(*:具体接触类型)
更改接触类型:点击对应接触,属性框中:Definition.Type
注:软件自动生成的接触一般为bonded类型,注意检查是否正确
接触类型介绍
bonded绑定接触:无滑动分离趋势(焊接)(相当于一个物体)
No Separation不分离接触:法向不分离,切向允许滑动
Frictionless无摩擦接触: 法向可分离,切向允许滑动
Rough粗糙接触:法向可分离,切向不允许滑动
Frictional摩擦接触:法向可分离,切向可以带摩擦滑动
关于接触间隙
如果设置接触的两个面之间有间隙,可能会导致分析报错等问题。解决办法分为两类
(1)Frictionless无摩擦接触、Rough粗糙接触、Frictional摩擦接触
这三类接触 在其属性框中有调整间隙的选项,有两种修改方法:
1.手动修改
已知间隙大小,或者查到间隙大小后直接输入间隙值
属性框中geometric modification.offset (offset 正值代表 面互相接近,反之远离)
如何查找间隙大小:点击solution information,搜索(ctrl+F) gap,确定间隙值(没有内容就先求解一次)
2.软件自动修改
属性框中:geometric modification.interface treatment.adjust to touch
(2)bonded绑定接触、No Separation不分离接触
这两类接触 在其属性框中没有调整间隙的选项,如果间隙比较小(小于约0.15mm)不会产生影响;但间隙比较大时,就会导致接触失效,而且还不报错,导致产生一些诡异的结果。。。有两种解决办法:
1.修改模型(优先)
2.更改接触判断
属性框中:advanced.pinball redion.radius;新出现的radius框中输入值,大小约为(间隙值+0.1)
注:这种方法是通过修改接触判定区域大小,让原来相距较远的面 被判定为 互相接触,进而达到抵消间隙的效果。但可能会产生其他问题,不太建议使用这个方法。
(3)间隙产生原因
1.模型错误
2.网格划分误差:在接触为曲面相切时,由于网格划分误差会产生较小的间隙
关于自动生成接触
初次打开mechanical界面 或者 打开mechanical界面后对模型做了较大修改后,软件会自动为距离较近的面添加接触,默认为绑定接触。
修改默认接触类型:菜单栏tools.options→connections→default.type
关闭自动生成:菜单栏tools.options→connections→auto detection:face/face、face/edge改为no,cylindrical faces改为exclude

网格划分

(mechanical界面)
划分原则
1.关键部位、应力集中部位网格加密
2.薄壁结构包含至少两层单元
3.尽量减少单元数量
(建议先使用大网格仿真一遍,确保无错后再加密仿真)
具体操作
1.设置全局网格尺寸: mesh.sizing.element size
2.设置局部网格: mesh→右键→insert→sizing;属性框中:definition.element size(面/线)
3.设置网格类型,四面体网格/六面体网格:mesh→右键→insert→method;属性框中:definition.Method
4.网格大小转变速度:Mesh属性框中:sizing.Transition,slow(使用四面体网格时 建议修改,否则网格质量较差)
(注:如果局部网格尺寸与全局差距过大(几十倍),可以使用生长率进一步降低过渡速度:mesh属性框中sizing.sizing function:proximity and curvature;growth rate 适当改小 参考值1.1 )
5.使用二阶单元(不常用): mesh属性框中 defaults.element order(低版本无此选项,但相同位置有另一个选项能起到相同作用)
6.生成网格:mesh→右键→generate mesh
一点点经验
1.节点数达到百万以上就求解很慢了,到400万就很难求解(上十个小时)
2.如果只是要出个图。。。可以 把全局尺寸改得很大,其他的不管。
3.如果只要变形结果,可以用稀疏的网格(网格密度对变形影响不大)
4.圆角等应力集中的地方,要得到比较准确的应力结果,需要用特别密的网格(0.01mm左右)。

设置约束

(mechanical界面)
设置原则
1.约束要符合实际情况。
2.保证在接触、约束、载荷下,物体不会产生平动或转动。
具体操作
添加约束:static Structural→右键→insert→*(*处可选:fixed support 、displacement、remote displacement等)
常用约束类型介绍
①fixed support(固定约束):限制六个自由度。
②displacement(强制位移):根据参考坐标系限制至多三个主自由度。(直角坐标系为xyz平动;柱坐标系为xz平动 y转动)
③remote displacement(远端位移约束):以刚性方式将所选实体(点线面)连接到一个公共点,在该点上对六个自由度进行设置。
*注:强制位移 是限制 对象上的每一个点,例如对 面 施加三个平动的强制位移约束,则面是不能转动、变形的;远端位移约束只限制公共点,例如对 面 施加三个平动的远端位移约束,则面还能自由转动、变形。
*另:个人感觉远端位移约束容易报错,建议能用强制位移解决 就不用远端位移。
一点技巧
1.如何限制平动自由度,保留转动自由度
①使用远端位移约束
②使用柱坐标系建立强制位移约束
新建柱坐标系:coordinate system→右键→insert→coordinate system;属性框中:Definition.type:改为cylindrical;origin.geometry:选择对应柱面
添加约束:添加强制位移约束(略);属性框中:coordinate system:改为刚建立的坐标系。之后操作(略)
关于弱弹簧
弱弹簧是用于解决 约束不足导致的刚体位移问题。刚体位移问题是指:一些 没有约束但受力平衡的自由度,由于计算机误差而“飘动”,导致报错。
添加弱弹簧:analysis Settings属性框:solver controls.Weak Springs:on
*注:个人建议尽量别使用弱弹簧,原因如下:
①复杂装配体 弱弹簧不起作用,还是会报错。
②即使对简单零件,弱弹簧也只能保证不报错,仿真结果可能还是有轻微“飘动”。
③大多数情况能用 摩擦接触+压力压紧 解决刚体位移问题,而且更贴合实际情况。
约束分析示例
约束设置不当 很容易导致报错,很容易导致仿真不符合实际,设置起来也很复杂,有必要给出几个典型例子。链接:约束分析示例(未完工)
(以下是施工区——还在慢慢完善 )

设置载荷

(mechanical界面)
设置原则
1.载荷一定要符合实际情况。
具体操作
施加力等:Structural→右键→insert.force(pressure、…)
施加液压:Structural→右键→insert.hydrostatic pressure(密度 重力加速度 方向(得相反) 自由面位置)
施加重力:

其他求解设置

(mechanical界面)
具体操作
1.弱弹簧设置(见前文)
2.开启节点力(用于结果处理时 探测接触反力、约束反力等):analysis settings->output control.nodal forces(节点力)
3.大变形:analysis settings->solver controls.large deflection
注:非线性情况下需要打开,否则误差较大。常用情况:点或线接触部位受力(接触面积改变导致的非线性)、有明显应力刚化现象时。如果不确定 建议常打开此项;会增加计算耗时。
非线性:
求解
solution->右键->solve

错误/警告 处理办法

1.有一个自由度未约束---->添加约束or弱弹簧
2.求解器警告:换求解器(根据警告信息换) ----->analysis Settings.solver controls.solver type
3.第二次求解报错:the result data for FSUM is not contain…---->solution->右键->clear data
4.求解不收敛:看是否打开了 大变形,打开
5.(报错超出极限) 接触间存在较大间隙---->修改接触设置offset
报错信息:One or more bodies may be underconstrained and experiencing rigid body motion. Weak springs have been added to attain a solution. Refer to Troubleshooting in the Help System for more details.
6.接触间隙可能导致长时间算不出来,可以查看实时输出的求解信息
7.在线性分析中,一个物体基本无固定,靠与其他物体的接触来确定自己的位置,又不是直接受力或传递力 靠接触面的变形挤压来确定自己的应力,会很容易求解不收敛报错(来自 轴承仿真 保持架出错) :
报错信息:An internal solution magnitude limit was exceeded. Please check your Environment for inappropriate load values or insufficient supports. Please see the Troubleshooting section of the Help System for more information.

结果显示

添加分析类型:solution->右键->insert. deformation(变形) strain(应变) stress(应力)
更新:deformation…右键
部分显示:添加分析类型->scope.geometry
单方向力/变形:solution->右键->insert (选对应方向)
设置变形比例:左上角
设置显示样式:(左上) 等高线、色层、极值、标签
注意:要忽视固定处/尖角的应力奇异
应力结果显示:(仅应力有)(节点相邻单元应力不同)
solution.normal stress->integration point results.display option:
averaged: 节点 平均
unaveraged: 节点 在不同单元内显示不同
(精度足够时两者都可。非平均更接近真实)
安全系数显示:
剖切显示:
探测弱弹簧:solution->probe(探测)->force reaction(反力)->boundary condition,weak springs
探测固定反力:solution->probe(探测)->force reaction(反力)->boundary condition,fixed support
探测接触反力:
analysis settings->output control.nodal forces(节点力)(应在求解前设置)
solution->probe(探测)->force reaction(反力)->contact region,?
显示接触力分布:
solution->右键->insert->contact tool;
contact tool->右键->insert->pressure;
其他接触显示: 接触状态Contact status 渗透情况Contact penetration 接触压力Contact pressure 摩擦应力Contact friction stress 总应力Contact total stress 滑动距离Contact sliding distance 间隙距离Contact gap distance

结果分析

网格无关性(网格减小结果收敛) or 红区覆盖两层单元 and 应力曲线光滑
接触反力探测
模型是否需要修正?
边界条件有没问题?
网格精度是否合理?
更改参数重新计算:增加关键位置网格密度 修改间隙 固定
网格的改变导致结果巨大变化->设置存在问题,一般是 接触 固定。
反复迭代,依次确定一下参数:模型 边界条件(材料 接触 载荷 约束) 网格精度 最终结果

与实验对比

仿真与实验结果出现大偏差:
1.实验测试位置?
2.实验测试变形方向?
(应变片实验时 会定义 弹性模量,仿真必须使用相同的弹性模量)
3.一定要注意实验时被测试件是自带重力的。实验的应变对应 仿真的无重力应变。

文件保存:

1.直接保存
2.打包保存(好处是文件小,但不包含分析结果)
workbench打包:file.archive (相当于压缩) .wbpz
打开:file.restore archive .wbpz
不要直接改文件名