模态分析的经典定义是:将线性定常系统振动微分方程组中的物理坐标变换为模态坐标, 使方程组解耦,成为一组以模态坐标及模态参数描述的独立方程,以便求出系统的模态参数。 模态分析的最终目标是:识别出系统的模态参数,为结构系统的振动特性分析、振动故障诊 断与预报以及结构动力特性的优化设计提供依据
为了避免HHT会出现的边界效应和模态混淆,首先对原信号做FFT变换,确定中心频率,然后进行带通滤波,
Fs = 5000; % Sampling Frequency
Fstop1 = 80; % First Stopband Frequency
Fpass1 = 100; % First Passband Frequency
Fpass2 = 120; % Second Passband Frequency
Fstop2 = 140; % Second Stopband Frequency
Astop1 = 60; % First Stopband Attenuation (dB)
Apass = 0.6; % Passband Ripple (dB)
Astop2 = 30; % Second Stopband Attenuation (dB)
match = 'stopband'; % Band to match exactly
% Construct an FDESIGN object and call its BUTTER method.
h = fdesign.bandpass(Fstop1, Fpass1, Fpass2, Fstop2, Astop1, Apass, ...
Astop2, Fs);
Hd = design(h, 'butter', 'MatchExactly', match);
以上是butterworth带通滤波程序,可是对于我的时域数据如何把数据喂给该滤波器呢(请看附件数据)
a51FFT.txt
(244.52 KB, 下载次数: 0)
a51.txt
(630.7 KB, 下载次数: 0)
fidin=fopen('a51.txt');% 打开test2.txt文件
fidout=fopen('mkmatlab.txt','w');
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
if ~isempty(tline)
if (double(tline(1))>=48&&double(tline(1))<=57)% 判断首字符是否是数值
fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txt
continue ;
end;
end;
end
fclose(fidout);
a51=importdata('MKMATLAB.txt');
以上程序用于将数据导入,但是怎么才能进入滤波器呢?
另外,我还想请教,经过滤波器后,如何写接下来的程序?
就是怎么样才能输出希尔伯特边际谱?如何输出希尔伯特三维谱和阻尼比?总的阻尼和每节次的阻尼比什么关系?
本人看了大量HHT的文献,方法论已经成型,奈何对于如何实现我想要的功能确实一片茫然,求各位大神赐教!
PS:虽然所给数据是一个单自由度的,但是也能够说明问题了吧,谢谢各位了 |