[FEM][MATLAB][有限元] FEM Modal Analysis Programming with MATLAB (Truss Element) (桁架单元模态分析编程)

坚持实干、坚持一线、坚持积累、坚持思考,坚持创新。

接着博文《[动力学] 模态分析基础 (Basics of modal analysis)》继续介绍桁架单元用于模态分析的方法。该部分内容也是 书本 《有限单元法:编程与软件应用》模态分析章节的部分内容节选。

  • 10.2 2D桁架结构模态分析

模态分析需要的参数主要有结构的刚度矩阵和质量矩阵,其中的刚度矩阵与静力分析中的刚度矩阵相同,这里仅给出进行模态分析所需的质量矩阵等其他条件。

  • 10.2.1 桁架单元质量矩阵

集中质量矩阵(局部坐标)

设杆材料密度为 ,单元长度为 ,截面积为 ,每个节点分担单元1/2质量,则单元质量矩阵

                (10.2‑1)

整体坐标下的质量矩阵转换

整体坐标下单元一致质量矩阵为

            (10.2‑2)

推导】:质点动能与坐标系无关,则有

              (10.2‑3)

            (10.2‑4)

从而得到式(10.2‑2)。

  • 10.2.2 算例:2D桁架模态分析

算例采用与2D桁架静力分析中相同的结构,其中材料密度为7.85e-9t/mm3,采用集中质量矩阵,将单元质量集中于两端节点。由于算例模态分析的Matlab代码与前面章节中静力分析的Matlab代码大体相同,因此这里仅给进行模态分析所需的新增的 MATLAB 代码。

% Truss 2D modal analysis

% Author JiDong Cui(崔济东),Xuelong Shen(沈雪龙)

% Website : www.jdcui.com

% 20151108

……

此前代码与静力分析代码相同,不再赘述。

% Properties definition

……

p=7.85E-9     % Density

……

定义单元属性时,增加单元材料密度ρ=7.85e-9,用于计算单元质量。

% Global stiffness matrix and mass matrix

stiffness = zeros(numDOF);

mass=zeros(numDOF);

for i=1:numEle;

    % Index of the element nodes

    noindex = EleNode(i,:);

    % Element length

    deltax = xx( noindex(2)) - xx( noindex(1));

    deltay = yy( noindex(2)) - yy( noindex(1));

    L = sqrt( deltax*deltax + deltay*deltay );

    % Element stiffness matrix

    C = deltax / L;

    S = deltay / L;

    T=[ C,S, 0,0;

       -S,C, 0,0;

        0,0, C,S;

        0,0,-S,C

       ];

    eleK = EA/L*[ C*C C*S -C*C -C*S;

                  C*S S*S -C*S -S*S;

                  -C*C -C*S C*C C*S;

                  -C*S -S*S C*S S*S];

    eleM0=p*A*L/2*diag([1,1,1,1]);  

    eleM=T'*eleM0*T;

    % Corresponding freedom of the element nodes

    eleDof = [noindex(1)*2-1 noindex(1)*2 noindex(2)*2-1 noindex(2)*2];

    % Integration of element stiffness matrix and mass matrix

    stiffness( eleDof , eleDof) = stiffness( eleDof , eleDof) + eleK;

    mass( eleDof , eleDof) = mass( eleDof , eleDof) + eleM;

end

……

本段代码的作用是集成结构整体刚度矩阵和整体质量矩阵。本结构共有numDOF个自由度,因此首先采用zeros()方法定义了一个numDOF×numDOF的零矩阵mass。单元的质量矩阵eleM0采用集中质量形式求得,并采用与刚度矩阵相同的“对号入座法”将单元质量矩阵组装到结构整体质量矩阵mass中。

% Get the eigenvalues and eigenvectors

A=mass(activeDof,activeDof)\stiffness(activeDof,activeDof);

[Vo,Do] = eig(A);

fo=diag(sqrt(Do)/(2*pi));

