提取ANSYS的整体刚度或者质量矩阵具有很多方面的运用,常见的包括损伤识别以及二次开发。一般来讲,ANSYS提取整体刚度质量矩阵有下面三种方法:
1、用户程序法;
2、超单元法;
3、Hbmat法
其中由于Hbmat法使用简单快速,是很多时候采用的方法,Hbmat命令的使用介绍如下:
HBMAT,Frame,ext,–,form,matrx,rhs,mapping
各个参数的含义如下:
注意该方法的前提是存在full文件。
下面以一个悬臂梁为例,来简单阐述具体的操作方法与验证,悬臂梁命令流如下:
finish
/clear
/filname,file
/prep7
bb=200
bh=400
Et,1,beam188
Mp,ex,1,2.1e5
mp,prxy,1,0.3
mp,dens,1,7850e-12
sectype,1,beam,rect
secdata,bh,bb
K,1
k,2,0,2000
L,1,2
lesize,all,,,2
lmesh,all
allsel,all
nsel,s,loc,y,0
d,all,all,0
Fk,2,fx,10e3
acel,,9800
allsel,all
/solu
allsel,all
solve
finish
/aux2
file,file,full
hbmat,stiff,txt,,ascii,stiffness,yes,yes
!hbmat,mass,txt,,ascii,mass,yes,yes
finish
找到工作目录下的文件stiff.txt,打开之后如下所示:
这个格式是ANSYS对矩阵特有的存储形式,含义如下:
第1行:格式A72,解释性文字。
第2行:一共5个数值,格式5I14,其中85表示文件的总行数(不包括头文件,也即是前面5行不算);13表示矩阵列指针的总行数,通常是矩阵的阶数+1,其具体的数值位置是从第6行到19行;30表示矩阵行索引的总行数;第二个30表示矩阵元素的总行数;12表示右端项的数值总行数。
第3行:RSA表示矩阵的形式,其中R表示实数矩阵,S表示为对称矩阵,A表示为组装的矩阵;后面的两个12分别表示矩阵行数、矩阵列数,30表示矩阵的元素。
第4行:格式说明
第5行:几个数表示右端项的输出说明,F表示全部存储。
上述矩阵是按对称矩阵的形式存储,如果要进行完整刚度矩阵的提取,还需要对上述矩阵文件进行还原操作,这个过程可采用Matlab软件或者Python完成,这里我们采用Matlab来做
还原后的刚度矩阵如下所示:
为了验证还原刚度矩阵的正确性,采用Matlab对该悬臂梁进行求解,并与ANSYS的求解结果进行比较。
Matlab求解无非就是解方程KX=F, 其中K代表刚度矩阵, F代表外部荷载矩阵,X代表需要求解的节点位移,现在刚度矩阵已知,在提取右边的荷载矩阵,得到的最终荷载矩阵如下所示:
根据上述公式,求解操作如下:
dis=Matrix_stiff\Matrix_f
数组dis即为节点各个自由度方向的位移,最终结果如下:
上述位移结果分别为各个节点在各个方向的位移,根据矩阵文件,0.036代表的是3号节点在X方向的位移,0.1167代表的是2号节点在X方向的位移,ANSYS求解后的的X方向位移云图如下所示:
分别采用UX命令获取具体的数值,命令流如下:
X11=UX(2)
X22=UX(3)
*status,X11
*status,X22
从截图可见,两者结果完全对的上,说明上述操作ok的!
以上内容来自 水哥Matlab&ANSYS联合仿真专题教程的第二个综合案例,系统性的介绍了ANSYS整体刚度、质量矩阵的提取方法及采用Matlab编译矩阵文件的方法,欢迎购买观看,具体课程目录及案例详情详见下面的文章。
Matlab&ANSYS联合仿真系列教程
暂无评论内容