【BiliBili】 【知乎】 【QQ空间】 【微博】


博学慎思,坚持创新,求知若飢,虛心若愚                       关键字     类型    
  • 博主
  • 全部
  • 日志
  • 研究
  • 论文
  • 自编程序
  • 工程
  • Dino笔记
  • DinoBox
  • OpenSEES
  • Dino公开课
  • 每周挑战
  • Dino爱编程
  • 留言板

DinoBox

Grasshopper插件 JerryFish
JerryFish[GH]
2022-07-27
ETE_Frame3D
结构分析程序
ETE_Frame3D
2022-01-19
ETE-section截面分析程序
ETE-section
2021-08-19
上一篇 | 下一篇
Dino笔记 订阅所有Dino笔记的日志

[Dino笔记]遗传算法在钢结构优化分析中的应用

作者:dinochen1983 日期:2020-12-06

字体大小: 小 中 大

【Dino结构笔记】遗传算法在钢结构优化分析中的应用


【点击下载】下载相关的ETABS与OPENSEES模型文件

结构优化的方法有很多种,中间有的涉及到非常系统的工程优化算法,如之前介绍的单纯体法(算是比较简单的),在这里推荐大家一本好书《工程优化方法》陈卫东写的。
结构设计中很多时侯我们并不是要得到最最优解,相对优化对工程师就很不错了,但是太复杂的算法会让工程师很难把控,特别是计算时间长,因此遗传算法作为只是找到相对最优解的方法在工程上能很好地被利用。正所谓“遇事不决,量子力学,不知解法,遗传算法”。
 
遗传算法的背后思想就是优胜劣汰的自然法则z


在这里我们只是把遗传算法的思想应用在结构工程上,可以说是似遗传算法,并不是工程优化研究或算法研究中的复杂的遗传算法。在MARK SARKISIAN的《DESIGNING TALL BUILDINGS》(非常推荐大家去看)的书上提到这种遗传算法的应用。
 
MARK SARKISIAN的《DESIGNING TALL BUILDINGS》应用介绍

那么这一期的Dino结构笔记就通过OPENSEES, ETABS等软件结合编程实现一个遗传算法的计算,以一个桁架结构为例进行介绍吧。

实例:对一定总重量的钢桁架结构进行结构优化,使桁架在重力荷载作用下的跨中变形最小,也即是刚度最大。桁架上弦的节点的作用力为150kN,由于桁架是对称的,采用半跨建模,初始条件,全部截面的尺寸为4000mm2,统计一下,半跨的桁架的总重量约为2.285 ton。
计算简图如下图所示。通过遗传算法确定每一节截面的大小,以保证在用钢量一定的情况下总刚度最大。
 
桁架的计算简图

(1) 这个实例我打算采用OPENSEES进行分析,那么首先我们建立ETABS模型,加入支座与荷载条件,如下图所示,导出S2K文件以供导入OPENSEES所用。
 
桁架在ETABS中建模

(2) 导入ETO生成OPENSEES的分析命令流文件,导入ETO以后处到桁架的构件编号如图所示。在OPENSEES中我们只需要输入点13的竖向位移,做为遗传算法的评分标准,点13的位移越小,评分越高,代表遗传算法中的后代更加优秀。
 
桁架在OPENSEES中的建模


(3) OpenSEES的命令流如下所示,命令流分为3个部分:
第一部分:节点、材料与支座条件(分析过程中不发生改变)
第二部分:截面(分析过程中不断改变),采用引入文件  source section_1.tcl
第三部分:分析与结果提取,结果提取的命字改变,即:
recorder Node -file node1.out -time -node 13 -dof 3 disp
不同的个体分析存储的文件名不同, 分别是 node1~node8.out, 记录13号点的竖向位移

model basic -ndm 3 -ndf 6
node 1 0.000E+000 0.000E+000 0.000E+000
……….
node 17 1.000E+004 0.000E+000 0.000E+000
fix 1 1 1 1 1 1 1;
……….
fix 17 0 1 0 1 1 1;
uniaxialMaterial Elastic 1 1.999E+005
source section_1.tcl
recorder Node -file node1.out -node 13 -dof 3 disp
pattern Plain 1 Linear {
load 4 0.000E+000 0.000E+000 -1.500E+005 0.000E+000 0.000E+000 0.000E+000
……….
load 15 0.000E+000 0.000E+000 -1.500E+005 0.000E+000 0.000E+000 0.000E+000
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.0e-6 200
algorithm Newton
integrator LoadControl 1
analysis Static
analyze 1

(4) 桁架截面在遗传算法的过程中是不断变化的,所以这个文件需要不断的修改,8个子代就有8个不同的文件存储,如其中一个子代的截面文件 section_1.tcl如下所示。
element truss 1 2 3 9267.198 1
………
element truss 31 17 11 1215.233 1

(5) 基本的OPENSEES的文件构造就搭好了,只要Run OpenSEES,程序就会计算出不同截面布置情况下的13号节点的竖向位移,我们的目标就是让这个位移变小。

整个简化遗传算法的流程图
(6) 接下来我们就需要通过编程实现遗传算法,并控制OPENSEES不断计算。这里我采用DELPHI进行编程,编了一个简化的遗传算法逻辑。流程图如下图所示。
遗传算法的主要内容如下:
a). 随机生成8个母代桁架结构模型,截面是随机大小分布,总重量恒定
b). 采用OPENSEES作为计算核心计算出8个母代桁架的位移作为评分标准
c). 对母代桁架进行排序,位移最小则最优,得到较大的交配概率为26.7%
d). 根据交配概率抽取2个母代桁架进行杂交,生成新的子代桁架,进行8次
e). 子代桁架需要出现变异,以保证多样性,抽取个别构件截面放大150%与缩小66.7%,以这个操作代表变异性。
f)把子代进行OPENEES计算,即执行b的操作,整个过程循环操作。

