四边形八节点等参元matlab程序.doc

上传人:b****3 文档编号:2514633 上传时间:2022-10-31 格式:DOC 页数:10 大小:134.50KB
下载 相关 举报
四边形八节点等参元matlab程序.doc_第1页
第1页 / 共10页
四边形八节点等参元matlab程序.doc_第2页
第2页 / 共10页
四边形八节点等参元matlab程序.doc_第3页
第3页 / 共10页
四边形八节点等参元matlab程序.doc_第4页
第4页 / 共10页
四边形八节点等参元matlab程序.doc_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

四边形八节点等参元matlab程序.doc

《四边形八节点等参元matlab程序.doc》由会员分享,可在线阅读,更多相关《四边形八节点等参元matlab程序.doc(10页珍藏版)》请在冰豆网上搜索。

四边形八节点等参元matlab程序.doc

四边形八节点等参元matlab程序

悬臂钢梁,尺寸如图一所示;v=0.3。

h=1,E=2.1e11.

图一悬臂钢梁

图二单元划分与结点编号

Matlab输出结果

附录Ⅰ:

有限元ANSYS分析结果

采用PLANE183单元(四边形八节点)单元得出的结构Y向最大位移为-0.216E-04。

约等于matlab平面四边形八节点等参元结点Y向最大位移-2.4024E-5。

附录Ⅱ:

%---------------四边形八节点等参元matlab计算程序----------------------------

%———————————主程序—————————

%*******************************************************************%************************************

%2012年

%本程序只能处理集中荷载作用下的情况

%只输出了节点位移、单元中心点的应力

%*******************************************************************%***************

%变量说明

%Evh

%弹性模量泊松比厚度

%NPOINNELEMNVFIXNNODENFPOIN

%总结点数,单元数,约束结点个数,单元节点数,受力结点数

%COORDLNODS

%结构节点整体坐标数组,单元定义数组,

%FPOINFORCEFIXED

%结点力数组,总体荷载向量,约束信息数组

%HKDISP

%总体刚度矩阵,结点位移向量

%******************************

clearall

formatshorte

FP1=fopen('bjd.txt','rt');%打开数据文件

%%读入控制数据

E=fscanf(FP1,'%f',1);%弹性模量

v=fscanf(FP1,'%f',1);%泊松比

h=fscanf(FP1,'%f',1);%厚度

NELEM=fscanf(FP1,'%d',1);%单元数

NPOIN=fscanf(FP1,'%d',1);%总结点数

NNODE=fscanf(FP1,'%d',1);%单元节点数

NFPOIN=fscanf(FP1,'%d',1);%受力结点数

NVFIX=fscanf(FP1,'%d',1);%约束结点个数

LNODS=fscanf(FP1,'%f',[NNODE,NELEM])';%单元定义:

单元结点号(逆时针)

COORD=fscanf(FP1,'%f',[2,NPOIN])';%结点号x,y坐标(整体坐标下)

FPOIN=fscanf(FP1,'%f',[3,NFPOIN])';

%节点力:

结点号、X方向力(向右正),Y方向力(向上正)

FIXED=fscanf(FP1,'%d',[3,NVFIX])';

%约束信息数组(n,3)n:

受约束节点数目,(n,1):

约束点号

%(n,2)与(n,3)分别为约束点x方向和y方向的约束情况,受约束为1否则为0

%*******************************************************************

%*******************************************************************

%========平面应力问题的求解==============

%

%*******************************************************************

%*******************************************************************

%—————————————————————

%刚度矩阵的生成

%计算刚度矩阵,并对约束条件进行处理

Ke=zeros(2*NNODE,2*NNODE);%单元刚度矩阵并清零

HK=zeros(2*NPOIN,2*NPOIN);%张成总刚矩阵并清零

%调用子程序生成单元刚度矩阵

form=1:

NELEM%m为单元号

Ke=K(E,v,h,...

COORD(LNODS(m,1),1),COORD(LNODS(m,1),2),...

COORD(LNODS(m,3),1),COORD(LNODS(m,3),2),...

COORD(LNODS(m,5),1),COORD(LNODS(m,5),2),...

COORD(LNODS(m,7),1),COORD(LNODS(m,7),2));%调用单元刚度矩阵

a=LNODS(m,:

);%临时向量,用来记录当前单元的节点编号

%对总刚度矩阵的处理

forj=1:

8

fork=1:

8

HK((a(j)*2-1):

a(j)*2,(a(k)*2-1):

a(k)*2)=HK((a(j)*2-1):

a(j)*2,(a(k)*2-1):

a(k)*2)+...

Ke(j*2-1:

j*2,k*2-1:

k*2);

end

end

end

%—————————————————————————————————

%对荷载向量进行处理

FORCE=zeros(2*NPOIN,1);%张成总荷载向量并清零

fori=1:

NFPOIN

b1=FPOIN(i,1)*2-1;b2=FPOIN(i,1)*2;%FPION(i,1)为作用点

FORCE(b1)=FPOIN(i,2);%FPION(i,2)为x方向的节点力

FORCE(b2)=FPOIN(i,3);%FPION(i,3)为y方向的节点力

end

%—————————————————————————————————

%将约束信息加入总刚,总荷载

fori=1:

NVFIX

ifFIXED(i,2)==1

c1=2*FIXED(i,1)-1;

HK(c1,:

)=0;%将一约束序号处的总刚列向量清0

HK(:

c1)=0;%将一约束序号处的总刚行向量清0

HK(c1,c1)=1;%将行列交叉处的元素置为1

FORCE(c1)=0;

end

ifFIXED(i,3)==1

c2=2*FIXED(i,1);

HK(c2,:

)=0;

HK(:

c2)=0;

HK(c2,c2)=1;

FORCE(c2)=0;

end

end

%—————————————————————————————————

%===========================================================

%===========================================================

DISP=HK\FORCE%计算节点位移向量

%===========================================================

%===========================================================

%———————————求解单元应力————————————————

stress=zeros(3,NELEM);

form=1:

NELEM

u(1:

16)=0;

d=LNODS(m,:

);%临时向量,用来记录当前单元的节点编号

fori=1:

NNODE

u(i*2-1:

i*2)=DISP(d(i)*2-1:

d(i)*2);

%从总位移向量中取出当前单元的节点位移

end

D=(E/(1-v*v))*[1v0;v10;00(1-v)/2];%弹性矩阵

%形成应变矩阵BM

BM=zeros(3,16);

fori=1:

NNODE

J=Jacobi(COORD(LNODS(m,1),1),COORD(LNODS(m,1),2),...

COORD(LNODS(m,3),1),COORD(LNODS(m,3),2),...

COORD(LNODS(m,5),1),COORD(LNODS(m,5),2),...

COORD(LNODS(m,7),1),COORD(LNODS(m,7),2),0,0);

[N_s,N_t]=DHS(0,0);

B1i=J(2,2)*N_s(i)-J(1,2)*N_t(i);

B2i=-J(2,1)*N_s(i)+J(1,1)*N_t(i);

BM(1:

3,2*i-1:

2*i)=[B1i0;0B2i;B2iB1i]/det(J);

end

stressm=D*BM*u';

stress(:

m)=stressm;

end

stress%输出应力

functionKe=K(E,v,h,x1,y1,x3,y3,x5,y5,x7,y7)

%=========单元刚度矩阵===============

%E弹性模量

%v泊松比

%h厚度

%x1,y1,x3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1