最近在搞一个有限元比赛 ,20层钢框架在地震作用下的弹塑性动力时程分析 。 除了用opensees 和p3d 做分析之外,我还尝试用abaqus来算了下。相对于前面两个软件,用abaqus来做结构分析还是挺费劲的,前处理建模,后处理读取数据什么的还是让我头疼了好久的。
在这个过程中参考了崔济东博士的一篇博文(Modal analysis of a frame using Abaqus (Abaqus框架模态分析)),另外自己总结了一点东西,就在这个平台简单分享下吧。
先要讲的是模态分析。
1、首先,给定的模型为一个20层的钢框架,只建立地上部分。
(参考文献:Y.Ohtori,R.E.Christenson,B.F.Spencer. et al. Benchmark control problems for seismically excited nonlinear buildings. Journal of Engineering Mechanics, 2004, 130(4):366-385.
以其中的20层钢框架结构作为分析模型,刚性地基,材料采用双线性随动强化,弹性模量E=200GPa,泊松比v=0.3,塑性模量为0.03E。)
2、建模方式有两种:
一种是在abaqus的Part模块中通过Create Part建立,然而这种方式对于建立复杂的三维模型相对不友好。
另一种是先在其他的建模软件建立好模型后保存为abaqus能够识别的格式(例如iges、sat等),然后通过File-Import-Part导入所建立的模型。
本人是通过在rhino中建好模型,然后保存为iges格式的文件然后导入到了abaqus 中。
(由于框架的建立只需要梁单元,所以模型中只包含线)
3、材料定义
定义两种材料,Material1用于柱,Material2用于梁。
(其中瑞利阻尼 Damping的定义要在模态分析结束得到主要的两个振型后才能确定,在模态分析中可不设置阻尼)
4、截面定义
根据参考文献内容,定义不同梁柱截面,并给定相应的材料属性即可。
5、赋予截面
在abaqus中赋予截面可以有三种方法:
第一种是在cae中用鼠标直接选取,对于简单模型这种做法很简单,然而对于本例子中的模型,梁柱构件太多而且分了17种不同的截面,一个一个选取然后赋予截面太浪费时间了。
第二种是在inp文件中,对通过关键字对各构件进行赋予截面,这个我没有研究过。
第三种是通过python脚本来赋予截面。可以通过python编程,通过getByBoundingBox等方法,一次性选定给定范围内的所有线然后赋予截面。本人采用的就是这种方法,想明白了以后这种方法很快,而且同时还可以定义不同类型梁、不同类型柱的set,后面通过displaygroup方法可以将他们单独的显示出来,能够更好的进行cae中的手动选取处理。
6、局部坐标定义
对于梁单元,还需要进行单元局部坐标的定义。其中梁长度方向为t轴,其他的1、2轴可在截面定义中看到(见fig.8),每一个构件都需要去定义。由于上面的方法中定义了set,所以自己可以考虑是通过在cae中选取实现还是编程或修改inp文件来实现。
7、质量点的定义
上面对材料的定义中并没有赋予其密度属性,即对结构的质量考虑并非通过材料密度来考虑。在本例中将通过节点集中质量的定义来考虑结构质量,根据参考文献所给定的每层质量,基于每层中每个节点的附属面积的大小,来分配节点质量。
路径:Property-Special-Inertia
8、装配
直接Create Instance就行了。
9、创建模态分析步
分析步类型为线性摄动 (Linear Perturbation)
子类为频率分析(Frequency)
10、定义刚性隔板
有两种方法可以定义刚性隔板:
一是在模型中建立面内刚度很大很大的板;
二则是通过构造约束来对同一楼层的各个结点来进行位移耦合。
本例子中采用的是第二种方法。
首先需要在每层刚心处定义参考点。
然后进入Interaction模块,以刚心处参考点作为控制点,对每一层构造Coupling-Kinetic耦合:
11、施加边界条件
本例中只进行模态分析,已经在上面中定义了节点集中荷载,所以就不需要施加额外的荷载了。
对底部支座进行固定约束。
需要注意的是,由于上面设定了刚性隔板,还需要对参考点进行边界约束,约束其U3、UR1和UR2的位移,否则将无法进行计算。
13、提交任务进行分析
准备工作已经就绪,可以进行分析了。
一般情况下根据前面模型以及各种参数的定义,会出现如下所示的warning:
都是提示性的注意事项,对结果准确性影响不大。
14、结果查看
15、结果对比
说明用abaqus来进行模态分析是可靠的。