MATLAB有限元工具箱calfem3.6学习笔记(1)--二维梁分析

Calfem是一个用于有限元分析的开源MATLAB工具箱,由瑞典隆德大学的学者开发。这个工具箱主要用于教学和研究,特别适合于学习有限元方法的基本概念和技术。

Calfem提供了一系列的函数和工具,包括但不限于以下功能:

元素刚度矩阵的计算:Calfem可以计算各种类型的元素(如梁元素、平面应力/应变元素、实体元素等)的刚度矩阵。

全局刚度矩阵的组装:Calfem提供了函数可以将元素刚度矩阵组装成全局刚度矩阵。

边界条件的处理:Calfem可以处理各种类型的边界条件,包括位移边界条件和力边界条件。

线性方程组的求解:Calfem可以求解由刚度矩阵和载荷向量构成的线性方程组,得到节点位移。

应力和应变的计算:Calfem可以基于节点位移计算元素的应力和应变。

结果的可视化:Calfem提供了一些函数可以绘制位移、应力、应变等结果的分布。

总的来说,Calfem是一个功能强大而易用的有限元工具箱,适合于初学者学习和理解有限元方法的基本原理和技术。然而,对于大型或复杂的工程问题,我们通常会使用更专业的有限元软件,例如ANSYS、ABAQUS等。

完整Calfem3.6工具箱代码见:https://download.csdn.net/download/corn1949/88817170

解释一个简单的3梁模型

构建全局节点如下(a1~a12)

构造Edof全局自由度是关键的第一步

如图所示,

梁1的全局节点包括a4,a5,a6, a1,a2,a3

梁3的全局节点包括a7,a8,a9, a10,a11,a12

梁2的全局节点包括a4,a5,a6,  a7,a8,a9

Edof=[1  4  5  6  1  2  3;% 梁1的全局节点包括a4,a5,a6, a1,a2,a3

    2  7  8  9 10 11 12;% 梁3的全局节点包括a1,a2,a3

    3  4  5  6  7  8  9];% 梁2的全局节点包括a4,a5,a6,  a7,a8,a9

代码如下:

clc;close all;clear all;warning off;%清除变量

rand('seed', 100);

randn('seed', 100);

format long g;

addpath(genpath('calfem3.6'));

%----- 定义全局自由度矩阵 -------------------------------------------------

Edof=[1  4  5  6  1  2  3;% 梁1的全局节点包括a4,a5,a6, a1,a2,a3

    2  7  8  9 10 11 12;% 梁3的全局节点包括a1,a2,a3

    3  4  5  6  7  8  9];% 梁2的全局节点包括a4,a5,a6,  a7,a8,a9

%----- 初始化刚度矩阵,设置载荷向量---------------------

K=zeros(12);

f=zeros(12,1);

f(4)=2e+3;% 全局自由度节点4受力2000N, 方向为正

%----- 单元刚度和单元荷载矩阵  -------------

E=200e9;% 弹性模量

A1=2e-3;

A2=6e-3;

I1=1.6e-5;

I2=5.4e-5;

% 设置元素属性 弹性模量E 截面积 惯性矩I

ep1=[E A1 I1];

ep3=[E A2 I2];

% 设置元素xy坐标

ex1=[0 0];

ex2=[6 6];

ex3=[0 6];

ey1=[4 0];

ey2=[4 0];

ey3=[4 4];

% 设置均布负载

eq1=[0 0];

eq2=[0 0];

eq3=[0 -10e+3];

% 计算元素的刚度矩阵

Ke1=beam2e(ex1,ey1,ep1);

Ke2=beam2e(ex2,ey2,ep1);

[Ke3,fe3]=beam2e(ex3,ey3,ep3,eq3);% 注意有均布载荷

%----- 组装元素 得到全局刚度矩阵---------------------------------------

K=assem(Edof(1,:),K,Ke1);

K=assem(Edof(2,:),K,Ke2);

[K,f]=assem(Edof(3,:),K,Ke3,f,fe3);

%----- 基于边界条件的求解------

bc=[1 0;

    2 0;

    3 0;

    10 0;

    11 0];% 设置边界条件,也即不动的节点

[a,r]=solveq(K,f,bc)

