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,为什
- 下一篇: 怎么串联两个路由器两个路由器如何连接成一