声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 8090|回复: 15

[工具箱] 使用matlab对测量数据求频响函数

[复制链接]
发表于 2014-5-21 10:31 | 显示全部楼层 |阅读模式
10体能
   使用测量的输入、输出数据,怎样用matlab求频响函数

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2014-5-21 11:24 | 显示全部楼层
在分析系统频响特性时要用到tfestimate这个函数,LZ可以先搞一下,最近有点小忙,有时间再给你处理~

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-5-21 11:57 | 显示全部楼层
牛小贱 发表于 2014-5-21 11:24
在分析系统频响特性时要用到tfestimate这个函数,LZ可以先搞一下,最近有点小忙,有时间再给你处理~

这个函数的参数怎么设置比较好
回复

使用道具 举报

发表于 2014-5-21 13:06 | 显示全部楼层
我觉得遇到问题还是自己先去想办法解决比较好,这些函数matlab有详细的使用说明,多摸索摸索就明白了。

点评

赞成: 5.0
赞成: 5
  发表于 2014-5-22 08:27
回复

使用道具 举报

 楼主| 发表于 2014-5-21 15:35 | 显示全部楼层
impulse 发表于 2014-5-21 13:06
我觉得遇到问题还是自己先去想办法解决比较好,这些函数matlab有详细的使用说明,多摸索摸索就明白了。

是介绍了参数,但我不清楚怎样取值比较好
回复

使用道具 举报

发表于 2014-5-21 21:31 | 显示全部楼层
楼主可以参考下面这个主题的回复:
关于频响函数估计H1,H2,H3,H4的问题

在这个帖子的回复中,我粘贴的matlab程序可供参考。改造一下这个matlab程序,就可以自己进行计算了。再次粘贴下:
--------------------------------------------------------------------------------------
美国辛辛那提大学结构动力学实验室的R.J.Allemang教授提供的计算频响函数(H1,H2,Hv估算子)的matlab源码
,感兴趣的,可以复制到matlab程序,保存后,调试、运行,体会一下。

                               
登录/注册后可看大图


% v3_frf.m   
%
% This is a script file to compute H1, H2 and Hv
% for a known sdof system given the mass, damping and
% stiffness terms in dimensionless units.  The output
% includes frequency domain plots of the frequency
% response functions.
%
%**********************************************************************
% Author: Randall J. Allemang
% Date:        18-Apr-94
% Structural Dynamics Research Lab
% University of Cincinnati
% Cincinnati, Ohio  45221-0072
% TEL:  513-556-2725
% FAX:  513-556-3390
% E-MAIL: randy.allemang@uc.edu
%*********************************************************************
%
clg, clear
plt=input('Store plots to file (Yes=1): (0)');if isempty(plt),plt=0;end;
mass=input('Mass value: (10)');if isempty(mass), mass=10;end;
stiff=input('Stiffness value: (16000)');if isempty(stiff),stiff=16000;end;
damp=input('Damping value: (1)'); if isempty(damp),damp=1;end;
omega=linspace(0,100,500);
Hmethod=menu('FRF Computation','H (Theory)','H1 Algorithm', ...
'H2 Algorithm','Hv Algorithm','Hv Algorithm','Exit')
%
s=j*omega;
H=1.0./(mass.*s.*s+damp.*s+stiff);
%
GXX=zeros(1,500);
GFF=zeros(1,500);
GXF=zeros(1,500);
GFX=zeros(1,500);
% 求平均功率谱
for Navg=1:25
        F=rand(1,500)+j.*rand(1,500);
        X=H.*F;
        GFF=GFF+F.*conj(F);
        GXX=GXX+X.*conj(X);
        GXF=GXF+X.*conj(F);
        GFX=GFX+F.*conj(X);
