
發(fā)布
注冊(cè)
/
登錄ansys矩陣函數(shù)的案例
CFD學(xué)習(xí):如何計(jì)算標(biāo)量值函數(shù)的 Hessian 矩陣
要點(diǎn)
Hessian 矩陣是由多元函數(shù)的所有二階導(dǎo)數(shù)組成的矩陣。
當(dāng)計(jì)算 n 變量函數(shù)時(shí),Hessian 矩陣是一個(gè) n 階對(duì)稱方陣。
在優(yōu)化問題中,計(jì)算 Hessian 矩陣以獲得臨界點(diǎn),例如感興趣的多變量函數(shù)的最大值/最小值。
數(shù)學(xué)建模廣泛應(yīng)用于工程和技術(shù)系統(tǒng)中,因?yàn)樗刮覀兡軌蛴脭?shù)學(xué)術(shù)語描述現(xiàn)實(shí)生活中的問題。使用各種算法求解數(shù)學(xué)表達(dá)式和函數(shù),并對(duì)解決方案進(jìn)行優(yōu)化以獲得更好的結(jié)果。優(yōu)化在基于數(shù)學(xué)模型解決工程問題中發(fā)揮著重要作用。獲得的解決方案應(yīng)滿足約束條件并產(chǎn)生最大的輸出和效率。
在優(yōu)化過程中,大多數(shù)方法都會(huì)計(jì)算Hessian矩陣。Hessian 矩陣是達(dá)到以數(shù)學(xué)函數(shù)表示的系統(tǒng)全局最優(yōu)值的一種方法。讓我們探討一下 Hessian 矩陣以及如何計(jì)算它。
什么是 Hessian 矩陣?
多變量函數(shù)在描述工程系統(tǒng)的數(shù)學(xué)模型中很常見。從多變量函數(shù)的二階導(dǎo)數(shù),可以了解函數(shù)的二階行為。二階導(dǎo)數(shù)在多變量函數(shù)中很重要,因?yàn)樗鼈冇兄诖_定優(yōu)化中的關(guān)鍵點(diǎn)。
通常,計(jì)算Hessian 矩陣是為了了解依賴于多個(gè)值的函數(shù)的行為。Hessian 矩陣是由多元函數(shù)的所有二階導(dǎo)數(shù)組成的矩陣。對(duì)于 n 個(gè)變量的函數(shù),Hessian 矩陣是一個(gè) nxn 方陣。由于微分的階數(shù)不會(huì)帶來導(dǎo)數(shù)的變化,因此Hessian矩陣服從對(duì)稱性條件。當(dāng)計(jì)算 n 變量函數(shù)時(shí),Hessian 矩陣是一個(gè) n 階對(duì)稱方陣。下面給出了廣義 Hessian 矩陣 (Hf)。
Hessian 矩陣和標(biāo)量值函數(shù)
函數(shù)將單個(gè)數(shù)字與每個(gè)點(diǎn)相關(guān)聯(lián)的物理空間形成標(biāo)量場。標(biāo)量值函數(shù)可能采用多個(gè)輸入值,但始終返回單個(gè)值。當(dāng)標(biāo)量函數(shù)依賴于多個(gè)值時(shí),它形成多變量函數(shù)。Hessian 矩陣的計(jì)算僅對(duì)標(biāo)量值函數(shù)有意義。
展開 如何從Ansys APDL中提取剛度矩陣與質(zhì)量矩陣? ¥69
4.實(shí)戰(zhàn)應(yīng)用與范例講解
接上一個(gè)矩陣的例子,其實(shí)際為Ansys中的一個(gè)應(yīng)力集中問題模型所導(dǎo)出的剛度矩陣,那么我們?nèi)绾蝸眚?yàn)證其結(jié)果的準(zhǔn)確性呢,這時(shí)我們就要用到結(jié)點(diǎn)力矩陣來進(jìn)行驗(yàn)證了,只要所解出來的位移與Ansys中可展示的結(jié)點(diǎn)位移相同,那么就證明我們的結(jié)果是準(zhǔn)確無誤的。
以下我們來進(jìn)行求解,導(dǎo)入結(jié)點(diǎn)力向量矩陣,使用任意求解器來進(jìn)行求解:
此時(shí)我們便得到了X向量矩陣,也就是結(jié)點(diǎn)的位移矩陣。由于這里用的是高斯消元法,因此計(jì)算運(yùn)行可能會(huì)有些慢。
然后我們打開查看結(jié)果:
與Ansys中List導(dǎo)出的結(jié)點(diǎn)位移結(jié)果一致。結(jié)果正確。
5.代碼購買說明
本源代碼理論上適用于Ansys APDL中導(dǎo)出的各種hb格式矩陣,無任何限制,購買后如有任何問題都可以私信本人進(jìn)行答疑,不僅是此代碼方面,任何有關(guān)有限元軟件學(xué)習(xí)的問題也都可以向我請(qǐng)教,我也會(huì)盡我所能去幫助大家。
現(xiàn)在購買代碼限時(shí)附贈(zèng)求解器程序源代碼以及結(jié)點(diǎn)力向量導(dǎo)出與使用方法、有限元理論教程,歡迎大家一起學(xué)習(xí)與討論。
展開 基于 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)。
展開 提取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ì)量矩陣文件。
展開 
從形函數(shù)與函數(shù)的連續(xù)可導(dǎo)性到ansys結(jié)果中的節(jié)點(diǎn)解與單元解的差異
如題,《從形函數(shù)與函數(shù)的連續(xù)可導(dǎo)性到ansys結(jié)果中的節(jié)點(diǎn)解與單元解的差異》,形函數(shù)對(duì)結(jié)果的影響大部分人都能聯(lián)想到二次單元比線性單元求得的結(jié)果更精確,但該文要表達(dá)的不僅如此,而是從更一般地討論怎么從單元的形函數(shù)來理解節(jié)點(diǎn)解與單元解之間的差異。
首先討論單元的階次。作為基礎(chǔ)我們應(yīng)該明白網(wǎng)格與單元的區(qū)別,網(wǎng)格是將幾何體離散化后的結(jié)構(gòu),即組成幾何體的微元,單元是這些微元的幾何、物理或數(shù)學(xué)屬性(這里我們并不打算詳細(xì)討論單元的這些屬性,但是這些知識(shí)會(huì)方便對(duì)本文的理解)。我們經(jīng)常在使用ansys或其他CAE軟件時(shí)經(jīng)常會(huì)遇到單元的選擇以及單元階次的選擇,一般一種單元包括線性單元和二次單元甚至更高級(jí)的單元,比如在ansys中經(jīng)常被使用的shell181(左)和shell281(右),線性單元使用的形函數(shù)是一次的多項(xiàng)式,高次單元使用的形函數(shù)是高次的多項(xiàng)式,形函數(shù)用于描述相鄰節(jié)點(diǎn)之間的位移場,所以高次的單元可以更好的描述形狀復(fù)雜的幾何體。
不同于常規(guī)材料力學(xué)中通過平衡方程求解(首先求得的解是力解),有限元方式求解的特點(diǎn)是首先求解出的結(jié)果是節(jié)點(diǎn)的位移解,即displacement of nodes,所有的節(jié)點(diǎn)位移形成了位移場,在空間上位移場一定是連續(xù)的,但是不一定是平滑的。哎哎,是不是特別熟悉的感覺,正是和高數(shù)中函數(shù)的連續(xù)性和可導(dǎo)性兩個(gè)性質(zhì)非常相似,不用奇怪,位移場本來就是用函數(shù)描述的,所以自然就存在函數(shù)的性質(zhì),所以用函數(shù)的性質(zhì)來理解就可以方便解釋一些現(xiàn)象了,下圖分別是用兩種形函數(shù)描述的位移場,在有限元求解后得到的首先是節(jié)點(diǎn)位移解,即圖中5個(gè)節(jié)點(diǎn)的位移,假如每個(gè)節(jié)點(diǎn)的位移用坐標(biāo)x\y\z的函數(shù)來表示,然后通過形函數(shù)插值得到相鄰節(jié)點(diǎn)之間的位移(也是xyz的函數(shù)),上圖是用一次形函數(shù)插值,下圖是用二次形函數(shù)插值。
展開 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將自動(dòng)調(diào)整Ez或{Ex, Ey}以使k·E = 0且E的大小不會(huì)增加。這個(gè)調(diào)整有可能導(dǎo)致E的大小降低,進(jìn)而導(dǎo)致透過能量的降低。
下表為一些典型偏振器件的瓊斯矩陣參數(shù),該表格取自用戶手冊(cè)“The Setup Tab”一章:
使用實(shí)例
接下來是使用瓊斯矩陣模擬四分之一波片的實(shí)例。請(qǐng)聯(lián)系工作人員獲取附件。
需要注意的是:瓊斯矩陣表面不使用曲率半徑這一參數(shù),該表面類型總是一個(gè)平面。這是因?yàn)樵擃愋捅砻嫱ǔ6际窃诖怪比肷涞钠叫泄庵惺褂谩?em>矩陣的每個(gè)參數(shù)可以在透鏡數(shù)據(jù)編輯器中的參數(shù)欄中輸入。
展開 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將自動(dòng)調(diào)整Ez或{Ex, Ey}以使k·E = 0且E的大小不會(huì)增加。這個(gè)調(diào)整有可能導(dǎo)致E的大小降低,進(jìn)而導(dǎo)致透過能量的降低。
下表為一些典型偏振器件的瓊斯矩陣參數(shù),該表格取自用戶手冊(cè)“The Setup Tab”一章:
使用實(shí)例
接下來是使用瓊斯矩陣模擬四分之一波片的實(shí)例。請(qǐng)聯(lián)系工作人員獲取附件。
需要注意的是:瓊斯矩陣表面不使用曲率半徑這一參數(shù),該表面類型總是一個(gè)平面。這是因?yàn)樵擃愋捅砻嫱ǔ6际窃诖怪比肷涞钠叫泄庵惺褂谩?em>矩陣的每個(gè)參數(shù)可以在透鏡數(shù)據(jù)編輯器中的參數(shù)欄中輸入。在示例系統(tǒng)中,瓊斯矩陣設(shè)置為X軸方向的四分之一波片:
最簡單直接的觀察瓊斯矩陣表面所產(chǎn)生的影響的方法是使用偏振光瞳圖 (Polarization Pupil Map) 功能。該功能位于分析 (Analysis) 選項(xiàng)卡 > 偏振 (Polarization) 菜單中。
展開 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 !!!!!!!!!!!!!!!!!!!!!!! 提取剛度矩陣 存儲(chǔ)為Stiff.txt
hbmat,Mass,txt,,ascii,mass,yes,yes !!!!!!!!!!!!!!!!!!!!!!! 提取質(zhì)量矩陣 存儲(chǔ)為Mass.txt
Finish
運(yùn)行完成后,在根目錄下生成了四個(gè)文件,這便是轉(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)制文件的存儲(chǔ)路徑,選擇剛度十進(jìn)制文件Stiff.txt:
同樣的方法選擇好質(zhì)量矩陣的文件路徑,和Mapping文件路徑(Mapping文件有兩個(gè),選擇任意一個(gè)都可以),以及想要把提取完成后的矩陣文件存儲(chǔ)的路徑,全部選擇完成后,點(diǎn)擊“生成文件”。
C. 接著是大約幾秒的工具處理過程,根據(jù)模型大小不同,所需時(shí)間不等。處理完成后,根據(jù)提示輸入生成的矩陣文件的存儲(chǔ)文件名,比如“KM”。
,點(diǎn)擊“OK”,完成操作,提示信息為文件的存儲(chǔ)路徑,文件格式為Matlab數(shù)據(jù)文件格式。
D.
展開 ANSYS中整體、單元?jiǎng)偠群唾|(zhì)量矩陣的提取
指定輸出單元矩陣
/SOLU
SOLVE
finish
/OUTPUT, TERM ! 將輸出信息送到output windows中
! 這時(shí)用編輯器打開cp.out文件,可以看到按單元寫出的質(zhì)量、剛度等矩
陣
ANSYS中整體、單元?jiǎng)偠群唾|(zhì)量矩陣的提取.rar
<手搓有限元 干翻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 內(nèi)部函數(shù)
VLNEXT(N)
Next higher volume number above N in selected set (or zero if none
found).
30.距離函數(shù)
DISTND(N1,N2) Distance between nodes N1 and N2.
DISTKP(K1,K2) Distance between keypoints K1 and K2.
DISTEN(E,N) Distance between the centroid of element E and node N.
Centroid is determined from the selected nodes on the element.
31.角度函數(shù) (缺省單位為弧度,單位變換用 *AFUN 命令)
ANGLEN(N1,N2,N3) Subtended angle between two lines (defined by
three nodes where N1 is the vertex node). Default is in
radians.
ANGLEK(K1,K2,K3) Subtended angle between two lines (defined by
three keypoints where K1 is the vertex keypoint). Default is in
radians.
32.最近實(shí)體函數(shù)
NNEAR(N) Selected node nearest node N.
KNEAR(K) Selected keypoint nearest keypoint K.
ENEARN(N) Selected element nearest node N.
展開 
ansys的取值函數(shù)
有關(guān)實(shí)體狀態(tài)的取值函數(shù)
NSEL(N)
ESEL(E)
KSEL(K)
LSEL(L)
ASEL(A)
VSEL(V)
表示某個(gè)實(shí)體狀態(tài),其返回值-1,沒有選中,0,沒有定義,1,被選中
有關(guān)下一個(gè)被選實(shí)體的取值函數(shù)
NDNEXT(N)
ELNEXT(E)
KPNEXT(K)
LSNEXT(L)
ARNEXT(A)
VLNEXT(V)
表示編號(hào)大于N,E,K,L,A,V的下一個(gè)被選實(shí)體
有關(guān)實(shí)體位置的取值函數(shù)
CENTRX(E)
CENTRY(E)
CENTRZ(E)
單元E在中心位置的X,Y,Z的坐標(biāo)系(直角坐標(biāo)系),有所選的節(jié)點(diǎn)決定
NX(N)
NY(N)
NZ(N)
KX(K)
KY(K)
KZ(K)
節(jié)點(diǎn)N或關(guān)鍵點(diǎn)K在激活坐標(biāo)系中X,Y,Z的坐標(biāo)值
LX(L,LFRAC)
LY(L,LFRAC)
LZ(L,LFRAC)
線段L在長度比率為LFRAC(0~1)時(shí)的X,Y,Z的坐標(biāo)值
有關(guān)最靠近某位置的節(jié)點(diǎn)或關(guān)鍵點(diǎn)編號(hào)的取值函數(shù)
NODE(X,Y,Z)
KP(X,Y,Z)
被選擇的節(jié)點(diǎn)嘴靠近X,Y,Z位置的節(jié)點(diǎn)或關(guān)鍵點(diǎn)編號(hào)(在激活的坐標(biāo)系下,如果存在多個(gè)節(jié)點(diǎn)或關(guān)鍵點(diǎn),那么取其最小值)
有關(guān)距離的取值函數(shù)
DISTND(N1,N2)
DISTKP(K1,K2)
節(jié)點(diǎn)或關(guān)鍵點(diǎn)兩點(diǎn)之間的距離
DISTEN(E,N)
單元E的中心點(diǎn)與節(jié)點(diǎn)N之間的距離,中心點(diǎn)將由單元上被選擇的節(jié)點(diǎn)確定
有關(guān)角度的取值函數(shù)
ANGLEN(N1,N2,N3)
ANGLEK(K1,K2,K3)
節(jié)點(diǎn)或關(guān)鍵點(diǎn)兩條邊之間的夾角,缺省時(shí)單位為弧度,其中所選擇的3個(gè)節(jié)點(diǎn)中,N1或K1是頂點(diǎn)
有關(guān)最靠近實(shí)體的節(jié)點(diǎn),關(guān)鍵點(diǎn)和單元的取值函數(shù)
NNEAR(N)
最靠近節(jié)點(diǎn)N的被選節(jié)點(diǎn)
KNEAR(K)
最靠近關(guān)鍵點(diǎn)K的被選關(guān)鍵點(diǎn)
ENEARN(N)
最靠近節(jié)點(diǎn)N的被選單元,單元的位置將由被選節(jié)點(diǎn)確定
有關(guān)面積的取值函數(shù)
展開 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è)簡單的模型,劃分網(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的“get”函數(shù)列表
自己收藏并與大家分享,來自于ANSYS的help
“get函數(shù)”可用于某些項(xiàng),并可用于代替*get命令。函數(shù)返回值并在函數(shù)被輸入的地方使用它,繞過了用參數(shù)名存儲(chǔ)值和在要使用值的地方輸入?yún)?shù)名的需要。
例如,假設(shè)要計(jì)算兩個(gè)節(jié)點(diǎn)的平均X位置。使用*GET命令,參數(shù)L1可以指定節(jié)點(diǎn)1的X位置,參數(shù)L2可以指定節(jié)點(diǎn)2的X位置。然后,可以從mid=(L1+L2)/2計(jì)算mid位置:
*GET,L1,NODE,1,LOC,X
*GET,L2,NODE,2,LOC,X
MID=(L1+L2)/2
但是,使用返回節(jié)點(diǎn)N的X位置的節(jié)點(diǎn)位置“get ”函數(shù)NX(N),可以直接計(jì)算MID,而不需要中間參數(shù)L1和L2:
MID=(NX(1)+NX(2))/2
除非另有說明,否則Get函數(shù)返回活動(dòng)坐標(biāo)系中的值。
Get函數(shù)參數(shù)本身可能是參數(shù)或其他Get函數(shù)。get函數(shù)NELEM(E,NPOS)返回元素編號(hào)E的NPOS位置的節(jié)點(diǎn)號(hào)。組合函數(shù)NX(NELEM(E,NPOS))返回該節(jié)點(diǎn)的X位置。
下表列出了按功能分組的可用get函數(shù)。*GET命令還列出GET函數(shù)作為*GET items的替代項(xiàng)(如果適用)
Table 1: *GET - Get Function Summary
"Get Function" Summary
Entity Status Get Function Description
NSEL(N) Status of node N: -1=unselected, 0=undefined, 1=selected.
ESEL(E) Status of element E: -1=unselected, 0=undefined, 1=selected.
展開 Ansys Wrokbench分段復(fù)雜函數(shù)載荷,加載方式記錄 ¥10
問題:
Ansys Workbench的載荷加載形式有三種,constant/table/function。Constant是在載荷步內(nèi)給定恒定值;table形式較為便捷,可以在定義每個(gè)子步的載荷大小; function形式可以輸入以time/X/Y/Z為變量的簡單方程。
但是仍有某些形式的載荷較難輸入,例如分段復(fù)雜函數(shù)載荷等。
解決方法:
需要使用Ansys經(jīng)典界面的function功能編輯分段載荷獲得ADPL載荷命令;再利用Workbench中command的形式施加載荷。
操作方式:
1. Ansys經(jīng)典中function公式編輯器輸入分段函數(shù)。
在function頁卡中選著變量time,在Regime頁卡中逐個(gè)定義分段函數(shù);
定義完成后點(diǎn)擊保存,并輸入函數(shù)名“TEST3.func”
2. 再次點(diǎn)擊標(biāo)題欄的Parameters>Functions>Read From files>找到剛才保存的TEST3.func。并在Table Parameter Name中給編輯導(dǎo)入的分段函數(shù)命名PForce。此后分段函數(shù)即被公式編輯器編譯為表格數(shù)組形式,數(shù)組的名稱為:PForce。
3. 提取分段函數(shù)數(shù)值的ADPL命令形式,用于Workbench使用。
完成分段函數(shù)導(dǎo)入和命名后,在下拉列表中的File>List>Log file中可以查看經(jīng)典界面GUI操作對(duì)應(yīng)的ADPL命令。在這里可以將上述function公式編輯器導(dǎo)入的分段函數(shù)數(shù)組對(duì)應(yīng)ADPL命令顯示出來。(有時(shí)log file顯示不及時(shí),再重復(fù)一次即可)
4. 在Workbench內(nèi)創(chuàng)建加載remote point點(diǎn),并設(shè)定加載點(diǎn)的ADPL name為“LoadPoint“,用于加載。
展開