采用模擬退火算法改進懸索結構找形
采用通用有限元結構分析軟件進行懸索結構找形是一個經典的問題,比如這樣一個典型案例:
在水平跨距L=120m,縱向高差h=20m的兩端有一懸索,懸索截面積為:

單位長度的重量為γ=65N,彈性模量為:

求懸索在水平張力為9000N時的懸索形狀和對應懸索的原始長度。
一般情況下主要的分析流程是:
1. 在弦長位置建立初始幾何模型。
2. 給定一個很小的初始應變。
3. 計算此時在重力作用下的響應。
4. 判斷此時的水平張力的大小。
5. 如果此時的水平張力的大小大于給定的水平張力,則根據誤差的大小,人為將模型更新比例系數設置成幾個檔。
6. 重復計算步驟3~6,直到水平張力小于給定的水平張力,或是達到給定的誤差允許范圍。
7. 后處理得到原始懸索的長度。
通過上述流程,基本可以完成懸索的找形。但是在找形過程中存在以下問題:
1. 在循環迭代過程中,人為給定的誤差范圍,有時可能造成迭代找形發生跳躍。即在某次迭代過程中誤差大于迭代收斂誤差,當更新模型后,誤差小于迭代收斂相對誤差,但相對誤差(絕對值)又大于迭代收斂相對誤差。從而錯過了有效解,進而在后續的迭代過程中沒法返回,導致出現死循環。
2. 在循環過程中,實際參與的變量數目有相對誤差控制數值,模型更新比例系數。因此,要人為給定多檔合理的數值往往需要多次嘗試,甚至,即使多次嘗試也不能得到較好的結果。另外,當設定好每個檔的數值以后,當原始參數改變時,又需要重新調整。
為了解決上述問題,采用模擬退火算法,即模型更新的比例系數隨著相對誤差的大小變化。當相對誤差較給定相對誤差大時,取模型更新系數為1,當相對誤差小于給定相對誤差的相反數時,采用退火算法,并構建相對誤差與模型更新系數的函數:

其中:factor為模型更新比例系數,A為待定系數,err為相對誤差值
這樣人為需要調整的參數就只有待定系數A。這里的負號確保了即使再迭代的時候錯過了有效解,也可以退回去,確保迭代的有效進行。
也可根據輸出文件,繪制誤差和水平張力隨迭代次數的曲線。


由以上2個曲線可知,隨著迭代的進行,相對誤差和水平張力急劇下降,從而減少了迭代的次數。
另外模擬退火算法本質是一種貪婪算法,收斂的精度與快慢與給定的模型更新比例系數關系非常大。當采用定值更新系數時,更新比例系數越小時,其收斂的精度越高,但是收斂越慢;當更新的比例系數越大時,其收斂精度越低,同時有可能因為過大,導致錯過了有效解,而陷入死循環;在設置時需要綜合考慮。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















