2023年11月10日 星期五

非線性結構模擬入門(06) 非線性邊界條件


理解造成邊界條件非線性的接觸與追隨負載


這次要來說明帶給模擬三個「非線性」影響的最後一種:「邊界條件非線性」


邊界條件非線性可能光聽就會覺得很困難了,但想要大概掌握一下概念的話,就是用所謂的「接觸」來理解會比較快(雖然如後所述,邊界條件非線性也不是只有接觸這個項目就是了)。只不過,也許會有「線性模擬中不是也有接觸的邊界條件嗎?」的疑問,所以嚴格來說,邊界條件還是要分成「線性接觸」與「非線性接觸」會比較好。


基本上,在線性模擬中出現的接觸邊界條件,請考慮成是限定為「固定起來」的接觸面狀態、或者是「微小的滑動」的接觸面狀態。相對地,在非線性模擬之中的接觸邊界條件,則是會隨著模擬狀態的進展,會出現「大幅度滑動」或是「分離不接觸」等等讓邊界條件大大改變的狀態也不少見。當然,這也會讓位於接觸部分的節點之邊界條件也產生巨大的變化。換句話說,這就是帶給模擬整體非線性的最大要因。


不過,會造成邊界條件非線性的也不只是接觸而已。普通被稱為「追隨負載」或「從動負載」的負載也會帶來邊界條件的非線性。這是因為帶來負載的物體發生變形,讓負載的方向也跟著改變所造成的非線性問題。


首先就來解說接觸的部分。


關於接觸問題


在開發機械元件或模組時執行的模擬中,可以說「幾乎都要處理接觸問題」吧。其實基本上在檢討這種問題的模擬條件時,只單純模擬單體零件的狀況並不少見;不過很多機械零件本來就會和多個不同的其他零件相鄰,一定會給彼此帶來影響。特別是遇到材料比較柔軟為主的問題時,就算零件單體也可能要考慮會出現自我接觸的狀態。就這些考量來看,在很多分析模擬的問題中去處理接觸邊界條件,可以說是「家常便飯」啊。


不過使用有限元素法來進行模擬時,要處理接觸問題會稍稍有點麻煩。因為在有限元素法的建構方程式中「並沒有傳遞兩個以上不同材料境界之間作用力的機制」。換句話說,如果甚麼都不設定,就算有兩個物體彼此接觸在一起,也會被看成兩者彷彿不知互相存在的錯開狀態。因此,遇到這樣的狀況,有必要進行「接觸的設定」。


不管是哪一種模擬軟體,如果忘記進行接觸設定的話,就真的會發生應該接觸的物體卻完全錯開的狀況。根據軟體的設計不同,有的接觸設定程序是非常簡略容易的;但往往想要進行更詳細的設定時,會發現程序是意外地繁複。


然而,接觸的設定是一項怎樣的處理工作呢?為何只要設定了「接著」或「分離」,程式就能檢測到兩個物件是否會相撞、或是處理成兩者互相接著呢?這也會在接下來的部分中進行說明。


其實接觸問題在非線性模擬的推進上是非常重要的部分,但也是非常討厭麻煩的部分。為了處理接觸的部分,模擬很難繼續往下進展的狀況並不少見;而如果無法充分理解設定的參數,也是造成接觸模擬無法順利進行的原因之一。


處理接觸的方法


在有限元素法進行模擬計算之際,有好幾種將接觸條件加入計算式的手法。


以下會列出其中比較代表性的方程式。在商用模擬軟體中,大多是內建根據這些理論作為基礎的接觸處理模組。不考慮接觸和要考慮接觸的問題,其差異之處在於後者必須要將接觸造成的邊界限制條件加入方程式中才能求解。對於熟悉接觸問題的高手也許會對以下的解說有點意見,但這裡主要介紹三種處理接觸的手法。此外,詳細的數學推導說明在這裡就割愛了。以下就是這三種手法:


  • 拉格朗日乘數(Lagrange multiplier)法

  • 懲罰函數法(Penalty Method)

  • 增廣拉格朗日法(Augmented Lagrangian methods)


以下就會針對這三種接觸手法的概要來說明,首先就從拉格朗日乘數法開始。


拉格朗日乘數法


拉格朗日乘數法本身就是一種解決某種限制條件下最佳化的手法,其目的是在限制數個函數值之下,求出另外一個函數的極限值。關於這個手法的數學理論,在網路上可以輕易找到簡單易懂的說明,就請各位讀者直接自行搜尋閱讀了。


不過,用非常非常簡單的話來說,拉格朗日乘數法就是把兩個物體(Body)接觸時其接觸面上的「接觸力」,當作是一個未知數(自由度)導入方程式之中一起求解的方法。使用這種手法來執行模擬時,並不會出現後述的懲罰函數法那樣造成接觸物體互相貫穿的問題,所以可以執行出精度相對較高的模擬。只不過,相反地,這個方法在求解時,會將離散方程式矩陣對角項填入0,而造成非正定矩陣,讓計算變得很不穩定(發散爆掉)。與接觸相關的模擬問題其模型的規模很大的狀況並不少見,因此這種手法對於大規模問題中常用到的反覆疊代求解器來說,是不太適合的方法。


