如何求取阻尼比和将数据导入
模态分析的经典定义是:将线性定常系统振动微分方程组中的物理坐标变换为模态坐标,使方程组解耦,成为一组以模态坐标及模态参数描述的独立方程,以便求出系统的模态参数。模态分析的最终目标是:识别出系统的模态参数,为结构系统的振动特性分析、振动故障诊断与预报以及结构动力特性的优化设计提供依据
http://www.ilovematlab.cn/data/attachment/forum/201404/28/092414gvzvg0f24ir430d6.png
为了避免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带通滤波程序,可是对于我的时域数据如何把数据喂给该滤波器呢(请看附件数据)
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:虽然所给数据是一个单自由度的,但是也能够说明问题了吧,谢谢各位了
没有大神么?还是我的问题太naive了 先评价方法本身:没有任何意义。带通滤波如果能做的很好,直接用带通滤波分离出各阶模态响应信号就行了,何必多此一举接着做hht呢?如果是密频结构的话,hht的模态混淆十分严重,如何做,这是方法自身的问题。另外,现在fft处理平稳信号十分有效,不管是随机信号还是波形信号,但是对于hht来说几乎只是适用于波形信号,以上没能见到hht方法应用于模态分析的任何优点,也没见到能解决什么问题,只是为了使用hht且在使用中出现问题,为了解决出现的问题去做混合算法,但是混合算法中另一种算法却能很好解决整个问题,这完全是个矛盾的想法,对于做这个hht方法应用于模态分析上时。 我的实验数据应该不可能是你说的密顿结构,况且我以后的实验数据可能会有随机信号(实验对象是冷凝器,管板和管子之间会有随机碰磨,况且他们之间还有的可能有液膜存在,从理论上分析,应该会有很大的随机性),我看别人贴出来的帖子里面,fft的幅值要大HHT幅值的一个量级,这个如何解释? 皇甫逸冰 发表于 2014-4-29 07:25
我的实验数据应该不可能是你说的密顿结构,况且我以后的实验数据可能会有随机信号(实验对象是冷凝器,管板 ...
没有认真看我的回复,答非所问。hht不适合处理随机信号。之前我的回复主要的意思就是你说的方法没有什么意义,建议放弃。
页:
[1]