% 简支梁受各种力综合作用的剪力,弯矩计算及图形绘制
% N 存放 aaa1.txt 的数据
% YP 存放 aaa2.txt 的数据
% OQ 存放 aaa3.txt 的数据
% SU 存放 aaa4.txt 的数据
% JS 存放 aaa5.txt 的数据
% fff 存放各分段点的剪力
% mmm 存放各分段点的弯矩
% Fsmax 存放最大剪力
% Mmax 存放最大弯矩
clc;
fprintf('\n\n\n');
N=load('F:\MATLAB\work\aaa1.txt'); %读取****
save N;
YP=load('F:\MATLAB\work\aaa2.txt'); %读取****
save YP;
OQ=load('F:\MATLAB\work\aaa3.txt'); %读取****
save OQ;
SU=load('F:\MATLAB\work\aaa4.txt'); %读取****
save SU;
JS=load('F:\MATLAB\work\aaa5.txt');
save JS;
F1=zeros(1,1001); %建立一个1×1001的矩阵用以存储集中力作用时各分段点的剪力
F2=zeros(1,1001); %建立一个1×1001的矩阵用以存储均布载荷作用时各分段点的剪力
F3=zeros(1,1001); %建立一个1×1001的矩阵用以存储力偶作用时各分段点的剪力
F=zeros(1,1001); %建立一个1×1001的矩阵用以存储所有载荷作用时各分段点的剪力
M1=zeros(1,1001); %建立一个1×1001的矩阵用以存储集中力作用时各分段点的剪力
M2=zeros(1,1001); %建立一个1×1001的矩阵用以存储均布载荷作用时各分段点的剪力
M3=zeros(1,1001); %建立一个1×1001的矩阵用以存储力偶作用时各分段点的剪力
M=zeros(1,1001); %建立一个1×1001的矩阵用以存储所有载荷作用时各分段点的剪力
% 计算所有集中力在各分段点的剪力及弯矩
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
end
end
% 计算所有均布载荷在各分段点的剪力及弯矩
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) %判断分段点位于均布载荷作用位置前面
F2(n+1)=OQ(3)*OQ(2)*(N(4)-OQ(1)-OQ(2)/2)/N(4); %均布载荷作用位置前面分段点的剪力
M2(n+1)=OQ(3)*OQ(2)*(N(4)-OQ(1)-OQ(2)/2)*N(4)*n/(1000*N(4)); %均布载荷作用位置前面分段点的弯矩
elseif 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) %判断分段点位于均布载荷作用位置前面
F2(n+1)=F2(n+1)+OQ(i,3)*OQ(i,2)*(N(4)...
-OQ(i,1)-OQ(i,2)/2)/N(4); %均布载荷作用位置前面分段点的剪力累和
M2(n+1)=M2(n+1)+OQ(i,3)*OQ(i,2)*(N(4)...
-OQ(i,2)/2)*N(4)*n/(1000*N(4)); %均布载荷作用位置前面分段点的弯矩累和
elseif 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
end
end
% 计算所有力偶在各分段点的剪力及弯矩
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<=SU(i,1) %判断分段点位于力偶作用位置前面
F3(n+1)=F3(n+1)+SU(i,2)/N(4); %力偶作用位置前面分段点的剪力累和
M3(n+1)=M3(n+1)+SU(i,2)*N(4)*n/(1000*N(4)); %力偶作用位置前面分段点的弯矩累和
else
F3(n+1)=F3(n+1)+SU(i,2)/N(4); %力偶作用位置后面分段点的剪力累和
M3(n+1)=M3(n+1)+SU(i,2)*(N(4)*n/1000-N(4))/N(4); %力偶作用位置后面分段点的弯矩累和
end
end
end
end
% 将各分段点的剪力,弯矩叠加
for i=1:1001
F(i)=F1(i)+F2(i)+F3(i); %集中力,均布载荷,力偶作用各分段点的剪力累和
M(i)=M1(i)+M2(i)+M3(i); %集中力,均布载荷,力偶作用各分段点的弯矩累和
end
%找出最大剪力
[Fsmax1 k1]=max(F);
[Fsmax2 k2]=min(F);
if abs(Fsmax1)>=abs(Fsmax2)
if k1==1 & F(1)~=F(2)
fprintf('\t1.\t在\t0\tm\t处最大剪力Fsmax为:\t%f\tN。\n\n',Fsmax1);
else if k1==1001 & F(1000)~=F(1001)
fprintf('\t1.\t在\t%f\tm\t处最大剪力Fsmax为:\t%f\tN。\n\n',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) & F(k1)>F(k1+1) & k1~=1001 & F(k1)>0)
fprintf('\t1.\t在\t%f\tm\t处最大剪力Fsmax为:\t%f\tN。\n\n',N(4)*(k1-1)/1000,Fsmax1);
else fprintf('\t1.\t最大剪力Fsmax为:\t%f\tN
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【达摩老生出品,必属精品,亲测校正,质量保证】 资源名:简支梁受各种力综合作用的剪力_弯矩计算及图形绘制_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验的开发人员
资源推荐
资源详情
资源评论
收起资源包目录
简支梁受各种力综合作用的剪力_弯矩计算及图形绘制_matlab.rar (1个子文件)
1231234.m 12KB
共 1 条
- 1
资源评论
- you_know_who202024-01-23资源是宝藏资源,实用也是真的实用,感谢大佬分享~
- weixin_549744022024-04-20支持这个资源,内容详细,主要是能解决当下的问题,感谢大佬分享~
- qq_582089342022-05-04用户下载后在一定时间内未进行评价,系统默认好评。
- 工控老马2022-06-17用户下载后在一定时间内未进行评价,系统默认好评。
- kidult12022-04-21用户下载后在一定时间内未进行评价,系统默认好评。
阿里matlab建模师
- 粉丝: 3724
- 资源: 2812
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功