How to convert acceleration data to velocity and displacement?
25 次查看(过去 30 天)
显示 更早的评论
I have acceleration data and I need to convert it into velocity and displacement.My sampling frequency is 500 Hz. I used the following approach but my result are not accurate. Need suggestion. My approch:
1>Fist took acceleration data
2>Then I filter that data using butter worth high pass filter of frequency hpf=50. I used this command [b,a]=butter(5,Fhp/Fs,'high');
dataa=filter(b,a,dataa);
3>then to get velocity I used 'cumtrapz' to integrate acceleration with code datav=cumtrapz(dataa)./Fs;
4>again I filter this velocity data and again integrate to get displacement.
5>finally I plotted this data.results are not proper.
suggest me some thing.
my code is
csvData=handles.csvData;% Read File
dataa=(csvData(:,2)).*9.81; % Data is converted to m/sqr.s
[b,a]=butter(5,Fhp/Fs,'high'); %Filter data
dataa=filter(b,a,dataa);
time=csvData(:,1); %first row is time data
datav=cumtrapz(dataa)./Fs; %Acceleration to Velocity convertsion using integration
[b,a]=butter(5,Fhp/Fs,'high'); %Filter data
datav=filter(b,a,datav);
datad=cumtrapz(datav)./Fs; %Velocity to displacement conversion using integration
回答(1 个)
KSSV
2016-3-12
Dear friend
You have acceleration data, to convert it into velocity and displacement, you need to differentiate the accl. data twice. You may use numerical differentiation like Trapezoidal rule, Simpsons rule etc. You may also use finite difference time schemes like Newmark beta method, wilson method etc.
4 个评论
Mohammad Saiful Islam
2016-6-24
Dear Dr. Siva Srinivas Kolukula, Probably you are little wrong with the conversion of acceleration to displacement. You can not get the displacement by double differentiation of acceleration. You can get acceleration from double differentiation of displacement.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Analog Filters 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!