
發(fā)布
注冊
/
登錄剛度矩陣提取的案例
不同軟件中剛度矩陣提取方法 ¥3
Workbench中剛度矩陣提取方法
Abaqus剛度矩陣提取方法
Optistruct中剛度矩陣提取方法
基于 MATLAB 的 ANSYS Harwell-Boeing 格式稀疏矩陣提取工具 —— 剛度矩陣與質(zhì)量矩陣 ¥30
在有限元分析中,ANSYS 可以導(dǎo)出大規(guī)模稀疏矩陣(如剛度矩陣、質(zhì)量矩陣),通常使用 Harwell-Boeing (HB) CCS 格式。這些矩陣對后續(xù)二次開發(fā)、動力學(xué)分析或自定義求解器非常重要,但由于其稀疏和壓縮存儲形式,直接在 MATLAB 中讀取和使用并不方便。
本文提供了 兩個(gè) MATLAB 函數(shù),可直接從 ANSYS 導(dǎo)出的 HB 矩陣文件中讀取并重構(gòu)成 MATLAB 稀疏矩陣:
1.剛度矩陣提取函數(shù)
輸入:ANSYS 導(dǎo)出的剛度矩陣 HB 文件(stiff.txt)
輸出:MATLAB 稀疏矩陣 K,可直接用于動力學(xué)計(jì)算或驗(yàn)證
支持自動對稱化,保證數(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ù)動力學(xué)分析準(zhǔn)備。
通過該方法,可以將大規(guī)模有限元矩陣快速轉(zhuǎn)化為 MATLAB 可操作形式,為自定義振動分析、模態(tài)分析及其他科研或工程應(yīng)用提供基礎(chǔ)。
優(yōu)勢與應(yīng)用:
支持大規(guī)模稀疏矩陣解析
自動對稱化,保證數(shù)值精度
適用于剛度矩陣、質(zhì)量矩陣、其他 HB 格式矩陣
可作為動力學(xué)求解器或后處理工具的基礎(chǔ)模塊
使用方法:
1.使用以下代碼對ansys中生成的質(zhì)量及剛度矩陣進(jìn)行提取,file,5,full(5為工作目錄下full文件的文件名,例如:filename.full)。
展開 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代碼的自動讀取,參與到實(shí)際的有限元分析進(jìn)程中。
結(jié)構(gòu)有限元最后的求解過程總是歸結(jié)到求解一個(gè)大型矩陣方程Ax=b,對于一些情況還需要考慮質(zhì)量矩陣M和阻尼矩陣C。有限元程序在組裝完所有單元的剛度矩陣后,考慮模型所施加的約束和載荷,最終將剛度矩陣進(jìn)行一些處理,例如乘大數(shù)法,變成Ax=b的形式,其中A是剛度矩陣,b是節(jié)點(diǎn)載荷,x為待求的節(jié)點(diǎn)位移,A和b全為已知量。
基本上各類有限元軟件均能夠提取模型的剛度矩陣,此次針對剛度矩陣的提取與解析做一個(gè)例子,采用的軟件是ANSYS經(jīng)典。
在ANSYS中建立一個(gè)簡單的模型,劃分網(wǎng)格后共12個(gè)節(jié)點(diǎn),定義材料參數(shù),施加約束和載荷后求解。有限元模型如下所示。
待求解結(jié)束后,會在工作目錄下生成一個(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ì)量矩陣的提取
指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
! 這時(shí)用編輯器打開cp.out文件,可以看到按單元寫出的質(zhì)量、剛度等矩
陣
ANSYS中整體、單元剛度和質(zhì)量矩陣的提取.rar

