
發(fā)布
注冊
/
登錄ansys讀入矩陣的案例
如何從Ansys APDL中提取剛度矩陣與質(zhì)量矩陣? ¥69
4.實(shí)戰(zhàn)應(yīng)用與范例講解
接上一個矩陣的例子,其實(shí)際為Ansys中的一個應(yīng)力集中問題模型所導(dǎo)出的剛度矩陣,那么我們?nèi)绾蝸眚?yàn)證其結(jié)果的準(zhǔn)確性呢,這時我們就要用到結(jié)點(diǎn)力矩陣來進(jìn)行驗(yàn)證了,只要所解出來的位移與Ansys中可展示的結(jié)點(diǎn)位移相同,那么就證明我們的結(jié)果是準(zhǔn)確無誤的。
以下我們來進(jìn)行求解,導(dǎo)入結(jié)點(diǎn)力向量矩陣,使用任意求解器來進(jìn)行求解:
此時我們便得到了X向量矩陣,也就是結(jié)點(diǎn)的位移矩陣。由于這里用的是高斯消元法,因此計(jì)算運(yùn)行可能會有些慢。
然后我們打開查看結(jié)果:
與Ansys中List導(dǎo)出的結(jié)點(diǎn)位移結(jié)果一致。結(jié)果正確。
5.代碼購買說明
本源代碼理論上適用于Ansys APDL中導(dǎo)出的各種hb格式矩陣,無任何限制,購買后如有任何問題都可以私信本人進(jìn)行答疑,不僅是此代碼方面,任何有關(guān)有限元軟件學(xué)習(xí)的問題也都可以向我請教,我也會盡我所能去幫助大家。
現(xiàn)在購買代碼限時附贈求解器程序源代碼以及結(jié)點(diǎn)力向量導(dǎo)出與使用方法、有限元理論教程,歡迎大家一起學(xué)習(xí)與討論。
展開 基于 MATLAB 的 ANSYS Harwell-Boeing 格式稀疏矩陣提取工具 —— 剛度矩陣與質(zhì)量矩陣 ¥30
在有限元分析中,ANSYS 可以導(dǎo)出大規(guī)模稀疏矩陣(如剛度矩陣、質(zhì)量矩陣),通常使用 Harwell-Boeing (HB) CCS 格式。這些矩陣對后續(xù)二次開發(fā)、動力學(xué)分析或自定義求解器非常重要,但由于其稀疏和壓縮存儲形式,直接在 MATLAB 中讀取和使用并不方便。
本文提供了 兩個 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中的剛度矩陣和質(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ā)是一個問題。
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)指用矩陣所表示方程的等號右端矢量,這里可為節(jié)點(diǎn)荷載向量),如rhs=YES則輸出,如rhs=NO則不輸出。
模態(tài)分析時,因僅LANB和QR法可生成完整的質(zhì)量矩陣,因此也僅采用這兩種方法時才可使用HBMAT命令得到質(zhì)量矩陣文件。
展開 Ansys Zemax | 如何使用瓊斯矩陣表面
在序列模式下,該模型表示為“瓊斯矩陣”表面;在非序列模式下該模型表示為“瓊斯矩陣”物體。“瓊斯矩陣”根據(jù)下式描述瓊斯向量(表示電場):
其中A, B, C, D均為復(fù)數(shù)。您可以在透鏡數(shù)據(jù)編輯器或非序列元件編輯器中分別輸入這些復(fù)參數(shù)的實(shí)部和虛部。
需要特別注意的是,瓊斯矩陣沒有定義Ez分量。這意味著使用瓊斯矩陣表面或物體的前提假設(shè)是入射光線需垂直于瓊斯矩陣表面,例如將瓊斯矩陣表面放置在平行光束中。該假設(shè)也與大部分實(shí)際應(yīng)用環(huán)境相符:多數(shù)起偏器或波片都是在平行光或發(fā)散角較小的光束中使用的。
如果一束平行光垂直入射至瓊斯矩陣表面,則由于k·E = 0 并且向量k可表示為{0, 0, 1} 因此Ez必須為零,這樣我們就可以只用Ex和Ey分量來描述偏振。如果入射光的方向向量為其他任意值 {l, m, n},則OpticStudio將自動調(diào)整Ez或{Ex, Ey}以使k·E = 0且E的大小不會增加。這個調(diào)整有可能導(dǎo)致E的大小降低,進(jìn)而導(dǎo)致透過能量的降低。
下表為一些典型偏振器件的瓊斯矩陣參數(shù),該表格取自用戶手冊“The Setup Tab”一章:
使用實(shí)例
接下來是使用瓊斯矩陣模擬四分之一波片的實(shí)例。請聯(lián)系工作人員獲取附件。
需要注意的是:瓊斯矩陣表面不使用曲率半徑這一參數(shù),該表面類型總是一個平面。這是因?yàn)樵擃愋捅砻嫱ǔ6际窃诖怪比肷涞钠叫泄庵惺褂谩?em>矩陣的每個參數(shù)可以在透鏡數(shù)據(jù)編輯器中的參數(shù)欄中輸入。
展開 
ANSYS模型剛度、質(zhì)量矩陣快速提取小軟件—km_from_Ansys ¥88
模態(tài)分析完成后,在ansys中運(yùn)行HBMAT命令得到十進(jìn)制文件:
! 獲取矩陣十進(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
運(yùn)行完成后,在根目錄下生成了四個文件,這便是轉(zhuǎn)換完成的十進(jìn)制文件,接著需要做的就是將十進(jìn)制文件轉(zhuǎn)換為矩陣形式,就是通過工具來實(shí)現(xiàn)。
(3). 通過工具實(shí)現(xiàn)提取
A. 打開運(yùn)行工具,在km_from_Ansys程序目錄下,在Matlab命令行輸入km_from_Ansys,是初始界面
B.點(diǎn)擊“剛度文件路徑”后的“獲取路徑按鈕”,找到剛剛生成的十進(jìn)制文件的存儲路徑,選擇剛度十進(jìn)制文件Stiff.txt:
同樣的方法選擇好質(zhì)量矩陣的文件路徑,和Mapping文件路徑(Mapping文件有兩個,選擇任意一個都可以),以及想要把提取完成后的矩陣文件存儲的路徑,全部選擇完成后,點(diǎn)擊“生成文件”。
C. 接著是大約幾秒的工具處理過程,根據(jù)模型大小不同,所需時間不等。處理完成后,根據(jù)提示輸入生成的矩陣文件的存儲文件名,比如“KM”。
,點(diǎn)擊“OK”,完成操作,提示信息為文件的存儲路徑,文件格式為Matlab數(shù)據(jù)文件格式。
D.
展開 Ansys Zemax | 如何使用瓊斯矩陣表面
在序列模式下,該模型表示為“瓊斯矩陣”表面;在非序列模式下該模型表示為“瓊斯矩陣”物體。“瓊斯矩陣”根據(jù)下式描述瓊斯向量(表示電場):
其中A, B, C, D均為復(fù)數(shù)。您可以在透鏡數(shù)據(jù)編輯器或非序列元件編輯器中分別輸入這些復(fù)參數(shù)的實(shí)部和虛部。
需要特別注意的是,瓊斯矩陣沒有定義Ez分量。這意味著使用瓊斯矩陣表面或物體的前提假設(shè)是入射光線需垂直于瓊斯矩陣表面,例如將瓊斯矩陣表面放置在平行光束中。該假設(shè)也與大部分實(shí)際應(yīng)用環(huán)境相符:多數(shù)起偏器或波片都是在平行光或發(fā)散角較小的光束中使用的。
如果一束平行光垂直入射至瓊斯矩陣表面,則由于k·E = 0 并且向量k可表示為{0, 0, 1} 因此Ez必須為零,這樣我們就可以只用Ex和Ey分量來描述偏振。如果入射光的方向向量為其他任意值 {l, m, n},則OpticStudio將自動調(diào)整Ez或{Ex, Ey}以使k·E = 0且E的大小不會增加。這個調(diào)整有可能導(dǎo)致E的大小降低,進(jìn)而導(dǎo)致透過能量的降低。
下表為一些典型偏振器件的瓊斯矩陣參數(shù),該表格取自用戶手冊“The Setup Tab”一章:
使用實(shí)例
接下來是使用瓊斯矩陣模擬四分之一波片的實(shí)例。請聯(lián)系工作人員獲取附件。
需要注意的是:瓊斯矩陣表面不使用曲率半徑這一參數(shù),該表面類型總是一個平面。這是因?yàn)樵擃愋捅砻嫱ǔ6际窃诖怪比肷涞钠叫泄庵惺褂谩?em>矩陣的每個參數(shù)可以在透鏡數(shù)據(jù)編輯器中的參數(shù)欄中輸入。在示例系統(tǒng)中,瓊斯矩陣設(shè)置為X軸方向的四分之一波片:
最簡單直接的觀察瓊斯矩陣表面所產(chǎn)生的影響的方法是使用偏振光瞳圖 (Polarization Pupil Map) 功能。該功能位于分析 (Analysis) 選項(xiàng)卡 > 偏振 (Polarization) 菜單中。
展開 ANSYS中整體、單元剛度和質(zhì)量矩陣的提取
指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
! 這時用編輯器打開cp.out文件,可以看到按單元寫出的質(zhì)量、剛度等矩
陣
ANSYS中整體、單元剛度和質(zhì)量矩陣的提取.rar
ANSYS剛度矩陣的提取與解析(python解析)
就ansys如何提取剛度矩陣、如何解讀提取的文檔以及利用Python進(jìn)行解析。
在workbench中實(shí)現(xiàn)整個過程的參數(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é)到求解一個大型矩陣方程Ax=b,對于一些情況還需要考慮質(zhì)量矩陣M和阻尼矩陣C。有限元程序在組裝完所有單元的剛度矩陣后,考慮模型所施加的約束和載荷,最終將剛度矩陣進(jìn)行一些處理,例如乘大數(shù)法,變成Ax=b的形式,其中A是剛度矩陣,b是節(jié)點(diǎn)載荷,x為待求的節(jié)點(diǎn)位移,A和b全為已知量。
基本上各類有限元軟件均能夠提取模型的剛度矩陣,此次針對剛度矩陣的提取與解析做一個例子,采用的軟件是ANSYS經(jīng)典。
在ANSYS中建立一個簡單的模型,劃分網(wǎng)格后共12個節(jié)點(diǎn),定義材料參數(shù),施加約束和載荷后求解。有限元模型如下所示。
待求解結(jié)束后,會在工作目錄下生成一個后綴為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)表示是否同時輸出右端項(xiàng),也即是Ax=b中的b。
打開生成的剛度矩陣文檔,如下所示。
展開 <手搓有限元 干翻Ansys> 【1】C++實(shí)現(xiàn)矩陣Matrix類 實(shí)現(xiàn)基本運(yùn)算
本系列文章致力于實(shí)現(xiàn)“手搓有限元,干翻Ansys的目標(biāo)”,基本框架為前端顯示使用QT實(shí)現(xiàn)交互,后端計(jì)算采用Visual Studio C++。
Matrix類
矩陣基本類,用于有限元矩陣計(jì)算。
1、public function
1.1、構(gòu)造函數(shù)與析構(gòu)函數(shù)
構(gòu)造函數(shù)用來初始化矩陣,析構(gòu)函數(shù)用來釋放內(nèi)存。
『分享』ANSYS中整體、單元剛度和質(zhì)量矩陣的提取
、整體剛度和質(zhì)量矩陣的提取。
該功能需要進(jìn)行二次開發(fā),由ansys形成
的二進(jìn)制文件.full提取整體剛度和質(zhì)量
矩陣。
基于ansys的一個用戶開發(fā)程序例子編
了一個程序(附件中)。
開發(fā)環(huán)境:compaq fortran 6.5
運(yùn)行環(huán)境:win2000。
一個主文件:self.for,
另一個文件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,, !
展開