Computing displacement from accelerometer data
Ältere Kommentare anzeigen
Hi,
I am trying to convert my accelerometer data to displacement data through integrating twice, I looked at other questions here and similar questions have been asked and answered however I still dont get a satisfactory answer.
Te problem I have is that I get a displacement of 5*10^-3 which does not make sense from the experiment. I have attached my data for reference.
I import the data from excel, detrend it and then use the function cumtrapz twice.
data = readmatrix('https://de.mathworks.com/matlabcentral/answers/uploaded_files/1138190/Acceleration%20without%20g%202022-09-07%2009-49-36.xls');
%Acceleration data
acc = data(:,4); % Add gravity factor ( g to m/s²)
%acc = flip(acc);
acc = detrend(acc); % baseline correction
%Time
tStep = 20/length(acc);
N = length(acc)*tStep;
t = 0:tStep:N;
t(end) = [];
N = length(t);
dt = mean(diff(t));
fs = 1/dt;
% High pass filter
N = 2;
fc = 2;
[B,A] = butter(N,2*fc/fs,'high');
acc2 = filter(B,A,acc);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
velocity = cumtrapz(dt,acc2);
velocity = detrend(velocity); % baseline correction
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp = cumtrapz(dt,velocity);
%disp = detrend(disp); % baseline correction
%
figure(1)
%plot(t,acc);
hold on;
%plot(t,velocity);
hold on;
plot(t,disp);
title('disp'); ylabel('m');xlabel('time (s)');
I am wondering what I do wrong, thanks in advance
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Programming finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