Vf=sortrows([Vo',fo],size(Vo,1)+1);

V=Vf(:,1:size(Vo,1))';

f=sort(fo)

……

本段代码通过求解标准特征值问题,求得特征值和特征向量。Matlab内置函数eig([A])可直接求解特征值和特征向量,本例中 [A]=[K]-1[M],求得的特征值放在向量{Do}中,相应的特征向量放在矩阵[Vo]中。其后的代码用于处理求解得到的数据,其中代码“fo=”用于根据特征值求得频率,代码“V=”用于将特征向量排序,代码“f=”用于将结构自振频率进行排序。图 10‑1所示是该桁架结构的前三阶振型。

(a)第一振型

(b)第二振型

(c)第三振型

图 10‑1 桁架结构振型

  • 相关内容 ( Related Topics )

[00]. [Book][书] 有限单元法:编程与软件应用

[01]. 2D Truss by Matlab [Matlab 2D桁架有限元] (code by myself)

[02]. 3D Truss by MATLAB[MATLAB 3D 桁架静力分析] (code by myself)

[03]. [FEM][有限元][编程][Matlab][Code by myself] FEM Analysis: 2D Truss Element [有限元分析: 2D桁架单元]

[04]. [FEM][有限元][编程][Matlab][Code by myself] FEM Analysis: 2D Euler Beam Element [有限元分析: 2D欧拉梁单元]

[05]. [FEM][有限元][编程][Matlab][Code by myself] 2D剪切梁单元

[06]. [FEM][有限元][编程][Matlab][Code by myself] 2D Timoshenko梁单元

[07]. [FEM][有限元][编程][Matlab][Code by myself] 三角形常应变单元(CST)

[08]. [FEM][有限元][编程][Matlab][Code by myself] 平面4变形单元(Q4)

[09]. [FEM][有限元][编程][Matlab][Code by myself] 4节点四面体单元(TET4)

[10]. [FEM][有限元][编程][Matlab][Code by myself] 8节点六面体单元(C3D8)

[11]. [FEM][有限元][编程][Matlab][Code by myself] 平面8节点二次“完全积分”单元(CPS8)

[12]. [FEM][有限元][编程][Matlab][Code by myself] 平面6节点二次“完全积分”单元(CPS6)

[13]. [FEM][MATLAB][有限元] FEM Modal Analysis Programming with MATLAB (Truss Element) (桁架单元模态分析编程)

[14]. [FEM][MATLAB][有限元] FEM Modal Analysis Programming with MATLAB (Frame Elements) (框架单元模态分析编程)

[15]. [力学][有限元]Basics of Linear Buckling Analysis [线性曲屈分析基础]

[16]. [FEM][MATLAB][有限元][编程] FEM Buckling Analysis Programming with MATLAB (Truss Elements) (桁架单元曲屈分析编程)

[17]. [FEM][MATLAB][有限元][编程] FEM Buckling Analysis Programming with MATLAB (Frame Elements) (框架单元曲屈分析编程)


5 0

  • 注释 ( Comments )

  ( 如果您发现有错误,欢迎批评指正。邮箱:jidong_cui@163.com . 如果您喜欢这篇博文,请在上面给我 点个赞 吧! :-)   :-)   

  ( If you found any mistakes in the post, please let me know. Email : jidong_cui@163.com. If you like this posts, please give me a thumbs up rating on the above button! )

  • 微信公众号 ( Wechat Subscription)

WeChat_QRCode

欢迎关注 “结构之旅” 微信公众号

2 thoughts on “[FEM][MATLAB][有限元] FEM Modal Analysis Programming with MATLAB (Truss Element) (桁架单元模态分析编程)

  1. Pingback: [FEM][MATLAB][有限元] FEM Modal Analysis Programming with MATLAB (Frame Elements) (框架单元模态分析编程) | 崔济东的博客 - JiDong Cui's Blog

  2. Pingback: [力学][有限元][FEM]Basics of Linear Buckling Analysis [线性曲屈分析基础] | 崔济东的博客 - JiDong Cui's Blog

Leave a Reply

Your email address will not be published. Required fields are marked *

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

This site uses Akismet to reduce spam. Learn how your comment data is processed.