%----- 分段计算 -------------------------------------------

Ed=extract_ed(Edof,a);

[es1,edi1]=beam2s(ex1,ey1,ep1,Ed(1,:),eq1,21)

[es2,edi2]=beam2s(ex2,ey2,ep1,Ed(2,:),eq2,21)

[es3,edi3]=beam2s(ex3,ey3,ep3,Ed(3,:),eq3,21)

%----- 绘图 ---------------------------------------

% ---位移---

figure;

plotpar=[2 1 0];

eldraw2(ex1,ey1,plotpar);

eldraw2(ex2,ey2,plotpar);

eldraw2(ex3,ey3,plotpar);

sfac=scalfact2(ex3,ey3,edi3,0.1);

plotpar=[1 2 1];

dispbeam2(ex1,ey1,edi1,plotpar,sfac);

dispbeam2(ex2,ey2,edi2,plotpar,sfac);

dispbeam2(ex3,ey3,edi3,plotpar,sfac);

axis([-1.5 7.5 -0.5 5.5]);

scalgraph2(sfac,[1e-2 0.5 0]);

title('位移Displacements');

%----- 正应力--------------------------------

figure;

plotpar=[2 1];

sfac=scalfact2(ex1,ey1,es1(:,1),0.2);

secforce2(ex1,ey1,es1(:,1),plotpar,sfac);

secforce2(ex2,ey2,es2(:,1),plotpar,sfac);

secforce2(ex3,ey3,es3(:,1),plotpar,sfac);

axis([-1.5 7.5 -0.5 5.5]);

scalgraph2(sfac,[3e4 1.5 0]);

title('正应力Normal force');

%----- 剪切力 ---------------------------------

figure;

plotpar=[2 1];

sfac=scalfact2(ex3,ey3,es3(:,2),0.2);

secforce2(ex1,ey1,es1(:,2),plotpar,sfac);

secforce2(ex2,ey2,es2(:,2),plotpar,sfac);

secforce2(ex3,ey3,es3(:,2),plotpar,sfac);

axis([-1.5 7.5 -0.5 5.5]);

scalgraph2(sfac,[3e4 0.5 0]);

title('剪切力Shear force');

%----- 弯矩 --------------------------------------

figure;

plotpar=[2 1];

sfac=scalfact2(ex3,ey3,es3(:,3),0.2);

secforce2(ex1,ey1,es1(:,3),plotpar,sfac);

secforce2(ex2,ey2,es2(:,3),plotpar,sfac);

secforce2(ex3,ey3,es3(:,3),plotpar,sfac);

axis([-1.5 7.5 -0.5 5.5]);

scalgraph2(sfac,[3e4 0.5 0]);

title('弯矩Moment');

rmpath(genpath('calfem3.6'));

程序结果如下:

a =

                         0

                         0

                         0

       0.00753570853574139

     -0.000287408783210633

      -0.00537348769781816

       0.00751607473516171

     -0.000312591216789367

       0.00466558150943819

                         0

                         0

      -0.00515131878040474

r =

          1926.76011593696

          28740.8783210633

           445.26992638061

                         0

      1.09139364212751e-11

     -1.09139364212751e-11

      1.12430176280043e-10

     -3.63797880709171e-12

      7.27595761418343e-12

         -3926.76011593717

          31259.1216789367

     -3.35109717752857e-12

es1 =

         -28740.8783210633          1926.76011593696          8152.31039012845

         -28740.8783210633          1926.76011593696          7766.95836694106

         -28740.8783210633          1926.76011593696          7381.60634375367

         -28740.8783210633          1926.76011593696          6996.25432056627

         -28740.8783210633          1926.76011593696          6610.90229737888

         -28740.8783210633          1926.76011593696          6225.55027419149

         -28740.8783210633          1926.76011593696           5840.1982510041

         -28740.8783210633          1926.76011593696          5454.84622781671

         -28740.8783210633          1926.76011593696          5069.49420462931

         -28740.8783210633          1926.76011593696          4684.14218144192

         -28740.8783210633          1926.76011593696          4298.79015825453

         -28740.8783210633          1926.76011593696          3913.43813506714

         -28740.8783210633          1926.76011593696          3528.08611187975

         -28740.8783210633          1926.76011593696          3142.73408869235

         -28740.8783210633          1926.76011593696          2757.38206550496

         -28740.8783210633          1926.76011593696          2372.03004231757

         -28740.8783210633          1926.76011593696          1986.67801913018

         -28740.8783210633          1926.76011593696          1601.32599594279

         -28740.8783210633          1926.76011593696          1215.97397275539

         -28740.8783210633          1926.76011593696          830.621949568003

         -28740.8783210633          1926.76011593696          445.269926380611

