《ANSYS疲劳分析介绍.docx》由会员分享,可在线阅读,更多相关《ANSYS疲劳分析介绍.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3.1 疲劳的定义 疲劳是指结构在低于静态极限强度载荷的重复载荷作用下,出现断裂破坏的现象。例如一根能够承受 300 KN 拉力作用的钢杆,在 200 KN 循环载荷作用下,经历 1,000,000 次循环后亦会破坏。导致疲劳破坏的主要因素如下: 载荷的循环次数; 每一个循环的应力幅; 每一个循环的平均应力; 存在局部应力集中现象。 真正的疲劳计算要考虑所有这些因素,因为在预测其生命周期时,它计算“消耗”的某个部件是如何形成的。3.1.1 ANSYS程序处理疲劳问题的过程 ANSYS 疲劳计算以ASME锅炉和压力容器规范(ASME Boiler and Pressure Vessel Code
2、)第三节(和第八节第二部分)作为计算的依据,采用简化了的弹塑性假设和Mimer累积疲劳准则。 除了根据 ASME 规范所建立的规则进行疲劳计算外,用户也可编写自己的宏指令,或选用合适的第三方程序,利用 ANSYS 计算的结果进行疲劳计算。ANSYS APDL Programmers Guide讨论了上述二种功能。 ANSYS程序的疲劳计算能力如下: 对现有的应力结果进行后处理,以确定体单元或壳单元模型的疲劳寿命耗用系数(fatigue usage factors)(用于疲劳计算的线单元模型的应力必须人工输入); 可以在一系列预先选定的位置上,确定一定数目的事件及组成这些事件的载荷,然后把这些位
3、置上的应力储存起来; 可以在每一个位置上定义应力集中系数和给每一个事件定义比例系数。3.1.2 基本术语 位置(Location):在模型上储存疲劳应力的节点。这些节点是结构上某些容易产生疲劳破坏的位置。 事件(Event):是在特定的应力循环过程中,在不同时刻的一系列应力状态,见本章 3.2.3.4。 载荷(Loading):是事件的一部分,是其中一个应力状态。 应力幅:两个载荷之间应力状态之差的度量。程序不考虑应力平均值对结果的影响。3.2 疲劳计算 完成了应力计算后,就可以在通用后处理器 POST1 中进行疲劳计算。一般有五个主要步骤: 1、进入后处理 POST1,恢复数据库; 2、建立
4、位置、事件和载荷的数目,定义材料疲劳性质,确定应力位置和定义应力集中系数; 3、存储不同事件和不同载荷下关心位置的应力,并指定事件的重复次数和比例系数; 4、激活疲劳计算; 5、查看结果。3.2.1 进入POST1和恢复数据库 依照下列步骤进行疲劳计算: 1、进入POST1 命令:POST1 GUI:Main MenuGeneral Postproc 2、把数据库文件(Jobname.DB)读入到在内存中(如果所要做的疲劳计算是正在进行的 ANSYS 计算过程的继续,则 Jobname.DB 文件已在内存中)。结果文件(Jobname.RST)必须已经存在并将其读入内存。 命令:RESUME
5、GUI:Utility MenuFileResume from3.2.2 建立疲劳计算的规模、材料疲劳性质和疲劳计算的位置 定义下列数据: 位置、事件和载荷的最大数目; 材料的疲劳性质; 应力位置与应力集中系数(SCFs)。 1、定义位置、事件和载荷的最大数目 缺省情况下,疲劳计算最多包括5个节点位置,10个事件,每个事件中3个载荷。如果需要,可以通过下面的命令来设置较大的规模(即较多的位置、事件和载荷)。 命令:FTSIZE GUI:Main MenuGeneral PostprocFatigueSize Settings 2、定义材料的疲劳性质 为了计算各种耗用系数,以及为了包含简化弹塑性
6、效应,必须定义材料的疲劳性质。在疲劳计算中,感兴趣的材料性质有: S-N 曲线:应力幅(Smax-Smin)/2-疲劳循环次数的关系曲线。ASME S-N 曲线考虑了最大平均应力的影响。如果需要,应把输入的 S-N 曲线进行调节以便考虑平均应力强度效应。如果不输入S-N曲线,那么对于各种可能的应力状态的组合,应力幅将降序排列,但不计算耗用系数。 命令:FP GUI:Main MenuGeneral PostprocFatigueS-N Table Sm-T曲线:设计应力强度值-温度曲线。如要考虑检查应力范围是否进入塑性,就必须定义该曲线。 命令:FP GUI:Main MenuGeneral
7、PostprocFatigueSm_T Table 弹塑性材料参数 M 和 N(应变强化指数)。只在需要使用简化的弹塑性准则时,才输入 M、N。这些参数可以从 ASME 规范中获得。 命令:FP GUI:Main MenuGeneral PostprocFatigueElas-plas Par 下述例子说明了用于输入疲劳材料性质的FP命令的使用方法: ! Define the S-N table: FP,1,10,30,100,300,1000,10000 ! Allowable Cycles, N FP,7, ! FP,21,650,390,240,161,109,59 ! Alternat
8、ing Stress- FP,27,37,26 ! Intensity Range, S, ksi ! Define the Sm-T table: FP,41,100,200,300,400,500,600 ! Temperature, deg F FP,47,650,700,750,800 ! FP,51,20,20,20,18.7,17.4,16.4 ! Design Stress-Intensity FP,57,16.1,15.9.15.5,15.1 ! Value, Sm (=2/3*Sy or ! 1/3 *Su), ksi ! Define the elastic-plastic
9、 material parameters: FP,61,1.7,.3 ! M and N 3、定义应力位置和应力集中系数 下面的选项允许用户显式地定义疲劳计算中关心的节点位置、该位置的应力集中系数,以及在该位置的一个短的标题(可用20个字母)。 命令:FL GUI:Main MenuGeneral PostprocFatigueStress Locations注意-不是所有的疲劳分析都需要使用FL命令。如果使用FS、FSNODE或FSSECT等命令(见下),则疲劳节点位置是自动定义的。假使在建模时包含有足够细的网格,则所计算的应力是准确的,因此不必指定应力集中系数 SCFs (但是如果考虑表面
10、影响、尺寸影响和腐蚀影响,则仍然需要指定 SCFs )。在计算疲劳时如果只需要考察一个位置,则可以省略标题。假使定位明确,或是不需要应力集中系数和标题,则可完全不使用FL命令。 这里给出了在一个圆柱筒分析中应用FL命令的例子。整体坐标 Y 轴为旋转轴。在不同璧厚交界处的外壁给出了应力集中系数 SCFs (针对轴向线性化应力)。 FL,1,281,Line 1 at inside FL,2,285,1.85,Line 1 at outside FL,3,311,Line 2 at inside FL,4,315,2.11,Line 2 at outside图3-1 圆柱筒应力集中系数 SCFs3
11、.2.3 储存应力、指定事件循环次数和比例因子3.2.3.1 储存应力 为了进行疲劳计算,程序必须知道每一个位置上不同事件和载荷时的应力,以及每一个事件的循环次数。可采用下列选项来存储每一个位置、事件和载荷组合情况下的应力: 人工储存应力; 从(Jobname.RBT)文件中取得节点应力; 横截面应力。警告:程序从不假定存在0应力条件。如果一定要考虑零应力条件,就必须在每一个事件中明确地输入何处产生零应力。 下面的命令序列,说明如何存储应力。在某些情况下,用户也可以用LCASE命令代替SET命令。 人工储存应力: FS 从 Jobname.RST 中取出节点应力: SET,FSNODE 横截面
12、应力: PATH,PPATH,SET,FSSECT (横截面计算也需从 Jobname.RST 的数据中取得) 可以用不同的方法在一个事件中储存应力。下面说明各种不同的方法。 3.2.3.1.1 人工储存应力 可以人工存储应力和温度(不是直接从 Jobname.RST 的结果文件取得)。在这种情况下,实际并没有将 POST1 的疲劳模块作为后处理器,而是仅仅作为疲劳计算器使用。线单元(如梁单元)的应力必须人工输入,因为疲劳模块不能如体元或壳元那样从结果文件中读取数据。 命令:FS GUI:Main MenuGeneral PostprocFatigue-Store Stresses- Spec
13、ified Val 下面的例子说明用上述命令输入的方式: FS,201,1,2,1,-2.0,21.6,15.2,4.5,0.0,0.0 FS,201,1,2,7,450.3 在这个例子中,只输入了全应力(16项)和温度。如果还要输入线性化应力,它们将紧随在温度后面,即813项。注意-对只有轴向应力的梁单元,只需输入一个应力分量(SX),其余各项空白。 3.2.3.1.2 从结果文件中提取应力 该方法把包含有6个分量的节点应力向量直接储存在结果的数据库内。随后可以用FS命令修正存入的应力分量。注意-在执行FSNODE命令之前,必须使用SET命令,可能还有SHELL命令。SET命令从数据库的 J
14、obname.RST 文件中读取某一特殊载荷子步下的结果,SHELL命令可选择从壳单元的顶面、中面或底面读取结果(缺省是从顶面读取结果)。 命令:FSNODE GUI:Main MenuGeneral PostprocFatigue-Store Stresses- From rst File 下面给出用FSNODE命令在一个事件的一个节点位置输入应力结果的例子: SET,1 ! Define data set for load step 1 FSNODE,123,1,1 ! Stress vector at node 123 assigned to event 1, ! loading 1.
15、SET,2 ! Define data set for load step 2 FSNODE,123,1,2 ! .event 1, loading 2 SET,3 ! .load step 3 FSNODE,123,1,3 ! .event 1, loading 3图3-2 一个事件中的三个荷载 3.2.3.1.3 横截面应力 本选项计算和存储截面路径(它是由以前的PATH和PPATH命令定义的)端点的线性化应力。因为通常线性化应力计算是在能代表两个表面的最短距离的线段上进行的,因此,只需在两个表面上各取一个点来描述PPATH命令中的路径。这一步骤将从计算结果的数据库中获得应力;因此必须在S
16、ET命令之前使用FSSECT命令。用FSSECT命令储存的应力分量可用FS命令修正。 命令:FSSECT GUI:Main MenuGeneral PostprocFatigue -Store Stresses - At Cross Sect 使用FSSECT命令的方法可用下述例子说明。如果节点位置没有在FL命令中指定,则在该例子中命令FSSECT将自动给两个路径节点 391 和 395 设定位置编号。见图3-3。图3-3 在执行 FSSECT 命令之前由 PPATH 命令识别的表面节点3.2.3.2 列表、显示或删除储存的应力 用下列选项对储存的应力进行列表、绘图或删除。 1、列出每一个位置
17、、每一个事件、每一种载荷或每一种应力状态下的储存应力: 命令:FSLIST GUI:Main MenuGeneral PostprocFatigue-Store Stresses- List Stresses 2、对某一位置和事件,以载荷号的函数来显示应力项: 命令:FSPLOT GUI:Main MenuGeneral PostprocFatigue-Store Stresses- Plot Stresses 3、删除储存在某一位置、事件和载荷下的应力状态: 命令:FSDELE GUI:Main MenuGeneral PostprocFatigue-Store Stresses- Dele
18、 Stresses 4、删除某一位置上的所有应力: 命令:FL GUI:Main MenuGeneral PostprocFatigueStress Locations 5、删除在某一事件中各种载荷下的所有应力: 命令:FE GUI:Main MenuGeneral PostprocFatigueErase Event Data3.2.3.3 设定事件重复次数和比例系数 本选项确定事件重复次数(对该事件的所有荷载和所有位置)。也可对该事件中构成载荷的所有应力施加比例系数。 命令:FE GUI:Main MenuGeneral PostprocFatigueAssign Events 下面给出该
19、步骤的一个例子: FE,1,-1 ! Erase all parameters and fatigue stresses formerly ! used for event 1. FE,2,100,1.2 !Assign 100 occurrences to events 2, 3 and 4, *REPEAT,3,1 ! and scale by 1.2. FE,5,500 ! Assign 500 occurrences to event 5.3.2.3.4 获得准确的耗用系数 结构常常承受各种最大和最小应力,它们发生的顺序是未知的(甚至是随机的)。因此就必须小心地考虑如何在各种可能的应力
20、范围内,得到正确的重复循环次数,以获得有效的疲劳寿命耗用系数。 ANSYS 程序自动计算所有可能的应力范围,同时采用我们通常所知道的“雨流”法记数,跟踪这些应力发生的次数。在选定的节点位置,对所有事件进行搜索,以寻找产生最大应力幅的载荷对(应力矢量)。记录这些应力幅的重复次数,同时包含这些载荷的事件的剩余重复次数随之减少。最终至少有一个事件在某一位置被“用光”,而属于这一事件的其它应力状态,在随后的过程中将被忽略。这一过程一直进行着,直到所有的应力幅及重复次数都被计及后结束。警告通常容易误用疲劳模块的记数功能。如果需要使疲劳计算得到正确的耗用系数,就必须小心地设计好事件。 设计事件时遵循下列规
21、则: 1、了解 ANSYS 的内部逻辑记数算法,参见ANSYS Theory Reference19.5,详细地讲述 ANSYS 程序如何记数。 2、由于在三维应力状态,很难预测哪一个载荷步具有极值应力,因此可以对每一个事件采用多个载荷群,以便成功获得极值应力(见图3-2)。 3、如果在某一给定的事件中,只包含一个极值应力,则将获得一个较保守的结果。如果在一个事件中,引入不止一个极值应力,则有时将产生不保守的结果。如下例所示: 考察一个加载历程,由两个稍有不同的循环构成: 载荷循环1:做 500次循环,Sx = +50.0 -50.1 ksi。 载荷循环2:做1000次循环,Sx = +50.
22、1 -50.0 ksi。 显然这是应力幅为 50 Ksi的 1500 次循环。然而,如果不小心把这些载荷划分成两个事件,则将导致不正确的记数结果。请看该结果如何: 事件1 载荷1: Sx = 50.0 500次循环 载荷2: Sx = -50.1 事件2 载荷1: Sx = 50.1 1000次循环 载荷2: Sx = -50.0 可能的应力幅是: a、从 E1,L1 到 E1,L2: 50.05 ksi b、从 E1,L1 到 E2,L1: 0.05 ksi c、从 E1,L1 到 E2,L2: 50.00 ksi d、从 E1,L2 到 E2,L1: 50.10 ksi e、从 E1,L2
23、 到 E2,L2: 0.05 ksi f、从 E2,L1 到 E2,L2: 50.05 ksi 把这些应力幅从大到小排列: d、从 E1,L2 到 E2,L1: 50.10 ksi a、从 E1,L1 到 E1,L2: 50.05 ksi f、从 E2,L1 到 E2,L2: 50.05 ksi c、从 E1,L1 到 E2,L2: 50.00 ksi b、从 E1,L1 到 E2,L1: 0.05 ksi e、从 E1,L2 到 E2,L2: 0.05 ksi 则记数将如此: d、从 E1,L2 到 E2,L1 500 次循环 - E1 和 E2 用去500 次循环 a、从 E1,L1 到
24、E1,L2 0 次循环 - E1 已用光 f、从 E2,L1 到 E2,L2 500 次循环 - E2 又用去 500 次循环 c、从 E1,L1 到 E2,L2 0 次循环 - 两个事件都用光 b、从 E1,L1 到 E2,L1 0 次循环 - 两个事件都用光 e、从 E1,L2 到 E2,L2 0 次循环 - 两个事件都用光 上面记录了 50 ksi 应力幅的 1000 次循环,而不是已知的 1500 次循环。这个错误的结果是由于不恰当的事件组合导致的。 假使载荷被描述为各自分离的事件(如E1,L1 = E1; E1,L2 = E2; E2,L1 = E3; E2,L2 = E4),则将得
25、到下列的记数范围: d、从E2 到E3 的500次循环,用去 500次 循环 a、从 E1 到 E2 的 0 次循环,因为 E2“用光”了 f、从 E3 到 E4 的 500 次循环,E3 又用去500次循环,E4 用去500次循环 c、从 E1 到 E4 的 500 次循环,E4 又用去500次循环 d、从 E1 到 E3 的 0 次循环,因为 E3 “用光”了 e、从 E2 到 E4 的 0 次循环,因为 E2 和 E4 都“用光”了。 上述情况恰当地记录了累积疲劳损伤被,即 50 ksi 应力幅的 1500 次循环。 4、相反,对每一个最大和最小应力条件应用分离的事件,则将使记录变得太保
26、守。在这种情况下,应小心地选择应被一起记数的载荷,将它们划分为同一事件。下面的示例说明一些事件如何才能够包括多个极值应力条件。 考虑由两个载荷循环组成的载荷历程: 载荷循环1:从 Sx = +100.1 到 +100.0 ksi,做 500 次循环 载荷循环2:从 Sx = +50.1 到 +50.0 ksi,做 1000 次循环 显然这些循环的最不利组合为以大约 25 ksi 的应力幅做 500 次循环。 在本例中,如果将载荷划分为两个事件,则产生了 25 ksi 范围内进行 500 次循环的正确记录。如每一个载荷作为一个独立的事件,将产生一种过于保守的记录,形成 25 ksi 应力幅的 1
27、000 次循环。3.2.4 激活疲劳计算 现在有了位置、应力、事件及所有指定的材料参数,可在指定位置执行疲劳计算。位置的确定可用节点本身,也可用位置编号。 命令:FTCALC GUI:Main MenuGeneral postprocFatigueCalculate Fatig3.2.5 查看计算结果 疲劳计算结果被输出在输出窗口。如果你将输出转向/OUTPUT到文件中(如Jobname.OUT),就可打开该文件查看结果。 命令:*LIST GUI:Utility MenuListFilesOtherJobname.OUT 如果用户已输入 S-N 曲线,则所有部位的应力幅(从大到小排列)与相应
28、的事件/载荷、使用循环次数、允许循环次数、温度和阶段耗用系数一起以表格形式输出。随后输出累积寿命耗用系数。 正如前面提到的,FTCALC输出时,将对任一给定的应力幅显示相应的事件和载荷,这些信息能帮助分离出那些引起最大的疲劳损伤的事件与载荷。 修正事件的一个方便的方法是把所有的疲劳数据写入 Jobname.FATG 文件中(它可以在执行FTCALC命令前或后做)。写入 Jobname.FATG 文件的数据是疲劳模块的命令流。可通过编辑 Jobname.FATG 文件(文本文件)来修改事件,然后用/INPUT命令重新读入被修改的疲劳命令。 命令:FTWRITE GUI:Main MenuGene
29、ral postprocFatigueWrite Fatig Data.3.2.6 其它记数方法 前面曾介绍过“雨流”记数法。在时间-载荷历程未知的情况下,这一技术才有用处。如果时间-载荷历程已知,对每一个接连的事件分别做疲劳分析FTCALC,然后人工相加这些耗用系数,则可避免得到不恰当的保守结果。3.2.7 疲劳分析示例(命令流方法) 下面是一个疲劳计算输入命令流: ! Enter POST1 and Resume the Database: /POST1 RESUME,. ! Number of Locations, Events, and Loadings FTSIZE,. ! Mate
30、rial Fatigue Properties: FP,1,. ! N values FP,21,. ! S values FP,41,. ! T values FP,51,. ! Sm values FP,61,. ! Elastic-plastic material parameters ! Locations, Stress Concentration Factors, and Location Titles FL,. ! Store Stresses (3 Different Methods) ! Store Stresses Manually: FS,. ! Retrieve Str
31、esses from the Results File: SET,. FSNODE,. ! Store Stresses at a Cross-Section: PPATH,. SET,. FSSECT,. ! Event Repetitions and Scale Factors FE,. ! Activate the Fatigue Calculations FTCALC,. ! Review the Results (List the output file) FINISH 其中的FTSIZE,FP,FL,FS,FSNODE,PPATH,FSSECT,FE和FTCALC命令,请参考ANSYS Commands Reference。