%   悬臂有限元代码

%   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节点六自由度梁单元 ,悬臂有限元代码相关推荐

  1. 梁单元的有限元实现——有限元实践笔记(3)

    讲完了弹簧单元和杆单元,接下来讲一讲稍微复杂一点的梁单元的有限元实现. 什么是梁单元 梁单元为细长结构构件,通常只承受横向载荷.无论是杆单元还是梁单元都是结构力学中基本的承力构件之一,二者都是一维单元 ...

  2. 杆梁单元及其坐标变换(工程有限元方法(曾攀))

    在建筑结构中,杆.梁.板是主要的承力构件.杆梁单元及其坐标变换是有限元分析的基础. 1 杆单元 1.1 杆单元的刚度矩阵 杆单元是最简单的标准单元 节点列阵为  局部坐标系中,一维两节点杆单元两自由度 ...

  3. matlab有限元编程实例梁,梁单元有限元计算程序(matlab)

    梁单元的有限元计算程序 %此程序计算杆的总刚度矩阵及节点位移,分五步完成:输入各单元数据.计算单元刚度矩阵 %组集总刚度矩阵.计算输出总刚度矩阵 .计算输出节点位移 %2011.4 %输入个单元数据 ...

  4. 梁单元分析matlab,[FEM][有限元][编程][Matlab][Code by myself] 2D Timoshenko梁单元

    (有空和小伙伴一起写写有限元程序) 程序作者 ( Author ) JiDong Cui (崔济东)1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所:2.华南理工大学建筑 ...

  5. matlab计算惯性矩,梁单元有限元计算程序(matlab)

    %此程序计算杆的总刚度矩阵及节点位移,分五步完成:输入各单元数据.计算单元刚度矩阵 %组集总刚度矩阵.计算输出总刚度矩阵 .计算输出节点位移 %2011.4 %输入个单元数据 %输入单元节点编号矩阵, ...

  6. 一个简单的UEL梁单元(上)

    出于课题需要,学习研究了abaqus uel二次开发,这里通过一个简单的平面线弹性梁单元的UEL实例来复习巩固一下学到的东西,为后续钢筋和混凝土的本构修改做准备. 主要的参考资料为:王涛老师的< ...

  7. Abaqus梁单元基础知识

    今天我们介绍一下梁单元的相关基础知识: 首先,对于长度方向大于截面尺寸10倍以上的结构,通过用梁单元简化,可以有效缩减模型规模,提高计算效率.因此,梁单元适用范围很广,是常用的结构单元之一. 以下是梁 ...

  8. 03论文阅读与分享————2020年中国知网六自由度机器人轨迹规划相关论文统计

    一.2020年知网论文统计 1.刘劲松. 基于时间最优的六轴关节机械手轨迹规划研究[D].湖北工业大学,2020. 创新点:遗传算法+粒子群处理时间最优 基本方法:样条插值/笛卡尔空间规划/matla ...

  9. 《有限元分析基础教程》(曾攀)笔记二-梁单元方程推导(二):简支梁挠曲线近似解...

    一."近似"的两种分类 一个复杂的函数,可以通过一系列的"基底函数"(base function)的组合来近似,也就是函数逼近,有两种典型的方法: 基于全域的逼 ...

  10. 铁木辛柯matlab,欧拉梁单元 | 崔济东的博客 - www.jdcui.com

    (  有空和小伙伴一起写写有限元程序 ) 程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所:2.华南理工 ...

最新文章

  1. ImportError: DLL load failed: 找不到指定的模块。 TensorFlow 1.13
  2. 近期活动盘点:AI Time:论道AI安全与伦理、大数据、AI在中国金融保险业的应用案例分享讲座...
  3. 陶哲轩发文缅怀John Conway:他是所有数学家构成的凸包中的一个极值点
  4. 漫话:如何给女朋友解释为什么双11无法修改收货地址?
  5. boost使用学习总结
  6. CF1379F1 Chess Strikes Back (easy version)(鸽笼原理、线段树)
  7. linux命令数据盘分多个区,pvmove命令 – 移动物理盘区
  8. (2)FPGA面试技能提升篇(Perl脚本)
  9. 爱奇艺回应迷雾剧场停播:以完成后期的定档官宣时间为准
  10. 【装饰者模式】Decorator Pattern
  11. fixed定位之后,如何让div上下垂直居中
  12. BeanDefinitionRegistryPostProcessor是什么?
  13. 打造升级GsonFormat驼峰命名规则
  14. python九九乘法表代码中的i+1的意思_python---九九乘法表代码
  15. GIT LFS 原理杂谈
  16. 51单片机最小系统板
  17. 面试中的着装与举止--Java面试
  18. 市场调研报告-全球与中国教育互动白板市场现状及未来发展趋势
  19. R语言 | 关联规则
  20. EDA笔记(4)--语言要素

热门文章

  1. NXP与STM32单片机程序架构
  2. (php毕业设计)基于php校园网络报修管理系统获取
  3. 你知道项目管理有哪些分类和体系吗?
  4. 谷歌浏览器主题背景图片保存方法
  5. 浦发银行 信息科技岗 大数据方向 面经
  6. 计算机视觉 -- Homography单应性矩阵
  7. 使用ODAC将SqlServer数据库同步到oracle数据库
  8. OpenSIPS Crash 宕机的初步解决办法(二)
  9. 史上最全App瘦身实践
  10. powershell 遍历json_遍历JSON文件PowerShell