首页/文章/ 详情

振动系统固有特性的matlab计算

2年前浏览1652

振动系统固有特性一般指的是振动系统在自由振动条件下的特性,它包含固有频率和振型,振动系统的固有特性和激励。对应到数学上,就是振动系统齐次微分方程的特征,即特征解(包含特征值和特征向量),特征值对应固有频率,特征向量对应振型。


离散振动系统齐次微分方程通常可以表示为:


式中:M为质量矩阵,C为阻尼矩阵,K为刚度矩阵。求解上述齐次微分方程的特征解即可获得系统的固有特性。以下为matlab求解特征值的方法:

无阻尼系统

在不考虑阻尼的条件下,振动系统固有特性求解较为简单,直接采用eig函数即可实现,具体如下:


[vec,val]=eig(inv(M)*K);


 

 

 

 

 


计算出特征向量阵vec和特征值val,再排序即可得到振型矩阵和频率。

阻尼系统 

对于考虑阻尼的振动系统,声振论坛会员gxc8208分享了一个函数,供大家参考:

function [v,w,zeta]=vbr_sf(m,d,k)

% vbr_sf  vbr_sf(m,d,k)

% [v,w,zeta]=vbr4(m,d,k)

% function vbr_sf finds the mode

% shapes and natural frequencies

% of a linear second order matrix

% equation.  

% [v,w]=vbr_sf(m,k) finds the mode

% shapes and natural frequencies 

% for the undamped case.

if nargin==2

  k=d;

  [v,w]=eig(m\k);

  w=sqrt(w);

end

if nargin==3

  if norm(d/m*k-k/m*d) < 1e-8*norm(k/m*d)

    % disp('Damping is proportional, eigenvectors are real.')

    [v,w]=eig(m\k);

    w=sqrt(w);

    zeta=(v'*m*v)\(v'*d*v)/2/w;

   else

    % disp('Damping is non-proportional, eigenvectors are complex.')

    a=[0*k eye(length(k));-m\k -m\d];

    [v,w1]=eig(a);

    w=abs(w1);

    zeta=-real(w1)/w;

  end

end

w=diag(w);

zeta=diag(zeta);


 

 

 

 

 


如果阻尼矩阵是非对称的,则需要对其进行的变形处理之后才能计算。

【免责声明】本文来自声振之家,版权归原作者所有,仅用于学习等,对文中观点判断均保持中立,若您认为文中来源标注与事实不符,若有涉及版权等请告知,将及时修订删除,谢谢大家的关注!






来源:CAE之家
代码&命令科普振动MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-07-09
最近编辑:2年前
CAE之家
硕士 | CAE仿真负责人 个人著作《汽车NVH一本通》
获赞 1143粉丝 6103文章 924课程 20
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