有限元课程设计.docx
- 文档编号:23760887
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:15
- 大小:159.58KB
有限元课程设计.docx
《有限元课程设计.docx》由会员分享,可在线阅读,更多相关《有限元课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
有限元课程设计
有限元分析课程设计
一、课题
悬臂梁受外载荷如图1-1所示。
已知E=190Gpa,μ=0.25,容重ρ=0,悬臂梁长l=5m,高h=1m厚度t=10cm。
要求:
用矩形单元进行有限元分析,单元数不少于20个。
给出计算程序、梁的变形图、应力分布图。
图1-1
二、分析过程
图1-2
1、数据采集:
对所给悬臂梁进行单元划分,划分结果如图1-2所示。
(1)基本参数:
1.单元数:
NE=40;
2.节点数:
NJ=55;
3.支承数:
NZ=10;
4.节点荷载数:
NPJ=15;
5.半带宽:
DD=(5+1)*2=12;
6.节点位移数:
NJ2=NJ*2=110;
(2)其它参数:
1.问题类型码:
LMX=1(平面问题)
2.弹性模量:
E0=190Gpa;
3.泊松比:
MU=0.25;
4.容重:
LOU=0;
5.板厚t:
TE=0.1m;
给单元体和划分的节点进行编号。
如图1-3所示。
图1-3
(3)并计算所受载荷的大小,并分配到节点处。
如图1-4所示。
图1-4
载荷计算
悬臂梁上方:
P=q*S=q*l*t=10e6*5*0.1=5e6
悬臂梁端面:
如下左图1-5所示。
F1区域=F正方形+F1三角形=5e6*0.25*0.1+1/2*5e6*0.25*0.1
F正方形=5e6*0.25*0.1
F1三角形=1/2*5e6*0.25*0.1
F2区域=F2三角形=1/2*5e6*0.25*0.1
于是:
P1=1/2*F正方形+2/3*F1三角形=104.17KN=-P4图1-5
P2=1/3*F1三角形+2/3*F2三角形=125KN=-P5
P3=0(由于对称性)
节点荷载
将计算所得的在和分配到各节点上,有:
1.
=250KN2.
=500KN3.
=500KN4.
=500KN5.
=500KN
6.
=500KN7.
=500KN8.
=500KN9.
=500KN10.
=500KN
11.
=354.17KN12.
=125KN13.
=0KN14.
=-125KN15.
=-104.17KN
(4)节点坐标数组:
AJZ
AJZ[NJ+1][3]={{0,0,0},{0,5,1},{0,5,0.75},{0,5,0.5},{0,5,0.25},{0,5,0},{0,4.5,1},{0,4.5,0.75},{0,4.5,0.5},{0,4.5,0.25},{0,4.5,0}{0,4,1},{0,4,0.75},{0,4,0.5},{0,4,0.25},{0,4,0}{0,3.5,1},{0,3.5,0.75},{0,3.5,0.5},{0,3.5,0.25},{0,3.5,0},{0,3,1},{0,3,0.75},{0,3,0.5},{0,3,0.25},{0,3,0},{0,2.5,1},{0,2.5,0.75},{0,2.5,0.5},{0,2.5,0.25},{0,2.5,0},{0,2,1},{0,2,0.75},{0,2,0.5},{0,2,0.25},{0,2,0},{0,1.5,1},{0,1.5,0.75},{0,1.5,0.5},{0,1.5,0.25},{0,1.5,0},{0,1,1},{0,1,0.75},{0,1,0.5},{0,1,0.25},{0,1,0},{0,0.5,1},{0,0.5,0.75},{0,0.5,0.5},{0,0.5,0.25},{0,0.5,0},{0,0,1},{0,0,0.75},{0,0,0.5},{0,0,0.25},{0,0,0}}
(5)节点码数组:
JM
JM[NE+1][5]={{0,0,0,0,0},{0,7,2,1,6},{0,8,3,2,7},{0,9,4,3,8},{0,10,5,4,9},{0,12,7,6,11},{0,13,8,7,12},{0,14,9,8,13},{0,15,10,9,14},{0,17,12,11,16},{0,18,13,12,17},{0,19,14,13,18},{0,20,15,14,19},{0,22,17,16,21},{0,23,18,17,22},{0,24,19,18,23},{0,25,20,19,24},{0,27,22,21,26},{0,28,23,22,27},{0,29,24,23,28},{0,30,25,24,29},{0,32,27,36,31},{0,33,28,27,32},{0,34,29,28,33},{0,35,30,29,24},{0,37,32,31,36},{0,38,33,32,37},{0,39,34,33,38},{0,40,35,34,39},{0,42,37,36,41},{0,43,38,37,42},{0,44,39,38,43},{0,45,40,39,34},{0,47,42,41,46},{0,48,43,42,47},{0,49,44,43,48},{0,50,45,44,49},{0,52,47,46,51},{0,53,48,47,52},{0,54,49,48,53},{0,55,50,49,44}};
(6)支撑数组:
NZC
NZC[NZ+1]={0,101,102,103,104,105,106,107,108,109,110}
(7)节点荷载数组:
PJ
PJ[NPJ+1][2+1]={{0,0,0},{0,354.17,1},{0,125,3},{0,0,5},{0,-125,7},{0,-104.17,9},{0,500,11},{0,500,21},{0,500,31},{0,500,41},{0,500,51},{0,500,61},{0,500,71},{0,500,81},{0,500,91},{0,250,101}};
三、程序设计
源程序
#include
#include
#defineNE40
#defineNJ55
#defineNZ10
#defineNPJ15
#defineNJ2110
#defineDD12
intLXM=1;
doubleEO=190000000000;
doubleMU=0.25;
doubleLOU=0;
doubleTE=0.1;
doubleAJZ[NJ+1][3]={{0,0,0},{0,5,1},{0,5,0.75},{0,5,0.5},{0,5,0.25},{0,5,0},{0,4.5,1},{0,4.5,0.75},{0,4.5,0.5},{0,4.5,0.25},{0,4.5,0},{0,4,1},{0,4,0.75},{0,4,0.5},{0,4,0.25},{0,4,0},{0,3.5,1},{0,3.5,0.75},{0,3.5,0.5},{0,3.5,0.25},{0,3.5,0},{0,3,1},{0,3,0.75},{0,3,0.5},{0,3,0.25},{0,3,0},{0,2.5,1},{0,2.5,0.75},{0,2.5,0.5},{0,2.5,0.25},{0,2.5,0},{0,2,1},{0,2,0.75},{0,2,0.5},{0,2,0.25},{0,2,0},{0,1.5,1},{0,1.5,0.75},{0,1.5,0.5},{0,1.5,0.25},{0,1.5,0},{0,1,1},{0,1,0.75},{0,1,0.5},{0,1,0.25},{0,1,0},{0,0.5,1},{0,0.5,0.75},{0,0.5,0.5},{0,0.5,0.25},{0,0.5,0},{0,0,1},{0,0,0.75},{0,0,0.5},{0,0,0.25},{0,0,0}};
intJM[NE+1][5]={{0,0,0,0,0},{0,7,2,1,6},{0,8,3,2,7},{0,9,4,3,8},{0,10,5,4,9},{0,12,7,6,11},{0,13,8,7,12},{0,14,9,8,13},{0,15,10,9,14},{0,17,12,11,16},{0,18,13,12,17},{0,19,14,13,18},{0,20,15,14,19},{0,22,17,16,21},{0,23,18,17,22},{0,24,19,18,23},{0,25,20,19,24},{0,27,22,21,26},{0,28,23,22,27},{0,29,24,23,28},{0,30,25,24,29},{0,32,27,36,31},{0,33,28,27,32},{0,34,29,28,33},{0,35,30,29,24},{0,37,32,31,36},{0,38,33,32,37},{0,39,34,33,38},{0,40,35,34,39},{0,42,37,36,41},{0,43,38,37,42},{0,44,39,38,43},{0,45,40,39,34},{0,47,42,41,46},{0,48,43,42,47},{0,49,44,43,48},{0,50,45,44,49},{0,52,47,46,51},{0,53,48,47,52},{0,54,49,48,53},{0,55,50,49,44}};
intNZC[NZ+1]={0,101,102,103,104,105,106,107,108,109,110};
doublePJ[NPJ+1][2+1]={{0,0,0},{0,354.17,1},{0,125,3},{0,0,5},{0,-125,7},{0,-104.17,9},{0,500,11},{0,500,21},{0,500,31},{0,500,41},{0,500,51},{0,500,61},{0,500,71},{0,500,81},{0,500,91},{0,250,101}};
doubleAE,KZ[NJ2+1][DD+1],P[NJ2+1],S[4+1][8+1],KE[8+1][8+1];
intIE,JE,ME;
voidDUGD(int,int);
voidmain()
{
intNJ1,k,IN,IM,jn,m,i,j,z,JO,ii,jj,h,dh,E,l,zl,dl;
doublePE,c,SIG1,SIG2,SIG3,PYL,RYL,MAYL,MIYL,CETA;
doubleWY[8+1],YL[4+1];
if(LXM!
=0)
{
EO=EO/(1.0-MU*MU);
MU=MU/(1.0-MU);
}
//调用函数DUGD(),生成KZ矩阵
for(i=0;i<=NJ2;i++)
{
for(j=0;j<=DD;j++)
KZ[i][j]=0.0;
}
for(E=1;E<=NE;E++)
{
DUGD(E,4);
for(i=1;i<=4;i++)
{
for(ii=1;ii<=3;ii++)
{
h=3*(i-1)+ii;
dh=3*(JM[E][i]-1)+ii;
for(j=1;j<=4;j++)
{
for(jj=1;jj<=3;jj++)
{
l=3*(j-1)+jj;
zl=3*(JM[E][j]-1)+jj;
dl=zl-dh+1;
if(dl>0)
KZ[dh][dl]=KZ[dh][dl]+KE[h][l];
}
}
}
}
}
//形成P矩阵
for(i=1;i<=NJ2;i++)
P[i]=0.0;
if(NPJ>0)
{
for(i=1;i<=NPJ;i++)
{
j=(int)PJ[i][2];
P[j]=PJ[i][1];
}
}
if(LOU>0)
{
for(E=1;E<=NE;E++)
{
DUGD(E,1);
PE=-LOU*(AE)*TE/3;
P[2*IE]=P[2*IE]+PE;
P[2*JE]=P[2*JE]+PE;
P[2*ME]=P[2*ME]+PE;
}
}
//引入边界条件
for(i=1;i<=NZ;i++)
{
z=NZC[i];
KZ[z][1]=1.0;
for(j=2;j<=DD;j++)
KZ[z][j]=0.0;
if(z!
=1)
{
if(z>DD)
JO=DD;
else
JO=z;
for(j=2;j<=JO;j++)
KZ[z-j+1][j]=0.0;
}
P[z]=0.0;
}
//求解方程并输出位移
//高斯消元
NJ1=NJ2-1;
for(k=1;k<=NJ1;k++)
{
if(NJ2>k+DD-1)
IM=k+DD-1;
else
IM=NJ2;
IN=k+1;
for(i=IN;i<=IM;i++)
{
l=i-k+1;
c=KZ[k][l]/KZ[k][1];
jn=DD-l+1;
for(j=1;j<=jn;j++)
{
m=j+i-k;
KZ[i][j]=KZ[i][j]-c*KZ[k][m];
}
P[i]=P[i]-c*P[k];
}
}
//矩阵回代
P[NJ2]=P[NJ2]/KZ[NJ2][1];
for(i=NJ1;i>=1;i--)
{
if(DD>=NJ2-i+1)
JO=NJ2-i+1;
else
JO=DD;
for(j=2;j<=JO;j++)
{
h=j+i-1;
P[i]=P[i]-KZ[i][j]*P[h];
}
P[i]=P[i]/KZ[i][1];
}
printf("\n");
printf("JDUV\n");
for(i=1;i<=NJ;i++)
{
printf("%2d%-9.6f%-9.6f\n",i,P[2*i-1],P[2*i]);
}
//求单元应力和主应力
for(E=1;E<=NE;E++)
{
DUGD(E,2);
for(i=1;i<=4;i++)
{
for(j=1;j<=3;j++)
{
h=3*(i-1)+j;
dh=3*(JM[E][i]-1)+j;
WY[h]=P[dh];
}
}
for(i=1;i<=4;i++)
{
YL[i]=0;
for(j=1;j<=8;j++)
YL[i]=YL[i]+S[i][j]*WY[j];
}
SIG1=YL[1];
SIG2=YL[2];
SIG3=YL[3];
PYL=(SIG1+SIG2)/2;
RYL=sqrt(pow((SIG1-SIG2)/2.0,2)+pow(SIG3,2));
MAYL=PYL+RYL;
MIYL=PYL-RYL;
if(SIG2==MIYL)
CETA=0;
else
CETA=90-57.29578*atan2(SIG3,(SIG2-MIYL));
printf("\n");
printf("E=%d\n",E);
printf("sx=%-9.6fsy=%-9.6ftou=%-9.6f\n",SIG1,SIG2,SIG3);
printf("s1=%-9.6fs2=%-9.6ftheta=%-9.6f\n",MAYL,MIYL,CETA);
}
}
//DUGD
voidDUGD(intE,intASK)
{
doubleB[3+1][6+1],D[3+1][3+1];
inti,j,k,CM1,CM2,CM,BM,CJ,BJ;
IE=JM[E][1];
JE=JM[E][2];
ME=JM[E][3];
CM=AJZ[JE][1]-AJZ[IE][1];
BM=AJZ[IE][2]-AJZ[JE][2];
CJ=AJZ[IE][1]-AJZ[ME][1];
BJ=AJZ[ME][2]-AJZ[IE][2];
AE=(BJ*CM-BM*CJ)/2.0;
if(ASK>1)
{
for(i=1;i<=3;i++)
for(j=1;j<=6;j++)
B[i][j]=0.0;
B[1][1]=(-BJ-BM)/(2.0*AE);
B[1][3]=BJ/(2.0*AE);
B[1][5]=BM/(2.0*AE);
B[2][2]=(-CJ-CM)/(2.0*AE);
B[2][4]=CJ/(2.0*AE);
B[2][6]=CM/(2.0*AE);
B[3][1]=B[2][2];
B[3][2]=B[1][1];
B[3][3]=B[2][4];
B[3][4]=B[1][3];
B[3][5]=B[2][6];
B[3][6]=B[1][5];
D[1][1]=EO/(1-MU*MU);
D[1][2]=EO*MU/(1-MU*MU);
D[1][3]=0;
D[2][1]=D[1][2];
D[2][2]=D[1][1];
D[2][3]=0;
D[3][1]=0;
D[3][2]=0;
D[3][3]=EO/(2*(1+MU));
for(i=1;i<=3;i++)
{
for(j=1;j<=6;j++)
{
S[i][j]=0;
for(k=1;k<=3;k++)
S[i][j]=S[i][j]+D[i][k]*B[k][j];
}
}
if(ASK>2)
{
for(i=1;i<=6;i++)
{
for(j=1;j<=6;j++)
{
KE[i][j]=0.0;
for(k=1;k<=3;k++)
KE[i][j]=KE[i][j]+S[k][i]*B[k][j]*AE*TE;
}
}
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限元 课程设计