
發布
注冊
/
登錄ansys矩陣節點的案例
如何從Ansys APDL中提取剛度矩陣與質量矩陣? ¥69
4.實戰應用與范例講解
接上一個矩陣的例子,其實際為Ansys中的一個應力集中問題模型所導出的剛度矩陣,那么我們如何來驗證其結果的準確性呢,這時我們就要用到結點力矩陣來進行驗證了,只要所解出來的位移與Ansys中可展示的結點位移相同,那么就證明我們的結果是準確無誤的。
以下我們來進行求解,導入結點力向量矩陣,使用任意求解器來進行求解:
此時我們便得到了X向量矩陣,也就是結點的位移矩陣。由于這里用的是高斯消元法,因此計算運行可能會有些慢。
然后我們打開查看結果:
與Ansys中List導出的結點位移結果一致。結果正確。
5.代碼購買說明
本源代碼理論上適用于Ansys APDL中導出的各種hb格式矩陣,無任何限制,購買后如有任何問題都可以私信本人進行答疑,不僅是此代碼方面,任何有關有限元軟件學習的問題也都可以向我請教,我也會盡我所能去幫助大家。
現在購買代碼限時附贈求解器程序源代碼以及結點力向量導出與使用方法、有限元理論教程,歡迎大家一起學習與討論。
展開 基于 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)。
展開 244 基于matlab的實現四節點板單元剛度矩陣求解 ¥24.9
基于matlab的實現四節點板單元剛度矩陣求解,振動模態分析。可自主輸入材料參數,板單元長寬厚尺寸。輸出振型結果,輸出多少階可自主設置。最后以可視化的形式展示,程序已調通,可直接運行。
從單元連接關系到節點鄰接點-有限元采用稀疏矩陣求解的前置工作
在有限元求解中,最終通常要求解的是一個關于場變量的線性方程組,在常見的位移場有限元中,要求解的是各個節點的位移,該線性方程組的系數矩陣通常稱為剛度矩陣,方程組右邊通常稱為右端項或者荷載向量。一般情況下,由于網格劃分后并不是所有節點都兩兩連接,因此實際上最終形成的整體剛度矩陣中大部分元素為0,這種矩陣稱為稀疏矩陣。在有限元求解中,對于這種系數矩陣為稀疏矩陣的方程組,一種常見的方法是僅保存剛度矩陣的非0元素到內存中,0元素不保存,這樣就可以以更小的內存保存大型結構的剛度矩陣。
那具體矩陣中有多少元素為0,就可以認為其是稀疏矩陣呢?這個界限實際上比較模糊,有文獻給出如下定義:如果矩陣的A的非0元素數量為O(n),其中n是A的階數,則矩陣為稀疏矩陣。
稀疏矩陣經常通過非0元素分布圖表示其稀疏性質,以下是兩個常見的稀疏矩陣的分布圖:
在有限元分析中,非0元素的分布,實際上主要取決于單元的節點連接,以下圖中的單元連接為例:
假設圖中每個節點一個自由度,則整體剛度矩陣為16x16的矩陣,而具體非0元素的分布,可以通過單元連接得到鄰接點得到,所謂鄰接點,指的是相對于當前單元位于同一單元內的所有點的集合。以節點6為例,其鄰接點是1,2,3,5,7,9,10,11。
獲得上述鄰接點后,剛度矩陣中第6行的非0元素的位置實際上就確定了:k(6,1),k(6,2),k(6,3),k(6,5),k(6,6),k(6,7),k(6,9),k(6,10),k(6,11)。
在實際采用稀疏矩陣求解有限元問題時,獲得上述非0元素位置后,就可以對剛度矩陣采用稀疏矩陣存儲,常見的存儲方式有COO,CSR,CSC和DIA等。
展開 
從單元連接關系到節點鄰接點-有限元中形成稀疏矩陣求解的前置工作
在有限元求解中,最終通常要求解的是一個關于場變量的線性方程組,在常見的位移場有限元中,要求解的是各個節點的位移,該線性方程組的系數矩陣通常稱為剛度矩陣,方程組右邊通常稱為右端項或者荷載向量。一般情況下,由于網格劃分后并不是所有節點都兩兩連接,因此實際上最終形成的整體剛度矩陣中大部分元素為0,這種矩陣稱為稀疏矩陣。在有限元求解中,對于這種系數矩陣為稀疏矩陣的方程組,一種常見的方法是僅保存剛度矩陣的非0元素到內存中,0元素不保存,這樣就可以以更小的內存保存大型結構的剛度矩陣。
那具體矩陣中有多少元素為0,就可以認為其是稀疏矩陣呢?這個界限實際上比較模糊,有文獻給出如下定義:如果矩陣的A的非0元素數量為O(n),其中n是A的階數,則矩陣為稀疏矩陣。
稀疏矩陣經常通過非0元素分布圖表示其稀疏性質,以下是兩個常見的稀疏矩陣的分布圖:
在有限元分析中,非0元素的分布,實際上主要取決于單元的節點連接,以下圖中的單元連接為例:
假設圖中每個節點一個自由度,則整體剛度矩陣為16x16的矩陣,而具體非0元素的分布,可以通過單元連接得到鄰接點得到,所謂鄰接點,指的是相對于當前單元位于同一單元內的所有點的集合。以節點6為例,其鄰接點是1,2,3,5,7,9,10,11。
獲得上述鄰接點后,剛度矩陣中第6行的非0元素的位置實際上就確定了:k(6,1),k(6,2),k(6,3),k(6,5),k(6,6),k(6,7),k(6,9),k(6,10),k(6,11)。
在實際采用稀疏矩陣求解有限元問題時,獲得上述非0元素位置后,就可以對剛度矩陣采用稀疏矩陣存儲,常見的存儲方式有COO,CSR,CSC和DIA等。
展開 提取ANSYS中的剛度矩陣和質量矩陣到MATLAB中進行二次開發 ¥88
最近在考慮自己編寫的程序和商用軟件的驗證問題,有限元結構分析中最關鍵的一環就是剛度矩陣的獲得,如果涉及到模態分析,還有質量矩陣。考慮到商業軟件的成熟性,可以用ANSYS生成的剛度矩陣做參照來看自己編寫的程序是否正確,因此如何提取ANSYS中結構的剛度矩陣,并進行隨后的驗證或者二次開發是一個問題。
https://www.yqgqt.org.cn/content/post/1796144
受上述帖子的啟發,使用MATLAB提取ANSYS中的剛度和質量矩陣,并進行模態分析驗證提取的矩陣的正確性。
首先,在ANSYS中使用HBMAT命令方法提取整體矩陣。
命令:HBMAT,fname,ext,--,form,matrx,rhs
其中:
Fname---輸出矩陣的路徑和文件名,缺省為當前工作路徑和當前工作文件名。
ext---輸出矩陣文件的擴展名,缺省為.matrix。
form---定義輸出矩陣文件的格式,其值可取:
=ASCII:ASCII碼格式;
=BIN:二進制格式。
matrix---定義輸出矩陣的類型,其值可取:
=STIFF:輸出剛度矩陣。可用于寫入了.FULL文件的任何類型的分析。
=MASS:輸出質量矩陣。可用于特征值屈曲、子結構分析、模態分析。
=DAMP:輸出阻尼矩陣。僅用于有阻尼的模態分析。
rhs---右邊項輸出控制(右邊項指用矩陣所表示方程的等號右端矢量,這里可為節點荷載向量),如rhs=YES則輸出,如rhs=NO則不輸出。
模態分析時,因僅LANB和QR法可生成完整的質量矩陣,因此也僅采用這兩種方法時才可使用HBMAT命令得到質量矩陣文件。
展開 Ansys Zemax | 如何使用瓊斯矩陣表面
在序列模式下,該模型表示為“瓊斯矩陣”表面;在非序列模式下該模型表示為“瓊斯矩陣”物體。“瓊斯矩陣”根據下式描述瓊斯向量(表示電場):
其中A, B, C, D均為復數。您可以在透鏡數據編輯器或非序列元件編輯器中分別輸入這些復參數的實部和虛部。
需要特別注意的是,瓊斯矩陣沒有定義Ez分量。這意味著使用瓊斯矩陣表面或物體的前提假設是入射光線需垂直于瓊斯矩陣表面,例如將瓊斯矩陣表面放置在平行光束中。該假設也與大部分實際應用環境相符:多數起偏器或波片都是在平行光或發散角較小的光束中使用的。
如果一束平行光垂直入射至瓊斯矩陣表面,則由于k·E = 0 并且向量k可表示為{0, 0, 1} 因此Ez必須為零,這樣我們就可以只用Ex和Ey分量來描述偏振。如果入射光的方向向量為其他任意值 {l, m, n},則OpticStudio將自動調整Ez或{Ex, Ey}以使k·E = 0且E的大小不會增加。這個調整有可能導致E的大小降低,進而導致透過能量的降低。
下表為一些典型偏振器件的瓊斯矩陣參數,該表格取自用戶手冊“The Setup Tab”一章:
使用實例
接下來是使用瓊斯矩陣模擬四分之一波片的實例。請聯系工作人員獲取附件。
需要注意的是:瓊斯矩陣表面不使用曲率半徑這一參數,該表面類型總是一個平面。這是因為該類型表面通常都是在垂直入射的平行光中使用。矩陣的每個參數可以在透鏡數據編輯器中的參數欄中輸入。
展開 ANSYS模型剛度、質量矩陣快速提取小軟件—km_from_Ansys ¥88
提取方法
Ansys中其實提供了幾種單元剛度矩陣和整體剛度矩陣的提取接口,先做一下簡單介紹:
(1)單元剛度矩陣提取,集成整體剛度矩陣
首先選擇要提取的單元,通過/debug命令輸出選擇集中的單元剛度矩陣,再根據結構的單元連接信息,組合成整體剛度矩陣,命令如下:
/OUTPUT,cp,out,, ! 將輸出信息送到cp.out文件
/debug,-1,,,1 ! 指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
感受:這個方法很直接,但稍顯麻煩,需要提取到結構的單元組成信息、節點信息以及單元剛度矩陣等,對于稍大一些結構來說,可能需要1個小時甚至更長時間才能完成。
(2)超單元方法
/solu
antype,7 !substructuring分析類型
seopt,matname,1 !設置文件名稱和剛度矩陣類型(剛度,質量,阻尼等)
nsel,all !選擇所有節點
m,all,all !定義所有節點自由度為主自由度
solve !求解
selist,matname,3 !列出整體剛度矩陣
這種方法是可以提取到結構整體剛度矩陣的,但是問題在于需要指定主自由度,對于一般結構而言,這個方法還是適用的,問題是如果結構中存在耦合關系,結構自由度存在依賴關系,該方法就不太適用了,可能還有其他解決辦法,但是我后來還是放棄這種方法。
(3)HBMAT命令方法提取整體矩陣
這種方法的適用性比較廣,也是個人比較推崇的一種方法。
展開 Ansys Zemax | 如何使用瓊斯矩陣表面
在序列模式下,該模型表示為“瓊斯矩陣”表面;在非序列模式下該模型表示為“瓊斯矩陣”物體。“瓊斯矩陣”根據下式描述瓊斯向量(表示電場):
其中A, B, C, D均為復數。您可以在透鏡數據編輯器或非序列元件編輯器中分別輸入這些復參數的實部和虛部。
需要特別注意的是,瓊斯矩陣沒有定義Ez分量。這意味著使用瓊斯矩陣表面或物體的前提假設是入射光線需垂直于瓊斯矩陣表面,例如將瓊斯矩陣表面放置在平行光束中。該假設也與大部分實際應用環境相符:多數起偏器或波片都是在平行光或發散角較小的光束中使用的。
如果一束平行光垂直入射至瓊斯矩陣表面,則由于k·E = 0 并且向量k可表示為{0, 0, 1} 因此Ez必須為零,這樣我們就可以只用Ex和Ey分量來描述偏振。如果入射光的方向向量為其他任意值 {l, m, n},則OpticStudio將自動調整Ez或{Ex, Ey}以使k·E = 0且E的大小不會增加。這個調整有可能導致E的大小降低,進而導致透過能量的降低。
下表為一些典型偏振器件的瓊斯矩陣參數,該表格取自用戶手冊“The Setup Tab”一章:
使用實例
接下來是使用瓊斯矩陣模擬四分之一波片的實例。請聯系工作人員獲取附件。
需要注意的是:瓊斯矩陣表面不使用曲率半徑這一參數,該表面類型總是一個平面。這是因為該類型表面通常都是在垂直入射的平行光中使用。矩陣的每個參數可以在透鏡數據編輯器中的參數欄中輸入。在示例系統中,瓊斯矩陣設置為X軸方向的四分之一波片:
最簡單直接的觀察瓊斯矩陣表面所產生的影響的方法是使用偏振光瞳圖 (Polarization Pupil Map) 功能。該功能位于分析 (Analysis) 選項卡 > 偏振 (Polarization) 菜單中。
展開 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> 【1】C++實現矩陣Matrix類 實現基本運算
本系列文章致力于實現“手搓有限元,干翻Ansys的目標”,基本框架為前端顯示使用QT實現交互,后端計算采用Visual Studio C++。
Matrix類
矩陣基本類,用于有限元矩陣計算。
1、public function
1.1、構造函數與析構函數
構造函數用來初始化矩陣,析構函數用來釋放內存。
ANSYS中單元解、節點解以及節點單元解的概念解析
最近在準備初級教程后處理的教程,其中有講到對ANSYS結果解的理解,恰巧也有朋友咨詢水哥怎么去理解ANSYS中的這三個解,今日水哥就簡單談下本人的理解,當然僅限個人理解,有誤之處懇請大家指正。
我們知道,在常見的后處理中,結果查看主要分三個方面:一、節點位移解;二、單元解;三、節點單元解。
那么這三個解相互之間的關系是什么呢?誰的準確性更高呢?
要理清三者之間的關系,首先我們談談有限元分析的基本思路。有限元分析時,將一個我們所謂的“相當大的”結構劃分為有限個單元,單元之間通過節點相連,計算中,假定每個單元的變形和應力都是相對簡單的,并且可以通過計算機求解出來,最后在將單元結果按照一定的規律組合成整個結構的求解結果。
在這分離-結合的過程中,出現了兩個關鍵詞,節點和單元。從數學角度上來講,單元也即是一個個矩陣,通過具有一定自由度的節點相互連接,進而形成總的矩陣。有限元求解也即是求解大家最為熟悉的如下方程:
【K】【x】=【F】
其中【K】是剛度矩陣,【x】是節點自由度矩陣,【F】是外部邊界條件矩陣。
因而,整個結構最先出現的求解結果便是 節點位移解,也可以稱之為原始解,是最為精確的解。
有了節點位移解后,就可以派生出其他解了,因而單元解也可以稱之為派生解,它是通過單元的形函數推導過來,具體過程這里就不細說,但這就產生了一個問題,相信細心的朋友會有所發現,就是單元應力應變解在公共節點上并不連續,在單元邊界上產生了不連續的等值線。
展開 ANSYS中單元解、節點解以及節點單元解該怎么理解
總結起來,三個解的概念如下:
節點解:節點位移解,原始解,最為精確的解;
單元解:單元的應力應變,派生解,通過節點解推導得到;
節點單元解:節點的應力應變,派生解的平均化顯示。
來源:ANSYS學習與應用
『分享』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,, !
展開