springen 发表于 2014-12-15 22:23

Matlab如何求频响函数

本帖最后由 牛小贱 于 2014-12-17 09:48 编辑

小弟初学Matlab,现在做一个关于模态分析的程序。现在程序基本都写好了,但是不知道如何编写频响函数的程序,希望各位前辈指点一下。

程序如下:
%二自由度可解耦系统的振动模态
clc;
clear;

m1=1;
m2=2;
k1=2;
k2=4;
c1=1;
c2=2;

x0=;    %初始位移
xd0=;%初始速度

tf=50;       %时间
dt=0.1;      %时间间隔

M=;
K=;
C=;
A=;

y0=;

for i=1:round(tf/dt)+1       %设定计算点,作循环计算
    t(i)=dt*(i-1);
    y(:,i)=expm(A*t(i))*y0;    %循环计算矩阵指数
end

figure(2);
subplot(2,1,1);plot(t,y(1,:));xlabel('Zeit');ylabel('Verschiebung1');grid on
subplot(2,1,2);plot(t,y(2,:));xlabel('Zeit');ylabel('Verschiebung2');grid on

=vbr_sf(M,K,C)函数程序如下:
function =vbr_sf(m,d,k)
%vbr_sfvbr_sf(m,d,k)
%      =vbr4(m,d,k)
%      function vbr_sf finds the mode shapes and natural frequencies of
%      a linear second order matrix equation.
%      =vbr_sf(m,k) finds the mode shapes and natural frequencies
%      for the undamped case.
if nargin==2
k=d;
=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.')
    =eig(m\k);
    w=sqrt(w);

   else
    %disp('Damping is non-proportional, eigenvectors are complex.')
    a=;
    =eig(a);
    w=abs(w1);

end
end
w=diag(w);


wenwuyang 发表于 2014-12-16 09:58

{:{39}:}{:{39}:}

chybeyond 发表于 2014-12-17 10:01

自功率谱和互功率谱的比值

zswseu 发表于 2014-12-21 20:07

记得有个专门的函数,直接把输入和输出相比。。。实测的数据。

danzhilan 发表于 2014-12-23 19:50

顶看看大神回答

HHT 发表于 2014-12-27 21:17

继续, 讲明白一点.......

sealight 发表于 2014-12-29 09:40

help TFESTIMATE

memo1221 发表于 2014-12-29 16:47

zswseu 发表于 2014-12-21 20:07
记得有个专门的函数,直接把输入和输出相比。。。实测的数据。

tfestimate

mzbys 发表于 2016-5-27 21:34

chybeyond 发表于 2014-12-17 10:01
自功率谱和互功率谱的比值

是互谱比自谱吧

刘长 发表于 2016-6-7 15:51

你的程序是响应函数吧,频响函数如果你要从模态分析的方法做,建议参考曹树谦编著的振动结构模态分析,很详细。希望对你有帮助

jiangwj 发表于 2016-6-7 16:02

刘长 发表于 2016-6-7 15:51
你的程序是响应函数吧,频响函数如果你要从模态分析的方法做,建议参考曹树谦编著的振动结构模态分析,很详 ...

有代码吗可以分享一下
页: [1]
查看完整版本: Matlab如何求频响函数