標籤:部分 精度 使用 ota 二分 問題 sys 載入 ons
原文地址:http://muchong.com/html/201209/4936556.html
在ansys output windows 有 force convergenge valu 值 和 criterion 值,當前者小於後者時,就完成一次收斂。
非線性計算是一個迭代計算的過程,曲線表示兩次迭代之間的誤差,圖中分別表示力和位移在迭代過程中的每次迭代之間的誤差
兩條線的意思分別是:
F L2: 不平衡力的2範數
F CRIT: 不平衡力的收斂容差,
如果前者大於後者,說明沒有收斂,要繼續計算。
U為位移。
當然,如果若以彎矩M為收斂準則,那麼就對應 M L2 和 M CRIT。
圖中那兩條線,紫的是殘差力,即({F} - {Fnr}),藍的是收斂準則,當殘差在準則以下時,求解收斂。
建議不要使用位移收斂準則,因為位移收斂準則是個相對量。
ANSYS的非線性收斂準則
CNVTOL, Lab, VALUE, TOLER, NORM, MINREF
ANSYS中,非線性收斂準則主要有力的收斂,位移的收斂,彎矩的收斂和轉角的收斂。一般用力的控制載入時,可以使用殘餘力的2-範數控制收斂;而位移控制載入時,最好用位移的範數控制收斂。
When SOLCONTROL,ON, TOLER Defaults to 0.005 (0.5%) for force and moment, and 0.05 (5%) for displacement when rotational DOFs are not present.
When SOLCONTROL,OFF, defaults to 0.001 (0.1%) for force and moment.
收斂精度一般可放寬至 5%,以提高收斂速度。
加快收斂的方法有一下幾種:
1可以增大荷載子步數,nsubst,nsbstp,nsbmn,carry
2修改收斂準則,cnvtol,lab,value,toler,norm,minref
3 開啟最佳化的非線性預設求解設定和某些強化的內部求解演算法, solcontrol,key1,key2,key3,vtol(一般情況下,預設是開啟的)
4重新劃分網格,網格的單元不宜太大或太小, 一般在5~10厘米左右
5 檢查模型的正確性
關於ansys中收斂準則(cnvtol)理解
ansys中依據預設的收斂準則,程式將對不平衡力SRSS與VALUE*TOLER的值進行比較;而VALUE的預設值是在SRSS和MINREF中取較大值。
下面的命令流:
cnvtol,f,5000,0.0005,0
cnvtol,u,10,0.001,2
如果不平衡力(獨立的檢查每一個自由度)小於等於5000*0.0005(也就是2.5),並且如果位移的變化小於等於10*0.001時,認為子步是收斂的。
ANSYS中收斂準則,程式預設力與位移共同控制,並且收斂的控制係數好像是0.001。這樣的收斂精度一般很難使塑性分析收斂,對於一般的塑性分析收斂問題,前幾個荷載步(彈性階段)用力與位移共同控制,進入塑性後用力控制或位移控制,也可以先用力後用位移控制(位移控制比較容易收斂),至於控制係數取多少,自己根據需要逐步放大直至收斂!也有人建議最後用能量來控制收斂,
convergence value 是收斂值,convergence norm是收斂準則。ansys可以用cnvtol命令,如:cnvtol,f,10000,0.00001,2,,其中f是指採用力結果,10000是收斂絕對值,0.00001是收斂係數,2是收斂2範數。
收斂準則應該是指選取那種結果進行收斂判定,通常有三種選擇,分別是力(f),位移(u)、和能量。當然這三種形式可以單獨使用也可以聯合使用。收斂準則的另一層意思應該是選取什麼範數形式(1、2、3範數)。一般結構通常都選取2範數格式。
而收斂值只是收斂準則中的一部分,如cnvtol命令中的收斂絕對值與收斂係數的乘積就應該是你所指的收斂值(convergence value)。
ansys 使用收斂準則有L1,L2,L~~(無窮大)三個收斂準則。
在工程中,一般使用收斂容差(0.05)就可以拉。
建議使用位移收斂準則( cnvtol,u,0.05,,, )與力收斂準則( cnvtol,f,0.05,,, )。因為僅僅只使用一個收斂準則,會存在較大的誤差。
假如你只能是使用一個收斂準則,建議你提高收斂容差(0.01以下)。
ansys計算非線性時會繪出收斂圖,其中橫座標是cumulative iteration number 縱座標是absolute convergence norm。他們分別是累積迭代次數和絕對收斂範數,用來判斷非線性分析是否收斂。
ansys在每荷載步的迭代中計算非線性收斂判別準則和計算殘差。其中計算殘差是所有單元內力的範數,只有當殘差小於準則時,非線性疊代才算收斂。ansys的位移收斂是基於力的收斂的,以力為基礎的收斂提供了收斂量的絕對值,而以位移為基礎的收斂僅提供表現收斂的相對量度。一般不單獨使用位移收斂準則,否則會產生一定偏差,有些情況會造成假收斂.(ansys非線性分析指南--基本過程Page.6) 。因此ansys官方建議使用者盡量以力為基礎(或力矩)的收斂誤差,如果需要也可以增加以位移為基礎的收斂檢查。ANSYS預設是用L2範數控制收斂。其它還有L1範數和L0範數,可用CNVTOL命令設定。在計算中L2值不斷變化,若L2<crit的時候判斷為收斂了。也即不平衡力的l2範數小於設定的criterion時判斷為收斂。由於ANSYS預設的criterion計算是你全部變數的平方和開平方(SRSS)*valuse(你設定的值),所以crition也有小小變化。如有需要,也可自己指定crition為某一常數, CNVTOL,F,10000,0.0001,0 就指定力的收斂控制值為10000*0.0001=1。另外,非線性計算中用到的一個開關是SOLCONTROL
如關閉SOLCONTROL 選項,那麼軟體預設收斂準則:力或彎矩的收斂容差是0.001,而不考慮位移的收斂容差;如果開啟SOLCONTROL 選項,同樣的預設收斂準則:力或彎矩的收斂容差是0.005,而位移收斂容差是0.05。
非線性收斂非常麻煩,與網格精度、邊界條件、荷載步等一系列因素有關,單元的特點對收斂的影響很大,單元的性態不好收斂則困難些;合理的步長可以使求解在真解周圍不至于振蕩,步長過小,計算量太大,步長過大,會由於過大的荷載步造成不收斂。網格密度適當有助於收斂,網格太密計算量太大,當然太稀計算結果會有較大的誤差。究竟多少往往要針對問題進行多次試算。
如果不收斂,可以考慮一下方法改進
1.放鬆非線性收斂準則。
(CNVTOL #Sets convergence values for nonlinear analyses).
2.增加荷載步數。
(NSUBST #Specifies the number of substeps to be taken this load step)
3.增加每次計算的迭代次數(預設的25次)
(NEQIT #Maximum number of equilibrium iterations allowed each substep)
4 重新劃分單元試試,後續會得到不同的答案。
Ansys 牛頓-拉普森法用如下方程迭代到一個收斂解:
[KT]{deta u} = {F} - {Fnr}
以增量形式逐漸施荷載入。
在每一載荷增量中完成平衡迭代來使得增量求解達到平衡。
求解平衡方程[KT]{Deta u} = {F} - {Fnr}
[KT]=切線剛度矩陣
{deta u} =位侈增量
{F} =外部載荷向量
{Fnr} =內部力向量
迭代進行,直到{F} - {Fnr}在允許誤差範圍內。程式反覆求解此方程(二分載荷增量), 直到殘差(失衡力), {F} - {Fnr}, 小到可以接受的程度.
對於此殘差, 最大可接受值稱為力收斂準則.
數學上表達為:
如果: ||{R}|| < (eR*Rref)
那麼: 求解收斂.
式中
||{R}|| 是殘差的向量範數(範數是將一個向量轉換為單一的標量值的運算元).
L1 殘差範數: ||{R}||1 = Sigma|Ri|(累加)
L2 (SRSS) 殘差範數:||{R}||2 = sqrt(Sigma(Ri*Ri))
殘差範數極限: ||{R}|| = max(|Ri|)
(eR Rref) 是力收斂準則
eR 是容差係數, Rref 是參考力值
Rref 可以是所有施加的力和反力的範數, ||{F}||
對大部分工程應用, 預設收斂準則工作得很好:
||{R}||2 < (0.5% * ||{F}||2)
對於特殊情況, 你可以改變此準則.
你可以收緊或放鬆收斂準則.
準則越緊, 精度越好, 但是越難以收斂.
你還可以選擇其它項去檢查收斂.
可以用力、力矩、位移和轉動準則.
另外, 你可以改變用於測量收斂項的範數.
L1、L2或極限範數.
2.jpg
【轉載】非線性分析中的ansys跟蹤顯示