ansys非线性分析.docx
《ansys非线性分析.docx》由会员分享,可在线阅读,更多相关《ansys非线性分析.docx(42页珍藏版)》请在冰豆网上搜索。
![ansys非线性分析.docx](https://file1.bdocx.com/fileroot1/2023-3/31/47273c6e-ec41-4167-8f7d-d45f5daacc50/47273c6e-ec41-4167-8f7d-d45f5daacc501.gif)
ansys非线性分析
一般的接触分类1
ANSYS接触能力1
点─点接触单元1
点─面接触单元2
面─面的接触单元2
执行接触分析3
面─面的接触分析3
接触分析的步骤:
3
步骤1:
建立模型,并划分网格4
步骤2:
识别接触对4
步骤3:
定义刚性目标面4
步骤4:
定义柔性体的接触面8
步骤5:
设置实常数和单元关键字10
步骤6:
21
步骤7:
给变形体单元加必要的边界条件22
步骤8:
定义求解和载步选项22
第十步:
检查结果23
点─面接触分析25
点─面接触分析的步骤26
点-点的接触36
接触分析实例(GUI方法)39
非线性静态实例分析(命令流方式)42
接触分析
接触问题是一种高度非线性行为,需要较大的计算资源,为了进行实为有效的计算,理解问题的特性和建立合理的模型是很重要的。
接触问题存在两个较大的难点:
其一,在你求解问题之前,你不知道接触区域,表面之间是接触或分开是未知的,突然变化的,这随载荷、材料、边界条件和其它因素而定;其二,大多的接触问题需要计算摩擦,有几种摩擦和模型供你挑选,它们都是非线性的,摩擦使问题的收敛性变得困难。
一般的接触分类
接触问题分为两种基本类型:
刚体─柔体的接触,半柔体─柔体的接触,在刚体─柔体的接触问题中,接触面的一个或多个被当作刚体,(与它接触的变形体相比,有大得多的刚度),一般情况下,一种软材料和一种硬材料接触时,问题可以被假定为刚体─柔体的接触,许多金属成形问题归为此类接触,另一类,柔体─柔体的接触,是一种更普遍的类型,在这种情况下,两个接触体都是变形体(有近似的刚度)。
ANSYS接触能力
ANSYS支持三种接触方式:
点─点,点─面,平面─面,每种接触方式使用的接触单元适用于某类问题。
为了给接触问题建模,首先必须认识到模型中的哪些部分可能会相互接触,如果相互作用的其中之一是一点,模型的对立应组元是一个结点。
如果相互作用的其中之一是一个面,模型的对应组元是单元,例如梁单元,壳单元或实体单元,有限元模型通过指定的接触单元来识别可能的接触匹对,接触单元是覆盖在分析模型接触面之上的一层单元,至于ANSYS使用的接触单元和使用它们的过程,下面分类详述。
点─点接触单元
点─点接触单元主要用于模拟点─点的接触行为,为了使用点─点的接触单元,你需要预先知道接触位置,这类接触问题只能适用于接触面之间有较小相对滑动的情况(即使在几何非线性情况下)
如果两个面上的结点一一对应,相对滑动又以忽略不计,两个面挠度(转动)保持小量,那么可以用点─点的接触单元来求解面─面的接触问题,过盈装配问题是一个用点─点的接触单元来模拟面─与的接触问题的典型例子。
点─面接触单元
点─面接触单元主要用于给点─面的接触行为建模,例如两根梁的相互接触。
如果通过一组结点来定义接触面,生成多个单元,那么可以通过点─面的接触单元来模拟面─面的接触问题,面即可以是刚性体也可以是柔性体,这类接触问题的一个典型例子是插头到插座里。
使用这类接触单元,不需要预先知道确切的接触位置,接触面之间也不需要保持一致的网格,并且允许有大的变形和大的相对滑动。
Contact48和Contact49都是点─面的接触单元,Contact26用来模拟柔性点─刚性面的接触,对有不连续的刚性面的问题,不推荐采用Contact26因为可能导致接触的丢失,在这种情况下,Contact48通过使用伪单元算法能提供较好的建模能力。
面─面的接触单元
ANSYS支持刚体─柔体的面─面的接触单元,刚性面被当作“目标”面,分别用Targe169和Targe170来模拟2─D和3—D的“目标”面,柔性体的表面被当作“接触”面,用Conta171,Conta172,Conta173,Conta174来模拟。
一个目标单元和一个接单元叫作一个“接触对”程序通过一个共享的实常号来识别“接触对”,为了建立一个“接触对”给目标单元和接触单元指定相同的实常的号。
与点─面接触单元相比,面─面接触单元有好几项优点,
·支持低阶和高阶单元
·支持有大滑动和摩擦的大变形,协调刚度阵计算,单元提法不对称刚度阵的选项。
·提供工程目的采用的更好的接触结果,例如法向压力和摩擦应力。
·没有刚体表面形状的限制,刚体表面的光滑性不是必须允许有自然的或网格离散引起的表面不连续。
·与点─面接触单元比,需要较多的接触单元,因而造成需要较小的磁盘空间和CPU时间。
·允许多种建模控制,例如:
·绑定接触
·渐变初始渗透
·目标面自动移动到补始接触
·平移接触面(老虎梁和单元的厚度)
·支持死活单元
使用这些单元,能模拟直线(面)和曲线(面),通常用简单的几何形状例如圆、抛物线、球、圆锥、圆柱采模拟曲面,更复杂的刚体形状能使用特殊的前处理技巧来建模。
执行接触分析
不同的接触分析类型有不同的过程,下面分别讨论
面─面的接触分析
在涉及到两个边界的接触问题中,很自然把一个边界作为“目标”面而把另一个作为“接触”面,对刚体─柔体的接触,“目标”面总是刚性的,“接触”面总是柔性面,这两个面合起来叫作“接触对”使用Targe169和Conta171或Conta172来定义2-D接触对,使用Targe170和Conta173或Conta174来定义3-D接触对,程序通过相同的实常收号来识别“接触对”。
接触分析的步骤:
执行一个典型的面─面接触分析的基本步骤列示如下:
1.建立模型,并划分网格
2.识别接触对
3.定义刚性目标面
4.定义柔性接触面
5.设置单元关键字和实常的
6.定义/控制刚性目标面的运动
7.给定必须的边界条件
8.定义求解选项和载荷步
9.求解接触问题
10.查看结果
步骤1:
建立模型,并划分网格
在这一步中,你需要建立代表接触体几何形状的实体模型。
与其它分析过程一样,设置单元类型,实常的,材料特性。
用恰当的单元类型给接触体划分网格。
命令:
AMESH
VMESH
GUI:
MainMenu>Preprocessor>mesh>Mapped>3or4Sided
MainMenu>Preprocessor>mesh>mapped>4or6sided
步骤二:
识别接触对
你必须认识到,模型在变形期间哪些地方可能发生接触,一是你已经识别出潜在的接触面,你应该通过目标单元和接触单元来定义它们,目标和接触单元跟踪变形阶段的运动,构成一个接触对的目标单元和接触单元通过共享的实常号联系起来。
接触环(区域)可以任意定义,然而为了更有效的进行计算(主要指CPU时间)你可能想定义更小的局部化的接触环,但能保证它足以描述所需要的接触行为,不同的接触对必须通过不同的实常数号来定义(即使实常数号没有变化)。
由于几何模型和潜在变形的多样形,有时候一个接触面的同一区域可能和多个目标面产生接触关系。
在这种情况下,应该定义多个接触对(使用多组覆盖层接触单元)。
每个接触对有不同的实常数号。
步骤三:
定义刚性目标面
刚性目标面可能是2—D的或3─D的。
在2—D情况下,刚性目标面的形状可以通过一系列直线、圆弧和抛物线来描述,所有这些都可以用TAPGE169来表示。
另外,可以使用它们的任意组合来描述复杂的目标面。
在3—D情况下,目标面的形状可以通过三角面,圆柱面,圆锥面和球面来推述,所有这些都可以用TAPGE170来表示,对于一个复杂的,任意形状的目标面,应该使用三角面来给它建模。
控制结点(Pilot)
刚性目标面可能会和“pilot结点”联系起来,它实际上是一个只有一个结点的单元,通过这个结点的运动可以控制整个目标面的运动,因此可以把pilot结点作为刚性目标的控制器。
整个目标面的受力和转动情况可以通过pilot结点表示出来,“pilot结点”可能是目标单元中的一个结点,也可能是一个任意位置的结点,只有当需要转动或力矩载荷时,“pilot结点”的位置才是重要的,如果你定义了“pilot结点”ANSYS程序只在“pilot结点”上检查边界条件,而忽略其它结点上的任何约束。
对于圆、圆柱、圆锥、和球的基本图段,ANSYS总是使用条一个结点作为“pilot结点”
基本原型
你能够使用基本几形状来模拟目标面,例如:
“圆、圆柱、圆锥、球。
直线、抛物线、弧线、和三角形不被允许、虽然你不能把这些基本原型彼此合在一起,或者是把它们和其它的目标形状合在一起以便形成一个同一实常数号的复杂目标面。
但你可以给每个基本原型指定它自己的实常的号。
单元类型和实常数
在生成目标单元之前,首先必须定义单元类型(TARG169或TARG170)。
命令:
ET
GUI:
Mainmenu>preprocessor>ElementType>Add/Edit/Delete
随后必须设置目标单元的实常数。
命令:
Real
GUI:
Mainmenu>preprocessor>realconstants
对TARGE169和TARGE170仅需设置实常数R1和R2,而只有在使用直接生成法建立目标单元时,才需要从为指定实常数R1、R2,另外除了直接生成法,你也可以使用ANSYS网格划分工具生成目标单元,下面解释这两种方法。
使用直接生成法建立刚性目标单元
为了直接生成目标单元,使用下面的命令和菜单路径。
命令:
TSHAP
GUI:
Mainmenu>preprocessor>modeling-create>Elements>ElemAttributes
随后指定单元形状,可能的形状有:
·straightline(2D)
·parabola(2-D)
·clockwisearc(2-D)
·counterclokwisearc(2-D)
·circle(2-D)
·Triangle(3-D)
·Cylinder(3-D)
·Cone(3-D)
·Sphere(3-D)
·Pilotnode(2-D和3-D)
一旦你指定目标单元形状,所有以后生成的单元都将保持这个形状,除非你指定另外一种形状。
然后你就可以使用标准的ANSYS直接生成技术生成结点和单元。
命令:
N
E
GUI:
Mainmenu>pnoprocessor>modeling-create>nodes
Mainmenu>pnoprocessor>modeling-create>Elements
在建立单元之后,你可以通过列示单元来验证单元形状
命令:
ELIST
GUI:
utilitymenu>list>Elements>Nodes+Attributes
使用ANSYS网格划分工具生成刚性目标单元
你也可以使用标准的ANSYS网格划分功能让程序自动地生成目标单元,ANSYS程序将会以实体模型为基础生成合适的目标单元形状而忽略TSHAP命令的选项。
为了生成一个“PILOT结点”使用下面的命令或GUI路径:
命令:
Kmesh
GUI:
Mainmenu>proprocessor>meshing-mesh>keypoints
注意:
KMESH总是生成“PILOT结点”
为了生成一个2─D目标单元,使用下面的命令和GUI路径:
ANSYS在每条直线上生成一条单一的线,在样条曲线上生成抛物线部分,在每条圆弧和倒角上生成圆弧部分,如果所有的圆弧形成一个封闭的圆,ANSYS生成一个单一的圆段。
命令:
LMESH
GUI:
Mainmenu>pneprocessor>mesling-mesh>lines
为了生成3─D的目标单元,使用下面的命令或GUI路径。
如果实体模型的表面部分形成了一个完整的球,圆柱或圆锥,那么ANSYS程序自动生成一个基本的3─D目标单元,因为生成较少的单元,从而使你分析计算更有效率,对任意形状的表面,应该使用Amesh命令来生成目标单元,在这种情况下,网格形状的质量不是重要的,而目标单元的形状是否能完成好的模拟刚性面的表面几何形状显得更重要。
命令:
AMESH
GUI:
Mainmenu>preprocessor>-meshing-mesh>Area
ANSYS在所有可能的面上推荐使用三角形的映射网格划分,如果在表面的边界上没有曲率,则在网格划分时,指定那条边界分为一分,下面的命令或GUI路径将尽可能的生成一个映射网格(如果不能进行映射,它将生成自由网格)
命令:
MSHKFY,2
GUI:
Mainmenu>preprocessor>-meshing-mesh>-Ares-TargetSurf
建模和网格划分的注意点:
一个目标面可能由两个或多个面断的区域组成,你应该尽可能地通过定义多个目标面来使接触区域局部比(每个目标面有一个不同的实常数号)刚性目标面上由的离散能足够指述出目标面的形状,过粗的网格离散可能导致收敛问题。
如果刚性面有一个实的凸角,求解大的滑动问题时很难获得收敛结果,为了避免这些建模问题,在实体模型上,使用线或面的倒角来使尖角光滑比,或者在曲率突然变化的区域使用更细的网格。
注意:
不能使用镜面对称技术(ARSYSM,LSYMM)来映射圆、圆柱、圆锥或球面到对称平面的另一边,因为每个实常数的设置不能同时赋给多个基本原型段。
检验目标面的接触方向。
目标面的结点号顺序是重要的,因为它定义了接触主向,对2─D接触问题,当沿着目标线从第一个结点移向第二个结点时,变形体的接触单元必须位于
目标面的右边。
对3─D接触问题,目标三角形单元号应该使刚性面的外法线方向指向接触面,外法线通过右手原则来定义
为了检查法线方向,显示单元坐标系
命令:
/PSYMS,ESYS,1
GUI:
Utilitymenu>plotctrls>symbols
如果单元法向不指向接触面,选择单元反转表面的法向的方向。
命令:
ESURF,,REVE
GUI:
Mainmenu>preprocessor>create>Element>onfreesurf
步骤4:
定义柔性体的接触面
为了定义柔性体的接触面,必须使用接触单元CONFA171或CONFA172(对2─D)或CONTA173或CONTA174(对3─D)来定义表面
程序通过组成变形体表面的接触单元来定义接触表面,接触单元与下面覆盖的变形体单元有同样的几何特性,接触单元与下面覆盖的变形体单元必须处于同一阶次(低阶或高阶)下面的变形体单元可能是实体单元、壳单元、梁单元或超单元,接触面可能壳或梁单元任何一边。
与目标面单元一样,你必须定义接触面的单元类型,然后选择正确的实常数号(实常数号必须与它对应目标的实常数号相同)最后生成接触单元。
单元类型:
下面简单描述四种类型的接触单元
CONTA171:
这是一种2─D,2个结点的低附线单元,可能位于2─D实体,壳或梁单元的表面
CONTA172:
这是一个2─D的,3结点的高阶抛物线形单元,可能位于有中结点的2─D实体或梁单元的表面
CONTA173:
这是一个3─D的,4结点的低阶四边形单元可能位于3─D实体或壳单元的表面,它可能褪化成一个结点的三角形单元。
CONTA174:
这是一个3─D,8结点的高阶四边形单元,可能位于有中结点的3─D实体或壳单元的表面,它可能褪化成6结点的三角形单元。
不能在高阶柔性体单元的表面上分成低阶接触单元,反之也不行,不能在高阶接触单元上消去中结点。
命令:
ET
GUI:
Mainmenu>preprocessor>Elementtype>Add/Edit/Delete
实常数和材料特性
在定义了单元类型之后,需要选择正确的实常数的设置,每个接触对的接触面和目标面必须有相同的实常数号,而每个接触对必须有它自己不同的实常数号。
ANSYS使用下面柔性体单元的材料特性来计算一个合适的接触(或罚)刚度,如果下面的单元是一个超单元。
接触单元的材料的设置必须与超单元形成时的原始结构单元相同,生成接触单元。
我们既可以通过直接生成法生成接触单元,也可以在柔性体单元的外表面上自动生成接触单元,我们推荐采用自动生成法,这种方法更为简单和可靠。
可以通过下面三个步骤来自动生成接触单元
1、选择结点
选择已划分网格的柔性体表面的结果,如果你确定某一部分结点永远不会接触到目标面,你可以忽略它以便减少计算时间,然而,你必须保证设有漏掉可能会接触到目标面的结点。
命令:
NSEL
GUI:
Mainmenu>preprocessor>create>Element>on>freesurf
2、生成接触单元
命令:
ESURF
GUI:
Mainmenu>preprocessor>create>Element>onfreesurf
如果接触单元是附在已用实体单元划分网格的面或体上,程序会自动决定接触计算所需的外法向,如果下面的单元是梁或壳单元,则必须指明哪个表面(上表面或下表面)是接触面
命令:
ESURF,TOPORBOTIOM
GUI:
Mainmenu>preprocessor>create>Element>onfreesurf
使用上表面生成接触单元,则它们的外法向与梁或壳单元的法向相同,使用下表面生成接触单元,则它们的外法向与梁或壳单元的法向相反,如果下面的单元是实体单元,则TOP或BOTTOM选项不起作用
3、检查接触单元外法线的方向,当程序进行是否接触的检查时,接触面的外法线方向是重要的,对3─D单元,按结点程序号以右手定则来决定单元的外法向,接面的外法向应该指向目标面,否则,在开始分析计算时,程序可能会认为有面的过度渗透而很难找到初始解。
在此情况下,程序一般会立即停止执行,你可以检查单元外法线方向是否正确。
命令:
/PSYMB
GUI:
Utilitymenu>plotctrls>symbols
当发现单元的外法线方向不正确时,必须通过倒不正确单元的结点号来改变它们。
命令:
ESURF,REVE
GUI:
Mainmenu>preprocossor>Create>Elementsonfreesurf
步骤5:
设置实常数和单元关键字
程序使用九个实常数和好几个单元关键字来控制面─面接触单元的接触行为。
实常数
9个实常数中,两个(R1和R2)用采定义目标面单元的几何形状,乘下的7个用来控制接触行为。
R1和R2定义目标单元几何形状
FKN定义法向接触刚度因子
FTOLN定义最大的渗透范围
ICONT定义初始靠近因子
PINB定义“Pinball"区域
PMIN和PMAX定义初始渗透的容许范围
TAUMAR指定最大的接触摩擦
命令:
R
GUI:
Mainmenu>preprocessor>realconstant
对实常数FKN,FTOLN,ICONT,PINB,PMAX,和PMIN,你既可以定义一个正值也可以定义一个负值,程序将正值作为比例因子,将负值作为真实值,程序将下面覆盖原单元的厚度作为ICON,FTOLN,PINB,PMAX和PMIN的参考值,例如对ICON,0.1表明初始间隙因子是0.1*下面覆盖层单元的厚度。
然而,-0.1表明真实缝隙是0.1,如果下面覆盖层单元是超单元,则将接触单元的最小长度作为厚度。
单元关键字
每种接触单元都饭知好几个关键字,对大多的接触问题缺省的关键字是合适的,而在某些情况下,可能需要改变缺省值,来控制接触行为。
接触算法(罚函数+拉格郎日或罚函数)(KEYOPT
(2))
出现超单元时的应力状态(DEYOPT(3))
接触方位点的位置(KEYOPI(4))
刚度矩阵的选择(KEYOPT(6))
时间步长控制(KEYOPT(7))
初始渗透影响(KEYOPT(9))
接触表面情况(KEYOPT(12))
命令:
KEYOPT
ET
GUI:
Mainmenu>preprocessor>ElemantType>Add/Edit/Delete
选择接触算法:
对面─面的接触单元,程序可以使用扩增的拉格朗日算法或罚函数方法,通过使用单元关键字KETOPT
(2)来指定。
扩张的拉格朗日算法是为了找到精确的拉格朗日乘子而对罚函数修正项进行反复迭代,与罚函数的方法相比,拉格朗日方法不易引起病态条件,对接触刚度的灵敏度较小,然而,在有些分析中,扩增的拉格朗日方法可能需要更多的迭代,特别是在变形后网格变得太扭曲时。
使用拉格朗日算法的同时应使用实常数FTOLN
FTOLN为搠格朗日算法指定容许的最大渗艉,如果程序发现渗透大于此值时,即使不平衡力和位移增量已经满足了收敛准则,总的求解仍被当作不收敛处理,FTLON的缺省值为0.1,你可以改变这个值,但要注意如果此值太小可能会造成太多的迭代次数或者不收敛。
决定接触刚度
所有的接触问题都需要定义接触刚度,两个表面之间渗量的大小取决了接触刚度,过大的接触刚度可能会引起总刚矩阵的病态,而造成收敛困难,一般来谘,应该选取足够大的接触刚度以保证接触渗透小到可以接受,但同时又应该让接触刚度足够小以使不会引起总刚矩阵的病态问题而保证收敛性。
程序会根据变形体单元的材料特性来估计一个缺省的接触刚度值,你能够用实常数FKN来为接触刚度指定一个比例因子或指定一个真正的值,比例因子一般在0.01和10之间,当避免过多的迭代次数时,应该尽量使渗透到达极小值。
为了取得一个较好的接触刚度值,又可需要一些经验,你可以按下面的步骤过行。
1、开始时取一个较低的值,低估些值要比高估些值好因为由一个较低的接触刚度导致的渗透问题要比过高的接触刚度导致的收敛性困难,要容易解决。
2、对前几个子步进行计算
3、检查渗透量和每一子步中的平衡迭代次数,如果总体收敛困难是由过大的渗透引起的(而不是由不平衡力和位移增量引起的),那么可能低估了FKN的值或者是将FTOLN的值取得大小,如果总体的收敛困难是由于不平衡力和位移增量达到收敛值需要过多的迭代次数,而不是由于过大的渗透量,那么FKN的值可能被高估。
4、按需要调查FKN或FTOLN的值,重新分析。
选择摩擦类型。
在基本的库仑摩擦模型中,两个接触面在开始相互滑动之前,在它们的界面上会有达到某一大小的剪应力产生,这种状态则作粘合状态(stick)库仑摩擦模型定义了一个等效剪应力。
)一旦剪应力超过此值后,两个表面之间将开始相互滑动,这种状态,叫作滑动状态(Sliding)粘合\滑动计算决定什么时候一个点从粘合状态到滑动状态或从滑动状态变到粘合状态,摩擦系数可以是任一非负值。
程序缺省值为表面之间无摩擦,对rough或bonded接触(KEYOPT
(2)=1(或3),程序将不管给定的MV值而认为摩擦阻力无限大。
程序提供了一个不管接触压力的故而人为指定最大等效剪应力的选项,如果等效剪应力达到此值时,滑动发生。
看图,4─1,为了指定接触界面上最大许可剪应力,设置常数TAUMAX(缺省为1.0E20),这种限制剪应力的情况一般用于接触压力非常大的时候,以至于用库仑理论计算出的界面剪应力超过了材料的屈服极限。
一对TAUMAX的一个合理高估为
(
是材料的mises屈服应力)。
图4—1摩擦模式
对无摩擦rough和bonded接触,接触单元刚度矩阵是对称的,而涉及到摩擦的接触问题产生一个不对称的刚度,而在每次迭代使用不对称的求解器比对称的求解器需要更