% 简支梁受各种力综合作用的剪力,弯矩计算及图形绘制
% 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建模师
- 粉丝: 4270
- 资源: 2844
最新资源
- 数据结构上机实验大作业-线性表选题.zip
- 字幕网页文字检测20-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 雪毅云划算试客系统v2.9.7标准版 含购物返利+免费试用+9.9包邮+品牌折扣+推广中心等
- 冒泡排序算法详解及Java与Python实现
- 实时 零代码、全功能、强安全 ORM 库 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
- 混合有源滤波器(HAPF) MATLAB-Simulink仿真 仿真模拟的HAPF补偿前后,系统所含的谐波对比如下图所示
- csi-driver-nfs
- 认识小动物-教案反思.docx
- pdfjs2.5.207和4.9.155
- 2023-04-06-项目笔记 - 第三百五十五阶段 - 4.4.2.353全局变量的作用域-353 -2025.12.22
- OPCClient-UA源码OPC客户端源码(c#开发) 另外有opcserver,opcclient的da,ua版本的见其他链接 本项目为VS2019开发,可用VS其他版本的编辑器打开项目 已应
- 2023-04-06-项目笔记 - 第三百五十五阶段 - 4.4.2.353全局变量的作用域-353 -2025.12.22
- PHP快速排序算法实现与优化
- deploy.yaml
- 家庭用具检测15-YOLO(v8至v11)数据集合集.rar
- RuoYi-Cloud-Plus 微服务通用权限管理系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