(3)非線性模擬的流程與幾何非線性
這次就要把主題進展到非線性了。在連載的第一篇中,筆者已經介紹過模擬中出現的非線性,共有「幾何非線性」、「材料非線性」與「邊界條件非線性」三種。這次想從其中的「幾何非線性」開始說起。
在說明之前,想稍微接著前一篇、從程式流程的觀點來確認一下線性模擬與非線性模擬的解法有何不同。
線性模擬與非線性模擬的計算流程之比較
將前一篇說明過的「線性模擬流程」畫成流程圖的話,會像以下的樣子(圖1):
圖1 線性模擬的程式流程圖
首先,模擬程式會開始讀取輸入資料(檔案),然後就會建立「負載向量」與「剛性矩陣」。至於剛性矩陣的建立流程則是包含「建立元素的剛性矩陣」與將各元素的剛性矩陣疊加起來的「建立整體剛性矩陣」。再來則是將負載條件、拘束限制條件等等邊界條件也加入其中,就決定好{f}=[K]{u}方程式中的{f}、[K]之內容;接下來只要求解這個方程式,就能算出節點位移(變形)的{u}。這就是流程圖中的「矩陣運算求解」。求出節點位移{u}之後,就能算出應變{ε}與應力{σ},最後在算出內力,就結束了這一連串的計算。
那麼,「非線性模擬的流程」又是怎麼樣子?看過圖2的流程圖後就會明白,基本上和線性模擬大同小異。差別就在於非線性模擬還有「收斂判定」的流程、還有這個流程不像線性模擬一樣只有跑一次,而是「多次反覆模擬」這兩點之上。請再看下去便知箇中詳細了。
圖2 非線性模擬的程式流程圖
就使用者操作的角度來看,在線性模擬中,只要將目的負載施加一次,就能求出解;但在非線性模擬中,並不是一次施加最終目的的完整負載,而是將完整負載切割成若干個增量負載來分段運算。好比說,如果最後要施加100N的場合下,就會分成每一段10N的增量計算十次,去近似一次施加100N的負載。
在圖2流程圖的最外側之「增分計算」就是這樣的迴圈。而對於第一次的增量荷重,其實也不是一次就計算完畢。而是使用第一篇介紹過的「牛頓-拉福森(Newton-Raphson)法」來計算其收斂程度;所以裡面還有一個「反覆(收斂)計算」的迴圈。
從這個流程圖中可以看得出來,非線性模擬的計算比起線性模擬的計算會花更多的整體運算時間、換句話說整體的計算成本就越高。就算兩者都是計算同樣規模大小的模擬模型,線性模擬也只要計算一次就結束了,但非線性模擬需要的計算次數則是增分計算次數與收斂計算次算的相乘次數,次數上多了非常多。特別是習慣了線性模擬之後,用同樣概念來推算非線性模擬的計算時間,往往會相差非常巨大,請特別注意小心。
幾何非線性(形狀非線性)
所謂的幾何非線性(形狀非線性),如同連載第一篇中提到的,是三種非線性問題當中直覺上最難想通的一種非線性問題。所以請大家先來看看應該要考慮使用非線性方法求解的問題,如果改用線性方法來模擬計算的話,會出現甚麼問題。
例1:懸臂樑
第一個例子是使用「Autodesk Inventor Nastran」(以下簡稱Nastran)來計算模擬的懸臂樑問題。實際上並不會像這個例子那樣折彎得那麼誇張,這裡為了比較的需要,故意讓懸臂樑彎得比較大一些。本來材料應該早就無法承受而在折彎過程出現塑性變形,但這裡先不考慮出現塑性的非線性材料。總之,就是在截面1x1mm、長度50mm的樑前端強迫向下變形25mm。
圖3 懸臂樑與其邊界條件(左端完全固定,右端上方實施強制位移)
這個問題,如果是考慮形狀非線性來去模擬的話,結果會是圖4的樣子。伴隨著Y方向向下的25mm變形(全長一半),X負方向也會出現變形量。當樑往下折彎時,全部長度並未發生變化,所以會看到這個結果是理所當然啊。
圖4考慮形狀非線性的範例
不過,如果不考慮形狀非線性、也就是直接使用線性模擬的話,會得到類似圖5的結果。我想各位讀者使用自己手邊的線性模擬軟體來就算的話,應該也會得到同樣的結果才對。這個結果當然還是得到了Y方向往下變形25mm的結果,但X方向卻完全沒有位移。換句話說,這個結果就是直下變形而已,等於樑的長度拉長了。而且雖然圖5可能不容易看出來,但樑的前端有明顯的膨脹變大(如果Y方向的變形更大的話,這個現象會更明顯)。不管怎麼說,想必大家都看得出來這兩個現象都是現實上不可能、不應該發生的現象。
圖5 不考慮幾何非線性的模擬計算結果
例2:正方形板的剛體旋轉
再看另外一個例子。這次是正方形板材的剛體旋轉,也是使用Nastran來進行模擬計算。
將10x10mm的正方形板左下的節點X、Y兩方向的自由度都限制住,就像在其上加了轉軸一樣的固定條件,然後給予右下節點5mm的強迫變形。
圖6 正方形板材的左下端固定、右下節點則是給予往上5mm的強制變形
就以一般的想法來看,這塊板子應該會以左下結點為軸開始剛體旋轉,如圖7那樣右下的節點除了在Y的正方向會發生位移以外,在X負方向也會發生位移才對。
圖7 考慮非線性的正方形板模擬
然而如果不考慮非線性、而是用線性模擬去看這個問題,又會出現右下節點有Y正方向的5mm強迫位移、但如同懸臂樑問題樣,X方向沒有出現應有的位移(圖8)。換句話說,就是這塊板子除了旋轉之外,板體本身也被拉扯變大了。當然,這樣和現實現象大不相同。光是這樣,應該就能明白這個模擬結果很奇怪,但我們也順便來看一下數值部分是否也跟著奇怪起來。
圖8 正方形板不考慮非線性的模擬結果
如果去看不考慮形狀非線性的模擬結果,其應變大小只有10負14次方而已,這等於幾乎是數值計算誤差的大小,實質上就是零了。然而板子大小看起來都變大不少了,結果應變卻是零,實在也奇怪。不過,原本這就是剛體旋轉問題,應變本來就應該是零,所以兩者發生矛盾了。簡而言之,就是不考慮非線性現象而去跑旋轉角度大的問題,造成了與理不合的結果。
圖9 不考慮非線性的正方形板應變
如以上兩例所示,應該很容易理解如果出現了大變形或旋轉角度大的模擬計算問題,不去考慮形狀非線性(幾何非線性)的話,就會得到背離現實的結果。
===
沒有留言:
張貼留言