声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1848|回复: 11

[其他] 求一组振动加速度数据

[复制链接]
发表于 2014-7-26 21:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 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

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

点评

点击下面的链接吧,可以下载 http://www.chinaksi.com/download/5417/  详情 回复 发表于 2014-7-27 21:19
发表于 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 ...

function  IntFcn_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

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

点评

我用的是另外的算法。建议把上面的数据处理后,将结果贴出来看一下。  详情 回复 发表于 2014-7-28 14:15
发表于 2014-7-28 14:15 | 显示全部楼层
刘义红色枫叶 发表于 2014-7-28 10:04
function  IntFcn_Time2(acc,fs)
n = length(acc);
time = 0:1./fs:(n-1)./fs;

我用的是另外的算法。建议把上面的数据处理后,将结果贴出来看一下。
 楼主| 发表于 2014-7-31 22:23 | 显示全部楼层
westrongmc 发表于 2014-7-28 14:15
我用的是另外的算法。建议把上面的数据处理后,将结果贴出来看一下。

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

点评

sorry  发表于 2014-8-1 09:50
发表于 2014-8-2 20:22 | 显示全部楼层
这里有两组加速度信号:
http://forum.vibunion.com/thread-132992-1-1.html
发表于 2014-9-28 10:59 | 显示全部楼层
好贴,学习了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-29 11:32 , Processed in 0.059611 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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