21节点六自由度梁单元 ,悬臂有限元代码
% 悬臂有限元代码
% 21点六自由度梁单元
% 受集中载荷q作用
clear all
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% %%%
%%% 梁的参数 %%%
%%% %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
le = 1;%1杆2杆长度
le2 = 0.3;%3杆长度
E = 200e9;
I = 4e-6;
A = 0.0069;
EA = E*A;
EI = E*I;
length = 2.3;%总长
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% %%%
%%% 梁的网格信息 %%%
%%% %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
element_num = 21; %单元数目 (这里取偶数)
node_num = element_num+1; %节点数目
Dof = 3*node_num; % 自由度
le1 = 2*le/(element_num-1);%单元长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% %%%
%%% 计算刚度阵和力阵 %%%
%%% %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
K = zeros(Dof); %分配空间
F = zeros(Dof,1);%分配空间
K_element1 = [ EA/le1, 0, 0, -EA/le1, 0, 0;...
0, (12*EI)/le1^3, (6*EI)/le1^2, 0, -(12*EI)/le1^3, (6*EI)/le1^2;...
0, (6*EI)/le1^2, (4*EI)/le1, 0, -(6*EI)/le1^2, (2*EI)/le1;...
-EA/le1, 0, 0, EA/(le1), 0, 0;...
0, -(12*EI)/le1^3, -(6*EI)/le1^2, 0, (12*EI)/le1^3, -(6*EI)/le1^2;...
0, (6*EI)/le1^2, (2*EI)/le1, 0, -(6*EI)/le1^2, (4*EI)/le1];
K_element2 =[ EA/le2, 0, 0, -EA/le2, 0, 0;...
0, (12*EI)/le2^3, (6*EI)/le2^2, 0, -(12*EI)/le2^3, (6*EI)/le2^2;...
0, (6*EI)/le2^2, (4*EI)/le2, 0, -(6*EI)/le2^2, (2*EI)/le2;...
-EA/le2, 0, 0, EA/le2, 0, 0;...
0, -(12*EI)/le2^3, -(6*EI)/le2^2, 0, (12*EI)/le2^3, -(6*EI)/le2^2;...
0, (6*EI)/le2^2, (2*EI)/le2, 0, -(6*EI)/le2^2, (4*EI)/le2];
% 接下来组装整体刚度矩阵
for ii1=1:20
Dof_elemnt_1 = 3*ii1-2:3*ii1+3;% 从整体坐标中挑选出单元对应自由度的编号。
K(Dof_elemnt_1,Dof_elemnt_1)= K(Dof_elemnt_1,Dof_elemnt_1) + K_element1; %单元刚度阵累加进整体刚度阵
end
for ii2=21
Dof_elemnt_2 = 3*ii2-2:3*ii2+3;% 从整体坐标中挑选出单元对应自由度的编号。
K(Dof_elemnt_2,Dof_elemnt_2)= K(Dof_elemnt_2,Dof_elemnt_2) + K_element2; %单元刚度阵累加进整体刚度阵
end
% 组装整体力阵
q2 = 1e3;%1KN.向下为负
for n=2:11;%将1-10单元节点弯矩赋予力阵
nn=n*3;
F(nn)=(n-1)*(-q2*le1);
end
for n1=12:21;%将11-20单元节点弯矩赋予力阵
nn1=n1*3;
nx=21-n1;
F(nn1)=nx*(-q2*le1);
end
p=(element_num)*3-1;%1KN赋予节点
F(p)=q2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% %%%
%%% 计算 %%%
%%% %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 考虑边界条件,
compute_dof = 1:Dof;
Non_dof = [1,2,31,32];%不能动的去掉
compute_dof(Non_dof)= [];%未有约束的自由度
%计算,从刚度阵和力阵选择对应的子阵计算
dispplacement = inv( K(compute_dof,compute_dof) )*F(compute_dof); % 未被约束的自由度变形
disp(['变形为' num2str(dispplacement')])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% %%%
%%% 画图 %%%
%%% %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dispplacement0 = zeros(Dof,1);
dispplacement0(compute_dof) = dispplacement0(compute_dof) + dispplacement; %获取整体变形
configuration = [];
for i=1:element_num-1;%1到20单元位移
Dof_elemnt1 = 3*i-2:3*i+3;% 从整体坐标中挑选出单元对应自由度的编号。
q = dispplacement0(Dof_elemnt1);%从整体坐标里提取单元坐标
xx = 0:le1/5:le1;
for jj =1:6
x = xx(jj);%计算点在单元的位置
N1 = [1-x/le1, 0, 0,...
x/le1, 0, 0;...
0, 1-3*(x/le1)^2+2*(x/le1)^3, le1*((x/le1) -2*(x/le1)^2+(x/le1)^3),...
0, (3*(x/le1)^2-2*(x/le1)^3), le1*((x/le1)^3-(x/le1)^2)];%形函数
u = N1*q;
configuration = [configuration; u'+ [(i-1)*le1+x,0]];%计算在整体坐标的位置
end
end
for i2=21;%21单元位移
Dof_elemnt2 = 3*i2-2:3*i2+3;% 从整体坐标中挑选出单元对应自由度的编号。
q_1 = dispplacement0(Dof_elemnt2);%从整体坐标里提取单元坐标
xx2 = 0:le2/20:le2;
for jj =1:21
x2 = xx2(jj);%计算点在单元的位置
N2 = [1-x2/le2, 0, 0,...
x2/le2, 0, 0;...
0, 1-3*(x2/le2)^2+2*(x2/le2)^3, le2*((x2/le2) -2*(x2/le2)^2+(x2/le2)^3),...
0, (3*(x2/le2)^2-2*(x2/le2)^3), le2*((x2/le2)^3-(x2/le2)^2)];%形函数
u2 = N2*q_1;
configuration = [configuration; u2'+ [le*2+x2,0]];%计算在整体坐标的位置
end
end
plot(configuration(:,1),configuration(:,2),'+')%黑色
% hold on
% x0 = 0:le/200:le;
% w = ( x0.^2 - 4*le.*x0 + 6*le^2 )*q2.*x0.^2/EI/24;
% x0_1=1:le/200:le+1;
% plot(x0_1,w,'r');%红色
21节点六自由度梁单元 ,悬臂有限元代码相关推荐
- 梁单元的有限元实现——有限元实践笔记(3)
讲完了弹簧单元和杆单元,接下来讲一讲稍微复杂一点的梁单元的有限元实现. 什么是梁单元 梁单元为细长结构构件,通常只承受横向载荷.无论是杆单元还是梁单元都是结构力学中基本的承力构件之一,二者都是一维单元 ...
- 杆梁单元及其坐标变换(工程有限元方法(曾攀))
在建筑结构中,杆.梁.板是主要的承力构件.杆梁单元及其坐标变换是有限元分析的基础. 1 杆单元 1.1 杆单元的刚度矩阵 杆单元是最简单的标准单元 节点列阵为 局部坐标系中,一维两节点杆单元两自由度 ...
- matlab有限元编程实例梁,梁单元有限元计算程序(matlab)
梁单元的有限元计算程序 %此程序计算杆的总刚度矩阵及节点位移,分五步完成:输入各单元数据.计算单元刚度矩阵 %组集总刚度矩阵.计算输出总刚度矩阵 .计算输出节点位移 %2011.4 %输入个单元数据 ...
- 梁单元分析matlab,[FEM][有限元][编程][Matlab][Code by myself] 2D Timoshenko梁单元
(有空和小伙伴一起写写有限元程序) 程序作者 ( Author ) JiDong Cui (崔济东)1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所:2.华南理工大学建筑 ...
- matlab计算惯性矩,梁单元有限元计算程序(matlab)
%此程序计算杆的总刚度矩阵及节点位移,分五步完成:输入各单元数据.计算单元刚度矩阵 %组集总刚度矩阵.计算输出总刚度矩阵 .计算输出节点位移 %2011.4 %输入个单元数据 %输入单元节点编号矩阵, ...
- 一个简单的UEL梁单元(上)
出于课题需要,学习研究了abaqus uel二次开发,这里通过一个简单的平面线弹性梁单元的UEL实例来复习巩固一下学到的东西,为后续钢筋和混凝土的本构修改做准备. 主要的参考资料为:王涛老师的< ...
- Abaqus梁单元基础知识
今天我们介绍一下梁单元的相关基础知识: 首先,对于长度方向大于截面尺寸10倍以上的结构,通过用梁单元简化,可以有效缩减模型规模,提高计算效率.因此,梁单元适用范围很广,是常用的结构单元之一. 以下是梁 ...
- 03论文阅读与分享————2020年中国知网六自由度机器人轨迹规划相关论文统计
一.2020年知网论文统计 1.刘劲松. 基于时间最优的六轴关节机械手轨迹规划研究[D].湖北工业大学,2020. 创新点:遗传算法+粒子群处理时间最优 基本方法:样条插值/笛卡尔空间规划/matla ...
- 《有限元分析基础教程》(曾攀)笔记二-梁单元方程推导(二):简支梁挠曲线近似解...
一."近似"的两种分类 一个复杂的函数,可以通过一系列的"基底函数"(base function)的组合来近似,也就是函数逼近,有两种典型的方法: 基于全域的逼 ...
- 铁木辛柯matlab,欧拉梁单元 | 崔济东的博客 - www.jdcui.com
( 有空和小伙伴一起写写有限元程序 ) 程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所:2.华南理工 ...
最新文章
- ImportError: DLL load failed: 找不到指定的模块。 TensorFlow 1.13
- 近期活动盘点:AI Time:论道AI安全与伦理、大数据、AI在中国金融保险业的应用案例分享讲座...
- 陶哲轩发文缅怀John Conway:他是所有数学家构成的凸包中的一个极值点
- 漫话:如何给女朋友解释为什么双11无法修改收货地址?
- boost使用学习总结
- CF1379F1 Chess Strikes Back (easy version)(鸽笼原理、线段树)
- linux命令数据盘分多个区,pvmove命令 – 移动物理盘区
- (2)FPGA面试技能提升篇(Perl脚本)
- 爱奇艺回应迷雾剧场停播:以完成后期的定档官宣时间为准
- 【装饰者模式】Decorator Pattern
- fixed定位之后,如何让div上下垂直居中
- BeanDefinitionRegistryPostProcessor是什么?
- 打造升级GsonFormat驼峰命名规则
- python九九乘法表代码中的i+1的意思_python---九九乘法表代码
- GIT LFS 原理杂谈
- 51单片机最小系统板
- 面试中的着装与举止--Java面试
- 市场调研报告-全球与中国教育互动白板市场现状及未来发展趋势
- R语言 | 关联规则
- EDA笔记(4)--语言要素