找回密码
 注册
Simdroid-非首页
查看: 172|回复: 0

[07.原创分享] 采用模拟退火算法改进悬索结构找形

[复制链接]
发表于 2019-11-7 16:02:46 | 显示全部楼层 |阅读模式 来自 江苏苏州
采用通用有限元结构分析软件进行悬索结构找形是一个经典的问题,比如这样一个典型案例:
在水平跨距L=120m,纵向高差h=20m的两端有一悬索,悬索截面积为:


单位长度的重量为γ=65N,弹性模量为:


求悬索在水平张力为9000N时的悬索形状和对应悬索的原始长度。
一般情况下主要的分析流程是:
1. 在弦长位置建立初始几何模型。
2. 给定一个很小的初始应变。
3. 计算此时在重力作用下的响应。
4. 判断此时的水平张力的大小。
5. 如果此时的水平张力的大小大于给定的水平张力,则根据误差的大小,人为将模型更新比例系数设置成几个档。
6. 重复计算步骤3~6,直到水平张力小于给定的水平张力,或是达到给定的误差允许范围。
7. 后处理得到原始悬索的长度。
通过上述流程,基本可以完成悬索的找形。但是在找形过程中存在以下问题:
1. 在循环迭代过程中,人为给定的误差范围,有时可能造成迭代找形发生跳跃。即在某次迭代过程中误差大于迭代收敛误差,当更新模型后,误差小于迭代收敛相对误差,但相对误差(绝对值)又大于迭代收敛相对误差。从而错过了有效解,进而在后续的迭代过程中没法返回,导致出现死循环。
2. 在循环过程中,实际参与的变量数目有相对误差控制数值,模型更新比例系数。因此,要人为给定多档合理的数值往往需要多次尝试,甚至,即使多次尝试也不能得到较好的结果。另外,当设定好每个档的数值以后,当原始参数改变时,又需要重新调整。
为了解决上述问题,采用模拟退火算法,即模型更新的比例系数随着相对误差的大小变化。当相对误差较给定相对误差大时,取模型更新系数为1,当相对误差小于给定相对误差的相反数时,采用退火算法,并构建相对误差与模型更新系数的函数:

其中:factor为模型更新比例系数,A为待定系数,err为相对误差值
这样人为需要调整的参数就只有待定系数A。这里的负号确保了即使再迭代的时候错过了有效解,也可以退回去,确保迭代的有效进行。
也可根据输出文件,绘制误差和水平张力随迭代次数的曲线。



由以上2个曲线可知,随着迭代的进行,相对误差和水平张力急剧下降,从而减少了迭代的次数。
另外模拟退火算法本质是一种贪婪算法,收敛的精度与快慢与给定的模型更新比例系数关系非常大。当采用定值更新系数时,更新比例系数越小时,其收敛的精度越高,但是收敛越慢;当更新的比例系数越大时,其收敛精度越低,同时有可能因为过大,导致错过了有效解,而陷入死循环;在设置时需要综合考虑。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-19 14:19 , Processed in 0.024738 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表