
發(fā)布
注冊(cè)
/
登錄ansys 導(dǎo)出剛度矩陣的案例
基于 MATLAB 的 ANSYS Harwell-Boeing 格式稀疏矩陣提取工具 —— 剛度矩陣與質(zhì)量矩陣 ¥30
在有限元分析中,ANSYS 可以導(dǎo)出大規(guī)模稀疏矩陣(如剛度矩陣、質(zhì)量矩陣),通常使用 Harwell-Boeing (HB) CCS 格式。這些矩陣對(duì)后續(xù)二次開發(fā)、動(dòng)力學(xué)分析或自定義求解器非常重要,但由于其稀疏和壓縮存儲(chǔ)形式,直接在 MATLAB 中讀取和使用并不方便。
本文提供了 兩個(gè) MATLAB 函數(shù),可直接從 ANSYS 導(dǎo)出的 HB 矩陣文件中讀取并重構(gòu)成 MATLAB 稀疏矩陣:
1.剛度矩陣提取函數(shù)
輸入:ANSYS 導(dǎo)出的剛度矩陣 HB 文件(stiff.txt)
輸出:MATLAB 稀疏矩陣 K,可直接用于動(dòng)力學(xué)計(jì)算或驗(yàn)證
支持自動(dòng)對(duì)稱化,保證數(shù)值正確
2.質(zhì)量矩陣提取函數(shù)
輸入:ANSYS 導(dǎo)出的質(zhì)量矩陣 HB 文件(mass.txt)
輸出:MATLAB 稀疏矩陣 M
使用與剛度矩陣同樣的解析邏輯,無需額外修改
案例說明:
本文以高速鐵路接觸網(wǎng)結(jié)構(gòu)為例,展示了如何將 ANSYS 中導(dǎo)出的稀疏剛度矩陣和質(zhì)量矩陣,在 MATLAB 中完整展開,并進(jìn)行后續(xù)動(dòng)力學(xué)分析準(zhǔn)備。
通過該方法,可以將大規(guī)模有限元矩陣快速轉(zhuǎn)化為 MATLAB 可操作形式,為自定義振動(dòng)分析、模態(tài)分析及其他科研或工程應(yīng)用提供基礎(chǔ)。
優(yōu)勢(shì)與應(yīng)用:
支持大規(guī)模稀疏矩陣解析
自動(dòng)對(duì)稱化,保證數(shù)值精度
適用于剛度矩陣、質(zhì)量矩陣、其他 HB 格式矩陣
可作為動(dòng)力學(xué)求解器或后處理工具的基礎(chǔ)模塊
使用方法:
1.使用以下代碼對(duì)ansys中生成的質(zhì)量及剛度矩陣進(jìn)行提取,file,5,full(5為工作目錄下full文件的文件名,例如:filename.full)。
展開 TransferMatrix:導(dǎo)出Abaqus剛度矩陣
本期給大家推薦一款由木木自研的小工具:TransferMatrix,主要用于導(dǎo)出 Abaqus 中各種剛度矩陣,方便和自研的程序進(jìn)行實(shí)時(shí)對(duì)比,基于 Pyside6 搭建的軟件界面,用戶僅需導(dǎo)入 inp 文件,就可以自動(dòng)調(diào)用電腦內(nèi)的 Abaqus 進(jìn)行計(jì)算分析,不受限于 Abaqus 版本,可以導(dǎo)出:
單元剛度矩陣
單元質(zhì)量矩陣
單元分布節(jié)點(diǎn)荷載列陣
整體剛度矩陣
整體質(zhì)量矩陣
可選是否導(dǎo)出后打開 Matlab ,并保存為 mat 文件
默認(rèn)保存的格式為 csv,用戶可以直接在TransferMatrix 中查看
可選是否保存整體剛度/質(zhì)量矩陣為稀疏矩陣/全矩陣形式
軟件界面見下圖:
若勾選導(dǎo)出后打開matlab,可直接查看:
軟件實(shí)現(xiàn)原理
使用注意事項(xiàng)
軟件啟動(dòng)速度較慢,需要有點(diǎn)耐心,鄙人對(duì)于 PySide 的打包技術(shù)認(rèn)識(shí)有限
若 inp 文件內(nèi)沒有密度參數(shù),是不能導(dǎo)出質(zhì)量矩陣的,建議在動(dòng)力類型的分析步中進(jìn)行導(dǎo)出質(zhì)量矩陣
非協(xié)調(diào)單元和雜交單元只能輸出質(zhì)量矩陣
在輸出載荷列陣時(shí),Abaqus 產(chǎn)生的是單元節(jié)點(diǎn)的分布載荷,如果沒有這中載荷類型,也是無法導(dǎo)出的
建議再導(dǎo)入 inp 文件之前,確保這個(gè)文件能在 Abaqus 上跑通,本軟件只是負(fù)責(zé)轉(zhuǎn)換剛度矩陣
不支持在TransferMatrix 中查看整體剛度/質(zhì)量矩陣,因?yàn)橐话闱闆r下全局矩陣尺寸很大,可選擇導(dǎo)出至 Matlab 中進(jìn)行查看
如果出現(xiàn)風(fēng)險(xiǎn)提示,請(qǐng)選擇信任:
軟件同級(jí)目錄放置的config.json文件,里面配置的是本地的 abaqus.bat 和 matlab.exe 目錄,建議用 everything 工具搜索出這兩個(gè)的安裝位置,復(fù)制進(jìn)去即可。
展開 ANSYS模型剛度、質(zhì)量矩陣快速提取小軟件—km_from_Ansys ¥88
背景
從事結(jié)構(gòu)振動(dòng)控制、車橋耦合振動(dòng)、結(jié)構(gòu)健康監(jiān)測(cè)傳感器優(yōu)化布置、結(jié)構(gòu)動(dòng)力性能分析等等一系列研究的同仁們應(yīng)該都面臨過一個(gè)同樣的問題—“怎么把結(jié)構(gòu)的剛度和質(zhì)量矩陣建立出來?”。這對(duì)于那些數(shù)值分析高手和專家可能不是什么問題;但是對(duì)于科研剛?cè)腴T的新手來說,這個(gè)難度還是相當(dāng)大的。如果都靠自己寫程序來建立有限元模型,則對(duì)理論基礎(chǔ)、編程水平都有很高的要求,甚至程序做出來也未必能保證其正確性,是一個(gè)很讓人頭疼的問題。
對(duì)于一些簡(jiǎn)單的被動(dòng)控制裝置或簡(jiǎn)單的動(dòng)力學(xué)分析,當(dāng)然也可以在有限元分析軟件中構(gòu)造出裝置組成直接分析(剛度+阻尼類型),但是對(duì)于稍復(fù)雜一些的控制裝置和耦合分析等問題,會(huì)受到平臺(tái)功能上的限值,尤其是對(duì)于主動(dòng)和半主動(dòng)等涉及控制算法的研究來說,基本很難在有限元軟件平臺(tái)上實(shí)現(xiàn)分析。再加上如果需要對(duì)裝置進(jìn)行參數(shù)優(yōu)化,需要進(jìn)行多次重復(fù)計(jì)算,難度就更大。
Ansys、ABAQUS等軟件平臺(tái)給我們提供了比較穩(wěn)定有效的有限元模型建立平臺(tái),通過借助商業(yè)軟件來建立模型,再將其中的剛度、質(zhì)量矩陣導(dǎo)出,是非??扇〉囊环N方法。如果能夠提取出模型的矩陣,明晰計(jì)算原理,就能夠很容易的通過自己的程序設(shè)計(jì)對(duì)計(jì)算過程進(jìn)行補(bǔ)充、調(diào)整,來達(dá)到自己定制的計(jì)算分析目的。其實(shí),不僅對(duì)于振動(dòng)控制,比如結(jié)構(gòu)靜動(dòng)力分析、車橋耦合分析、結(jié)構(gòu)傳感器優(yōu)化配置方案設(shè)計(jì)等,都有應(yīng)用需求。因此,一個(gè)能夠便捷的提取結(jié)構(gòu)矩陣的方法就顯得至關(guān)重要。
技術(shù)鄰平臺(tái)已經(jīng)有大佬提供了ABAQUS軟件剛度和質(zhì)量矩陣的導(dǎo)出方法。這里補(bǔ)充一下在ANSYS中導(dǎo)出質(zhì)量和剛度矩陣的方法和小軟件。
2.
展開 如何從Ansys APDL中提取剛度矩陣與質(zhì)量矩陣? ¥69
1.引論
經(jīng)常使用Ansys、Abaqus等一系列有限元分析軟件進(jìn)行計(jì)算、學(xué)習(xí)的學(xué)生或工程師們都會(huì)知道在有限元分析建模與計(jì)算中剛度矩陣與質(zhì)量矩陣的重要性。但是由于軟件的黑盒性質(zhì),大家往往在實(shí)際使用十分成熟的商業(yè)化軟件的過程中慢慢忽視了有限元及其衍生出的商業(yè)軟件背后的原理與方法。
這時(shí),不管是在學(xué)習(xí)中還是在工程應(yīng)用中往往都會(huì)遇到一個(gè)同樣的問題,那么就是如何將Ansys APDL運(yùn)行中的產(chǎn)生的各種數(shù)據(jù)(例如:剛度矩陣、質(zhì)量矩陣)導(dǎo)出成為我們熟悉的形式或文件格式,從而為我們所用,所分析。
因此我決定寫下此篇文章來幫助很多實(shí)際工作或?qū)W習(xí)中需要用到此類技能的同學(xué)、同事們,讓大家更了解Ansys APDL背后的工作原理與數(shù)據(jù)導(dǎo)出方式。
當(dāng)然,在社區(qū)中早就有大佬回答過了這個(gè)問題,并給大家制作了相應(yīng)的提取矩陣軟件,其軟件具備了簡(jiǎn)單、便捷的操作方式,讓很多想要提取剛度矩陣與質(zhì)量矩陣的同僚們受益,那么我為什么還要寫一篇這樣的文章重新提起這樣一個(gè)話題呢?這就又回到了我開頭所說的“原理與方法”,我在此更希望面對(duì)想要進(jìn)一步學(xué)習(xí)了解軟件背后機(jī)理的群體,并在此基礎(chǔ)上保留教學(xué)的簡(jiǎn)潔性,提供導(dǎo)出矩陣與轉(zhuǎn)換、列式、求解的源代碼,使其既兼顧基本原理,又可以讓大家直接上手使用,非常的便捷,也避免了很多因?yàn)閮?yōu)化不完全導(dǎo)致的運(yùn)行bug。
2.有限元軟件導(dǎo)出剛度矩陣與質(zhì)量矩陣的方法
在使用APDL進(jìn)行求解時(shí),每次在求解完成后都會(huì)在工作路徑下生成一個(gè).full文件,而這個(gè)文件十分關(guān)鍵,其正是剛度矩陣與質(zhì)量矩陣的所在之處。
展開 
提取ANSYS中的剛度矩陣和質(zhì)量矩陣到MATLAB中進(jìn)行二次開發(fā) ¥88
最近在考慮自己編寫的程序和商用軟件的驗(yàn)證問題,有限元結(jié)構(gòu)分析中最關(guān)鍵的一環(huán)就是剛度矩陣的獲得,如果涉及到模態(tài)分析,還有質(zhì)量矩陣??紤]到商業(yè)軟件的成熟性,可以用ANSYS生成的剛度矩陣做參照來看自己編寫的程序是否正確,因此如何提取ANSYS中結(jié)構(gòu)的剛度矩陣,并進(jìn)行隨后的驗(yàn)證或者二次開發(fā)是一個(gè)問題。
https://www.yqgqt.org.cn/content/post/1796144
受上述帖子的啟發(fā),使用MATLAB提取ANSYS中的剛度和質(zhì)量矩陣,并進(jìn)行模態(tài)分析驗(yàn)證提取的矩陣的正確性。
首先,在ANSYS中使用HBMAT命令方法提取整體矩陣。
命令:HBMAT,fname,ext,--,form,matrx,rhs
其中:
Fname---輸出矩陣的路徑和文件名,缺省為當(dāng)前工作路徑和當(dāng)前工作文件名。
ext---輸出矩陣文件的擴(kuò)展名,缺省為.matrix。
form---定義輸出矩陣文件的格式,其值可取:
=ASCII:ASCII碼格式;
=BIN:二進(jìn)制格式。
matrix---定義輸出矩陣的類型,其值可?。?=STIFF:輸出剛度矩陣??捎糜趯懭肓?FULL文件的任何類型的分析。
=MASS:輸出質(zhì)量矩陣??捎糜谔卣髦登?、子結(jié)構(gòu)分析、模態(tài)分析。
=DAMP:輸出阻尼矩陣。僅用于有阻尼的模態(tài)分析。
rhs---右邊項(xiàng)輸出控制(右邊項(xiàng)指用矩陣所表示方程的等號(hào)右端矢量,這里可為節(jié)點(diǎn)荷載向量),如rhs=YES則輸出,如rhs=NO則不輸出。
模態(tài)分析時(shí),因僅LANB和QR法可生成完整的質(zhì)量矩陣,因此也僅采用這兩種方法時(shí)才可使用HBMAT命令得到質(zhì)量矩陣文件。
展開 ANSYS中整體、單元剛度和質(zhì)量矩陣的提取
指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
! 這時(shí)用編輯器打開cp.out文件,可以看到按單元寫出的質(zhì)量、剛度等矩
陣
ANSYS中整體、單元剛度和質(zhì)量矩陣的提取.rar
ANSYS剛度矩陣的提取與解析(python解析)
就ansys如何提取剛度矩陣、如何解讀提取的文檔以及利用Python進(jìn)行解析。
在workbench中實(shí)現(xiàn)整個(gè)過程的參數(shù)化過程除了前幾次文章介紹的模型與網(wǎng)格,還應(yīng)該包括材料參數(shù)的參數(shù)化定義。利用Python進(jìn)行二次開發(fā)能夠?qū)崿F(xiàn)材料參數(shù)的自由定義,比如來源于excel表格或者文檔的數(shù)據(jù),通過Python代碼的自動(dòng)讀取,參與到實(shí)際的有限元分析進(jìn)程中。
結(jié)構(gòu)有限元最后的求解過程總是歸結(jié)到求解一個(gè)大型矩陣方程Ax=b,對(duì)于一些情況還需要考慮質(zhì)量矩陣M和阻尼矩陣C。有限元程序在組裝完所有單元的剛度矩陣后,考慮模型所施加的約束和載荷,最終將剛度矩陣進(jìn)行一些處理,例如乘大數(shù)法,變成Ax=b的形式,其中A是剛度矩陣,b是節(jié)點(diǎn)載荷,x為待求的節(jié)點(diǎn)位移,A和b全為已知量。
基本上各類有限元軟件均能夠提取模型的剛度矩陣,此次針對(duì)剛度矩陣的提取與解析做一個(gè)例子,采用的軟件是ANSYS經(jīng)典。
在ANSYS中建立一個(gè)簡(jiǎn)單的模型,劃分網(wǎng)格后共12個(gè)節(jié)點(diǎn),定義材料參數(shù),施加約束和載荷后求解。有限元模型如下所示。
待求解結(jié)束后,會(huì)在工作目錄下生成一個(gè)后綴為full的文件,之后即可進(jìn)行剛度矩陣的提取。
通過主菜單,如下所示。
選擇Matrix后,彈出如下所示的界面。
其中,F(xiàn)ile to be read需要指定工作目錄下生成的full文件,Name of file to write為所導(dǎo)出剛度矩陣的文件名稱;Output matrix file format表示文件格式,還有Binary,生成的是文檔文件,選擇Ascii即可;Matrix to write表示輸出的是剛度矩陣/質(zhì)量矩陣還是阻尼矩陣;RHS選項(xiàng)表示是否同時(shí)輸出右端項(xiàng),也即是Ax=b中的b。
打開生成的剛度矩陣文檔,如下所示。
展開 『分享』ANSYS中整體、單元剛度和質(zhì)量矩陣的提取
、整體剛度和質(zhì)量矩陣的提取。
該功能需要進(jìn)行二次開發(fā),由ansys形成
的二進(jìn)制文件.full提取整體剛度和質(zhì)量
矩陣。
基于ansys的一個(gè)用戶開發(fā)程序例子編
了一個(gè)程序(附件中)。
開發(fā)環(huán)境:compaq fortran 6.5
運(yùn)行環(huán)境:win2000。
一個(gè)主文件:self.for,
另一個(gè)文件matrixout.f90用于矩陣輸出
binlib.lib為ansys提供的庫(kù)文件,將其
引入項(xiàng)目中(也可直接扔進(jìn)debug目錄)
.full文件由子空間迭代模態(tài)分析獲得。
運(yùn)行編譯后的可執(zhí)行文件.exe
2、單元剛度和質(zhì)量矩陣的提取。
/DEBUG命令。詳細(xì)說明可由以下轉(zhuǎn)載文章
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,, !
展開 平面四邊形四節(jié)點(diǎn)單元計(jì)算程序與ANSYS結(jié)果對(duì)比
為什么要導(dǎo)出單元剛度矩陣
在學(xué)習(xí)有限元方法時(shí),我們會(huì)需要編寫程序計(jì)算結(jié)構(gòu)的單元剛度矩陣。此外,當(dāng)我們需要做有限元軟件二次開發(fā)時(shí),我們也需要驗(yàn)證所做的開發(fā)是否正確。為了驗(yàn)證程序正確性,我們可以從商業(yè)有限元軟件中導(dǎo)出單元剛度矩陣來驗(yàn)證程序的計(jì)算結(jié)果。下面簡(jiǎn)單介紹從ansys軟件中導(dǎo)出平面四邊形四節(jié)點(diǎn)單元的單元剛度矩陣。
平面四邊形四節(jié)點(diǎn)單元示例
如圖所示,計(jì)算這兩個(gè)單元組成單元剛度矩陣,并組裝成整體剛度矩陣,求解各個(gè)節(jié)點(diǎn)的位移。
展開