该方法把包含有 6 个分量的节点应力向量直接储存在结果的数据库内。随后可以用 FS 命令修正存入的应力分量。
注意 - 在执行 FSNODE 命令之前,必须使用 SET 命令,可能还有 SHELL 命令。SET 命令从数据库的 Jobname.RST 文件中读取某一特殊载荷子步下的结果,SHELL 命令可选择从壳单元的顶面、中面或底面读取结果 (缺省是从顶面读取结果)。
命令:FSNODE
GUI:Main Menu > General Postproc > Fatigue > -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.
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
http://e.hiphotos.baidu.com/album/pic/item/838ba61ea8d3fd1fddb58109314e251f95ca5f40.jpg疲劳分析" />
2.3.1.3 横截面应力
本选项计算和存储截面路径 (它是由以前的 PATH 和 PPATH 命令定义的) 端点的线性化应力。因为通常线性化应力计算是在能代表两个表面的最短距离的线段上进行的,因此,只需在两个表面上各取一个点来描述 PPATH 命令中的路径。这一步骤将从计算结果的数据库中获得应力;因此必须在 SET 命令之前使用 FSSECT 命令。用 FSSECT 命令储存的应力分量可用 FS 命令修正。
命令:FSSECT
GUI:Main Menu > General Postproc > Fatigue > -Store Stresses - At Cross Sect
使用 FSSECT 命令的方法可用下述例子说明。如果节点位置没有在 FL 命令中指定,则在该例子中命令 FSSECT 将自动给两个路径节点 391 和 395 设定位置编号。见图 3-3。
http://h.hiphotos.baidu.com/album/pic/item/810a19d8bc3eb135a4659488a71ea8d3fd1f4466.jpg疲劳分析" />
2.3.2
列表、显示或删除储存的应力
用下列选项对储存的应力进行列表、绘图或删除。
1、列出每一个位置、每一个事件、每一种载荷或每一种应力状态下的储存应力:
命令:FSLIST
GUI:Main Menu > General Postproc > Fatigue > -Store Stresses- List Stresses
2、对某一位置和事件,以载荷号的函数来显示应力项:
命令:FSPLOT
GUI:Main Menu > General Postproc > Fatigue > -Store Stresses- Plot Stresses
3、 删除储存在某一位置、事件和载荷下的应力状态:
命令:FSDELE
GUI:Main Menu > General Postproc > Fatigue > -Store Stresses- Dele Stresses
4、删除某一位置上的所有应力:
命令:FL
GUI:Main Menu > General Postproc > Fatigue > Stress Locations
5、删除在某一事件中各种载荷下的所有应力:
命令:FE
GUI:Main Menu > General Postproc > Fatigue > Erase Event Data
2.3.3 设定事件重复次数和比例系数
本选项确定事件重复次数(对该事件的所有荷载和所有位置)。也可对该事件中构成载荷的所有应力施加比例系数。
命令:FE
GUI:Main Menu > General Postproc > Fatigue > Assign Events
下面给出该步骤的一个例子:
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.
2.3.4 获得准确的耗用系数
结构常常承受各种最大和最小应力,它们发生的顺序是未知的(甚至是随机的)。因此就必须小心地考虑如何在各种可能的应力范围内,得到正确的重复循环次数,以获得有效的疲劳寿命耗用系数。
ANSYS 程序自动计算所有可能的应力范围,同时采用我们通常所知道的“雨流” 法记数,跟踪这些应力发生的次数。在选定的节点位置,对所有事件进行搜索,以寻找产生最大应力幅的载荷对 (应力矢量)。记录这些应力幅的重复次数,同时包含这些载荷的事件的剩余重复次数随之减少。最终至少有一个事件在某一位置被“用光”,而属于这一事件的其它应力状态,在随后的过程中将被忽略。这一过程一直进行着,直到所有的应力幅及重复次数都被计及后结束。
[警告] 通常容易误用疲劳模块的记数功能。如果需要使疲劳计算得到正确的耗用系数,就必须小心地设计好事件。
设计事件时遵循下列规则:
1、了解 ANSYS 的内部逻辑记数算法,参见 《ANSYS Theory Reference》§19.5,详细地讲述 ANSYS 程序如何记数。
2、由于在三维应力状态,很难预测哪一个载荷步具有极值应力,因此可以对每一个事件采用多个载荷群,以便成功获得极值应力 (见图3-2)。
3、如果在某一给定的事件中,只包含一个极值应力,则将获得一个较保守的结果。如果在一个事件中,引入不止一个极值应力,则有时将产生不保守的结果。如下例所示:
考察一个加载历程,由两个稍有不同的循环构成:
载荷循环 1:做 500 次循环,Sx = +50.0 ~ -50.1 ksi。
载荷循环 2:做 1000 次循环,Sx = +50.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 到 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 到 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),则将得到下列的记数范围:
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、相反,对每一个最大和最小应力条件应用分离的事件,则将使记录变得太保守。在这种情况下,应小心地选择应被一起记数的载荷,将它们划分为同一事件。下面的示例说明一些事件如何才能够包括多个极值应力条件。
考虑由两个载荷循环组成的载荷历程:
载荷循环1:从 Sx = +100.1 到 +100.0 ksi,做 500 次循环
载荷循环2:从 Sx = +50.1 到 +50.0 ksi,做 1000 次循环
显然这些循环的最不利组合为以大约 25 ksi 的应力幅做 500 次循环。
在本例中,如果将载荷划分为两个事件,则产生了 25 ksi 范围内进行 500 次循环的正确记录。如每一个载荷作为一个独立的事件,将产生一种过于保守的记录,形成 25 ksi 应力幅的 1000 次循环。
2.4 激活疲劳计算
现在有了位置、应力、事件及所有指定的材料参数,可在指定位置执行疲劳计算。位置的确定可用节点本身,也可用位置编号。
命令:FTCALC
GUI:Main Menu > General postproc > Fatigue > Calculate Fatig
2.5 查看计算结果
疲劳计算结果被输出在输出窗口。如果你将输出转向[/OUTPUT]到文件中(如Jobname.OUT),就可打开该文件查看结果。
命令:*LIST
GUI:Utility Menu>List>Files>Other>Jobname.OUT
如果用户已输入 S-N 曲线,则所有部位的应力幅 (从大到小排列) 与相应的事件/载荷、使用循环次数、允许循环次数、温度和阶段耗用系数一起以表格形式输出。随后输出累积寿命耗用系数。
正如前面提到的,FTCALC 输出时,将对任一给定的应力幅显示相应的事件和载荷,这些信息能帮助分离出那些引起最大的疲劳损伤的事件与载荷。
修正事件的一个方便的方法是把所有的疲劳数据写入 Jobname.FATG 文件中 (它可以在执行 FTCALC 命令前或后做)。写入 Jobname.FATG 文件的数据是疲劳模块的命令流。可通过编辑 Jobname.FATG 文件 (文本文件) 来修改事件,然后用 /INPUT 命令重新读入被修改的疲劳命令。
命令:FTWRITE
GUI:Main Menu > General postproc > Fatigue > Write Fatig Data.
2.6 其它记数方法
前面曾介绍过“雨流”记数法。在时间-载荷历程未知的情况下,这一技术才有用处。如果时间-载荷历程已知,对每一个接连的事件分别做疲劳分析 [FTCALC],然后人工相加这些耗用系数,则可避免得到不恰当的保守结果。
2.7 疲劳分析示例 (命令流方法)
下面是一个疲劳计算输入命令流:
! Enter POST1 and Resume the Database:
/POST1
RESUME,...
! Number of Locations, Events, and Loadings
FTSIZE,...
! Material 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 Stresses 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》。