
發布
注冊
/
登錄ansys剛度矩陣組裝的案例
如何從Ansys APDL中提取剛度矩陣與質量矩陣? ¥69
1.引論
經常使用Ansys、Abaqus等一系列有限元分析軟件進行計算、學習的學生或工程師們都會知道在有限元分析建模與計算中剛度矩陣與質量矩陣的重要性。但是由于軟件的黑盒性質,大家往往在實際使用十分成熟的商業化軟件的過程中慢慢忽視了有限元及其衍生出的商業軟件背后的原理與方法。
這時,不管是在學習中還是在工程應用中往往都會遇到一個同樣的問題,那么就是如何將Ansys APDL運行中的產生的各種數據(例如:剛度矩陣、質量矩陣)導出成為我們熟悉的形式或文件格式,從而為我們所用,所分析。
因此我決定寫下此篇文章來幫助很多實際工作或學習中需要用到此類技能的同學、同事們,讓大家更了解Ansys APDL背后的工作原理與數據導出方式。
當然,在社區中早就有大佬回答過了這個問題,并給大家制作了相應的提取矩陣軟件,其軟件具備了簡單、便捷的操作方式,讓很多想要提取剛度矩陣與質量矩陣的同僚們受益,那么我為什么還要寫一篇這樣的文章重新提起這樣一個話題呢?這就又回到了我開頭所說的“原理與方法”,我在此更希望面對想要進一步學習了解軟件背后機理的群體,并在此基礎上保留教學的簡潔性,提供導出矩陣與轉換、列式、求解的源代碼,使其既兼顧基本原理,又可以讓大家直接上手使用,非常的便捷,也避免了很多因為優化不完全導致的運行bug。
2.有限元軟件導出剛度矩陣與質量矩陣的方法
在使用APDL進行求解時,每次在求解完成后都會在工作路徑下生成一個.full文件,而這個文件十分關鍵,其正是剛度矩陣與質量矩陣的所在之處。
展開 基于 MATLAB 的 ANSYS Harwell-Boeing 格式稀疏矩陣提取工具 —— 剛度矩陣與質量矩陣 ¥30
在有限元分析中,ANSYS 可以導出大規模稀疏矩陣(如剛度矩陣、質量矩陣),通常使用 Harwell-Boeing (HB) CCS 格式。這些矩陣對后續二次開發、動力學分析或自定義求解器非常重要,但由于其稀疏和壓縮存儲形式,直接在 MATLAB 中讀取和使用并不方便。
本文提供了 兩個 MATLAB 函數,可直接從 ANSYS 導出的 HB 矩陣文件中讀取并重構成 MATLAB 稀疏矩陣:
1.剛度矩陣提取函數
輸入:ANSYS 導出的剛度矩陣 HB 文件(stiff.txt)
輸出:MATLAB 稀疏矩陣 K,可直接用于動力學計算或驗證
支持自動對稱化,保證數值正確
2.質量矩陣提取函數
輸入:ANSYS 導出的質量矩陣 HB 文件(mass.txt)
輸出:MATLAB 稀疏矩陣 M
使用與剛度矩陣同樣的解析邏輯,無需額外修改
案例說明:
本文以高速鐵路接觸網結構為例,展示了如何將 ANSYS 中導出的稀疏剛度矩陣和質量矩陣,在 MATLAB 中完整展開,并進行后續動力學分析準備。
通過該方法,可以將大規模有限元矩陣快速轉化為 MATLAB 可操作形式,為自定義振動分析、模態分析及其他科研或工程應用提供基礎。
優勢與應用:
支持大規模稀疏矩陣解析
自動對稱化,保證數值精度
適用于剛度矩陣、質量矩陣、其他 HB 格式矩陣
可作為動力學求解器或后處理工具的基礎模塊
使用方法:
1.使用以下代碼對ansys中生成的質量及剛度矩陣進行提取,file,5,full(5為工作目錄下full文件的文件名,例如:filename.full)。
展開 提取ANSYS中的剛度矩陣和質量矩陣到MATLAB中進行二次開發 ¥88
這個是Ansys幫助文件中對HBMAT命令的解釋,在Ansys分析中,會在根目錄下形成.full的二進制文件,里面存儲的就是已經組合好的剛度和質量矩陣,只是是以二進制文件的形式存在,通過HBMAT命令可以將二進制文件轉換為可以使用的十進制文件,十進制文件是以txt的形式存放在根目錄下。
ANSYS中根據Harwell-Boeing文件格式存儲剛度矩陣,如圖所示:
文件基本格式是前面有4或5行描述數據,其后為單列矩陣元素值,說明如下:
第1行:格式(A72),為文件頭的字符型解釋,如剛度矩陣或質量矩陣等標題。
第2行:格式(5I14),分別表示該文件的總行數(不包括文件頭)、矩陣列指針的總行數、矩陣行索引的總行數、矩陣元素數值的總行數、右邊項總行數。
第3行:格式(A3,11X,4I14),分別為矩陣類型、矩陣行數、矩陣列數、矩陣行索引數(對組裝后的矩陣,該值等于矩陣行索引數)、單元元素數(對組裝后的矩陣此值為0)。
第4行:格式(2A16,2A20),分別表示列指針格式、行索引格式、系數矩陣數值格式、右邊項數值格式。
第5行:格式(A3,11X,2I14),A3各列分別表示右邊項格式、應用高斯起始矢量、應用eXact求解矢量;兩個整數分別表示右邊項列數、行索引數。三個字符中的第1個字符可取:F---全部存貯(如節點荷載向量的全部元素)、M---與系數矩陣相同方法。
第6行后:矩陣元素值(單列)。
矩陣類型用3個字符表示,第1個字符可取:R---實數矩陣、C---復數矩陣、P---僅矩陣結構(無元素數值);第2個字符可?。篠---對稱矩陣、U---不對稱矩陣、H---Hermitian矩陣、Z---病態對稱矩陣;R---帶狀矩陣;第3個字符可?。篈---組裝的矩陣、E---單元矩陣(未組裝)。
展開 ANSYS模型剛度、質量矩陣快速提取小軟件—km_from_Ansys ¥88
這是因為,Ansys中的矩陣文件是以稀疏矩陣的形式存儲的,得到的十進制文件,只是給出了矩陣中元素對應的位置和值,我們需要對這一串數字進行整理才能得到原始的矩陣形式。這就需要明確十進制文件中數字的排列規律。
文件基本格式是前面有4或5行描述數據,其后為單列矩陣元素值,說明如下:
第1行:格式(A72),為文件頭的字符型解釋,如剛度矩陣或質量矩陣等標題。
第2行:格式(5I14),分別表示該文件的總行數(不包括文件頭)、矩陣列指針的總行數、矩陣行索引的總行數、矩陣元素數值的總行數、右邊項總行數。
第3行:格式(A3,11X,4I14),分別為矩陣類型、矩陣行數、矩陣列數、矩陣行索引數(對組裝后的矩陣,該值等于矩陣行索引數)、單元元素數(對組裝后的矩陣此值為0)。
第4行:格式(2A16,2A20),分別表示列指針格式、行索引格式、系數矩陣數值格式、右邊項數值格式。
第5行:格式(A3,11X,2I14),A3各列分別表示右邊項格式、應用高斯起始矢量、應用eXact求解矢量;兩個整數分別表示右邊項列數、行索引數。三個字符中的第1個字符可?。篎---全部存貯(如節點荷載向量的全部元素)、M---與系數矩陣相同方法。
第6行后:矩陣元素值(單列)。
矩陣類型用3個字符表示,第1個字符可取:R---實數矩陣、C---復數矩陣、P---僅矩陣結構(無元素數值);第2個字符可?。篠---對稱矩陣、U---不對稱矩陣、H---Hermitian矩陣、Z---病態對稱矩陣;R---帶狀矩陣;第3個字符可取:A---組裝的矩陣、E---單元矩陣(未組裝)。
展開 
ANSYS中整體、單元剛度和質量矩陣的提取
指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
! 這時用編輯器打開cp.out文件,可以看到按單元寫出的質量、剛度等矩
陣
ANSYS中整體、單元剛度和質量矩陣的提取.rar
ANSYS剛度矩陣的提取與解析(python解析)
就ansys如何提取剛度矩陣、如何解讀提取的文檔以及利用Python進行解析。
在workbench中實現整個過程的參數化過程除了前幾次文章介紹的模型與網格,還應該包括材料參數的參數化定義。利用Python進行二次開發能夠實現材料參數的自由定義,比如來源于excel表格或者文檔的數據,通過Python代碼的自動讀取,參與到實際的有限元分析進程中。
結構有限元最后的求解過程總是歸結到求解一個大型矩陣方程Ax=b,對于一些情況還需要考慮質量矩陣M和阻尼矩陣C。有限元程序在組裝完所有單元的剛度矩陣后,考慮模型所施加的約束和載荷,最終將剛度矩陣進行一些處理,例如乘大數法,變成Ax=b的形式,其中A是剛度矩陣,b是節點載荷,x為待求的節點位移,A和b全為已知量。
基本上各類有限元軟件均能夠提取模型的剛度矩陣,此次針對剛度矩陣的提取與解析做一個例子,采用的軟件是ANSYS經典。
在ANSYS中建立一個簡單的模型,劃分網格后共12個節點,定義材料參數,施加約束和載荷后求解。有限元模型如下所示。
待求解結束后,會在工作目錄下生成一個后綴為full的文件,之后即可進行剛度矩陣的提取。
通過主菜單,如下所示。
選擇Matrix后,彈出如下所示的界面。
其中,File to be read需要指定工作目錄下生成的full文件,Name of file to write為所導出剛度矩陣的文件名稱;Output matrix file format表示文件格式,還有Binary,生成的是文檔文件,選擇Ascii即可;Matrix to write表示輸出的是剛度矩陣/質量矩陣還是阻尼矩陣;RHS選項表示是否同時輸出右端項,也即是Ax=b中的b。
打開生成的剛度矩陣文檔,如下所示。
展開 『分享』ANSYS中整體、單元剛度和質量矩陣的提取
、整體剛度和質量矩陣的提取。
該功能需要進行二次開發,由ansys形成
的二進制文件.full提取整體剛度和質量
矩陣。
基于ansys的一個用戶開發程序例子編
了一個程序(附件中)。
開發環境:compaq fortran 6.5
運行環境:win2000。
一個主文件:self.for,
另一個文件matrixout.f90用于矩陣輸出
binlib.lib為ansys提供的庫文件,將其
引入項目中(也可直接扔進debug目錄)
.full文件由子空間迭代模態分析獲得。
運行編譯后的可執行文件.exe
2、單元剛度和質量矩陣的提取。
/DEBUG命令。詳細說明可由以下轉載文章
finish
/clear
PI=3.1415926
w1=3
w2=10
w3=6
w4=1.2
r=.8
t=0.08
/PREP7
!*
ET,1,SHELL63
R,1,t
ET,2,MASS21
R,2,500,500,500,2000,2000,2000,
!*
UIMP,1,EX, , ,2e11
UIMP,1,NUXY, , ,0.3,
UIMP,1,DAMP, , ,0.2,
UIMP,1,DENS, , ,7800,
BLC4,0,0,w2,w1
ESIZE,1.5,0,
AMESH,all
NSEL,S,LOC,X,0.0
D,all, , , , , ,ALL, , , , ,
allsel,all
SFA,all,1,PRES,12
FINISH
/OUTPUT,cp,out,, !
展開