edi1 =

      0.000287408783210633       0.00753570853574139

      0.000273038344050101       0.00651116011940109

       0.00025866790488957       0.00558369868264755

      0.000244297465729038       0.00474850732519093

      0.000229927026568506       0.00400076914674139

      0.000215556587407975       0.00333566724700908

      0.000201186148247443       0.00274838472570417

      0.000186815709086911       0.00223410468253681

       0.00017244526992638       0.00178801021721716

      0.000158074830765848       0.00140528442945538

      0.000143704391605316       0.00108111041896161

      0.000129333952444785      0.000810671285446035

      0.000114963513284253      0.000589150128618795

      0.000100593074123722      0.000411730048190052

      8.62226349631899e-05      0.000273594143869964

      7.18521958026582e-05      0.000169925515368687

      5.74817566421266e-05      9.59072623963799e-05

      4.31113174815949e-05      4.67224846631989e-05

      2.87408783210633e-05       1.7554281879305e-05

      1.43704391605317e-05      3.58575375485286e-06

                         0     -3.46944695195361e-18

es2 =

         -31259.1216789367         -3926.76011593717         -15707.0404637487

         -31259.1216789367         -3926.76011593717         -14921.6884405613

         -31259.1216789367         -3926.76011593717         -14136.3364173738

         -31259.1216789367         -3926.76011593717         -13350.9843941864

         -31259.1216789367         -3926.76011593717         -12565.6323709989

         -31259.1216789367         -3926.76011593717         -11780.2803478115

         -31259.1216789367         -3926.76011593717         -10994.9283246241

         -31259.1216789367         -3926.76011593717         -10209.5763014366

         -31259.1216789367         -3926.76011593717         -9424.22427824921

         -31259.1216789367         -3926.76011593717         -8638.87225506178

         -31259.1216789367         -3926.76011593717         -7853.52023187435

         -31259.1216789367         -3926.76011593717         -7068.16820868691

         -31259.1216789367         -3926.76011593717         -6282.81618549948

         -31259.1216789367         -3926.76011593717         -5497.46416231204

         -31259.1216789367         -3926.76011593717         -4712.11213912461

         -31259.1216789367         -3926.76011593717         -3926.76011593717

         -31259.1216789367         -3926.76011593717         -3141.40809274974

         -31259.1216789367         -3926.76011593717         -2356.05606956231

         -31259.1216789367         -3926.76011593717         -1570.70404637487

         -31259.1216789367         -3926.76011593717          -785.35202318744

         -31259.1216789367         -3926.76011593717     -5.55111512312578e-12

edi2 =

      0.000312591216789367       0.00751607473516171

      0.000296961655949899       0.00835265818419922

       0.00028133209511043       0.00900272052772972

      0.000265702534270962       0.00947607866604305

      0.000250072973431494       0.00978254949942905

      0.000234443412592025       0.00993194992817756

      0.000218813851752557       0.00993409685257843

      0.000203184290913089       0.00979880717292149

       0.00018755473007362        0.0095358977894966

      0.000171925169234152        0.0091551856025936

      0.000156295608394684       0.00866648751250232

      0.000140666047555215       0.00807962041951261

      0.000125036486715747       0.00740440122391432

      0.000109406925876279       0.00665064682599728

      9.37773650368101e-05       0.00582817412605134

      7.81478041973418e-05       0.00494680002436634

      6.25182433578734e-05       0.00401634142123213

      4.68886825184051e-05       0.00304661521693855

      3.12591216789367e-05       0.00204743831177544

      1.56295608394684e-05       0.00102862760603264

                         0                         0

