
發布
注冊
/
登錄牛頓迭代法的案例
初識非線性有限元 附非線性有限元及程序下載
該迭代法每次迭代都需要對新的求逆,計算量較大,于是有了如下改進的的常系數矩陣方法
(2)牛頓-辛普森迭代法 Nwton-Paphson method
運用泰勒展開:
(切線剛度陣)
同理,也可以得到修正的Newton-Paphson 方法
牛頓迭代法一般具有較好的收斂性,但是對于一些從小被分在二班的非線性同學,他也有很大的局限性
比如對于這個問題,牛頓只好呵呵了
對于下面問題,牛頓直接哭暈在廁所,當然這種問題只有等我們的arc-length兄來解決了。
再來看看我們上面的問題:
藍色曲線為精確解,紅色點點為固定載荷增量下求得的位移,k=1000時,牛頓迭代法能夠很好地跟蹤載荷位移路徑,得到所有的位移響應。而當k=100時,曲線有下降段,此時牛頓迭代法就沒法得到這個區域的位移響應了。
下載地址:非線性有限元及程序
展開 非線性有限元初識
非線性有限元一直是有限元中較為困難的一部分,在非線性有限元中我們經常碰到諸如牛頓-拉夫森迭代法,切線剛度陣等概念,今天貼主就簡單的介紹一下非線性吧。
1、簡單實例
首先看一個簡單的彈簧桿件結構,如圖所示,中間節點作用一個F的力,會產生一個位移v,
由靜力平衡關系可得到
該方程為典型的非線性方程,對于這個方程,如果給定一個位移v就能求得F,如下圖所示,從圖中曲線可以看到非線性的含義了。圖中不同k對應的曲線,可以看到k比較小時,桿內力起主要作用,呈現出幾何非線性,K較大時,彈簧起主要作用,呈現出彈簧的線彈性。
2、牛頓迭代法
但是在實際中,我們往往是不知道位移v的,而是知道F,那么給定一個F,怎么求v呢?這時候牛頓迭代法就要上場了。牛頓迭代法的思想是將非線性方程線性化,以線性方程的解逼近非線性方程的解,具體操作如下:
牛頓迭代法圖形解釋
對于非線性方程f(x)=的迭代解法有如下格式
4、非線性有限元迭代格式
雖然上文只是簡單的一維問題,但是我們可以把它當做位移法有限元的原型,對于一般有限元,離散平衡方程一般具有如下形式:
對于試探解、一般有
該方程的求解有如下形式
(1)直接迭代法
直接迭代法中要求K矩陣為u的顯式函數,只適用于和變形歷史無關的非線性問題。
展開 非線性有限元-弧長法簡介
非線性有限元-弧長法簡介
————CAE仿真實驗室出品
在之前一篇帖子《非線性行為初識》中,我們通過簡單的彈簧桿件結構介紹了非線性問題,回顧一下該問題:如圖所示,中間節點作用一個F的力,會產生一個位移v
由靜力平衡關系可得到
該方程精確解如下,圖中不同k對應的曲線,可以看到k比較小時,桿內力起主要作用,呈現出幾何非線性,K較大時,彈簧起主要作用,呈現出彈簧的線彈性。
藍色曲線為精確解,紅色點點為固定載荷增量下求得的位移,k=1000時,牛頓迭代法能夠很好地跟蹤載荷位移路徑,得到所有的位移響應。而當k=100時,曲線有下降段,此時牛頓迭代法就沒法得到這個區域的位移響應了。
對于下圖這樣的問題,在拐點處切線剛度為0,在前面的牛頓迭代法中我們是通過給定載荷增量,它已經無法越過極值點得到完整地載荷位移曲線。而且還存在一個載荷對應多個位移,或者一個位移對應多個載荷的情況,很容易發生snap-through和snap-back現象。
今天就來介紹介紹弧長法,牛頓迭代法在翻過山頭延切線方向飛入云霄,直接不收斂。如果讓牛頓坐上過山車,那么就能和軌道綁在一起,沿著軌道平穩著陸了。弧長法也是這么做的,通過引入一組約束方程,把迭代求解的過山車,綁定在軌道上,讓求解過程能夠跟蹤載荷位移路徑。
展開 基于多點位移控制增量的網殼結構穩定性分析
本質上,非線性屈曲實際上要求解的是一個非線性靜力問題,在有限元中最終轉化為非線性方程組的求解,目前常見的非線性方程組的求解方法有牛頓迭代法、擬牛頓迭代法、增量法、增量迭代法和弧長法等。在abaqus中,如果采用static,general類型的step,則軟件采用增量迭代法進行計算,具體是將荷載/位移分為多個增量步加載,而每一個增量步內又采用牛頓迭代法進行求解。
對于單層網殼結構來說,在abaqus中,其計算非線性屈曲主要采用兩種方法:增量迭代法和弧長法。增量迭代法又分荷載增量迭代和位移增量迭代。對于單層網殼,由于通常情況下其所受的外荷載已知而在外荷載的位移未知,因此實際工程中事實上很難采用位移增量迭代,而對于荷載增量迭代,其具體過程如圖一所示:
圖一 基于荷載增量的增量迭代法
基于荷載增量迭代的具體求解過程可知,如果荷載-位移曲線存在下降段,則荷載增量迭代實際上在曲線接近峰值時由于剛度接近0而不收斂,難以繼續求解,具體過程如圖二所示:
圖二 基于荷載增量的不收斂示意
目前應對此缺陷的方法是采用弧長法,其具體過程如圖三。由于弧長法以荷載和位移形成的弧長作為增量,因此即使是面對有下降段的非線性屈曲分析,其也能求解。然而實際上,即使是采用弧長法,對于復雜結構,即使是采用弧長法,在面對平衡路徑跳躍或者突變時,仍可能存在不收斂。
展開 
線性強化彈塑性umat子程序系列-增量迭代法
對于這樣的非線性問題,一般的有限元程序都是通過增量迭代法求解。增量迭代法的核心思想是,將最終的狀態看成是一個加載過程,將載荷分成多個增量,逐級加載,然后在每個增量步內多次迭代,收斂后進行下一個增量步。
1、增量法
將{P}荷載分成為m個荷載增量(相等或不等)
,即總荷載為
每次施加一個荷載增量,在第i步加載后,荷載為
每一荷載增量產生一個位移增量
和應力增量
在第i步加載后,位移、應力分別為
第m步加載后,得到最終位移、應力。
增量法的關鍵在于:已知前一個增量步的相關信息,如何由荷載增量
計算位移增量
和應力增量
,進而求出位移
和應力
的問題,這個問題通常應用牛頓-拉普森迭代法求解,接下來介紹這種方法。
2、修正的牛頓-拉普森迭代法(mN-R)
在載荷
時,位移為
,下一個增量為
,下一個增量步結束后載荷為
,在已知以上條件后用mN-R方法計算下一個增量結束后的位移。
令
計算切線剛度
計算不平衡力
根據非平衡力計算位移修正量
位移修正量為
一次迭代后修正的位移為
判斷是否收斂,若不收斂繼續迭代,直到近似收斂于真實解
附件有個小算例,希望能幫助大家理解增量迭代法
同時也歡迎觀看本次的視頻教程
http://www.yqgqt.org.cn/college/video/c14014
展開 技術鄰周報 第6期:XFEM/復合材料/Abaqus/優化設計/Python/彈塑性/Ansys...
本質上,非線性屈曲實際上要求解的是一個非線性靜力問題,在有限元中最終轉化為非線性方程組的求解,目前常見的非線性方程組的求解方法有牛頓迭代法、擬牛頓迭代法、增量法、增量迭代法和弧長法等。在abaqus中,如果采用static,general類型的step,則軟件采用增量迭代法進行計算,具體是將荷載/位移分為多個增量步加載,而每一個增量步內又采用牛頓迭代法進行求解。
13、【Abaqus DEM-FEM耦合】聲音能看得見嗎?Chladni Plate仿真模擬
作者:
USim
鏈接:https://www.yqgqt.org.cn/content/post/1805822
18世紀,德國物理學家恩斯特·克拉尼(Ernst Chladni)在一塊金屬板上撒上沙子,然后用小提琴弓弦拉動板子的邊緣,結果這些細沙自動的排列成非常有規律的圖案,拉動的位置不同,圖案的樣式也會發生變化,后來人們把這種圖案叫做克拉尼圖形(Chladni Patterns),這個就是我們討論的克拉尼板。
14、《Composite Structures》:XFEM+UDMGINI實現復合材料擴展有限元分析
作者:
君莫-復合材料力學
鏈接:https://www.yqgqt.org.cn/content/post/1805997
通常在做復合材料漸進失效分析時,多采用UMAT、VUMAT、USDFLD、VUSDFLD等子程序來實現失效理論和損傷演化方式在有限元中的集成。上述方法都是通過單元刪除或者單元剛度退化來表征裂紋的擴展。且傳統的有限元方法(FEM)在處理這類問題時需要在局部對網格進行極其細致的劃分。
展開 Fortran基礎編程——牛頓拉弗森迭代
今日推文主要分享一個非線性方程的牛頓-拉弗森迭代解法,借助Fortran語言,講述Fortran編程時需要注意的地方。理論及在Abaqus中的實現過程已在上幾期推文基于Abaqus的Newton-Raphson算法中說明,本次主要說明Fortran編程時需要注意的地方,本文代碼主要參考:《Fortran程序設計權威指南》。
例:
主程序
主程序:Solve.f90,子程序:New_Raphson.f90,函數文件:function.f90,Module模塊:NEWTON.F90。將整個程序分塊編寫,在主程序中調用即可,大型的Fortran中顯得尤為重要。
主程序代碼:
PROGRAM main
! 主程序:Newton迭代法計算方程的根
use NEWTON
OPEN(UNIT=11,FILE='FOUT1510.TXT')
OPEN(UNIT=12,FILE='IM_RESULT1510.TXT')
CALL SOLVE(X,ITER)
WRITE(11,46)X,ITER
46 FORMAT(T5,'Newton迭代法計算方程的根',//,&
3X,'X= ',F15.10,/,&
3X,'ITER=',I5)
END PROGRAM main
由上述程序可看出,主程序只有use、call、輸出語句,甚至可以將輸出語句編一個子程序,在主程序中用call調用即可,如此以來,使得自己的代碼更加簡潔明朗,在編寫Python、Matlab也是同樣的道理。
展開 各向同性硬化von Mises率無關彈塑性本構理論以及umat源代碼 ¥99
如果:
則說明試驗狀態即為真實狀態,即可進行更新:
反之則需要進行塑性更正,即需要計算塑性乘子的增量,利用以下非線性方程組進行計算:
可以將該非線性方程組簡化至一個非線性方程,過程如下,將該方程組中的第一式分解為球量和偏量兩部分:
因此可以計算應力為:
將上式中的第二式整理得到:
可以得到兩個張量的方向相同:
因此偏應力可以用試驗狀態的信息表示出來:
代入到最后一個一致性方程中可得:
即可利用牛頓迭代法對上述非線性方程進行求解,得到塑性乘子增量。求解得到塑性乘子增量之后,即可更新:
也可以更新塑性應變:
1.3 一致性切線剛度矩陣
umat除了要求更新應力以及狀態變量之外,還需要更新算法的一致性切線剛度模量。當沒有發生塑性屈服時,一致性切線剛度矩陣即為彈性矩陣。
展開 MATLAB牛頓迭代求根
一個基于MATLAB進行牛頓迭代的簡單案例~
NewtonRaphson.zip
從泰坦號內爆看壓力容器的屈曲穩定性分析
針對“非線性屈曲”在求解的過程中很難收斂的的問題,云道智造Simdroid“非線性屈曲”分析采用修正的 Riks 方法求解非線性方程,該方法一般也被稱為“柱面弧長法”。
Simdroid“非線性屈曲”分析界面
“柱面弧長法”是牛頓迭代法的一種擴展,當結構臨近失穩極限時,其剛度矩陣一般是奇異或者接近奇異的狀態,此時無法采用牛頓迭代法求解,采用弧長法引入了荷載乘子作為求解自變量,可以避免剛度矩陣奇異的情況。采用弧長法時要求荷載必須是正比例加載,荷載乘子也被稱為荷載正比例系數(LPF),求解出的荷載乘子有可能隨著位移的增加增大或者減小。
荷載位移曲線
應用案例
背景介紹
大型LNG儲罐設計與建造工藝復雜、造價高,是能源領域中的尖端技術之一,長期由國外企業壟斷。中海油氣電研發中心與云道智造合作,采用“平臺+應用”的模式,基于云道智造自主可控通用多物理場仿真平臺Simdroid,面向大型LNG儲罐數值分析的需求進行功能增強和行業知識集成,形成高度專業化、自動化的大型LNG儲罐有限元分析軟件。其內罐系統結構分析,便使用了Simdroid的屈曲分析模塊。
展開 MATLAB牛頓-辛普森(Newton-Raphson)迭代求根
fclose all; close all; clear; clc; %% Define functions and parameters syms x; f = 0.1*(x^2 + 2*x + 1); diff_f = diff(f,x); n_max = 100; e_tol = 1e-5; x_0 = 5; f_0 = subs(f,x,x_0); error = 10*e_tol; t1