最后遗传算法的程序编好,如图所示,迭代次数与13号节点的位移曲线如图所示。

证明,随着遗传算法的不断迭代,桁架的刚度越来越大。13号节点的位移从413降至187mm。

 
 
基于OPENSEES的遗传算法控制程序
 
迭代次数与竖向位移值的关系


(7) 采用ETABS进行分析:原方案与最后优化方案的用钢量是相等
原方案:全部杆件的截面为4000mm2,13号节点竖向变形为350mm
优化方案:每个截面如下图表所示,13号节点竖向变形为185mm。刚度有了明显的提高。而这个算法的优化方向是指定的,虽然有可能不是最优,但是足够应用于工程了。

 
原方案的ETABS计算结果

 
优化方案的ETABS计算结果
 
优化方案的ETABS计算结果(虚功分布图)


总结:大自然总能给工程师与科学家启发,特别是优化算法的研究领域,如蚁群算法,狼群算法,人工神经网络算法等等。自然经过以亿年为单位的时间进行演化,从中有太多的规律可以被发现并为工程师学习与应用。作为工程师通过简单的编程实现遗传算法在工程计算中的应用,那一种喜悦是非常特别的。

             
 
我与桁架结构的合照



[本日志由 dinochen1983 于 2021-11-07 12:06 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 钢结构钢结构 优化优化
评论: 0 | 引用: 0 | 查看次数: 6229
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
Dino:如果看不到验证码,再刷几下就可以了
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 200 字 | UBB代码 关闭 | [img]标签 关闭

信息(Information)

DinoChen 视频频道

My GitHub Page



扫描以下二维码,加入公众号!


dinochen.com需要你的支持


日历(Calendar)

2022年8月
  • 日
  • 一
  • 二
  • 三
  • 四
  • 五
  • 六
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3

查找(Search)

关键字
 
类 型

文章(Recent Article)

[OpenSEES]OpenSEES实例教程[汇总...[程序]Grasshopper插件Jerry Fi...[Dino笔记]粒子群算法在桁架结构中的应用[获奖]WSP亚洲2021年卓越奖获得一等奖与创新...[Dino笔记]基于遗传算法对剪力墙结构优化设计方...[Dino笔记]基于OpenSEES虚功原理的钢结...[OpenSEES] 新版ETO更新及相关下载方法...[新闻]祝韩老师荣获广东省科技进步一等奖[程序]ETE-section功能更新:可修改划分...[App开发]采用Swfit语言编制经典的推箱子游...

评论(Comments)

陈博士您好,ETE-sec最新版本和以前的一些版本...您好。陈博士,想问一下怎么下载这个软件呀陈博士您好,这个小工具好像有点问题,有效翼板宽度b...打开的时候显示“你没有许可证”,怎么弄啊陈博士您好,这个是需要购买的软件还是可以试用的怎么查看文档计算过程呢,陈博士一直显示出现一个错误字符无法计算是什么原因呢?为什么一直出错计算不了?陈博士,能共享下文件嘛?第二版没有光盘陈博士您好,我换了好几台电脑ETE还是需要许可,

留言(GuestBook)

请问陈博士,对于任意截面的柱配筋设计改如何实现,本...各位老师好,我是小白,请问大家有没有编写过open...陈博士您好,挡土墙计算的程序是否可以修改成挡土墙内...陈博士您好,想请问一下零长度单元用在桥梁的支座上,...陈博,新版ETO下载以后界面打不开是什么原因呢,旧...陈博士您好,请问可以出一期画易损性曲线的教程吗陈博士您好,我在学习您4.33侧向多自由度简化模型...陈博士您好,計算wind2019的program ...陈博士,您好,我下载使用了您编写的压型钢板组合楼板...陈博士您好,我是opensee初学者,想向您请教两...

TagBar

Loading...

用户面板(User Panel)

登录用户注册

统计(Statistics)

日志: 409 篇
评论: 895 个
留言: 418 个
访问: 14330966 次
在线: 5 人
建站时间: 2008-02-08

Powered By PJBlog3 V2.7 Build 05 CopyRight 2005 - 2011, 陈学伟的博客

Processed in 0.232422 second(s) , 6 queries 粤ICP备15071789号-1