资源简介
平面桁架有限元分析matlab程序,分别使用乘大数法和对角元置1法对刚度矩阵进行处理,可以使用该程序直接完成普通桁架的有限元分析。支持输入相关参数,即可得到相应的分析结果。
代码片段和文件信息
%-----------------------------------------------------%
%该程序为平面桁架结构分析有限元MATLAB程序
%不能用于计算含倾斜支座的桁架结构
%输入的信息有节点数、节点信息、单元数、单元信息
%边界条件处理采用的方法是:对角元素乘大数法
%返回的信息主要有:
% (1)每个单元的刚度矩阵
% (2)整体刚度矩阵
% (3)节点位移向量
% (4)节点载荷向量
% (5)每个单元的位移向量
% (6)每个单元的内力向量
% (7)每个单元的应力
%
%ver:2017/1/6
%-----------------------------------------------------%
clear
clc
np=3;%输入节点数
ne=3;%输入单元数
%node(节点信息):节点坐标,约束情况,节点载荷
%矩阵规模:np x 6
node=[
0 0 1 1 0 0;
4 0 0 1 0 0;
2 3 0 0 5000 -10000;
];
%element(单元信息):左右节点ij,弹性模量E,截面积A
%矩阵规模:ne x 4
element=[
1 2 210e9 0.0001;
1 3 210e9 0.0001;
2 3 210e9 0.0001;
];
kk=zeros(2*np2*np);%分配整体刚度矩阵内存空间
f =zeros(2*np1);%分配载荷内存空间
Elementinfo=zeros(ne3);%分配空间存储单元sincosEA
elementstiffnesssave=zeros(44ne);%分配空间存储每个单元的刚度矩阵
%首先生成单元刚度矩阵
%然后集成整体刚度矩阵
for lop=1:ne
i=element(lop1);
j=element(lop2);
xi=node(i1);
yi=node(i2);
xj=node(j1);
yj=node(j2);
L=sqrt((xj-xi)*(xj-xi)+(yj-yi)*(yj-yi));
s=(yj-yi)/L;
c=(xj-xi)/L;
ea=element(lop3)*element(lop4)/L;
ek = ea*[c*cc*s-c*c-c*s;s*cs*s-s*c-s*s;-c*c-c*sc*cc*s;-c*s-s*ss*cs*s];
ek %输出每个单元的刚度矩阵
elementstiffnesssave(::lop)=ek;
kk(2*i-1:2*i 2*i-1:2*i)=kk(2*i-1:2*i 2*i-1:2*i)+ek(1:2 1:2);
kk(2*i-1:2*i 2*j-1:2*j)=kk(2*i-1:2*i 2*j-1:2*j)+ek(1:2 3:4);
kk(2*j-1:2*j 2*i-1:2*i)=kk(2*j-1:2*j 2*i-1:2*i)+ek(3:4 1:2);
kk(2*j-1:2*j 2*j-1:2*j)=kk(2*j-1:2*j 2*j-1:2*j)+ek(3:4 3:4);
kk %输出集成每个单元刚度矩阵后的整体刚度矩阵
end
StiffnessSave=kk;%保存整体刚度矩阵
%边界条件处理,采用对角元乘大数法
for lop=1:np
f(2*lop-11)=f(2*lop-11) + node(lop5);
f(2*lop 1)=f(2*lop 1) + node(lop6);
if node(lop3) >= 1
kk(2*lop-1 2*lop-1) = 1e8*kk(2*lop-12*lop-1);
end
if node(lop4) >= 1
kk(2*lop 2*lop) = 1e8*kk(2*lop 2*lop);
end
end
u=kk\f;%高斯消元法求节点位移向量
Force = StiffnessSave * u;%求节点支反力
Elementforce=zeros(ne1);%存储每个杆单元的内力
Elementstress=zeros(ne1);%存储每个杆单元的应力
for lop = 1:ne
i=element(lop1);
j=element(lop2);
E=element(lop3);
A=element(lop4);
xi=node(i1);
yi=node(i2);
xj=node(j1);
yj=node(j2);
L=sqrt((xj-xi)*(xj-xi)+(yj-yi)*(yj-yi));
s=(yj-yi)/L;
c=(xj-xi)/L;
%求单元内力
Elementforce(lop 1) =E*A/L*((u(2*j-1)-u(2*i-1))*c+(u(2*j)-u(2*i))*s);
%求单元应力
Elementstress(lop 1) =E/L*((u(2*j-1)-u(2*i-1))*c+(u(2*j)-u(2*i))*s);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2871 2017-01-07 12:09 PlaneTrussfem.m
文件 3780 2017-01-08 12:52 PlaneTrussfem_1.m
----------- --------- ---------- ----- ----
6651 2
- 上一篇:RPCA的matlab实现
- 下一篇:经验模态分解算法EMD MATLAB程序
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论