如何從Ansys APDL中提取剛度矩陣與質(zhì)量矩陣? ¥69
其可以直接導(dǎo)出full文件中的矩陣數(shù)據(jù),而通過我下面給大家提供的源代碼便可以直接將導(dǎo)出的質(zhì)量矩陣與剛度矩陣直接轉(zhuǎn)化為matlab中可使用變量,實(shí)現(xiàn)我們的矩陣提取操作。
Hbmat法:
! 提取剛度矩陣
/AUX2
FILE,'file',full ! 將’file’改為自己路徑下的.full文件名
HBMAT, 'Stiffness_mat', dat, , ASCII, STIFF, YES, YES !剛度矩陣
HBMAT, 'Mass_mat', dat, ,ASCII, MASS, YES, YES ! 質(zhì)量矩陣
FINISH
成功導(dǎo)出后你會在你的工作路徑中看到儲存在Ansys中的剛度矩陣與質(zhì)量矩陣。
2.2GUI方法
目前大部分此類教程都忽略了最基本的GUI方法,可能是自動帶入了經(jīng)驗(yàn)豐富的工程師角色,但對于初學(xué)者而言,GUI方法十分有助于理解與學(xué)習(xí)有限元軟件,因此我也將介紹提取剛度質(zhì)量矩陣的GUI方法。
從而我們便能導(dǎo)出所需要的剛度矩陣與質(zhì)量矩陣源文件了。
3.源代碼的使用與轉(zhuǎn)換(使用方法)
我們打開所導(dǎo)出剛度矩陣會發(fā)現(xiàn)里面的數(shù)字比較混亂,一時(shí)間分不出哪些是我們需要的數(shù)據(jù),也沒有辦法直接拿它用來計(jì)算,這時(shí),我們便需要使用我們自己的矩陣轉(zhuǎn)換m文件,其可以自動幫我們提取出剛度矩陣與質(zhì)量矩陣,并生成matlab中的矩陣變量形式,我們可以直接運(yùn)用這段源代碼來進(jìn)行操作。
展開 ANSYS模型剛度、質(zhì)量矩陣快速提取小軟件—km_from_Ansys ¥88
提取方法
Ansys中其實(shí)提供了幾種單元剛度矩陣和整體剛度矩陣的提取接口,先做一下簡單介紹:
(1)單元剛度矩陣提取,集成整體剛度矩陣
首先選擇要提取的單元,通過/debug命令輸出選擇集中的單元剛度矩陣,再根據(jù)結(jié)構(gòu)的單元連接信息,組合成整體剛度矩陣,命令如下:
/OUTPUT,cp,out,, ! 將輸出信息送到cp.out文件
/debug,-1,,,1 ! 指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
感受:這個(gè)方法很直接,但稍顯麻煩,需要提取到結(jié)構(gòu)的單元組成信息、節(jié)點(diǎn)信息以及單元剛度矩陣等,對于稍大一些結(jié)構(gòu)來說,可能需要1個(gè)小時(shí)甚至更長時(shí)間才能完成。
(2)超單元方法
/solu
antype,7 !substructuring分析類型
seopt,matname,1 !設(shè)置文件名稱和剛度矩陣類型(剛度,質(zhì)量,阻尼等)
nsel,all !選擇所有節(jié)點(diǎn)
m,all,all !定義所有節(jié)點(diǎn)自由度為主自由度
solve !求解
selist,matname,3 !列出整體剛度矩陣
這種方法是可以提取到結(jié)構(gòu)整體剛度矩陣的,但是問題在于需要指定主自由度,對于一般結(jié)構(gòu)而言,這個(gè)方法還是適用的,問題是如果結(jié)構(gòu)中存在耦合關(guān)系,結(jié)構(gòu)自由度存在依賴關(guān)系,該方法就不太適用了,可能還有其他解決辦法,但是我后來還是放棄這種方法。
(3)HBMAT命令方法提取整體矩陣
這種方法的適用性比較廣,也是個(gè)人比較推崇的一種方法。
展開 『分享』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提供的庫文件,將其
引入項(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,, !
展開 提取ANSYS中的剛度矩陣和質(zhì)量矩陣到MATLAB中進(jìn)行二次開發(fā) ¥88
獲取矩陣十進(jìn)制文件
/aux2
file,Frame,full !與文件名一致
hbmat,Stiff,txt,,ascii,stiffness,yes,yes !提取剛度矩陣 存儲為Stiff.txt
hbmat,Mass,txt,,ascii,mass,yes,yes !提取質(zhì)量矩陣 存儲為Mass.txt
Finish
提取其前10階模態(tài)如下:
通過MATLAB對文件提取并處理后,可以使用spy命令查看稀疏矩陣的分布,剛度矩陣分布和各變量維度如下:
稀疏剛度矩陣的具體分布如下:
稀疏質(zhì)量矩陣的具體分布如下:
計(jì)算矩陣的特征值,利用提取的剛度矩陣和質(zhì)量矩陣做模態(tài)分析。
與ANSYS中的結(jié)果一致,因此驗(yàn)證了正確性。
在Stiff.mapping文件中,格式是這樣的:
在MATLAB中使用相同的方法提取并整理,如下:
展開 提取整體剛度矩陣、質(zhì)量矩陣及阻尼矩陣的三種方法
指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
! 這時(shí)用編輯器打開cp.out文件,可以看到按單元寫出的質(zhì)量、剛度等矩陣
3.
其原理很簡單,即使用ansys的超單元即可解決問題。定義超單元,然后列出超單元的剛度矩陣即可。
面是一個(gè)小例題,自可明白。
/prep7
k,1
k,2,3000
l,1,2
et,1,beam3
mp,ex,1,2e5
mp,prxy,1,0.3
r,1,5000,2e7,200
lesize,all,,,10
lmesh,all
finish
!----以上正常建立模型,不必施加約束和荷載
/solu
antype,7 !substructuring分析類型
seopt,matname,1 !設(shè)置文件名稱和剛度矩陣類型(剛度,質(zhì)量,阻尼等)
nsel,all !選擇所有節(jié)點(diǎn)
m,all,all !定義所有節(jié)點(diǎn)自由度為主自由度
solve !求解
selist,matname,3 !列出整體剛度矩陣
展開 ?abaqus提取單元的剛度矩陣和質(zhì)量矩陣
abaqus提取單元的剛度矩陣和質(zhì)量矩陣:
*Output, history, variable=PRESELECT,
*File Format,ASCII
*Element Matrix Output,Elset=Beam-1.Set-2,
File Name=shuchu,Frequency=1,Output File=User Defined,Stiffness=Yes
*End Step
*Step
*Matrix generate,stiffness
*End Step
nastran 中如何輸出質(zhì)量矩陣和剛度矩陣
我記得在patran 中輸出的bdf文件中輸入一條命令,運(yùn)行一下就可以了。但是記不得了。請教高手,先謝謝了。

MSC Nastran模型剛度矩陣和質(zhì)量矩陣的輸出方法
1 概述
MSC Nastran模型的剛度矩陣和質(zhì)量矩陣,可以輸出為文本文件。工程實(shí)際中,工程師可以校核、集成矩陣,進(jìn)行第二次開發(fā),完成商用軟件和自研程序的完美集成。例如:工程師有一個(gè)計(jì)算線性動力學(xué)方程組的瞬態(tài)python程序,可以集成MSC Nastran的剛度矩陣和質(zhì)量矩陣。
2 剛度矩陣和質(zhì)量矩陣的輸出方法
1) 剛度矩陣和質(zhì)量矩陣輸出至punch(.pch)文件
如果需要在其他MSC Nastran計(jì)算中,重用MSC Nastran模型的矩陣,可以將MSC Nastran矩陣輸出至Punch文件,方法為:
l 在MSC Nastran卡片中,添加參數(shù):PARAM,EXTOUT,DMIGPCH
注:Punch文件中的矩陣,Patran不支持
2) 剛度矩陣和質(zhì)量矩陣輸出至f06(.f06)文件
如果想直接在f06中查看輸出的矩陣,可以使用如下方法:
l 在執(zhí)行控制部分(CEND前),添加如下卡片:
COMPILE EXTOUT $
ALTER 'RETURN'(,-1) $
MATPRN KAA,,,,// $
MATPRN MAA,,,,// $
l 添加如下參數(shù)(BEGIN BULK),例如:PARAM,EXTOUT,DMIGPCH
實(shí)例:
輸入文件:
剛度矩陣
質(zhì)量矩陣
3 參考信息
適用版本:MSC Nastran 2005及以后版本。
展開 Abaqus一鍵輸出剛度矩陣和質(zhì)量矩陣的插件EMM ¥20
=======概述=======
EMM(Export Matlab Matrix)是集成在ABAQUS/CAE中的一個(gè)插件,能夠一鍵輸出Abaqus模型的單元及全局剛度、質(zhì)量、載荷矩陣,并自動轉(zhuǎn)換為MATLAB矩陣。
Abaqus可以輸出剛度、質(zhì)量等單元或者全局矩陣。但需要手動添加關(guān)鍵詞,較為麻煩,且輸出的.mtx矩陣格式比較亂,不易閱讀。
本工具能一鍵實(shí)現(xiàn)以下功能:
1. 輸出Abaqus模型的剛度、質(zhì)量、載荷矩陣到.mtx,包括單元和全局的;
2. 將上述矩陣轉(zhuǎn)換為MATLAB的.mat文件;
3. 用Matlab打開上述.mat文件。
如果用戶有任何問題或者需要合作,歡迎聯(lián)系我們。email: SnowWave02@qq.com
=======使用過程=======
打開Abaqus模型,切換到Job模塊,在Abaqus菜單欄的Plug-ins里看到iSolver插件的菜單。
點(diǎn)擊iSolver->Export Matlab Matrix…,彈出EMM界面。
勾選需要輸出的矩陣和Set,點(diǎn)擊EMM界面右側(cè)的Submit后將提交Abaqus計(jì)算,計(jì)算完畢得到如下類似矩陣。
=====演示視頻======
http://www.yqgqt.org.cn/college/video/c11343
=====下載======
用到的模型
Job-Cabin-T.rar
用戶手冊
Export Matlab Matrix工具說明(SnowWave02 20191217).pdf
EMM插件
展開 x.y MSC Nastran模型剛度矩陣和質(zhì)量矩陣的輸出方法
1 概述
MSC Nastran模型的剛度矩陣和質(zhì)量矩陣,可以輸出為文本文件。工程實(shí)際中,工程師可以校核、集成矩陣,進(jìn)行第二次開發(fā),完成商用軟件和自研程序的完美集成。例如:工程師有一個(gè)計(jì)算線性動力學(xué)方程組的瞬態(tài)python程序,可以集成MSC Nastran的剛度矩陣和質(zhì)量矩陣。
2 剛度矩陣和質(zhì)量矩陣的輸出方法
1) 剛度矩陣和質(zhì)量矩陣輸出至punch(.pch)文件
如果需要在其他MSC Nastran計(jì)算中,重用MSC Nastran模型的矩陣,可以將MSC Nastran矩陣輸出至Punch文件,方法為:
l 在MSC Nastran卡片中,添加參數(shù):PARAM,EXTOUT,DMIGPCH
注:Punch文件中的矩陣,Patran不支持
2) 剛度矩陣和質(zhì)量矩陣輸出至f06(.f06)文件
如果想直接在f06中查看輸出的矩陣,可以使用如下方法:
l 在執(zhí)行控制部分(CEND前),添加如下卡片:
COMPILE EXTOUT $
ALTER 'RETURN'(,-1) $
MATPRN KAA,,,,// $
MATPRN MAA,,,,// $
l 添加如下參數(shù)(BEGIN BULK),例如:PARAM,EXTOUT,DMIGPCH
實(shí)例:
輸入文件:
剛度矩陣
質(zhì)量矩陣
3 參考信息
適用版本:MSC Nastran 2005及以后版本。
展開 單元剛度矩陣
由(27a)式定義的單元剛度矩陣,由于應(yīng)變B對于3結(jié)點(diǎn)三角形單元是常量陣,因此有
代入彈性矩陣D和應(yīng)變矩陣B后,它的任一分塊矩陣可表示成
由(34)式立即可以得到
由此可見單元剛度矩陣是對稱矩陣。
為了進(jìn)一步理解單元剛度矩陣的物理意義,我們同樣可以利用最小位能原理建立一
個(gè)單元的平衡,這就得到
Pe是單元結(jié)點(diǎn)載荷,當(dāng)然應(yīng)當(dāng)包括其它相鄰單元對該單元的作用力。現(xiàn)把a(bǔ)e、Pe順序表示為
這是單元結(jié)點(diǎn)平衡方程,每個(gè)結(jié)點(diǎn)在x和y方向上各有一個(gè)平衡方程,3個(gè)結(jié)點(diǎn)共有六個(gè)平衡方程。方程左端是通過單元結(jié)點(diǎn)位移表示的單元結(jié)點(diǎn)內(nèi)力,方程右端是單元結(jié)點(diǎn)外載。
令a1=1(ui=1),a2=a3=…=a6=0
由(38)式可以得到
(39)式表明,單元剛度矩陣第一列元素的物理意義是:a1=1。其他結(jié)點(diǎn)位移都為零時(shí),需要在單元各結(jié)點(diǎn)位移方向上施加結(jié)點(diǎn)力的大小。當(dāng)然,單元在這些結(jié)點(diǎn)力作用下處于平衡,因此在x和y 方向上結(jié)點(diǎn)力之和為零:
對于單元剛度矩陣中其他列的元素也可用同樣的方法得到它們的物理解釋。因此單元剛度矩陣中任一元素Kij物理意義為:當(dāng)單元的第j個(gè)結(jié)點(diǎn)位移為單位位移而其他結(jié)點(diǎn)位移為零時(shí),需在單元第j個(gè)結(jié)點(diǎn)位移方向上施加的結(jié)點(diǎn)力的大小。單元剛性大,則使結(jié)點(diǎn)產(chǎn)生單位位移所需施加的結(jié)點(diǎn)力就大。因此單元剛度矩陣中的每個(gè)元素反映了單元剛性的大小,稱為剛度系數(shù)。
展開