(和小伙伴,一起给大家带来有限元编程案例。)
- 程序作者 ( Author)
JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2
1.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院
- 问题描述( Problem Description)
节点1处为固定铰支座,节点4处为滑动铰支座,节点5、6、7处分别受到-y方向P=100000N的集中力作用;结构中各杆件采用相同的规格,其中弹性模量E=200000MPa,截面积A=4532mm2。
基于MATLAB编程实现该桁架结构的弹性静力分析,并将MATLAB的计算结果与SAP2000、Midas Gen分析结果进行对比。
- MATLAB 编程
- SAP2000
EXCEL_MATLABvs.SAP2000
方向 | 节点 1 | 节点 2 | 节点 3 | 节点 4 | 节点 5 | 节点 6 | 节点 7 | |
X 向 | MATLAB | 0 | 0.2482 | 0.662 | 0.9102 | 0.7861 | 0.4551 | 0.1241 |
SAP2000 | 0 | 0.2481 | 0.6615 | 0.9096 | 0.7856 | 0.4548 | 0.124 | |
相对偏差( % ) | 0 | -0.052 | -0.0724 | -0.0668 | -0.0691 | -0.0668 | -0.0524 | |
Z 向 | MATLAB | 0 | -1.5871 | -1.5871 | 0 | -1.0869 | -1.9218 | -1.0869 |
SAP2000 | 0 | -1.586 | -1.586 | 0 | -1.0862 | -1.9205 | -1.0862 | |
相对偏差( % ) | 0 | -0.0677 | -0.0677 | 0 | -0.0684 | -0.0669 | -0.0684 |
- Midas Gen
EXCEL_MATLABvs.MidasGen
方向 | 节点 1 | 节点 2 | 节点 3 | 节点 4 | 节点 5 | 节点 6 | 节点 7 | |
---|---|---|---|---|---|---|---|---|
X 向 | MATLAB | 0 | 0.2482 | 0.662 | 0.9102 | 0.7861 | 0.4551 | 0.1241 |
Midas Gen | 0 | 0.2481 | 0.6615 | 0.9096 | 0.7856 | 0.4548 | 0.124 | |
相对偏差( % ) | 0 | -0.0661 | -0.0662 | -0.0661 | -0.0662 | -0.0661 | -0.0661 | |
Z 向 | MATLAB | 0 | -1.5871 | -1.5871 | 0 | -1.0869 | -1.9218 | -1.0869 |
Midas Gen | 0 | -1.5871 | -1.5871 | 0 | -1.0869 | -1.9218 | -1.0869 | |
相对偏差( % ) | 0 | 0 | -0.0015 | 0 | -0.0022 | -0.0007 | -0.0022 |
- ABAQUS
EXCEL_MATLAB vs. Abaqus
方向 | 节点 1 | 节点 2 | 节点 3 | 节点 4 | 节点 5 | 节点 6 | 节点 7 | |
---|---|---|---|---|---|---|---|---|
X 向 | MATLAB | 0 | 0.2482 | 0.662 | 0.9102 | 0.7861 | 0.4551 | 0.1241 |
ABAQUS | 0 | 0.2482 | 0.662 | 0.9102 | 0.7861 | 0.4551 | 0.1241 | |
相对偏差( % ) | 0 | -0.0141 | 0.0062 | 0.0007 | 0.0029 | 0.0007 | -0.0137 | |
Z 向 | MATLAB | 0 | -1.5871 | -1.5871 | 0 | -1.0869 | -1.9218 | -1.0869 |
ABAQUS | 0 | -1.5871 | -1.5871 | 0 | -1.0869 | -1.9218 | -1.0869 | |
相对偏差( % ) | 0 | 0.0013 | 0.0013 | 0 | 0.0018 | 0.0005 | 0.0018 |
可以看出,MATLAB编程计算结果是和 SAP2000,MidasGen 及 Abaqus计算结果是完全一致的。
- 注释 ( Comments )
源代码已经收录到新书《有限单元法:编程与软件应用》,详见链接:http://www.jdcui.com/?page_id=9731
- 微信公众号 ( Wechat Subscription)
欢迎关注 “结构之旅” 微信公众号
你好,对照书上的代码计算出的结果不太一致,不知道问题在哪。能发送份2D truss单元的代码吗。
hi sir please i want to help me
我是说,midas gen的那个结果精度有问题。你那边也看了matlab abaqus sap2000的结果了,都是可以对的上,就midas那个偏的比较多
哈哈哈哈。我逗你玩的。改天我再查查吧,这种单元肯定是5个小数点对上才是。只是被眼尖的你发现了。
节点位移
Joint X Y
1 0.000000000000 0.000000000000
2 0.248234774934 -1.587075785042
3 0.661959399823 -1.587075785042
4 0.910194174757 0.000000000000
5 0.786076787290 -1.086875682559
6 0.455097087379 -1.921786037570
7 0.124117387467 -1.086875682559
单元轴力
Element F
1 75.000000000000
2 125.000000000000
3 75.000000000000
4 -100.000000000000
5 -100.000000000000
6 -167.705098312484
7 -55.901699437495
8 55.901699437495
9 55.901699437495
10 -55.901699437495
11 -167.705098312484
支承反力
Joint FX FY
1 -0.000000000000 150.000000000000
4 0.000000000000 150.000000000000
这个是我的代码算出来的结果,和matlab abaqus基本一致,midas gen那个估计是考虑了什么不该考虑的东西。
这种肯定是对得上的,只是懒得去核对,只是为了证明我写完了而已,你不需要给我列你的结果,我自己很清楚。哈哈。
是不是哪里不太对啊,这种桁架按理说不应该有误差的。我之前用C++写过,误差基本就是0,你看看。
http://whchen.net/blog/displacement_method_for_solving_plane_truss/
尽然在这里打广告。。。。