航空航天结构中的有限元方法编程作业_第1页
航空航天结构中的有限元方法编程作业_第2页
航空航天结构中的有限元方法编程作业_第3页
航空航天结构中的有限元方法编程作业_第4页
航空航天结构中的有限元方法编程作业_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、航空航天结构中的有限元方法编程大作业姓名熊蕾班级110514学号11051121航空航天结构中的有限元方法编程大作业目录一、使用程序介绍1二、数据文件生成程序1三、计算程序2四、例题求解4例1:4例2:5例3:6五、程序不足之处与改进方法71、数据文件的可读性72、数据长度混乱73、输入量很难从图形得出84、算法的性质8六、参考文献8i一、 使用程序介绍由于有限元刚度方程求解过程是一个矩阵运算的过程,使用matlab编写程序会比C语言更加方便。MATLAB是近年来得到迅速发展的数学软件,它将高性能的数值计算和可视化集成在一起,并提供了大量内置函数,被广泛地应用于科学计算、控制系统、信息处理等领

2、域的分析、仿真和实际工作。二、 数据文件生成程序为了方便计算程序读取数据,我编写了以下程序来生成txt数据文件,这样所得的数据文件中数据储存的格式正是计算时需要的格式。format longnn = input('请输入节点总数n')%节点数nm = input('请输入单元数n')%单元数L = input('请输入各杆件的长度,用分号隔开,单位为:mn')%各单元长度(单位:米)E = input('请输入弹性模量,单位为:GPan')%弹性模量A = input('请输入杆件截面积,单位为:m2n')%截面积

3、Q = input('请输入各杆倾角,用分号隔开,单位为:度n')%各杆倾角JM = input('请输入各杆对应的节点(同一杆的节点序号用空格隔开,不同杆之间用分号隔开)n')%各杆对应的节点(同一杆的节点序号用空格隔开,不同杆之间用分号隔开)nf=4%外载荷数量F=input('请输入外载荷,单位为:kNn')%外载荷矩阵bc=input('请输入边界条件,被约束自由度序号的元素置1,未被约束置0')%边界条件,有位移约束的置1data=zeros(11,2*nn)data(1,1)=nndata(2,1)=nmfor i=1

4、:nmdata(3,i)=L(i,1)enddata(4,1)=Edata(5,1)=Afor i=1:nmdata(6,i)=Q(i,1)endfor i=1:nmdata(7,i)=JM(i,1)endfor i=1:nmdata(8,i)=JM(i,2)enddata(9,1)=nffor i=1:2*nndata(10,i)=F(1,i)endfor i=1:2*nn data(11,i)=bc(1,i)endfilename=input('请输入保存的文件名n','s')fid=fopen(filename,'w');fprintf(f

5、id,'%f %f %f %f %f %f %f %f %f %f %f %fn',data)fclose(fid)运行这个.m文件,在指引下输入各项数据,最后能在工作目录下生成文件名可以自定义的txt数据文件。由于时间仓促,编写时设置的输入量写成了杆件长度和杆件的倾斜角,今后可对这些进行改进,输入节点坐标,然后由L2=(x2-x1)2+(y2-y1)2Q=arctany2-y1x2-x1可得出相应杆件的长度和倾角。另外,也可以不使用这个小程序生成数据文件,只要存储数据时按照格式存成一个矩阵,计算程序就能读取相关数据进行计算。三、 计算程序编写的计算程序如下,matlab对矩阵