es3 =

         -3926.76011593713         -28740.8783210633         -8152.31039012844

         -3926.76011593713         -25740.8783210633          19.9531061905425

         -3926.76011593713         -22740.8783210633          7292.21660250953

         -3926.76011593713         -19740.8783210633          13664.4800988285

         -3926.76011593713         -16740.8783210633          19136.7435951475

         -3926.76011593713         -13740.8783210633          23709.0070914665

         -3926.76011593713         -10740.8783210633          27381.2705877855

         -3926.76011593713          -7740.8783210633          30153.5340841045

         -3926.76011593713          -4740.8783210633          32025.7975804235

         -3926.76011593713          -1740.8783210633          32998.0610767425

         -3926.76011593713           1259.1216789367          33070.3245730614

         -3926.76011593713          4259.12167893671          32242.5880693804

         -3926.76011593713           7259.1216789367          30514.8515656994

         -3926.76011593713          10259.1216789367          27887.1150620184

         -3926.76011593713          13259.1216789367          24359.3785583374

         -3926.76011593713          16259.1216789367          19931.6420546564

         -3926.76011593713          19259.1216789367          14603.9055509754

         -3926.76011593713          22259.1216789367          8376.16904729436

         -3926.76011593713          25259.1216789367          1248.43254361333

         -3926.76011593713          28259.1216789367         -6779.30396006764

         -3926.76011593713          31259.1216789367         -15707.0404637487

edi3 =

       0.00753570853574139     -0.000287408783210633

       0.00753472684571241      -0.00192176018654784

       0.00753374515568342      -0.00355657031400013

       0.00753276346565444      -0.00513123696976483

       0.00753178177562545       -0.0065926579580393

       0.00753080008559647      -0.00789523108302088

       0.00752981839556749      -0.00900085414890689

        0.0075288367055385       -0.0098789249598947

       0.00752785501550952       -0.0105063413201816

       0.00752687332548053        -0.010867501033965

       0.00752589163545155       -0.0109543019054423

       0.00752490994542256       -0.0107661417388106

       0.00752392825539358       -0.0103099183382675

        0.0075229465653646      -0.00960002950801022

       0.00752196487533561      -0.00865837305223611

       0.00752098318530663      -0.00751434677514252

       0.00752000149527764       -0.0062048484809268

       0.00751901980524866      -0.00477427597378627

       0.00751803811521967       -0.0032745270579183

       0.00751705642519069      -0.00176499953752021

       0.00751607473516171     -0.000312591216789351

>>

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MATLAB 有限元工具箱是一款在MATLAB软件上的扩展工具包,用于进行有限元分析有限元分析是一种数值计算方法,用于解决实际工程问题的复杂数学模型。该工具箱提供了一系列函数和工具,帮助工程师和科学家进行结构力学、固体力学、流体力学和热传导等领域的分析MATLAB 有限元工具箱具有以下特点和功能: 1.模型创建:该工具箱允许用户从基本的几何形状创建复杂的有限元模型。用户可以定义结构的几何形状、材料性质和加载条件。 2.网格划分:工具箱提供了各种自动生成网格的功能,以及对现有网格进行编辑的能力。网格的划分决定了模型的准确性和计算效率。 3.材料属性:用户可以定义不同材料的力学性质,如杨氏模量、泊松比和密度等。这些属性对于分析结构的响应至关重要。 4.边界条件:工具箱允许用户定义各种边界条件,如固支、自由端和施加的力和位移等。这些条件对于模型的准确性和仿真的真实性至关重要。 5.求解器:MATLAB 有限元工具箱支持各种求解器,如矩阵求解器和迭代求解器,用于求解大规模线性和非线性方程组。这些求解器可用于计算模型的应力、应变和位移。 6.结果分析工具箱提供了各种可视化和分析工具,以帮助用户理解和解释模型的结果。用户可以绘制应力和位移云图、进行应力和应变分布的剖面分析,以及计算结构的刚度和振动特性等。 总之,MATLAB 有限元工具箱是一个强大而灵活的工具,可帮助用户对各种结构和材料进行有限元分析。它可以提供准确和可靠的结果,为工程师和科学家提供了一个全面的解决方案,用于研究和优化现有结构的设计和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB代码顾问

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值