材料力学剪力图弯矩图绘制(有详细的程序).doc

上传人:wj 文档编号:491530 上传时间:2023-04-29 格式:DOC 页数:16 大小:99.50KB
下载 相关 举报
材料力学剪力图弯矩图绘制(有详细的程序).doc_第1页
第1页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第2页
第2页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第3页
第3页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第4页
第4页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第5页
第5页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第6页
第6页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第7页
第7页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第8页
第8页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第9页
第9页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第10页
第10页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第11页
第11页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第12页
第12页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第13页
第13页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第14页
第14页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第15页
第15页 / 共16页
材料力学剪力图弯矩图绘制(有详细的程序).doc_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

材料力学剪力图弯矩图绘制(有详细的程序).doc

《材料力学剪力图弯矩图绘制(有详细的程序).doc》由会员分享,可在线阅读,更多相关《材料力学剪力图弯矩图绘制(有详细的程序).doc(16页珍藏版)》请在冰点文库上搜索。

材料力学剪力图弯矩图绘制(有详细的程序).doc

材料力学剪力图弯矩图绘制(有详细的程序)

说明:

输入变量:

分段数组x

分段点一般在集中力,集中力偶作用出和分布载荷的起末端。

载荷数组MPQ

若梁上的外载荷总数为PN,则用PN行四列的数组MPQ储存载荷,数组MPQ第一列代表载荷的类型:

1为集中力偶,2为集中力,3为分布载荷,第二列代表载荷的大小,第三列代表集中力,集中力偶或者分布载荷左端与简支梁左端的距离,第四列代表均匀载荷右端与简支梁左端的距离,当载荷为集中力或者集中力偶时,第四列为0.

符号规定

集中力和均匀载荷向下为正,向上为负,集中力偶顺时针为正,逆时针为负。

输出变量:

内力数组XQM

如果梁被分为NN-1段,则内力数组XQM为NN行,三列的数组,第一列代表梁的横截面的位置,第二列代表剪力,第三列代表弯矩。

剪力极值及位置QDX

QDX是一个二行二列的数组,第一列代表极值所在的位置,第二列代表极值

弯矩极值及位置MDX

MDX是一个二行二列的数组,第一列代表极值所在的位置,第二列代表极值

1.子程序

1.1集中力偶对弯矩贡献的子函数QMM

1.2集中力对剪力和弯矩贡献的子函数QMP

1.3分布载荷对剪力和弯矩贡献的子函数QMQ

1.4求剪力和弯矩极值的子函数MAX_MIN

1.5绘制剪力图和弯矩图的子函数TU_QM

2.计算分析程序

2.1简支梁QMDJ

2.2左端固定悬臂梁QMDXZ

2.3右端固定悬臂梁QMDXY

2.4左端外伸梁QMDWZ

2.5右端外伸梁QMDWY

2.6两端外伸梁QMDWL

1.子程序

1.1集中力偶对弯矩贡献的子函数QMM

functionMM=QMM(n,x1,a,M,MM)

forj=1:

n

ifx1(j)==a

n1=j;

end

end

MM(n1:

n)=MM(n1:

n)+M;

1.2集中力对剪力和弯矩贡献的子函数QMP

function[QQ,MM]=QMP(n,x1,b,P,QQ,MM)

forj=1:

n

ifx1(j)==b;

n1=j;

end

end

QQ(n1:

n)=QQ(n1:

n)-P;

MM(n1:

n)=MM(n1:

n)-P*(x1(n1:

n)-b);

1.3分布载荷对剪力和弯矩贡献的子函数QMQ

function[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)

forj=1:

n

ifx1(j)>c

QQ(j)=QQ(j)-q*(x1(j)-c);

MM(j)=MM(j)-0.5*q*(x1(j)-c)^2;

end

ifx1(j)>d

QQ(j)=QQ(j)+q*(x1(j)-d);

MM(j)=MM(j)+0.5*q*(x1(j)-d)^2;

end

end

1.4求剪力和弯矩极值的子函数MAX_MIN

function[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)

