刘义红色枫叶 发表于 2014-7-26 21:45

求一组振动加速度数据

我最近在研究如何由加速度信号转化为位移信号,想找一份振动加速度数据,我验证一下我的程序是否正确。
liuyi8045@163.com谢谢啦

westrongmc 发表于 2014-7-26 22:20

本帖最后由 westrongmc 于 2014-7-26 22:27 编辑

这个帖子有数据
http://forum.vibunion.com/thread-132588-1-1.html

刘义红色枫叶 发表于 2014-7-27 21:14

westrongmc 发表于 2014-7-26 22:20
这个帖子有数据
http://forum.vibunion.com/thread-132588-1-1.html

我也是刚开始研究振动,论坛级别低,数据下载不了啊

westrongmc 发表于 2014-7-27 21:19

本帖最后由 westrongmc 于 2014-7-27 21:24 编辑

刘义红色枫叶 发表于 2014-7-27 21:14
我也是刚开始研究振动,论坛级别低,数据下载不了啊转载如下:
点击下面的链接吧,可以下载.加速度数据,采样频率20480Hz,单位m/s^2
http://www.chinaksi.com/download/5417/

刘义红色枫叶 发表于 2014-7-28 10:04

westrongmc 发表于 2014-7-27 21:19
转载如下:
点击下面的链接吧,可以下载.加速度数据,采样频率20480Hz,单位m/s^2
http://www.chinaksi.c ...

functionIntFcn_Time2(acc,fs)
n = length(acc);
time = 0:1./fs:(n-1)./fs;
nfft = 2^nextpow2(n);          %FFT变换长度,大于并最接近n的2的幂次方为FFT的长度
y = fft(acc,nfft);             %FFT变换

% 绘制原始加速度信号的时域波形
figure(1)
subplot(311);
plot(time,acc,'k-');
xlabel('时间(s)');
ylabel('加速度幅值(g)');
title('加速度时域波形');
grid on;

%% 绘制功率密度频谱图,计算机床振动频率
P = y.*conj(y)/nfft;         %求取功率密度,其中conj(y)是求y的共轭
f = fs*(0:(nfft/2-1))/nfft;    %设定频率变化范围
figure(2)
% subplot(422);
plot(f,P(1:nfft/2),'b-');      %绘制功率频谱图
xlabel('频率(Hz)');
ylabel('功率密度');
title('加速度功率密度频谱图');
grid on;

% pmax = max(P(1:nfft/2));
% id = find(P(1:nfft/2)==pmax);
% fm = f(id)

% subplot(422);
% freq_series=fs*(0:nfft/2-1)/nfft;
% plot(freq_series,abs(y(1:nfft/2))*2/nfft);

%% 梯形积分法位移信号disint和速度信号velint
velint = cumtrapz(time, acc); %利用梯形积分法求数值积分,每一个数对应原来数列之前所用数的积分,与trapz不同
velint = velint - repmat(mean(velint), size(velint,1), 1); %去除直流成分B=repmat(A,m,n):以A的内容堆叠在(MxN)的矩阵B中
disint = cumtrapz(time, velint);
disint = disint - repmat(mean(disint), size(disint,1), 1);

% 去除速度信号的趋势项及弥补能量损失
velenergy = sqrt(sum(velint.^2));
velint = detrend(velint);               % detrend 去除信号中的均值或线性趋势
velreenergy = sqrt(sum(velint.^2));
velint = velint/velreenergy*velenergy;% 此操作是为了弥补去趋势时能量的损失

% 绘制速度时域波形
figure(1)
subplot(312);
plot(time,velint,'b-');
xlabel('时间(s)');
ylabel('速度幅值(m/s)');
title('速度时域波形');
grid on;

% 去除位移信号的趋势项及弥补能量损失
disenergy = sqrt(sum(disint.^2));
disint = detrend(disint);
disreenergy = sqrt(sum(disint.^2));
disint = disint/disreenergy*disenergy;
% 去除位移中的二次项
p = polyfit(time, disint, 2);         % polyfit(x,y,n) 用多项式求过已知点的表达式 x——横坐标,y——纵坐标,n——拟合的阶数
disint = disint - polyval(p, time);   % polyval(p,x)返回n次多项式p在x处的值
c2 = 1.0e+003;                         % 单位变换系数,位移单位为mm
disint = disint*c2;

% 绘制位移时域波形
figure(1)
subplot(313);
plot(time,disint,'b-');
xlabel('时间(s)');
ylabel('位移幅值(mm)');
title('位移时域波形');
grid on;
end

大神,看下这个程序有没有错,我用的就是这个程序。

westrongmc 发表于 2014-7-28 14:15

刘义红色枫叶 发表于 2014-7-28 10:04
functionIntFcn_Time2(acc,fs)
n = length(acc);
time = 0:1./fs:(n-1)./fs;


我用的是另外的算法。建议把上面的数据处理后,将结果贴出来看一下。

刘义红色枫叶 发表于 2014-7-31 22:23

westrongmc 发表于 2014-7-28 14:15
我用的是另外的算法。建议把上面的数据处理后,将结果贴出来看一下。

你可以把你的程序发给我一份吗

hcharlie 发表于 2014-8-2 20:22

这里有两组加速度信号:
http://forum.vibunion.com/thread-132992-1-1.html

kekett00 发表于 2014-9-28 10:59

好贴,学习了
页: [1]
查看完整版本: 求一组振动加速度数据