matlab编程.doc_第1页
matlab编程.doc_第2页
matlab编程.doc_第3页
matlab编程.doc_第4页
matlab编程.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB程序-材料力学简支梁剪力、弯矩及强度校核、截面设计绝对原创!MATLAB实现简支梁剪力弯矩的计算、绘图、强度校核、截面设计。我运算的例子用的是:刘鸿文主编的第四版的材料力学上册第145页的例5.2为例。计算机所得结果与例子一致,程序编制成功!程序如下:% 程序最后完成于 2009.06.07 韦 * * 编% 计算简支梁在多个集中力,均布载荷,力偶同时作用时的剪力,弯矩并绘制其图形% N 存放 aaa1.txt 的数据% YP 存放 aaa2.txt 的数据% OQ 存放 aaa3.txt 的数据% SU 存放 aaa4.txt 的数据% JS 存放 aaa5.txt 的数据% fff 存放各分段点的剪力% mmm 存放各分段点的弯矩% Fsmax 存放最大剪力% Mmax 存放最大弯矩clc;fprintf(nnn);N=load(F:MATLABworkaaa1.txt); %读取*save N; YP=load(F:MATLABworkaaa2.txt); %读取*save YP;OQ=load(F:MATLABworkaaa3.txt); %读取*save OQ;SU=load(F:MATLABworkaaa4.txt); %读取*save SU;JS=load(F:MATLABworkaaa5.txt);save JS;F1=zeros(1,1001); %建立一个11001的矩阵用以存储集中力作用时各分段点的剪力F2=zeros(1,1001); %建立一个11001的矩阵用以存储均布载荷作用时各分段点的剪力F3=zeros(1,1001); %建立一个11001的矩阵用以存储力偶作用时各分段点的剪力F=zeros(1,1001); %建立一个11001的矩阵用以存储所有载荷作用时各分段点的剪力M1=zeros(1,1001); %建立一个11001的矩阵用以存储集中力作用时各分段点的剪力 M2=zeros(1,1001); %建立一个11001的矩阵用以存储均布载荷作用时各分段点的剪力M3=zeros(1,1001); %建立一个11001的矩阵用以存储力偶作用时各分段点的剪力M=zeros(1,1001); %建立一个11001的矩阵用以存储所有载荷作用时各分段点的剪力% 计算所有集中力在各分段点的剪力及弯矩if N(1)=0 F1=F1; M1=M1; elseif N(1)=1 %判断所受集中力为一个 F1(1)=YP(2)*(N(4)-YP(1)/N(4); %第一个分段点的剪力 for n=1:1000 if N(4)*n/1000=YP(1) %判断分段点位于集中力作用位置前面 F1(n+1)=YP(2)*(N(4)-YP(1)/N(4); %集中力作用位置前面分段点的剪力 M1(n+1)=YP(2)*(N(4)-YP(1)*N(4)*n/(1000*N(4); %集中力作用位置前面分段点的弯矩 else F1(n+1)=-YP(2)*YP(1)/N(4); %集中力作用位置后面分段点的剪力 M1(n+1)=YP(2)*YP(1)*(1-N(4)*n/(1000*N(4); %集中力作用位置后面分段点的弯矩 end end else for i=1:N(1) F1(1)=F1(1)+YP(i,2)*(N(4)-YP(i,1)/N(4); %各集中力作用时第一个分段点的剪力累和 for n=1:1000 if N(4)*n/1000=YP(i,1) %判断分段点位于各集中力作用位置前面 F1(n+1)=F1(n+1)+YP(i,2)*(N(4)-YP(i,1)/N(4); %各集中力各自作用时在其作用位置前面分段点的剪力累和 M1(n+1)=M1(n+1)+YP(i,2)*(N(4)-YP(i,1). *N(4)*n/(1000*N(4); %各集中力各自作用时在其作用位置前面分段点的弯矩累和 else F1(n+1)=F1(n+1)-YP(i,2)*YP(i,1)/N(4); %各集中力各自作用时在其作用位置后面分段点剪力累和 M1(n+1)=M1(n+1)+YP(i,2)*YP(i,1). *(1-N(4)*n/(1000*N(4);%各集中力各自作用时在其作用位置后面分段点的弯矩累和 end end endend% 计算所有均布载荷在各分段点的剪力及弯矩if N(2)=0 F2=F2; M2=M2; elseif N(2)=1 %判断所受均布载荷为一个 F2(1)=OQ(3)*OQ(2)*(N(4)-OQ(1)-OQ(2)/2)/N(4); %第一个分段点的剪力 for n=1:1000 if N(4)*n/1000=OQ(1) & N(4)*n/1000=(OQ(1)+OQ(2) %判断分段点位于所受均布载荷区 F2(n+1)=OQ(3)*OQ(2)*(N(4)-OQ(1)-OQ(2)/2)/N(4)-OQ(3)*(N(4)*n/1000-OQ(1); %均布载荷区分段点的剪力 M2(n+1)=OQ(3)*OQ(2)*(N(4)-OQ(1)-OQ(2)/2)*N(4)*n/(1000*N(4). -OQ(3)*(N(4)*n/1000-OQ(1)2)/2; %均布载荷区分段点的弯矩 else F2(n+1)=-OQ(3)*OQ(2)*(OQ(1)+OQ(2)/2)/N(4); %均布载荷作用位置后面分段点的剪力 M2(n+1)=OQ(3)*OQ(2)*(OQ(1)+OQ(2)/2)*(N(4)-N(4)*n/1000)/N(4); %均布载荷作用位置后面分段点的弯矩 end end else for i=1:N(2) F2(1)=F2(1)+OQ(i,3)*OQ(i,2)*(N(4)-OQ(i,1)-OQ(i,2)/2)/N(4); %各均布载荷作用时第一个分段点的剪力累和 for n=1:1000 if N(4)*n/1000=OQ(i,1) & N(4)*n/1000=(OQ(i,1)+OQ(i,2) %判断分段点位于所受均布载荷区 F2(n+1)=F2(n+1)+OQ(i,3)*OQ(i,2)*(N(4)-OQ(i,1)-OQ(i,2)/2)/N(4). -OQ(i,3)*(N(4)*n/1000-OQ(i,1); %均布载荷区分段点的剪力累和 M2(n+1)=M2(n+1)+OQ(i,3)*OQ(i,2)*(N(4)-OQ(i,2)/2)*N(4)*n/(1000*N(4). -OQ(i,3)*(N(4)*n/1000-OQ(i,1)2/2; %均布载荷区分段点的弯矩累和 else F2(n+1)=F2(n+1)-OQ(i,3)*OQ(i,2)*(OQ(i,1)+OQ(i,2)/2)/N(4); %均布载荷作用位置后面分段点的剪力累和 M2(n+1)=M2(n+1)+OQ(i,3)*OQ(i,2)*(OQ(i,1). +OQ(i,2)/2)*(N(4)-N(4)*n/1000)/N(4); %均布载荷作用位置后面分段点的弯矩累和 end end endend % 计算所有力偶在各分段点的剪力及弯矩 if N(3)=0 F3=F3; M3=M3; elseif N(3)=1 %判断所受均布载荷为一个 F3(1)=SU(2)/N(4); %第一个分段点的剪力 for n=1:1000 if N(4)*n/1000=SU(1) %判断分段点位于力偶作用位置前面 F3(n+1)=SU(2)/N(4); %力偶作用位置前面分段点的剪力 M3(n+1)=SU(2)*N(4)*n/(1000*N(4); %力偶作用位置前面分段点的弯矩 else F3(n+1)=SU(2)/N(4); %力偶作用位置后面分段点的剪力 M3(n+1)=SU(2)*(N(4)*n/1000-N(4)/N(4); %力偶作用位置后面分段点的剪力 end end else for i=1:N(3) F3(1)=F3(1)+SU(i,2)/N(4); %各力偶作用时第一个分段点的剪力累和 for n=1:1000 if N(4)*n/1000=abs(Fsmax2) if k1=1 & F(1)=F(2) fprintf(t1.t在t0tmt处最大剪力Fsmax为:t%ftN。nn,Fsmax1); else if k1=1001 & F(1000)=F(1001) fprintf(t1.t在t%ftmt处最大剪力Fsmax为:t%ftN。nn,N(4),Fsmax1); else if (k1=1 & F(k1-1)F(k1) & F(k1)F(k1+1) & k1=1001 & F(k1)0). | (k1=1 & F(k1-1)F(k1+1) & k1=1001 & F(k1)0) fprintf(t1.t在t%ftmt处最大剪力Fsmax为:t%ftN。nn,N(4)*(k1-1)/1000,Fsmax1); else fprintf(t1.t最大剪力Fsmax为:t%ftN。nn,Fsmax1); end end end save Fsmax Fsmax1; else if k2=1 & F(1)=F(2) fprintf(t1.t在t0tmt处最大剪力Fsmax为:t%ftN。nn,Fsmax2); else if k2=1001 & F(1000)=F(1001) fprintf(t1.t在t%ftmt处最大剪力Fsmax为:t%ftN。nn,N(4),Fsmax2); else if (k2=1 & F(k2-1)F(k2) & F(k2)F(k2+1) & k2=1001 & F(k2)0). | (k2=1 & F(k2-1)F(k2+1) & k2=1001 & F(k2)0) fprintf(t1.t在t%ftmt处最大剪力Fsmax为:t%ftN。nn,N(4)*(k2-1)/1000,Fsmax2); else fprintf(t1.t最大剪力Fsmax为:t%ftN。nn,Fsmax2); end end end save Fsmax Fsmax2;end%找出最大弯矩Mmax1 k3=max(M); Mmax2 k4=min(M); if abs(Mmax1)=abs(Mmax2) if k3=1 & M(1)=M(2) fprintf(t2.t在t0tmt处最大弯矩Mmax为:t%ftN.m。nn,Mmax1); else if k3=1001 & M(1000)=M(1001) fprintf(t2.t在t%ftmt处最大弯矩Mmax为:t%ftN.m。nn,N(4),Mmax1); else if (k3=1 & M(k3-1)M(k3) & M(k3)M(k3+1) & k3=1001 & M(k3)0). | (k3=1 & M(k3-1)M(k3+1) & k3=1001 & M(k3)0) fprintf(t2.t在t%ftmt处最大弯矩Mmax为:t%ftN.m。nn,N(4)*(k3-1)/1000,Mmax1); else fprintf(t2.t最大弯矩Mmax为:t%ftN.m。nn,Mmax1); end end end Mmax=Mmax1; save Mmax0 Mmax; else if k4=1 & M(1)=M(2) fprintf(t2.t在t0tmt处最大弯矩Mmax为:t%ftN.m。nn,Mmax2); else if k4=1001 & M(1000)=M(1001) fprintf(t2.t在t%ftmt处最大弯矩Mmax为:t%ftN.m。nn,N(4),Mmax2); else if (k4=1 & M(k4-1)M(k4) & M(k4)M(k4+1) & k4=1001 & M(k4)0). | (k4=1 & M(k4-1)M(k4+1) & k4=1001 & M(k4)0) fprintf(t2.t在t%ftmt处最大弯矩Mmax为:t%ftN.m。nn,N(4)*(k4-1)/1000,Mmax2); else fprintf(t2.t最大弯矩Mmax为:t%ftN.m。nn,Mmax2); end end end Mmax=Mmax2; save Mmax0 Mmax;end% 绘制剪力,弯矩图k=0:N(4)/1000:N(4);subplot(2,1,1);plot(k,F,b.); %绘制剪力图title(剪力图);xlabel(x 单位 m);ylabel(F_s 单位 N);grid on;subplot(2,1,2);plot(k,M,r.); %绘制弯矩图title(弯矩图);xlabel(x 单位 m);ylabel(M 单位 N*m);grid on; save fff F;save mmm M;%矩形、圆形梁的强度校核或截面设计 if JS(1)=1 & JS(2)=1 if 6*abs(Mmax)/(106*JS(3)*JS(4)2) = JS(5) fprintf(t3.t矩形截面梁校核结果,计算所得正应力为: t%fMPa t%ftMPa,强度不够。nn,6*abs(Mmax)/(106*JS(3)*JS(4)2),JS(5); end end if JS(1)=1 & JS(2)=2 fprintf(t3.t矩形截面梁设计,宽、高应满足:t b*h2t = t%ftm3。nn,6*abs(Mmax)/(106*JS(3); bh21=6*abs(Mmax)/JS(3); save bh2 bh21; end

温馨提示

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

评论

0/150

提交评论