XQM=[x1',QQ',MM'];

[Qmax,i]=max(QQ);

Q1=[Qmax,x1(i)];

[Qmin,i]=min(QQ);

Q2=[Qmin,x1(i)];

[Mmax,i]=max(MM);

M1=[Mmax,x1(i)];

[Mmin,i]=min(MM);

M2=[Mmin,x1(i)];

disp('剪力极值及位置')

QDX=[Q1;Q2]

disp('弯矩极值及位置')

MDX=[M1;M2]

t1=findobj(0,'Tag','text31');

str=num2str(Q1

(1));

set(t1,'String',str);

t2=findobj(0,'Tag','text39');

str=num2str(Q1

(2));

set(t2,'String',str);

t3=findobj(0,'Tag','text32');

str=num2str(Q2

(1));

set(t3,'String',str);

t4=findobj(0,'Tag','text40');

str=num2str(Q2

(2));

set(t4,'String',str);

m1=findobj(0,'Tag','text33');

str=num2str(M1

(1));

set(m1,'String',str);

m2=findobj(0,'Tag','text41');

str=num2str(M1

(2));

set(m2,'String',str);

m3=findobj(0,'Tag','text34');

str=num2str(M2

(1));

set(m3,'String',str);

m4=findobj(0,'Tag','text42');

str=num2str(M2

(2));

set(m4,'String',str);

1.5绘制剪力图和弯矩图的子函数TU_QM

functionTU_QM(x1,QQ,MM)

h1=findobj(0,'Tag','axes1');

axes(h1);

plot(x1,QQ);

grid;

title('剪力图');

h2=findobj(0,'Tag','axes2');

axes(h2);

plot(x1,MM);

grid;

title('弯矩图');

2.计算分析程序

2.1简支梁QMDJ

functionXQM=QMDJ(x,MPQ)

[n,m]=size(x);

L=x(m);

x1=[];

fori=1:

m-1

x1=[x1,linspace(x(i),x(i+1),50)];

end

MM=zeros(size(x1));

QQ=zeros(size(x1));

[m,t]=size(MPQ);

[t,n]=size(x1);

fori=1:

m

switchMPQ(i,1)

case1

M=MPQ(i,2);

a=MPQ(i,3);

RA=-M/L;

QQ=QQ+RA;

MM=MM+RA*x1;

ifa>0&a

MM=QMM(n,x1,a,M,MM);

end

ifa==0

MM=MM+M;

end

case2

P=MPQ(i,2);

b=MPQ(i,3);

RA=(L-b)*P/L;

ifb>0&b

QQ=QQ+RA;

MM=MM+RA*x1;

[QQ,MM]=QMP(n,x1,b,P,QQ,MM);

end

case3

q=MPQ(i,2);

c=MPQ(i,3);

d=MPQ(i,4);

RA=(L-0.5*(c+d))*q*(d-c)/L;

QQ=QQ+RA;

MM=MM+RA*x1+MA;

[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);

end

end

[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);

TU_QM(x1,QQ,MM);

disp('梁的有限元分析结果')

disp('位置-----------剪力----------弯矩')

2.2左端固定悬臂梁QMDXZ

functionXQM=QMDXZ(x,MPQ)

[n,m]=size(x);

L=x(m);

x1=[];

fori=1:

m-1

x1=[x1,linspace(x(i),x(i+1),50)];

end

MM=zeros(size(x1));

QQ=zeros(size(x1));

[PN,t]=size(MPQ);

[t,n]=size(x1);

fori=1:

PN

switchMPQ(i,1)

case1

M=MPQ(i,2);

a=MPQ(i,3);

ifa>0&a

MM=MM-M;

MM=QMM(n,x1,a,M,MM);

end

ifa==L

MM=MM-M;

end

case2

P=MPQ(i,2);

b=MPQ(i,3);

RA=P;

MA=-P*b;

QQ=QQ+RA;

MM=MM+RA*x1+MA;

ifb>0&b

[QQ,MM]=QMP(n,x1,b,P,QQ,MM);

end

case3

q=MPQ(i,2);

c=MPQ(i,3);

d=MPQ(i,4);

RA=q*(d-c);

MA=-0.5*q*(d-c)*(d+c);

QQ=QQ+RA;

MM=MM+RA*x1+MA;

[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);

end

end

[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);

TU_QM(x1,QQ,MM);

disp('梁的有限元分析结果')

disp('位置-----------剪力----------弯矩')

2.3右端固定悬臂梁QMDXY

functionXQM=QMDXY(x,MPQ)

[n,m]=size(x);

L=x(m);

x1=[];

fori=1:

m-1

x1=[x1,linspace(x(i),x(i+1),50)];

end

MM=zeros(size(x1));

QQ=zeros(size(x1));

[PN,t]=size(MPQ);

[t,n]=size(x1);

fori=1:

PN

switchMPQ(i,1)

case1

M=MPQ(i,2);

a=MPQ(i,3);

ifa==0

MM=MM+M;

end

ifa>0&a

MM=QMM(n,x1,a,M,MM);

end

case2

P=MPQ(i,2);

b=MPQ(i,3);

ifb==0

QQ=QQ-P

MM=MM-P*x1;

end

ifb>0&b

[QQ,MM]=QMP(n,x1,b,P,QQ,MM);

end

case3

q=MPQ(i,2);

c=MPQ(i,3);

d=MPQ(i,4);

[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);

end

end

[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);

TU_QM(x1,QQ,MM);

disp('梁的有限元分析结果')

disp('位置-----------剪力----------弯矩')

2.4左端外伸梁QMDWZ

functionXQM=QMDWZ(x,L1,MPQ)

[n,m]=size(x);

L=x(m);

x1=[];

fori=1:

m-1

x1=[x1,linspace(x(i),x(i+1),50)];

end

MM=zeros(size(x1));

QQ=zeros(size(x1));

[PN,t]=size(MPQ);

[t,n]=size(x1);

fori=1:

PN

switchMPQ(i,1)

case1

M=MPQ(i,2);

a=MPQ(i,3);

ifa>0&a

MM=QMM(n,x1,a,M,MM);

end

ifa==0

MM=MM+M;

end

case2

P=MPQ(i,2);

b=MPQ(i,3);

RA=P*(L-b)/(L-L1);

[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);

ifb>0&b

[QQ,MM]=QMP(n,x1,b,P,QQ,MM);

end

ifb==0

QQ=QQ-P;

MM=MM-P*x1;

end

case3

q=MPQ(i,2);

c=MPQ(i,3);

d=MPQ(i,4);

b=(c+d)*0.5;

P=(d-c)*q;

RA=P*(L-b)/(L-L1);

[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);

[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);

end

end

[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);

TU_QM(x1,QQ,MM);

disp('梁的有限元分析结果')

disp('位置-----------剪力----------弯矩')

2.5右端外伸梁QMDWY

functionXQM=QMDWY(x,L1,MPQ)

[n,m]=size(x);

L=x(m);

x1=[];

fori=1:

m-1

x1=[x1,linspace(x(i),x(i+1),50)];

end

MM=zeros(size(x1));

QQ=zeros(size(x1));

[PN,t]=size(MPQ);

[t,n]=size(x1);

fori=1:

PN

switchMPQ(i,1)

case1

M=MPQ(i,2);

a=MPQ(i,3);

RA=-M/L1;

RB=-RA;

QQ=QQ+RA;

MM=MM+x1*RA;

ifa>0&a

MM=QMM(n,x1,a,M,MM);

end

ifa==0

MM=MM+M;

end

case2

P=MPQ(i,2);

b=MPQ(i,3);

RA=P*(L1-b)/L1;

RB=P*b/L1;

QQ=QQ+RA;

MM=MM+x1*RA;

[QQ,MM]=QMP(n,x1,L1,-RB,QQ,MM);

ifb>0&b

[QQ,MM]=QMP(n,x1,b,P,QQ,MM);

end

ifb==0

QQ=QQ-P;

MM=MM-P*x1;

end

case3

q=MPQ(i,2);

c=MPQ(i,3);

d=MPQ(i,4);

b=(c+d)*0.5;

P=(d-c)*q;

RA=P*(L1-b)/L1;

RB=P*b/L1;

QQ=QQ+RA;

MM=MM+x1*RA;

[QQ,MM]=QMP(n,x1,L1,-RB,QQ,MM);

[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);

end

end

[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);

TU_QM(x1,QQ,MM);

disp('梁的有限元分析结果')

disp('位置-----------剪力----------弯矩')

2.6两端外伸梁QMDWL

functionXQM=QMDWL(x,L1,L2,MPQ)

[n,m]=size(x);

L=x(m);

x1=[];

fori=1:

m-1

x1=[x1,linspace(x(i),x(i+1),50)];

end

MM=zeros(size(x1));

QQ=zeros(size(x1));

[PN,t]=size(MPQ);

[t,n]=size(x1);

fori=1:

PN

switchMPQ(i,1)

case1

M=MPQ(i,2);

a=MPQ(i,3);

RA=-M/(L2-L1);

RB=-RA;

ifa>0&a

MM=QMM(n,x1,a,M,MM);

end

ifa==0

MM=MM+M;

end

case2

P=MPQ(i,2);

b=MPQ(i,3);

LL=L2-L1;

bb=b-L1;

RA=P*(LL-bb)/LL;

RB=P*bb/LL;

[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);

[QQ,MM]=QMP(n,x1,L2,-RB,QQ,MM);

ifb>0&b

[QQ,MM]=QMP(n,x1,b,P,QQ,MM);

end

ifb==0

QQ=QQ-P;

MM=MM-P*x1;

end

case3

q=MPQ(i,2);

c=MPQ(i,3);

d=MPQ(i,4);

b=(c+d)*0.5;

P=(d-c)*q;

LL=L2-L1;

bb=b-L1;

RA=P*(LL-bb)/LL;

RB=P*bb/LL;

[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);

[QQ,MM]=QMP(n,x1,L2,-RB,QQ,MM);

[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);

end

end

[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);

TU_QM(x1,QQ,MM);

disp('梁的有限元分析结果')

disp('位置-----------剪力----------弯矩')

untitled.m

functionvarargout=untitled(varargin)

%UNTITLEDM-fileforuntitled.fig

%UNTITLED,byitself,createsanewUNTITLEDorraisestheexisting

%singleton*.

%

%H=UNTITLEDreturnsthehandletoanewUNTITLEDorthehandleto

%theexistingsingleton*.

%

%UNTITLED('CALLBACK',hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinUNTITLED.Mwiththegiveninputarguments.

%

%UNTITLED('Property','Value',...)createsanewUNTITLEDorraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforeuntitled_OpeningFunctiongetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtountitled_OpeningFcnviavarargin.

%

%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone

%instancetorun(singleton)".

%

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

%Edittheabovetexttomodifytheresponsetohelpuntitled

%LastModifiedbyGUIDEv2.503-Jun-200823:

12:

06

%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',@untitled_OpeningFcn,...

'gui_OutputFcn',@untitled_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%Endinitiali

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2