前言
在前面的文章我们介绍了如何基于有限元分析的结果,实现ANSYS与MATLAB的联合优化设计过程。现在我们回过头来,再来谈一谈这其中最基本的一步——如何实现ANSYS APDL参数化建模分析的全过程。
这篇文章先简要介绍下如何实现案例模型的APDL参数化建模分析,由于APDL的各参数设置、原理、意义成千上万,我们主要是大致讲解一下建模思路与大体框架,具体细节碍于篇幅暂且不详谈。
此文通过选取一个高层混凝土结构案例,建筑层数15层,建筑高度为61m,考虑到整体模型的大小与复杂性,剪力墙和楼板采用SHELL181单元,梁柱采用BEAM188单元。如此庞大的模型如果通过用户菜单界面进行点点点不知道要点到什么时候,而采用命令流几小时就能完成全过程。下面就开始我们的参数化建模过程。
实例:高层混凝土结构模型
模型参数定义
第一步先进行参数的定义,针对于整个模型我们首先要确定哪些量是固定不变的,哪些是可变的。变量的定义有两种命令:
*SET,L1,0.2 或 L1=0.2
这两种命令效果是一样的,都是定义变量L1并赋予其0.2的初值。ANSYS APDL是没有单位的,实际建模分析只需保持各参数单位相统一即可,所以在ANSYS 命令流中不需要加单位,只有数值即可。
这之后需要进行单元的定义,在这里我们定义单元1为BEAM188,单元2为SHELL181,
各个单元的实常数等再这里不再赘述,详细可以去查看ANSYS Help文档。之后分别定义结构不同材料的弹性模量、泊松比、密度,由于结构采用混凝土材料,只需定义混凝土材料即可,弾性模型无需定义本构关系。注:每条命令后可加“!”进行命令标注,方便后期查找修改,“!”后的文本程序是不读取参与运行的。
ET,1,BEAM188 !1号单元
ET,2,SHELL181 !2号单元
……
MP,EX,1,3E11 !弹性模量
MP,PRXY,1,0.2 !泊松比
MP,DENS,1,2600 ! 密度
点线面建模
下面来重点介绍下建模思路,考虑到模型的复杂度与运算时间,此模型每层结构布置均一致,如此只需要采用for循环语句就能实现快速建模。遵循点线面的建模原则,首先进行模型关键点的定义,关键点的选取不仅要考虑建筑外轮廓,还要考虑结构构件的布置,此模型标准层如下图,共有160个关键点 ,结构的2至12层是完全一致的,我们可以采用下列命令,将160个点for循环12次。
*do,i,1,12
k,1+(i-1)*200,0,0,5.7+(i-1)*3.150
……
k,160+(i-1)*200,22,22,5.7+(i-1)*3.150
*enddo
这条命令可以翻译文字为:
(关键点,点编号,x坐标,y坐标,z坐标)
每循环一次,关键点编号增加200,层高增加3.15(底层层高5.7,其它层层高3.15)
平面关键点
之后,同样通过for循环语句,由点成线,由线成面,结构梁柱需定义线,墙板需定义面。大致思路如下:
*do,i,1,12
L,1,2 ! 连接1,2点为线
……
*enddo
*do,i,1,11
A,(i-1)*200+1,(i-1)*200+2,i*200+3,i*200+4 !由1,2,3,4点生成面
……
*enddo
至此模型初步建立完毕如下二图。
结构平面图
结构整体模型
网格划分
在划分网格的同时将单元属性赋予到不同的模型构件,由于结构十分规则,同样采用for循环进行属性赋予及网格划分。其中有个很好用的命令select进行特定目标的选取,通过ksel(点选),lsel(线选),asel(面选)命令能够实现不同位置、不同材料的点、线、面、节点、单元的选择、全选、反选操作,用熟了能节省大量的时间。采用这种方式能通过几个for循环语句在几秒钟内实现特定构件的网格划分工作。
LESIZE,ALL,0.2, , , ,1, , ,1, ! 线长度为0.2
*do,i,1,15
ASEL,S,LOC,Z,5.70+3.150*(i-1) !坐标选定
AATT, 1, , 2, 0, 5 !属性赋予
AMESH,ALL !划分网格
*enddo
分网完成后,需要通过节点合并命令合并重合节点。
ALLSEL,ALL
NUMMRG,ALL, , , ,LOW
在这里还需要再提一句,在建模的构思阶段就要着重注意下建模的原则和思路,因为在划分完网格后,相邻构件的重合部分是要求共节点的,这样才能将整个模型连成一个整体,而不是独立分开的各个构件。比如下图这三个面,前两种分网方式保证三个面的交界网格都是贯通的,每两个面的交线上都是共节点的,而第三种方式红色区域很明显网格过渡是断开的,这样会导致节点分离,三个面连不成一个整体。共节点在这种大模型中是十分重要的问题,稍不注意就会导致分析失败,需花费大量时间进行查错,重新建模。
三面模型
网格划分方式1
网格划分方式2
网格划分方式3
结尾
完成前面的重头戏后,接下来的后处理部分就比较简单了。关于下面的有限元分析的结果输出请参阅当《结构设计遇到遗传算法-应用ANSYS和MATLAB联合仿真优化设计探索(一)》。
“转自:非解构-公众号”