圖1 拉格朗日乘數法,不會出現接觸物體互相貫穿的問題



懲罰函數法


顧名思義,懲罰就像是違規要罰錢一樣:在某個限制條件下,違反限制條件時,要給予「懲罰」。在接觸模擬中,只要出現貫穿接觸面的狀況(實際上是不可能的),就會根據貫穿的量給出一個接觸力。具體來說,就是在接觸面上產生虛擬的彈簧,藉由彈簧的剛性來代替接觸面間的配合。因此這個方法和不允許接觸面互相貫穿的拉格朗日乘數法相比,雖然有解答上在物理意義上較不嚴謹的缺點,但是卻能在計算上獲得比較穩定的好處。


圖2 懲罰函數法。根據彈簧剛性的平衡造成其性質上會出現微妙的貫穿現象。



增廣拉格朗日法


以增廣拉格朗日法的形式來內建接觸求解模組的模擬分析軟體應該是滿多的,因為這個增廣拉格朗日法算是懲罰函數法的加強版。這個方法也是在接觸面上使用虛擬彈簧來表現接觸面的配合,因此能維持懲罰函數法的求解穩定性的優點,也能改善計算的收斂性。


根據分析模擬軟體的種類不同,可以讓使用者自由選擇數個接觸手法的版本也不少。好比說,一開始模擬時,是使用預設的接觸求解手法,結果在計算中發現收斂性很差,而在模擬中出現問題;此時就可以根據模擬問題的種類,來切換其他接觸求解手法;類似這樣的情形,在模擬過程中是經常會出現的。不過往往去看軟體的說明手冊(檔案),裡面雖然會記載各種求解選項的特徵,但幾乎都不會寫出這種選項背後的理論基礎。話又說回來,使用商用模擬軟體時,沒有或看不懂這些理論基礎,也不會有甚麼問題。


一般來說,軟體中會提供「Node to Surface(節點對面)」或「Surface to Surface(面對面)」的接觸選項(不過,根據狀況,這些選項也不一定都能使用),這些選項實際該怎麼用會比較好,就要請各位讀者自行參閱各模擬軟體的使用手冊了。


關於追隨負載


再來,想要稍微談一下追隨負載(從動負載)的概要。


如圖3所示,使用「SOLIDWORKS Simulation」,以壓力的形式,在樑的頂面上施加許多都是0.1MPa大小的壓力。對於這種類似壓力一樣的分佈負載狀況來說,模擬軟體會將施加於某個指定面(在CAD中的幾何面或是元素的面)上的分佈負載,在內部轉換成等效節點負載,在分配到各個對應節點上。此時分配到節點上的外力,就像是垂直施加於面上一樣,會調整負載的大小與方向。如果是遇到類似線性彈性模擬一樣變形位移非常小的狀況時,直接依照原始的設定就可以了;但如果遇到變形非常大的時候,該怎麼設定比較好?


圖3 在樑上施加都是0.1MPa壓力的負載



當受壓力的面變形太大時,隨著變形施加的負載的方向如果沒有跟著一起變更,就很難說是符合實際現象的模擬。不過,在不同的模擬軟體中,針對施加壓力如果不打開追隨負載的選項,施加的負載方向就不會跟著變更。換句話說,如果是「沒有追隨負載」選項的話,遇到變形量很大的狀況下,變形的狀態本身就會改變、應力的分佈,或是限制部分的壓力都會有很大不同。因此在模擬之時必須意識到施加的外力和幾何外型的變形之間的關係,去思考設定事法恰當會比較好。


圖4 SOLIDWORKS Simulation中執行的模擬:沒有追隨負載選項的狀況



圖5 拘束(固定部)的反作用力。由於負載沒有隨著幾何改變方向,都是只有垂直朝下(-Y方向),所以模擬出來幾乎看不到X方向的反作用力。



圖6 SOLIDWORKS Simulation中執行的模擬:有追隨負載選項的狀況



圖7 拘束(固定部)的反作用力。由於負載會隨著幾何改變方向、永遠垂直於受力面;所以X方向上就會受力,也就會看到X方向的反作用力。



也使用「Marc」來確認結果


接下來使用(非常有名的)非線性結構分析模擬軟體「Marc」來觀察模擬的結果。


在Marc上去看反作用力的結果圖是非常明顯,雖說這是理所當然,畢竟是在同樣的模型上施加同樣的邊界條件,應該要得到同樣趨勢的結果。


圖8 Marc中執行的模擬:沒有追隨負載選項的狀況。此圖中可以看到外力向量圖的方向沒有隨著變形狀態變更,全部都是朝下(負Y方向)。



圖9 拘束(固定部)的反作用力。X方向的反作用力幾乎都是0。



圖10 Marc中執行的模擬:有追隨負載選項的狀況。從外力向量圖來看,會發現負載的方向有隨著變形變動,保持垂直於面的方向。



圖11 拘束(固定部)的反作用力。可以看到X方向的反作用力逐漸增加。



以上就是同時使用SOLIDWORKS Simulation與Marc(使用簡化的2D方式模擬)做出來的結果。理所當然的事得到類似的結果。


===


相關系列文章:

沒有留言:

張貼留言