ANSYS材料非线性分析研究解析.docx
《ANSYS材料非线性分析研究解析.docx》由会员分享,可在线阅读,更多相关《ANSYS材料非线性分析研究解析.docx(34页珍藏版)》请在冰豆网上搜索。
ANSYS材料非线性分析研究解析
【分享】ANSYS7.0超弹材料的定义-新的曲线拟合功能--摘自ansys用户专区
几何非线性
几何非线性不受敛主要原因
1.网格质量,特别是warpage
2.约束方程,少用刚性连接
3.收敛准则,可适当加大容差
4.荷载步设置,可适当加大步数
最近碰到一个对我来说很意外的问题:
如果确实如此希望大家以后小心
大家知道定义接触后会自动生成一组实常数,数量问题
前几天我碰到一个问题,需定义超过10组实常数,接触对很多,好像有20多处,
按照常规步骤划分完所有网格,当时因为有一个实常数参数没确定,
便预留了最后一组(第10组)实常数里面的参数为空,
接下来就定义了所有的接触对,由于所有接触对里的设置一样,ANSYS在我保存db完重新打开后
便把我所有的接触对综合成一个了!
接下来我就把第十组实常数里面的参数补上了,但在求解时却提示我该实常数同时被两种单元(包括CNTACT单元)
同时占用,出现错误!
!
检查了半天才发现自动生成的接触对实常数把第10组实常数也占用了!
我实在没找到什么好的解决办法,
只得把接触对删除了重新定义,那可是上百多个面的选取过程,痛苦不堪简直!
ANSYS里接触对面的选取时还不能针对Component操作!
ANSYS7.0超弹材料的定义-新的曲线拟合功能
ANSYS7.0中的超弹材料模拟能力得到了很大的加强,在ANSYS6.1的超弹材料模型的基础上又增加了Gent,Yeoh,Blatz-Ko,andOgden(Foam)四种超弹性材料模型,使得其超弹模拟能力得到了进一步扩展。
ANSYS7.0中对超弹能力最吸引人的增强还不在于此,而是在于其曲线拟合能力的大幅度扩展,不再像ANSYS6.1以前的版本一样曲线拟合仅仅局限于Mooney-Rivlin模型,而是将其扩展到所有的超弹模型,这样,用户可以利用实验得到的应力应变数据直接让程序自己拟合出任意一种超弹材料模型的参数,大大方便了用户的使用。
以下就ANSYS7.0的超弹拟合功能做一简单介绍。
在ANSYS6.1中,*mooney命令或对应的GUI菜单可以根据试验数据拟合Mooney-Rivlin超弹材料参数,但只局限于这一种模型,而且其使用也受到了限制,其数据只能用于hyperXX单元,若要用于18x单元还需要将拟合出的参数直接输入tbhyper对应的超弹模型中,由于其使用的不方便性,Ansys7.0的超弹模型中剔除了Ansys6.1版本中的*mooney命令对应的曲线拟合菜单而增加了新的可适用于多个超弹模型的拟合功能,但*mooney命令仍然存在,也就是说如果您需要使用经典的拟合方法,可以定义相应的数组参数,然后用命令流的方式进行拟合。
其实,在Ansys7.0中不再推荐使用*mooney命令来进行拟合,而建议采用新的拟合技术,可以进行多个超弹模型的拟合,而且可以直接用于18x单元。
其拟合菜单的路径为:
Material->Nonlinear->Elastic->Hyperelastic->CurveFitting
然后按照wizard的提示一步步输入单轴、双轴、剪切、体积试验数据文本文件名称,如果没有任何一种试验数据,只需将该名称处空置即可,最后选择需要拟合数据的超弹模型,程序就会自动计算出相应的参数,并立刻在图形窗口显示拟合曲线与试验曲线的比较图,如果不理想,可以点击prev回到前面的步骤重新选取模型,如果拟合结果满意,则点击update,拟合出来的材料参数就会被输入激活的材料号中,使用起来非常方便。
试验数据的文件格式需要进行说明:
单轴、等双轴、剪切数据为应变-应力数据,依次输入应变、应力值,第一列为应变,第二列为应力,每一行两个数之间用空格隔开(空格数目不限),代表一个数据点。
数据符号:
拉为正,压为负。
体积试验数据有所不同,每一行两个数据同样用空格隔开,第二个数为静水压力,但第一个数不是体积应变e,而是相对体积,即1+e,例如体积应变为-0.01,则应该在第一列输入0.99。
而且程序假定体积试验为线性关系,拟合时也只拟合出一条直线,所以通常输入两个值即可。
数据符号:
使体积减小的静水压力为正,这需要注意,如下例:
00
0.9920
在选用mooney模型的情况下,单轴、等双轴、剪切试验数据用来计算参数c1-c9,而体积数据用来计算最后一个数据d(不可压缩性因子,与泊松比有关),如果不给出体积试验曲线,则d=0,这种情况下可能需要手工修改d值,如果知道泊松比u,则可用如下公式计算:
d=(1-2u)/(c1+c2)
此式是建立在几乎不可压缩(u接近于或等于0.5)的前提下的。
因为准确的公式应该如下:
剪切模量G=2(c1+c2)体积模量k=E/(3(1-2u))G=E/(2(1+u))k=2/d
于是d=2/k=6(1-2u)/(4(1+u)(c1+c2))
可以看到,如果u约等于0.5,则上式可以简化为前面的式子。
mooney还有其他一些推导基于几乎不可压缩,所以对mooney模型而言,输入参数时一定要注意其泊松比应该接近0.5,一般大于0.49。
4.2.4.4 求解步骤(命令流方法)
fini
/cle
l=60
l1=15
w=10
ri=50
ro=160
routn=200
pp=600
pp1=30
pex=5000
/prep7
et,1,42
et,2,14
keyopt,1,3,2
keyopt,2,3,2
确定Mooney-Rivlin常数的个数
概略地说,数据点的个数(即上面的N)应至少为Mooney-Rivlin常数个数的两部。
常数个数越多,曲线的统计量越与真实值相接近(即拟合得更好),但曲线的形状可能会比常数个数少的曲线要差。
鉴于此,用户可以按顺序尝试2项、5项、9项函数,并检查其所生成的应力-应变曲线以确定到底哪一个函数在综合曲线形状以及拟合质量两方面做得最好。
表4-1 建议的Mooney-Rivlin常数
应力-应变曲线中的点数
建议的Mooney-Rivlin函数
无拐点(即单个曲线)
2项
一个拐点(即2条曲线)
5项
2个拐点
9项
图4-14 典型的超弹性应力-应变曲线
输出应力数组(CALC):
其大小为N×3,N与前面的一样,该数组保存计算出来的应力值,这些应力值保存的顺序与其相应的应变保存值的顺序一致(后者以升序排列)。
排序应变数组(SORTSN):
其大小为N×3,它保存经过排序的输入应变。
排序应变数组(SORTSN):
其大小为N×3,它保存经过排序的输入应力。
例如,如果任一个类型的测试数据包含直到20个数据点,而想生成5项的Mooney-Rivlin常数,则可以应用下面的命令来定义所需要的数组(记住:
用户可以代入任意有效的参数名):
*DIM,STRAIN,,20,3 !
Dim.array(STRAIN)for20inputstrain-datapoints
*DIM,STRESS,,20,3 !
Dim.array(STRESS)forinputstressdata(20pts.)
*DIM,CONST,,5,1 !
Dim.array(CONST)for5-termM-Rconstants
*DIM,CALC,,20,3 !
Dim.array(CALC)forsortedcalculatedstresses
*DIM,SORTSN,,20,3 !
Dim.array(SORTSN)forsortedinputstraindata
*DIM,SORTSS,,20,3 !
Dim.array(SORTSS)forsortedinputstressdata
参见*DIM命令的说明。
第二步:
填充输入数据数组
当数组定义完成之后,就可以用*SET命令(GUI:
UtilityMenu>Parameters>Array Parameters)将实验数据填入STRAIN数组和STRESS数组。
请再一次记住,用户可以给这些数组任意有效的参数名;在这里所采用的参数名,只是为了讨论方便。
注意--*MOONEY命令将所有输入应力和应变都解释为工程应力和工程应变。
这些数组大小都为N*3,其每一列各自表示一类测试数据,顺序是:
第一列:
单轴拉伸和/或单轴压缩;
第二列:
等双轴拉伸和/或等双轴压缩;
第三列:
剪切(平面拉伸或压缩)。
注意这并不是说,变形模式及其等同存在1:
1的关系。
第一个变形模式--单轴拉伸--与等效双轴压缩等同,但数组第一列包含从单轴拉伸和/或单轴压缩得到的数据。
类似地,第二个变形模式--等双轴拉伸--与单轴压缩等同,但数组第二列包含从等双轴拉伸和/或等双轴压缩得到的数据。
表4-2 应力-应变输入数组中的数据位置
变形模态
等效测试类型
测试数据的在数组中的位置
单轴拉伸
单轴拉伸
等双轴压缩
第一列
第二列
等双轴拉伸
等双轴拉伸
单轴压缩
第二列
第一列
剪切
平面拉伸
平面压缩
第三列
第三列
如果只作了一种或两种测试,则须将未做的测试的相应的列置空。
可用图4-15来说明。
图4-15 在应力和应变输入数组中的数据位置
现在考虑一个得到了单轴拉伸和剪切测试数据时的情况。
在数组中存储应变和应力的命令可能象下面那样(当然,数组可以有任意的名字,而且在本例中用N1和N2表示的数据点数,可以是任意整数):
!
UniaxialTensionData
*SET,STRAIN(1,1),...!
First10straindatapoints
*SET,STRAIN(11,1),...!
Straindatapoints11throughN1(ifN1<21)
*SET,STRESS(1,1),...!
First10stressdatapoints
*SET,STRESS(11,1),...!
Stressdatapoints11throughN1
!
ShearData
*SET,STRAIN(1,3),...!
Straindatapoints1throughN2(ifN2<11)
*SET,STRESS(1,3),...!
Stressdatapoints1throughN2
参见*SET命令的说明。
第三步:
计算Mooney-Rivlin常数
要自动生成Mooney-Rivlin常数,首先应执行TB命令,并使该命令的Lab=MOONEY,TBOPT=1。
然后,执行*MOONEY命令,将已生成好的数组名填入其中(用户可以给这些数组任意有效的参数名,在这里所采用的参数名,只是为了讨论方便):
TB,MOONEY,MAT,NTEMP,,1
*MOONEY,STRAIN(1,1),STRESS(1,1),,CONST
(1),CALC
(1),SORTSN
(1),
SORTSS
(1),Fname,Ext
程序自动计算出Mooney-Rivlin常数,将它们写入数据库和CONST数组(可以是任何有效的数组名)中,并还以TB和TBDATA命令的格式写入一个ASCII文件Fname.Ext中(缺省是Jobname.TB)。
单轴公式将用于第一列的数据,而等双轴公式将用于第二列,平面(纯剪)公式将用于第三列。
注意--在STARIN和STRESS中输入的所有试验数据,将用于确定Mooney-Rivlin超弹性材料常数。
第四步:
估计Mooney-Rivlin常数的质量
在输出文件中(Jobname.OUT),检查“ROOT—MEAN—SQUAREERROR(PERCENTAGE)”(均方根误差)和“COEFFICIENTOFDETERMINATION”(确定系数)两个输出信息,这两个值给出所计算出的应力-应变曲线与测试数据点相拟合的好坏程度的统计度量。
以百分数表示的均方根误差(即2.5就表示2.5%应接近于零,确定系数接近于1.0(通常要大于0.99)。
另外,用户还应使用*VEAL和*VPLOT命令(GUI:
MainMenu>Preprocessor>MaterialProps>Mooney-Rivlin>EvaluateConst和UtilityMenu>Plot>ArrayParameters)来以图形的方式显示输入的和计算出的应力-应变曲线,以直观地检查计算曲线与实验数据的匹配程度。
在比较这些曲线时,应比较那些代表同一变形模式的数据。
也就是说,所计算的单轴拉伸曲线形状(在*EVAL命令中的EVPARM=1),仅应当与单轴拉伸数据(在排序的STRAIN和STRESS数组第一列)比较。
类似地,所计算的单轴压缩曲线形状,仅应当与单轴压缩数据比较;而所计算的剪切曲线形状,仅应当与剪切数据比较。
当用图形显示计算的应力-应变曲线时,用户可以将显示曲线扩展到那些没有实验数据的区域。
这样就可以让用户对模型在超出实验数据区域以外的地方的响应有一个定性的认识。
但是,应认识到当将显示曲线扩展到一个表示另一个不同的变形模式的区域时,在那个区域的显示就是没有意义的。
例如,用户只能在正应变区域显示单轴拉伸曲线。
总的来说,要得到一个好的结果,所作的实验数据应能代表所分析模型的所有的变形模式和响应(应变)范围。
*MOONEY命令自动把Mooney-Rivlin常数写到CONST数组中。
因为*EVAL命令从CONST常数读入相同的常数,所以可以在同一个ANSYS阶段中,在*MOONEY命令后,跟着用*EVAL命令。
如已经有了Mooney-Rivlin常数(这时不必进行*MOONEY计算),则必须在计算曲线前,首先定义CONST数组[*DIM]并用Mooney-Rivlin常数填充该数组[*EVAL]。
可以方程容易地填充这一数组,通常给CONST数组1×2、1×5、1×9。
用户也可以在Jobname.TB文件中,添加*DIM和数组填充命令,以方便操作。
要检查曲线的形状,首先还必须定义[*DIM]两个表数组向量(*EVAL命令中将这两个数组名定义为XVAL和ECALC,但可以应用任何有效的参数名)。
这两个表数组的大小都是P维,此时P为用户想要在曲线中绘制的点的数目(通常应使用一个相对较大的P值,以使得所绘制的曲线尽可能光滑)。
其次,定义变形模式、定义应变范围,用*EVAL命令将工程应变和计算出的工程应力数据填入数组中。
最后,用*VPLOT命令来绘制计算出的应力-应变曲线。
下面例子说明对单轴压缩变形模式的计算曲线绘图:
!
Dimensionstrainandstressarraysforthecalculatedcurve:
!
(Anyvalidparameternamescanbeused)
*DIM,XVAL,TABLE,1000
*DIM,ECALC,TABLE,1000
!
Specifythemodeofdeformation(EVPARM),definethestrainrange
!
(XMIN,XMAX),andusetheM-Rconstants(CONST)tofillthestrain(XVAL)
!
andstress(ECALC)arrayswithcalculateddata:
*EVAL,1,2,CONST
(1),XMIN,XMAX,XVAL
(1),ECALC
(1)
!
Labelthegraphaxes:
/AXLAB,X,EngineeringStrain
/AXLAB,Y,EngineeringStress
!
Plotthecalculateduniaxialcompressioncurve:
*VPLOT,XVAL
(1),ECALC
(1)
参见*DIM,*EVAL,/AXLAB,和*VPLOT等命令的说明。
图4-16 典型的计算出的超弹性应力-应变曲线
第五步:
使用Mooney-Rivlin常数
如果用户对曲线拟合的统计数值和整个曲线的形状都非常满意,则可使用生成的Mooney-Rivlin材料性质作后续的分析(*MOONEY命令将在数据库中保存这些常数)。
在将来的另外一些分析中,如果使用同样的材料模式,则只需用/INPUT命令读入文件“Jobname.TB”,即可将常数加载到新的数据库中。
但别忘了定义材料泊松比的值[MP,NUXY,...]。
用户始终要记住的一点是,应对分析结果作仔细检查,以确定原始测试数据是否涵盖了模型的变形模式和最大应变。
含有超弹性单元的分析,有时对材料性质定义和载荷施加方式非常敏感。
通常是某些Mooney-Rivlin常数会导致非常稳定的刚度矩阵而其它的常数则相反。
因此,应当根据经验,并特别仔细地选取常数。
ANSYS内部提供超弹性材料(基于用户输入的Mooney-Rivlin常数)稳定检查的功能。
这些检查分两个级别:
在分析前进行第一次稳定检查。
对6个典型的应力路径(单轴拉伸和压缩,等双轴拉伸和压缩,平面拉伸和压缩),延伸率范围0.1~10来进行检查。
如果材料在这一范围不稳定,则出现一个提示,统计在材料变得不稳定时,名义应变的临界值,列出用户输入的Mooney-Rivlin常数。
如果材料在这一范围稳定,则不出现提示。
下面的警告信息,列出材料1变得不稳定时的名义应变,然后列出用户输入的Mooney-Rivlin常数:
***WARNING*** CP= 1.110 TIME=16:
59:
52
Material1canbecomeunstableundercertainloading.
Thestrain(nominal)limitswherethematerialbecomesunstableare:
UNIAXIALTENSION 0.645E+00
UNIAXIALCOMPRESSION -0.565E+00
EQUIBIAXIALTENSION 0.516E+00
EQUIBIAXIALCOMPRESSION -0.220E+00
PLANARTENSION 0.585E+00
PLANARCOMPRESSION -0.369E+00
Mooney-Rivlinconstantsofthehyperelasticmaterialare:
0.170E+02, 0.000E+00, 0.150E+03
0.000E+00, 0.000E+00, 0.000E+00
0.000E+00, 0.000E+00, 0.000E+00
对于混合U-P公式的超弹性单元(HYPER56、HYPER58、HYPER74和HYPER158),在设置KEYOPT(8)=1时,也可以在ANSYS分析期间,执行稳定检查。
对于每次平衡迭代,程序检查每个高斯点的稳定情况。
如未通过稳定检查,则将在ANSYS输出窗口的求解历史阶段看到一个信息,报告该迭代上不稳定的高斯点总数。
如问题通过检查,则不显示任何信息。
下面的例子说明在分析期间,ANSYS检查出3个高斯点超过材料稳定极限:
DISPCONVERGENCEVALUE = 22.81 CRITERION=0.5000
EQUILITER 1COMPLETED. NEWTRIANGMATRIX. MAX自由度INC= 10.00
FORCECONVERGENCEVALUE =0.5018E+07 CRITERION=0.1917E+05
>>> 3Gausspointshaveexceededthematerialstabilitylimit
对于包含最少1个不稳定高斯点的单元,不稳定指标设置为1,并保存在结果文件中的SMISC记录中。
在POST1中,可以绘出这个标识为STFLAG的SMISC记录来显示不稳定区域。
参见下列单元和不稳定指标STFLAG相应的SMISC表项:
HYPER56单元ETABLE和ESOL命令的ItemandSequenceNumbers;HYPER74单元ETABLE和ESOL命令的ItemandSequenceNumbers;HYPER158单元ETABLE和ESOL命令的ItemandSequenceNumbers。
用户应当清楚,虽然材料未通过稳定检查是收敛困难的一个原因,但并不说明一旦材料进入不稳定区域解就无效。
材料稳定检查只是在收敛失效时,一个帮助用户诊断问题的简单工具。
对于许多接近不可压缩材料(泊松比大于0.49),我们推荐应用混合U-P列式的超弹性单元(HYPER56、HYPER58、HYPER74和HYPER158)。
r,1,3.1416*pex/19
r,2,3.1416*pex/19
mp,ex,2,2e5
mp,nuxy,2,0.3
rect,-w/2,w/2,-l1,l-l1
pcirc,,ro,-180,0
pcirc,,ri,-180,0
aovl,all
lsel,s,loc,y,-ro,-ri
lesize,all,,,18
alls
lsel,s,loc,x,-ro,-ri
lsel,a,loc,x,ri,ro
lesize,all,,,10
alls
lsel,s,loc,y,(l-l1)/2
lesize,all,,,8
alls
lsel,s,loc,y,0
lsel,r,loc,x,-w/2,w/2
lcom,all
alls
lsel,s,loc,x,0
lsel,r,loc,y,-l1,l-l1
lesize,all,,,6
alls
lsel,s,loc,y,-l1/2
lesize,all,,,6
alls
lsel,s,loc,x,-1*(ri+w/2)/2
lsel,a,loc,x,(ri+w/2)/2
lesize,all,,,16
alls
mshape,0,2d
mshkey,2
asel,s,loc,y,-ro,-ri
amesh