1、ANSYS之单元表的妙用
- 格式:doc
- 大小:107.50 KB
- 文档页数:4
ANSYS之单元表的妙用
1、绘制表示安全系数的云图
在机械结构分析中,通常只要得到等效应力结果就可以了判断结构是否满足力学要求,是否会屈服,破坏等。
但是在工程中有时候我们需要得到更直观的安全系数,这样通过安全系数值大于1就不安全,小于1就是安全。
通过前面框架分析得到的数据,我们可以通过单元表非常容易得到安全系数的云图ETABLE,Equi_stress,S,EQV
SADD,safe_facor,Equi_stress,,1/stress_allow,,
!许用应力值stress_allow, safe_fator中存的值就是单元的等效应力除以许用应力的值pletab,safe_facor
!单元表显示,不同的颜色代表不同的安全系数
2、单元表的运算
(1)单元表自带的运算命令
在后处理中单元表本身可以进行运算,像上面用到的sadd就是实现两个单元表间的运算:facor1*lab1+factor2*lab2+constant,lab1和lab2都是单元表名称,还有像smult――facor1*lab1*factor2*lab2,smax――找出facor1*lab1和actor2*lab2中的最大值,sexp,vcross 实现向量乘法等。
(2)间接的运算操作,
将单元表存储到数组后再进行运算操作,操作完成后值才返回存储到单元表。
其主要命令是
Etable,定义单元表
*dim,定义数组
*vget,单元表向数组赋值
*vput,数组向单元表赋值
实现的命令
!定义单元表
ETABLE,Equi_stress,S,EQV !建立单元表,等效应力
ETABLE,Temp_Body,BFE,TEMP, !建立单元表,体温
ETABLE,Safe_Factor,TOPO !建立单元表,用来表征安全系数
!提取单元号最大值
*GET, Elem_Num,ELEM, , num, max
!定义数组
*DIM,Equi_stress,ARRAY,Elem_Num !建立数组,等效应力
*DIM,Temp_Body ,ARRAY,Elem_Num !体温
*DIM,Safe_Factor,ARRAY,Elem_Num !安全系数/无量纲应力
!单元表向数组赋值
*VGET,Equi_stress,elem,,ETAB,Equi_str, ,
*VGET,Temp_Body ,elem,,ETAB,Temp_Bod, ,
*VGET,Safe_Factor,elem,,ETAB,Safe_Fac, ,
!对数值进行运算处理
*DO,KK,1,Elem_Num,1 !计算无量纲等效应力(=等效应力/相应体温下的屈服应力)
*IF,Temp_Body(kk),LT,1073,THEN
Safe_Factor(kk)=Equi_stress(kk)/(3.63E8-(3.63E8-1.8E8)/780*(Temp_Body(kk)-293))
*ELSEIF,Temp_Body(kk),LT,1273
Safe_Factor(kk)=Equi_stress(kk)/(1.8E8-(1.8E8-0.78E8)/200*(Temp_Body(kk)-1073))
*ELSE
Safe_Factor(kk)=3
*ENDIF
*ENDDO
!数组向单元表赋值
*vput,Safe_Factor,elem,,etab,Safe_Fac,
在单元表和数值之间转换时要注意:
1)数值它的第一列为是默认的1,2,3,4,5….。
而单元表由于与单元编号有关,因此其此可能不连续,跟建模有很大关系。
2)在提取数据时,如果指标没包含在单元表中,会线性插值来提取数据;而数值则不行。
重点:转换过程,定义数组的维数很重要
如果是定义数组的维数为单元个数,则会出现这种情况:
*GET, Elem_Num,ELEM, , num,,number!!!单元总个数
*DIM,Equi_stress,ARRAY,Elem_Num
有两种方法可以避免上面的问题发生:
1、所以在建立模型时,使单元编号连续
2、如果不能保证单元编号的连续性,可以通过以下方式定义:
*GET, Elem_Num,ELEM, , num,,max!!!最大单元编号
*DIM,Equi_stress,ARRAY,Elem_Num
其副作用是数组中很多数据都没有用到,但是保证了单元表中数据的可靠。