matlab中矩阵怎么敲_Ansys刚度(质量、阻尼)矩阵的提取(part 1)
在做数值计算分析中要验证正确性,刚度、质量和阻尼矩阵是有限元分析最终最重要的3个矩阵。本文只针对刚度矩阵,不过我认为质量和阻尼矩阵应该是同理。
王新敏老师的《ansys工程结构数值分析》中有具体的提取刚度矩阵的内容,书中P356页6.3.4节。
我采用的是python语言读取file.full文件内容,参考下面的连接
ANSYS刚度矩阵的提取与解析_长安CAE_新浪博客blog.sina.com.cn连接中的程序是可以运行的,就是在前面读取和输出文件的部分需要加点内容,可能是python的版本不同的原因,我的版本是python3.8
下面给出一个模型的提取结果,刚度矩阵是去除约束剩余的
采用的solid185单元,一面上的四个节点约束后刚度矩阵大小为12*12。
红框中的数值是矩阵对角线上的元素在矩阵具体数值(绿框)中的位置。蓝框中的数值是矩阵行数。
用Fortran语言进行编制后得到的文件如下,前面可以看到行列是如何进行循环的。
----------------------------------跟着教程走的部分基本完成-------------------------------
--------------------------------------下面为我自己的感悟----------------------------------
毕竟我是要做数值计算重点就是获得刚度矩阵,因此Matlab编程将上面获得的outmatrix在进一步处理,得到矩阵形式的刚度矩阵(对称矩阵)。
做到这里突然感到真的有点麻烦那,首先要ansys模拟,然后输出matrix矩阵,然后启动python,每次可能还得改一下文件打开的位置,然后得到的outmatrix还要去matlab处理。
所以可以证明我真是闲的冒泡呀,干嘛就非要学人家的python那,这么简单的语句放着matlab不用干嘛那。于是乎下面一段可能很傻但是基本简化了这些步骤为两步的伟大程序诞生了。
主程序和一个调用的程序就是这样的
llk需要手动输入为矩阵的大小,刚度矩阵是对称矩阵,lkk就是行或者列的值。function中的数据就是把matrix里的具体值直接拷贝进去就可以。获得的刚度矩阵如图
---------------------如果有人需要这段程序,还懒得敲,可以问我要-------------------------
该程序目前存在问题只适用于行号按顺序排列的情况,下面这种行号就不适用了,后续会补充完全适用的程序
总结
以上是生活随笔为你收集整理的matlab中矩阵怎么敲_Ansys刚度(质量、阻尼)矩阵的提取(part 1)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 图标出问题_同是Office365,为什
- 下一篇: 高斯噪声调频matlab,基于MATLA