end;
%
if(Hmethod==1)
fig1=figure(1);
semilogy(omega,abs(H))
xlabel('Frequency (Hz)'),ylabel('Log Magnitude'),grid
title('Theoretical FRF')
pause
fig2=figure(2);
plot(omega,360./(2.*pi).*angle(H))
xlabel('Frequency (Hz)'),ylabel('Phase (Deg)'),grid
title('Theoretical FRF')
pause
end
%
if(Hmethod==2)
H1=GXF./GFF;
fig3=figure(3);
semilogy(omega,abs(H1))
xlabel('Frequency (Hz)'),ylabel('Log Magnitude'),grid
title('H1 FRF Algorithm')
pause
fig4=figure(4);
plot(omega,360./(2.*pi).*angle(H1))
xlabel('Frequency (Hz)'),ylabel('Phase (Deg)'),grid
title('H1 FRF Algorithm')
pause
end
%
if(Hmethod==3)
H2=GXX./GFX;
fig5=figure(5);
semilogy(omega,abs(H2))
xlabel('Frequency (Hz)'),ylabel('Log Magnitude'),grid
title('H2 FRF Algorithm')
pause
fig6=figure(6);
plot(omega,360./(2.*pi).*angle(H2))
xlabel('Frequency (Hz)'),ylabel('Phase (Deg)'),grid
title('H2 FRF Algorithm')
pause
end
%Hv估计
if(Hmethod==4)
for ii=1:500;
        G=[GXX(1,ii),GFX(1,ii);GXF(1,ii),GFF(1,ii)];
        [x,d]=eig(G);
        orig_lambda=diag(d);
        [Y,I]=sort(real(orig_lambda));
        lambda=orig_lambda(I);
        psi=x(:,I);
        Hv(1,ii)=-psi(2,1)/psi(1,1);
end;
fig7=figure(7);
semilogy(omega,abs(Hv))
xlabel('Frequency (Hz)'),ylabel('Log Magnitude'),grid
title('Hv FRF Algorithm')
pause
fig8=figure(8);
plot(omega,360./(2.*pi).*angle(Hv))
xlabel('Frequency (Hz)'),ylabel('Phase (Deg)'),grid
title('Hv FRF Algorithm')
pause
end
%Hv估计
if(Hmethod==5)
for ii=1:500;
        G=[GFF(1,ii),GXF(1,ii);GFX(1,ii),GXX(1,ii)];
        [x,d]=eig(G);
        orig_lambda=diag(d);
        [Y,I]=sort(real(orig_lambda));
        lambda=orig_lambda(I);
        psi=x(:,I);
        Hv(1,ii)=-psi(1,1)/psi(2,1);
end;
fig9=figure(9);
semilogy(omega,abs(Hv))
xlabel('Frequency (Hz)'),ylabel('Log Magnitude'),grid
title('Hv FRF Algorithm')
pause
fig10=figure(10);
plot(omega,360./(2.*pi).*angle(Hv))
xlabel('Frequency (Hz)'),ylabel('Phase (Deg)'),grid
title('Hv FRF Algorithm')
pause
end
%
if(Hmethod==6)
break
end
if plt==1
print -deps -f1 v3_frfa.eps
print -deps -f2 v3_frfb.eps
print -deps -f3 v3_frfc.eps
print -deps -f4 v3_frfd.eps
print -deps -f5 v3_frfe.eps
print -deps -f6 v3_frff.eps
print -deps -f7 v3_frfg.eps
print -deps -f8 v3_frfh.eps
print -deps -f9 v3_frfi.eps
print -deps -f10 v3_frfj.eps
end


评分

3

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-5-22 09:18 | 显示全部楼层
westrongmc 发表于 2014-5-21 21:31
楼主可以参考下面这个主题的回复:
关于频响函数估计H1,H2,H3,H4的问题

但我只有输入和输出的时域信号,结构的质量、阻尼和刚度都不知道
回复

使用道具 举报

发表于 2014-5-22 09:20 | 显示全部楼层
请你仔细阅读程序,看懂它,明白其背后的本质。
回复

使用道具 举报

发表于 2014-5-23 13:57 | 显示全部楼层
同求啊,好东西  我也来看看
回复

使用道具 举报

发表于 2014-5-28 11:39 | 显示全部楼层
单输入单输出吗?先FFT,后   输出/输入
回复

使用道具 举报

发表于 2014-6-3 14:12 | 显示全部楼层
直接用FFT不就好了
回复

使用道具 举报

发表于 2014-6-30 05:50 | 显示全部楼层
请楼主继续发好贴,支持你











http://tudouyoukuso.org/sitemap.html   http://zhidaotong.org/   http://www.bb520hk.com/sitemap.html  

点评

反对: 5.0
反对: 5
楼主继续发好贴? 所有帖都带广告! 请自重下  发表于 2014-7-1 08:17
回复

使用道具 举报

发表于 2015-1-30 09:18 | 显示全部楼层
类似R.J.Allemang教授这样的程序在哪里能找到?
回复

使用道具 举报

发表于 2015-1-30 12:54 | 显示全部楼层
handb 发表于 2015-1-30 09:18
类似R.J.Allemang教授这样的程序在哪里能找到?

一般都在作者的个人主页。http://www.sdrl.uc.edu/shareware-freeware

评分

1

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 15:35 , Processed in 0.061644 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表