不同的有限元軟體,如ansys,comsol,結構計算時,位移基本一致,但應力常常相差不少。這是什麼原因呢?


我認為的原因:不同有限元軟體的單元形函數可能不同。

首先明確一個問題:一般來說,應力的求解結果沒有位移的求解結果準確。

我仔細解釋一下原因:

有限元的過程可以分為五個步驟:

1、離散化

2、構造形函數

3、根據最小勢能原理(或虛位移原理)構造以節點位移為未知量的方程組

4、求解線性方程組(一般都是線性的)得到節點位移

5、根據形函數求得應變和應力。

這裡可以看出,應變和應力的結果是根據位移結果推導的,其精確程度不如位移。

那麼根據你的描述,ANSYS和COMSOL(我沒用使用過)算出的位移基本一致,但應力結果相差不少。那麼很大一部分原因是上述第2條與第5條的處理方式不同。

當然,題主首先要確定兩個有限元模型要完全一樣,包裹單元、材料本構模型等等


comsol沒用過,ansys用了不少,位移一致應力不一致,覺得有可能出問題的部分如下:

1,同一問題可以使用不同的簡化方式和單元類型,還有些變數可能ansys中和comsol中對應不起來,代表的意義也不一樣,導致輸入參數不同,結果不同也是有可能的。

2,有限元計算出來的應力值都是高斯積分點的應力,comsol採用的快速有限元吧,使用的是單點積分,相比ansys的多點積分速度較快,但是結果精確性不一定總是很好,得到積分點應力之後將其插值到對應節點上便可以得到節點應力,這時如果插值方式不同(比如comsol程序員比較懶,採用不精確的演算法),那麼得到的節點應力也會不同。以前在自己編的程序里也寫過這種插值演算法,寫的比較簡單,就是取每個節點周圍的幾個單元應力的平均值。

建議你用個簡單算例做個比較,比如板拉伸,懸臂樑等有理論值的模型,把ansys,comsol計算結果與理論解比較下,看看問題出在哪裡。


建議直接比較積分點上的應力值,通過輸出到文件來比較,排除掉得到積分點應力之後再插值到節點上這一步的差異。當然前提是用一樣的單元類型和網格大小。


懷疑是mesh的問題。。說錯了別打我


如果是線性問題的話,在模型(幾何,材料,邊界條件)和網格劃分完全一致的情況下,如果應力不一致,由高斯點應力得到節點應力的方法是否一致,是否輸出的都為相同節點的應力,有的單元輸出單元中心點的應力,還有應力分量是否輸出在同一坐標系下。


ANSYS和COMSOL都用過,關於這兩個軟體算應力的內部方法我並不知道,但是我覺得軟體各有專攻,做軟體的時候也應該有主次側重吧。

COMSOL作為多物理場耦合分析軟體,特點在於能夠耦合多個物理場並處理多物理場之間相互作用、相互影響的情況。ANSYS不用說了,計算結構、力學等等最經典的軟體。所以針對不同分析內容還是選擇更適合的軟體(比如:分析振型模態之類那我我肯定用ANSYS,沒誰去用COMSOL算,雖然它肯定能算;但是分析電磁式揚聲器磁場對聲場的影響時,看一些外文論文,人家很多用COMSOL,這種情況你用ANSYS算的話,第一不一定算的了,第二算出來也不一定具有可信度)。那麼要算應力的話,我信ANSYS!


還沒被提到的原因:不同代碼中應力場的顯示方法可能有差別。


遇到過,ansys計算平均應力比較準確,當然這和劃分網格差別很大,在應力集中區域,只用ansys計算,粗細兩種網格計算,位移基本相同,但平均應力差別都很大。至於兩個軟體內部計算函數的區別,我就不知道了,但是一定會有所不同。比如我用creo和ansys計算就不一樣


如果單元的階次是一樣的比較積分點出的應力應該是基本一致的


樓主自己沒搞清楚裡面的應力吧,位移算的準確了,位移乘以B矩陣就是單元的應力了,唯一區別的就是可能不同單元處理單元邊界上應力似乎不同的,因為有限元求解的應力是不連續的


推薦閱讀:

COMSOL中這種包含兩個因變數的兩個PDE方程組該怎麼定義?

TAG:軟體 | 有限元分析FEA | ANSYS | COMSOLMultiphysics |