
發布
注冊
/
登錄矩陣的案例
如何從Ansys APDL中提取剛度矩陣與質量矩陣? ¥69
其可以直接導出full文件中的矩陣數據,而通過我下面給大家提供的源代碼便可以直接將導出的質量矩陣與剛度矩陣直接轉化為matlab中可使用變量,實現我們的矩陣提取操作。
Hbmat法:
! 提取剛度矩陣
/AUX2
FILE,'file',full ! 將’file’改為自己路徑下的.full文件名
HBMAT, 'Stiffness_mat', dat, , ASCII, STIFF, YES, YES !剛度矩陣
HBMAT, 'Mass_mat', dat, ,ASCII, MASS, YES, YES ! 質量矩陣
FINISH
成功導出后你會在你的工作路徑中看到儲存在Ansys中的剛度矩陣與質量矩陣。
2.2GUI方法
目前大部分此類教程都忽略了最基本的GUI方法,可能是自動帶入了經驗豐富的工程師角色,但對于初學者而言,GUI方法十分有助于理解與學習有限元軟件,因此我也將介紹提取剛度質量矩陣的GUI方法。
從而我們便能導出所需要的剛度矩陣與質量矩陣源文件了。
3.源代碼的使用與轉換(使用方法)
我們打開所導出剛度矩陣會發現里面的數字比較混亂,一時間分不出哪些是我們需要的數據,也沒有辦法直接拿它用來計算,這時,我們便需要使用我們自己的矩陣轉換m文件,其可以自動幫我們提取出剛度矩陣與質量矩陣,并生成matlab中的矩陣變量形式,我們可以直接運用這段源代碼來進行操作。
展開 基于 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)。
展開 MSC Nastran模型剛度矩陣和質量矩陣的輸出方法
1 概述
MSC Nastran模型的剛度矩陣和質量矩陣,可以輸出為文本文件。工程實際中,工程師可以校核、集成矩陣,進行第二次開發,完成商用軟件和自研程序的完美集成。例如:工程師有一個計算線性動力學方程組的瞬態python程序,可以集成MSC Nastran的剛度矩陣和質量矩陣。
2 剛度矩陣和質量矩陣的輸出方法
1) 剛度矩陣和質量矩陣輸出至punch(.pch)文件
如果需要在其他MSC Nastran計算中,重用MSC Nastran模型的矩陣,可以將MSC Nastran矩陣輸出至Punch文件,方法為:
l 在MSC Nastran卡片中,添加參數:PARAM,EXTOUT,DMIGPCH
注:Punch文件中的矩陣,Patran不支持
2) 剛度矩陣和質量矩陣輸出至f06(.f06)文件
如果想直接在f06中查看輸出的矩陣,可以使用如下方法:
l 在執行控制部分(CEND前),添加如下卡片:
COMPILE EXTOUT $
ALTER 'RETURN'(,-1) $
MATPRN KAA,,,,// $
MATPRN MAA,,,,// $
l 添加如下參數(BEGIN BULK),例如:PARAM,EXTOUT,DMIGPCH
實例:
輸入文件:
剛度矩陣
質量矩陣
3 參考信息
適用版本:MSC Nastran 2005及以后版本。
展開 提取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個字符可取:S---對稱矩陣、U---不對稱矩陣、H---Hermitian矩陣、Z---病態對稱矩陣;R---帶狀矩陣;第3個字符可取:A---組裝的矩陣、E---單元矩陣(未組裝)。
展開 
提取整體剛度矩陣、質量矩陣及阻尼矩陣的三種方法
指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
! 這時用編輯器打開cp.out文件,可以看到按單元寫出的質量、剛度等矩陣
3.
其原理很簡單,即使用ansys的超單元即可解決問題。定義超單元,然后列出超單元的剛度矩陣即可。
面是一個小例題,自可明白。
/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 !設置文件名稱和剛度矩陣類型(剛度,質量,阻尼等)
nsel,all !選擇所有節點
m,all,all !定義所有節點自由度為主自由度
solve !求解
selist,matname,3 !列出整體剛度矩陣
展開 x.y MSC Nastran模型剛度矩陣和質量矩陣的輸出方法
1 概述
MSC Nastran模型的剛度矩陣和質量矩陣,可以輸出為文本文件。工程實際中,工程師可以校核、集成矩陣,進行第二次開發,完成商用軟件和自研程序的完美集成。例如:工程師有一個計算線性動力學方程組的瞬態python程序,可以集成MSC Nastran的剛度矩陣和質量矩陣。
2 剛度矩陣和質量矩陣的輸出方法
1) 剛度矩陣和質量矩陣輸出至punch(.pch)文件
如果需要在其他MSC Nastran計算中,重用MSC Nastran模型的矩陣,可以將MSC Nastran矩陣輸出至Punch文件,方法為:
l 在MSC Nastran卡片中,添加參數:PARAM,EXTOUT,DMIGPCH
注:Punch文件中的矩陣,Patran不支持
2) 剛度矩陣和質量矩陣輸出至f06(.f06)文件
如果想直接在f06中查看輸出的矩陣,可以使用如下方法:
l 在執行控制部分(CEND前),添加如下卡片:
COMPILE EXTOUT $
ALTER 'RETURN'(,-1) $
MATPRN KAA,,,,// $
MATPRN MAA,,,,// $
l 添加如下參數(BEGIN BULK),例如:PARAM,EXTOUT,DMIGPCH
實例:
輸入文件:
剛度矩陣
質量矩陣
3 參考信息
適用版本:MSC Nastran 2005及以后版本。
展開 關于 Hessian 矩陣、凸性和優化
條件 Hij=Hji 適用于任意階的所有 Hessian 矩陣,其中 i 和 j 分別表示行號和列號。每當方陣中的元素滿足條件 Hij=Hji 時,它就形成對稱矩陣。從目前的討論可以得出,Hessian矩陣是滿足對稱條件的方陣。因此所有 Hessian 矩陣都是對稱矩陣。
Hessian 矩陣與 Jacobian 矩陣
Hessian 矩陣由函數所依賴的所有變量對形成的二階偏導數組成。雅可比矩陣也是基于函數偏微分的矩陣,但是是一階偏導數。下面給出函數的雅可比矩陣。
雅可比矩陣可用于確定函數的可逆性。當雅可比矩陣的行列式不為零時,可以對矩陣求逆。如果雅可比矩陣的行列式等于0,則函數可以求逆,也可以不求逆。
借助雅可比矩陣,可以計算多變量函數中的臨界點。然而,要將臨界點分類為最小值、最大值和鞍點,需要 Hessian 矩陣。讓我們看看 Hessian 矩陣如何幫助找到最大值和最小值。
最小值、最大值和鞍點
雅可比矩陣給出函數的梯度。當函數 f 在某個點 x 的梯度為零時,該函數在 x 處具有臨界點。為了確定臨界點是局部最小值、最大值還是鞍點,可以利用 Hessian 矩陣。
如果 Hessian 矩陣是正定的,則臨界點對應于函數的局部最小值。如果 Hessian 矩陣是負定的,則臨界點對應于函數的局部最大值。
如果 Hessian 矩陣不定,則臨界點對應于鞍點。類似地,Hessian 矩陣可用于識別函數的凸性和凹性。
使用 Hessian 矩陣確定函數的凸性
對于二階導數連續的函數f,可以利用Hessian矩陣來確定其凸凹性。如果 Hessian 矩陣在集合 A 上的所有點都是半正定的,則該函數在集合 A 上是凸的。如果 Hessian 矩陣在集合 A 上的所有點都是正定的,則該函數是嚴格凸的。
展開 Python方程組獲取雅克比矩陣和海塞矩陣
但是,如果你想硬剛,自己去實現這些東西的話你就需要造很多的輪子,這里給出一個可以根據你輸入的代數方程組獲取雅克比矩陣和海塞矩陣的函數,并且我還特地將他做成了一個類哦,你可以直接進行實例化然后調用,非常方便,而且我還給出了測試函數。特別適合想硬剛底層算法的鐵子。
Abaqus一鍵輸出剛度矩陣和質量矩陣的插件EMM ¥20
=======概述=======
EMM(Export Matlab Matrix)是集成在ABAQUS/CAE中的一個插件,能夠一鍵輸出Abaqus模型的單元及全局剛度、質量、載荷矩陣,并自動轉換為MATLAB矩陣。
Abaqus可以輸出剛度、質量等單元或者全局矩陣。但需要手動添加關鍵詞,較為麻煩,且輸出的.mtx矩陣格式比較亂,不易閱讀。
本工具能一鍵實現以下功能:
1. 輸出Abaqus模型的剛度、質量、載荷矩陣到.mtx,包括單元和全局的;
2. 將上述矩陣轉換為MATLAB的.mat文件;
3. 用Matlab打開上述.mat文件。
如果用戶有任何問題或者需要合作,歡迎聯系我們。email: SnowWave02@qq.com
=======使用過程=======
打開Abaqus模型,切換到Job模塊,在Abaqus菜單欄的Plug-ins里看到iSolver插件的菜單。
點擊iSolver->Export Matlab Matrix…,彈出EMM界面。
勾選需要輸出的矩陣和Set,點擊EMM界面右側的Submit后將提交Abaqus計算,計算完畢得到如下類似矩陣。
=====演示視頻======
http://www.yqgqt.org.cn/college/video/c11343
=====下載======
用到的模型
Job-Cabin-T.rar
用戶手冊
Export Matlab Matrix工具說明(SnowWave02 20191217).pdf
EMM插件
展開 Cadence CFD學習:Hessian 矩陣凹性檢驗
Hessian 矩陣凹性檢驗
如果函數的 Hessian 矩陣是半正定的,則該函數是凸函數。當 Hessian 矩陣為正定時,該函數是嚴格凸的。要測試函數的凹性,請計算 Hessian 矩陣并證明它是負半定的。當 Hessian 矩陣為負定時,該函數是嚴格凹的。在工程中的任何優化問題中,凹性和凸性都非常重要,因為測試凹性或凸性有助于確定解決方案是全局的還是局部的。
檢查給定點的上凹或下凹
Hessian矩陣的凹性和行列式是相關的。如果 Hessian 矩陣在給定點的行列式小于零,則函數在該點的凹性不一致。
例如,考慮一個二變量函數 f(x)。計算函數 f(x) 在 (x o , y o ) 處的 Hessian 矩陣的行列式。如果行列式小于零,則函數在點 (x o , y o ) 處的凹性不一致。函數為凹函數的必要條件是函數的 Hessian 矩陣的行列式應大于零。凹性的性質可以從矩陣的元素來識別。
Hessian 矩陣可以寫成如下:
如果 Hessian 矩陣的行列式在 (xo, yo) 處大于零并且
如果 f xx (x o , y o ) > 0,則函數f在 (x o , y o )處為上凹函數。
如果 f xx (x o , y o ) < 0,則函數f在 (x o , y o ) 處下凹。
Hessian 矩陣如何支持工程系統的優化過程
在優化和逼近過程中,凹性的知識很重要,因為它表示函數的變化率(導數)。在大多數工程優化問題中,確定可行解涉及確定導數函數的性質。例如,在局部線性逼近中,可以利用二階導數信息來改進逼近。
考慮兩個變量 x 和 y 的函數 f。在計算Hessian矩陣時,我們得到一個具有四個二階導數的2×2矩陣。
展開 CFD學習:如何計算標量值函數的 Hessian 矩陣
在 Hessian 矩陣中,每個元素都是一個函數,并且在某個點計算相同的值,例如 (x 0 .y 0 ,...)。
對于點 (x 0 .y 0 ,...),前面提到的 Hessian 矩陣泛化可以重寫為以下矩陣,假設標量場中存在 Hf (x 0 .y 0 ,...):
如何計算 Hessian 矩陣
考慮一個可微函數 f:R n →R。該函數的 Hessian 矩陣可以按照下面給出的步驟計算。
取函數 f 的梯度。設函數的梯度為 ▽f : R n →R
由一階偏導數形成的矩陣稱為雅可比矩陣或梯度矩陣。我們假設給定函數存在所有偏導數。
取矩陣 ▽f 的梯度或導數。得到的結果是n階方陣,構成f的Hessian矩陣。
給定點(x 0 .y 0 ,...)處的Hessian矩陣可以通過代入Hessian矩陣的元素中的值來計算。
示例:計算 Hessian 矩陣
例如,我們計算 Hessian 矩陣:
步驟 1:計算一階偏導數。
步驟 2:計算二階偏導數。
函數的 Hessian 矩陣為:
步驟 3:計算 (x,y)=(1,2) 處的 Hessian 矩陣
Hessian 矩陣對于優化至關重要
在優化問題中,我們計算 Hessian 矩陣以獲得臨界點,例如感興趣的多變量函數的最大值/最小值。在工程中,Hessian 矩陣對于圖像處理、計算機視覺和光譜中的頻率計算等至關重要。大多數優化算法都會計算 Hessian 矩陣。
Cadence CFD 工具可以幫助您解決高度復雜的工程系統中的優化問題。
展開 
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”一章:
使用實例
接下來是使用瓊斯矩陣模擬四分之一波片的實例。請聯系工作人員獲取附件。
需要注意的是:瓊斯矩陣表面不使用曲率半徑這一參數,該表面類型總是一個平面。這是因為該類型表面通常都是在垂直入射的平行光中使用。矩陣的每個參數可以在透鏡數據編輯器中的參數欄中輸入。
展開 單元剛度矩陣
由(27a)式定義的單元剛度矩陣,由于應變B對于3結點三角形單元是常量陣,因此有
代入彈性矩陣D和應變矩陣B后,它的任一分塊矩陣可表示成
由(34)式立即可以得到
由此可見單元剛度矩陣是對稱矩陣。
為了進一步理解單元剛度矩陣的物理意義,我們同樣可以利用最小位能原理建立一
個單元的平衡,這就得到
Pe是單元結點載荷,當然應當包括其它相鄰單元對該單元的作用力。現把ae、Pe順序表示為
這是單元結點平衡方程,每個結點在x和y方向上各有一個平衡方程,3個結點共有六個平衡方程。方程左端是通過單元結點位移表示的單元結點內力,方程右端是單元結點外載。
令a1=1(ui=1),a2=a3=…=a6=0
由(38)式可以得到
(39)式表明,單元剛度矩陣第一列元素的物理意義是:a1=1。其他結點位移都為零時,需要在單元各結點位移方向上施加結點力的大小。當然,單元在這些結點力作用下處于平衡,因此在x和y 方向上結點力之和為零:
對于單元剛度矩陣中其他列的元素也可用同樣的方法得到它們的物理解釋。因此單元剛度矩陣中任一元素Kij物理意義為:當單元的第j個結點位移為單位位移而其他結點位移為零時,需在單元第j個結點位移方向上施加的結點力的大小。單元剛性大,則使結點產生單位位移所需施加的結點力就大。因此單元剛度矩陣中的每個元素反映了單元剛性的大小,稱為剛度系數。
展開 <手搓有限元 干翻Ansys> 【1】C++實現矩陣Matrix類 實現基本運算
Matrix類
矩陣基本類,用于有限元矩陣計算。
1、public function
1.1、構造函數與析構函數
構造函數用來初始化矩陣,析構函數用來釋放內存。
讀《理解矩陣》的一點心得及整理歸類
矩陣的相似變換可以把一個比較丑的矩陣變成一個比較美的矩陣,而保證這兩個矩陣都是描述了同一個線性變換。矩陣的初等變換可以保證變換前后的兩個矩陣是描述同一個線性變換的。當然,同一個線性變換的不同矩陣描述,從實際運算性質來看并不是不分好環的。有些描述矩陣就比其他的矩陣性質好得多。
深入學習:矩陣不僅可以作為線性變換的描述,而且可以作為一組基的描述。而作為變換的矩陣,不但可以把線性空間中的一個點給變換到另一個點去,而且也能夠把線性空間中的一個坐標系(基)表換到另一個坐標系(基)。
展開