6、的操作十分方便,首先读入数据并将它们存入一个名为data的矩阵,再用这个矩阵对各参数进行赋值,组装总体刚度矩阵也可以很轻松地进行,因为编程时设置的字长比较短,为确保计算精度,在引入边界条件时用了置1法。filename=input('请输入生成的数据文件的文件名n','s')fid=fopen(filename,'r');data,count=fscanf(fid,'%f %f %f %f %f %f %f %f %f %f %f',11 inf);fprintf(1,'%f %f %f %f %f %f %f %f %f

7、 %f %f',data);fclose(fid)%读入数据nn=data(1,1)nm=data(2,1)for i=1:nmL(i,1)=data(3,i)endE=data(4,1)A=data(5,1)for i=1:nmQ(i,1)=data(6,i)endfor i=1:nmJM(i,1)=data(7,i)endfor i=1:nmJM(i,2)=data(8,i)endnf=data(9,1)for i=1:2*nnF(i,1)=data(10,i)endfor i=1:2*nn bc(i,1)=data(11,i)endndof = 2;%平面桁架节点自由度数为2q

8、= Q*pi/180;a = cos(q);b = sin(q);K2=zeros(nn*ndof);for e=1:nm%对每一个单元(杆)k=A*E/L(e)*a(e)2,a(e)*b(e);a(e)*b(e),b(e)2;K=k,-k;-k,k;%总体坐标系下单元刚度矩阵K1=zeros(nn*ndof);%组装总体刚度矩阵m=JM(e,1);n=JM(e,2);K1(2*m-1),(2*m-1)=K(1,1);K1(2*m-1),(2*m)=K(1,2);K1(2*m-1),(2*n-1)=K(1,3);K1(2*m-1),(2*n)=K(1,4);K1(2*m),(2*m-1)=K(

9、2,1);K1(2*m),(2*m)=K(2,2);K1(2*m),(2*n-1)=K(2,3);K1(2*m),(2*n)=K(2,4);K1(2*n-1),(2*m-1)=K(3,1);K1(2*n-1),(2*m)=K(3,2);K1(2*n-1),(2*n-1)=K(3,3);K1(2*n-1),(2*n)=K(3,4);K1(2*n),(2*m-1)=K(4,1);K1(2*n),(2*m)=K(4,2);K1(2*n),(2*n-1)=K(4,3);K1(2*n),(2*n)=K(4,4);K2=K2+K1;enddisp('总刚度矩阵为:')K2for i=1:2

10、*nn%置1法引入边界条件if bc(i,1)=1 for j=1:2*nn K2(i,j)=0 K2(j,i)=0 end K2(i,i)=1 F(i,1)=0endendV=K2F;%求解位移向量for i=1:2*nn u(i,1)=V(i,1)end disp('各节点的位移为:(单位:m)') u将数据文件放在matlab工作目录下,然后运行这个.m文件,输入数据文件的文件名,如exm1.txt,稍作等待,就可以看到计算的结果各节点的位移向量。四、 例题求解例1:数据为:6.000000 10.000000 9.144000 70.000000 0.010000 0.

11、000000 3.000000 5.000000 4.000000 0.000000 0.000000 0.000000 0.000000 9.144000 0.000000 0.000000 0.000000 1.000000 3.000000 0.000000 1.000000 0.000000 0.000000 0.000000 9.144000 0.000000 0.000000 0.000000 4.000000 6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 9.144000 0.000000 0.000000 0.000

12、000 2.000000 4.000000 0.000000 -1.000000 0.000000 0.000000 0.000000 9.144000 0.000000 0.000000 90.000000 3.000000 4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 9.144000 0.000000 0.000000 90.000000 1.000000 2.000000 0.000000 1.000000 0.000000 0.000000 0.000000 12.930000 0.000000 0.000000 -45.

13、000000 4.000000 5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 12.930000 0.000000 0.000000 45.000000 3.000000 6.000000 0.000000 -1.000000 0.000000 0.000000 0.000000 12.930000 0.000000 0.000000 -45.000000 2.000000 3.000000 0.000000 0.000000 1.000000 0.000000 0.000000 12.930000 0.000000 0.00000

14、0 45.000000 1.000000 4.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 运行后结果是:图 1 例1结果截图例2:生成的数据为:11.000000 21.00000

15、0 4.000000 70.000000 0.010000 0.000000 1.000000 2.000000 4.000000 0.000000 1.000000 0.000000 0.000000 4.000000 0.000000 0.000000 0.000000 2.000000 3.000000 0.000000 0.000000 1.000000 0.000000 0.000000 4.000000 0.000000 0.000000 0.000000 3.000000 4.000000 0.000000 0.000000 0.000000 0.000000 0.000000

16、4.000000 0.000000 0.000000 0.000000 4.000000 5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 4.000000 0.000000 0.000000 0.000000 5.000000 6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 4.000000 0.000000 0.000000 0.000000 6.000000 7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5.6

17、57000 0.000000 0.000000 45.000000 1.000000 8.000000 0.000000 1.000000 0.000000 0.000000 0.000000 4.000000 0.000000 0.000000 0.000000 8.000000 9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 8.000000 0.000000 0.000000 0.000000 9.000000 10.000000 0.000000 1.000000 0.000000 0.000000 0.000000 4.00

18、0000 0.000000 0.000000 0.000000 10.000000 11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5.657000 0.000000 0.000000 45.000000 11.000000 7.000000 0.000000 1.000000 0.000000 0.000000 0.000000 4.000000 0.000000 0.000000 90.000000 2.000000 8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5.

19、657000 0.000000 0.000000 45.000000 2.000000 9.000000 0.000000 0.000000 1.000000 0.000000 0.000000 5.657000 0.000000 0.000000 -45.000000 3.000000 8.000000 0.000000 0.000000 1.000000 0.000000 0.000000 4.000000 0.000000 0.000000 90.000000 3.000000 9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5

20、.657000 0.000000 0.000000 -45.000000 4.000000 9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5.657000 0.000000 0.000000 45.000000 4.000000 10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 4.000000 0.000000 0.000000 90.000000 5.000000 10.000000 0.000000 0.000000 0.000000 0.000000 0.00000

21、0 5.657000 0.000000 0.000000 45.000000 5.000000 11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5.657000 0.000000 0.000000 -45.000000 6.000000 10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 4.000000 0.000000 0.000000 90.000000 6.000000 11.000000 0.000000 0.000000 0.000000 0.000000 0.0

22、00000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 运行后结果为:图 2 例2运行结果截图例3:数据:11.000000 18.000000 6.350000 70.000000 0.010000 0.000000 1.000000 2.000000 5.000000 0.000000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 2.000000 4.000000 0.000000 -88.9

23、70000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 4.000000 6.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 6.000000 8.000000 0.000000 -88.970000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 8.000000 10.000000 0.000000 0.0

24、00000 0.000000 0.000000 0.000000 8.980000 0.000000 0.000000 45.000000 1.000000 3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 3.000000 5.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 5.000000 7.000000 0.000000 -88.9

25、70000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 7.000000 9.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 0.000000 9.000000 11.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 90.000000 2.000000 3.000000 0.000000 0.00

26、0000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 90.000000 4.000000 5.000000 0.000000 -88.970000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 90.000000 6.000000 7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.350000 0.000000 0.000000 90.000000 8.000000 9.000000 0.000000 0.

27、000000 0.000000 0.000000 0.000000 8.980000 0.000000 0.000000 135.000000 3.000000 4.000000 0.000000 0.000000 0.000000 0.000000 0.000000 8.980000 0.000000 0.000000 135.000000 5.000000 6.000000 0.000000 -88.970000 0.000000 0.000000 0.000000 8.980000 0.000000 0.000000 135.000000 7.000000 8.000000 0.000000 0.000000 0.000000 0.000000 0.000000 8.980000 0.000000 0.000000 135.000000 9.000000 10.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论