從泰坦號內爆看壓力容器的屈曲穩定性分析(含案例)
針對“非線性屈曲”在求解的過程中很難收斂的的問題,云道智造Simdroid“非線性屈曲”分析采用修正的 Riks 方法求解非線性方程,該方法一般也被稱為
“柱面弧長法”。
Simdroid“非線性屈曲”分析界面
“柱面弧長法”是牛頓迭代法的一種擴展,當結構臨近失穩極限時,其剛度矩陣一般是奇異或者接近奇異的狀態,此時無法采用牛頓迭代法求解,采用弧長法引入了荷載乘子作為求解自變量,可以避免剛度矩陣奇異的情況。采用弧長法時要求荷載必須是正比例加載,荷載乘子也被稱為荷載正比例系數(LPF),求解出的荷載乘子有可能隨著位移的增加增大或者減小。
荷載位移曲線
應用案例
背景介紹
大型LNG儲罐設計與建造工藝復雜、造價高,是能源領域中的尖端技術之一,長期由國外企業壟斷。中海油氣電研發中心與云道智造合作,采用“平臺+應用”的模式,基于云道智造自主可控通用多物理場仿真平臺Simdroid,面向大型LNG儲罐數值分析的需求進行功能增強和行業知識集成,形成高度專業化、自動化的大型LNG儲罐有限元分析軟件。其內罐系統結構分析,便使用了Simdroid的屈曲分析模塊。
展開 『轉貼』用線性和非線性油膜力分析軸承動力系統
使用牛頓迭代法得到系統的周期解。分析線性失穩轉速在穩定性分析中的局限性。分別用線性和非線性油膜力計算系統的不平衡響應。分析表明,只有在小偏心激勵的情況下,采用線性油膜力計算不平衡響應才是可行的。
關鍵詞:有限長滑動軸承;非線性油膜力;周期解;穩定性;系統響應
.PS.:該帖附件于2007-02-13 19:13:06被Birdy評為3星級,為發貼者加分60。
點評:
SPICE?電路仿真原理
如何處理非線性元件
上文提到采用牛頓迭代法來解決包含非線性元件的電路,非線性元件在一個小的范圍內可以當作是線性的,相當于半導體器件的小信號模型的處理。例如一個雙極型晶體管的小信號模型:但是這種模型沒有偏置條件,不能用于 DC 分析,這里添加一個 DC 電流源并聯在 rpi 兩端,一個 DC 電流項到集電極,作為偏置條件:這個模型是線性的,用節點分析法就可以計算,但是這種線性只在很小的范圍內才成立,因此不能直接給出正確的結果,盡管如此這種模型可以提供一個比初始的猜測值更好的結果,具體的
步驟:
1. 先給非線性元件的端電壓指定一個初始的猜測值 ;
2. 根據端電壓計算每個非線性元件修正后的小信號模型,例如上面的 BJT,先根據集電極電流和增益計算 rpi 和 gm,進而計算 Ib 和 Ic 的值 ;
3. 由節點分析法構建算式方程組 ;
4. 由此方程組計算出新的端電壓值,從第 2 步開始重新計算 ;
5. 重復計算此過程,直到得到一個足夠精確的結果(通過連續的迭代對比結果來測量精度),每個返回的節點電壓的值越來越接近之前一次迭代的值,說明已收斂。當連續迭代的值之差小于一個確定的公差,認為此過程完成。
以上面的二極管電路為例,25℃下二極管的動態電阻近似等于 25.8/id,id 是二極管電流(單位 mA),這里用一個電阻作為二極管的小信號模型,再考慮 DC 偏置,這里再添加一個固定的電流源,并聯在電阻兩端現在這個電路就可以用節點分析法來計算了,我們會得到一個新的二 極 管 電 壓 ,雖 然 未 必 是 正 確 的 結 果 ,但 比 初 始 的 猜 測 值 要 更 接 近 了 ,
重復此步驟最后就會在需要的地方收斂。
展開 關于Abaqus軟件求解的直接法和迭代法
直接法:全稱為直接式線性方程求解法,該方法可以用于線性和非線性的分析,在ABAQUS/Standard模塊下,完成非線性分析時常使用牛頓方法或者其他的方法,比如弧長法,在求解的每次迭代過程中都必須要求解一系列線性方程組,而直接線性求解器就是用來尋找這些線性方程組的精確解的。ABAQUS/Standard模塊下的直接線性方程求解器使用稀疏、直接、高斯消元法,并且往往表現在分析所消耗時間的大部分時間中(尤其是大型模型的計算)—計算中方程的存儲占據著磁盤空間的最大部分。
迭代法:全稱為迭代式線性方程求解法,該方法在ABAQUS/Standard模塊下,可以用于尋找線性、非線性、準靜態、地應力、孔隙流動擴散以及熱傳導等分析步的線性方程組。由于采用迭代的技術,不能保證給定線性方程組有收斂解,當迭代求解器不收斂時,模型的改進有助于提高收斂性。在某些情況下,使用直接式線性求解可能是得到解答的唯一選擇,但當求解收斂時,使用迭代式線性求解法將獲得更精確的解答,當然這也要依賴于相對容許值的大小。通常情況下相對容許值的缺省值已經足夠精確,然而對于特殊的分析適當地調整容許值將會改善仿真的整體性能,如對于薄板或薄殼結構,相比直接式線性方程求解法,迭代式線性方程求解法將會更適合進行該結構的分析與計算。
從Abaqus幫助手冊中可以看出,上文提到的兩種方法均在形成線性方程組之后才區分了兩種方法,隱式中常說的迭代指的是求解剛度矩陣K時采用的求解方法,當剛度矩陣已經求得并形成了線性方程組KU=P時,直接法就是直接對剛度矩陣求逆,進而得到位移解,而迭代法就是利用迭代的求解手段得到位移解,ABAQUS默認為直接法,即是在忽略計算時間的前提下,保證方程組一定有解的策略而設定,而迭代法是用于大型模型或者薄板及薄殼結構求解時采用的,但前提是可以收斂。
展開