clear all,clc
% 读取数据,杆件、节点和力的数据
bar = dlmread('INPUT/bar.dat');
node = dlmread('INPUT/node.dat');
Force_All = [2 1 1 3;2 1 3 2;2 2 1 2;2 3 5/6 -9/5;6 3 5/6 12/5];
syms E I L Fp
K = sym('[0 0 0;0 0 0;0 0 0]');
i = 1;
l = 3*L;
A = 12*sqrt(2)*I/l^2;
k_bar_e = [E*A/l 0 0 -E*A/l 0 0;
0 12*E*I/l^3 6*E*I/l^2 0 -12*E*I/l^3 6*E*I/l^2;
0 6*E*I/l^2 4*E*I/l 0 -6*E*I/l^2 2*E*I/l;
-E*A/l 0 0 E*A/l 0 0;
0 -12*E*I/l^3 -6*E*I/l^2 0 12*E*I/l^3 -6*E*I/l^2;
0 6*E*I/l^2 2*E*I/l 0 -6*E*I/l^2 4*E*I/l];
Alpha = 0;
temp = [cos(Alpha) sin(Alpha) 0;
-sin(Alpha) cos(Alpha) 0;
0 0 1];
temp(abs(temp)<1e-10) = 0;
T = [temp,zeros(3,3);zeros(3,3),temp];
k_e = T'*k_bar_e*T;
idx = [node(bar(i,2),[0,node(bar(i,2),2:4)]>0),node(bar(i,3),[0,node(bar(i,3),2:4)]>0)];
idx2 = [node(bar(i,2),2:4)>0,node(bar(i,3),2:4)>0];
K(idx,idx) = K(idx,idx) + k_e(idx2,idx2);
i = 2;
l = 2*L;
A = 12*sqrt(2)*I/l^2;
k_bar_e = [E*A/l 0 0 -E*A/l 0 0;
0 12*E*I/l^3 6*E*I/l^2 0 -12*E*I/l^3 6*E*I/l^2;
0 6*E*I/l^2 4*E*I/l 0 -6*E*I/l^2 2*E*I/l;
-E*A/l 0 0 E*A/l 0 0;
0 -12*E*I/l^3 -6*E*I/l^2 0 12*E*I/l^3 -6*E*I/l^2;
0 6*E*I/l^2 2*E*I/l 0 -6*E*I/l^2 4*E*I/l];
Alpha = 0;
temp = [cos(Alpha) sin(Alpha) 0;
-sin(Alpha) cos(Alpha) 0;
0 0 1];
temp(abs(temp)<1e-10) = 0;
T = [temp,zeros(3,3);zeros(3,3),temp];
k_e = T'*k_bar_e*T;
idx = [node(bar(i,2),[0,node(bar(i,2),2:4)]>0),node(bar(i,3),[0,node(bar(i,3),2:4)]>0)];
idx2 = [node(bar(i,2),2:4)>0,node(bar(i,3),2:4)>0];
K(idx,idx) = K(idx,idx) + k_e(idx2,idx2);
i = 3;
l = 5/2*L;
A = 12*sqrt(2)*I/l^2;
k_bar_e = [E*A/l 0 0 -E*A/l 0 0;
0 12*E*I/l^3 6*E*I/l^2 0 -12*E*I/l^3 6*E*I/l^2;
0 6*E*I/l^2 4*E*I/l 0 -6*E*I/l^2 2*E*I/l;
-E*A/l 0 0 E*A/l 0 0;
0 -12*E*I/l^3 -6*E*I/l^2 0 12*E*I/l^3 -6*E*I/l^2;
0 6*E*I/l^2 2*E*I/l 0 -6*E*I/l^2 4*E*I/l];
Alpha = atan(3/4)+pi/2;
temp = [cos(Alpha) sin(Alpha) 0;
-sin(Alpha) cos(Alpha) 0;
0 0 1];
temp(abs(temp)<1e-10) = 0;
T = [temp,zeros(3,3);zeros(3,3),temp];
k_e = T'*k_bar_e*T;
idx = [node(bar(i,2),[0,node(bar(i,2),2:4)]>0),node(bar(i,3),[0,node(bar(i,3),2:4)]>0)];
idx2 = [node(bar(i,2),2:4)>0,node(bar(i,3),2:4)>0];
K(idx,idx) = K(idx,idx) + k_e(idx2,idx2);
ENL = sym('[0;0;0]');
Fp_e = sym('[0 0 0;0 0 0;0 0 0;0 0 0;0 0 0;0 0 0]');
for i = 1:size(Force_All,1)
No_bar = Force_All(i,2);
l = L*bar(No_bar,4);
Alpha = bar(No_bar,5)/180*pi;
if No_bar == 3
Alpha = atan(3/4)+pi/2;
end
switch Force_All(i,1)
case 2
a = L*Force_All(i,3);
Fp_e_F = Fp*Force_All(i,4);
b = l - a;
F_bar_P = [0;-Fp_e_F*b^2/l^2*(1+2*a/l);-Fp_e_F*a*b^2/l^2;...
0;-Fp_e_F*a^2/l^2*(1+2*b/l);Fp_e_F*a^2*b/l^2];
case 6
a = L*Force_All(i,3);
Fp_e_F = Fp*Force_All(i,4);
b = l - a;
F_bar_P = [-Fp_e_F*b/l;0;0;-Fp_e_F*a/l;0;0];
otherwise
disp('ILLEGAL INPUT!')
end
temp = [cos(Alpha) sin(Alpha) 0;
-sin(Alpha) cos(Alpha) 0;
0 0 1];
temp(abs(temp)<1e-10) = 0;
T = [temp,zeros(3,3);zeros(3,3),temp];
P_bar_e = -F_bar_P;
P_e = T'*P_bar_e;
Fp_e(:,No_bar) = Fp_e(:,No_bar) + P_e;
idx = [node(bar(No_bar,2),[0,node(bar(No_bar,2),2:4)]>0),node(bar(No_bar,3),[0,node(bar(No_bar,3),2:4)]>0)];
idx2 = [node(bar(No_bar,2),2:4)>0,node(bar(No_bar,3),2:4)>0];
ENL(idx) = ENL(idx) + P_e(idx2);
end
F_bar = sym('[0 0 0;0 0 0;0 0 0;0 0 0;0 0 0;0 0 0]');
Delta = K\ENL;
i = 1;
l = 3*L;
A = 12*sqrt(2)*I/l^2;
Alpha = 0;
k_bar_e = [E*A/l 0 0 -E*A/l 0 0;
0 12*E*I/l^3 6*E*I/l^2 0 -12*E*I/l^3 6*E*I/l^2;
0 6*E*I/l^2 4*E*I/l 0 -6*E*I/l^2 2*E*I/l;
-E*A/l 0 0 E*A/l 0 0;
0 -12*E*I/l^3 -6*E*I/l^2 0 12*E*I/l^3 -6*E*I/l^2;
0 6*E*I/l^2 2*E*I/l 0 -6*E*I/l^2 4*E*I/l];
temp = [cos(Alpha) sin(Alpha) 0;
-sin(Alpha) cos(Alpha) 0;
0 0 1];
temp(abs(temp)<1e-10) = 0;
T = [temp,zeros(3,3);zeros(3,3),temp];
k_e = T'*k_bar_e*T;
idx = [node(bar(i,2),[0,node(bar(i,2),2:4)]>0),node(bar(i,3),[0,node(bar(i,3),2:4)]>0)];
idx2 = [node(bar(i,2),2:4)>0,node(bar(i,3),2:4)>0];
Delta_e = sym('[0;0;0;0;0;0]');
Delta_e(idx2) = Delta(idx);
(k_e*Delta_e - Fp_e(:,i))
F_bar(:,i) = T*(k_e*Delta_e - Fp_e(:,i))
i = 2;
l = 2*L;
A = 12*sqrt(2)*I/l^2;
Alpha = 0;
k_bar_e = [E*A/l 0 0 -E*A/l 0 0;
0 12*E*I/l^3 6*E*I/l^2 0 -12*E*I/l^3 6*E*I/l^2;
0 6*E*I/l^2 4*E*I/l 0 -6*E*I/l^2 2*E*I/l;
-E*A/l 0 0 E*A/l 0 0;
0 -12*E*I/l^3 -6*E*I/l^2 0 12*E*I/l^3 -6*E*I/l^2;
0 6*E*I/l^2 2*E*I/l 0 -6*E*I/l^2 4*E*I/l];
temp = [cos(Alpha) sin(Alpha) 0;
-sin(Alpha) cos(Alpha) 0;
0 0 1];
temp(abs(temp)<1e-10) = 0;
T = [temp,zeros(3,3);zeros(3,3),temp];
k_e = T'*k_bar_e*T;
idx = [node(bar(i,2),[0,node(bar(i,2),2:4)]>0),node(bar(i,3),[0,node(bar(i,3),2:4)]>0)];
idx2 = [node(bar(i,2),2:4)>0,node(bar(i,3),2:4)>0];
Delta_e = sym('[0;0;0;0;0;0]');
Delta_e(idx2) = Delta(idx);
(k_e*Delta_e - Fp_e(:,i))
F_bar(:,i) = T*(k_e*Delta_e - Fp_e(:,i))
i = 3;
l = 5/2*L;
A = 12*sqrt(2)*I/l^2;
Alpha = atan(3/4)+pi/2;
k_bar_e = [E*A/l 0 0 -E*A/l 0 0;
0 12*E*I/l^3 6*E*I/l^2 0 -12*E*I/l^3 6*E*I/l^2;
0 6*E*I/l^2 4*E*I/l 0 -6*E*I/l^2 2*E*I/l;
-E*A/l 0 0 E*A/l 0 0;
0 -12*E*I/l^3 -6*E*I/l^2 0 12*E*I/l^3 -6*E*I/l^2;
0 6*E*I/l^2 2*E*I/l 0 -6*E*I/l^2 4*E*I/l];
temp = [cos(Alpha) sin(Alpha) 0;
-sin(Alpha) cos(Alpha) 0;
0 0 1];
temp(abs(temp)<1e-10) = 0;
T = [temp,zeros(3,3);zeros(3,3),temp];
k_e = T'*k_bar_e*T;
idx = [node(bar(i,2),[0,node(bar(i,2),2:4)]>0),node(bar(i,3),[0,node(bar(i,3),2:4)]>0)];
idx2 = [node(bar(i,2),2:4)>0,node(bar(i,3),2:4)>0];
Delta_e = sym('[0;0;0;0;0;0]');
Delta_e(idx2) = Delta(idx);
(k_e*Delta_e - Fp_e(:,i))
F_bar(:,i) = T*(k_e*Delta_e - Fp_e(:,i))
没有合适的资源?快使用搜索试试~ 我知道了~
基于matlab的数组矩阵位移法源码.zip
共32个文件
dat:17个
m:10个
png:4个
需积分: 2 2 下载量 75 浏览量
2023-09-26
22:05:37
上传
评论
收藏 84KB ZIP 举报
温馨提示
matlab
资源推荐
资源详情
资源评论
收起资源包目录
基于matlab的数组矩阵位移法源码.zip (32个子文件)
displayStructure.m 1KB
README_files
Image_001.png 19KB
Image_002.png 19KB
displayStructure_original.m 3KB
assembledStiffnessMatrix.m 2KB
displayStructure_BendingMoment.m 2KB
main.m 3KB
README.html 26KB
img
Image_001.png 19KB
Image_002.png 19KB
INPUT
node2.dat 50B
node.dat 31B
bar1.dat 87B
bar2.dat 119B
bar.dat 99B
node1.dat 69B
ExternalForce1.dat 22B
ExternalForce.dat 11B
作业
9-9&9-10.m 6KB
node.dat 31B
ExternalForce - 9-11.dat 23B
bar.dat 99B
node - 9-11.dat 47B
bar - 9-11.dat 91B
ExternalForce.dat 11B
ExternalForce2.dat 45B
displayStructure_ShearDiagram.m 2KB
equivalentNodalLoads.m 3KB
rodEndForceVector.m 2KB
displayStructure_AxialForceDiagram.m 2KB
OUTPUT
FORCE.dat 176B
FORCE1.dat 110B
共 32 条
- 1
资源评论
北航程序员小C
- 粉丝: 2782
- 资源: 2002
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
- 618节日618节日618节日
- tensorflow-gpu-2.9.1-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp39-cp39-win-amd64.whl
- lcd daimalcd daima
- 电影领域-推荐算法-个性化内容-观影决策-电影推荐小程序.zip
- 电气控制PLC考试题库
- 如何使用MATLAB简介
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功