MATLAB中如何將離散加速度積分求得速度

2021-07-15 11:52:34 字數 1240 閱讀 9155

方法一:

e=load('c:\users\administrator\desktop\in.txt');

d=e-sum(e(:,1))/length(e);

figure(1)

plot(d)

title('濾波前加速度')

%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 積分%%%%%%%%%%%%

dt=0.1;

sx=0;

for i=1:1:length(d)

sx=d(i,1)*dt+sx ;%從最值位置疊加加速度

vx(i,1)=sx; %速度矩陣

endfigure(2)

subplot(2,1,1)

plot(vx)

ylabel('速度')

%%% 直流分量確定和積分基線的標定 %%%%%%%%%%%%%%%%%%%%%

vx=vx-sum(vx(:,1))/length(vx);

% sx2=dt*cumtrapz(vx-0.04) %x方向位移矩陣,其中0.04為通過整週期積分得出的直流分量值。

sx2=dt*cumtrapz(vx); %x方向位移矩陣,其中vx為通過標定後的速度矩陣。

subplot(2,1,2)

plot(sx2)

ylabel('位移')

方法二:

將下面內容儲存為simpson.m

function y= simpson(f,a,b,m)

% f被積函式;a積分下限;b積分上限;m子區間個數(將x分為多少個區間)

if m==0

y=0;

else

h=(b-a)/(2*m);

s1=0;

s2=0;

for i=1:m

x=a+(2*i-1)*h;

s1=s1+feval(f,x);

endfor j=1:(m-1)

x=a+2*j*h;

s2=s2+feval(f,x);

endy=h/3*(feval(f,a)+2*s2+4*s1+feval(f,b));

end在命令列輸入

f=@(t)sin(t);

i=;m=floor(2*pi/0.01);

for i=0:m

y=simpson(f,0,2*pi/m*i,i);

i=[i,y];

endt=0:0.01:2*pi;

plot(t,i);

Java中的加速度

在畫圖的過程中,如果設定了圖形方向的轉換,在圖形經過介面邊界的時候,我們會發現這時候方向的突然改變會使得介面顯得不連貫,沒有美感!那可以怎麼美化呢?我們在這裡介紹到vector方法,簡言之就是將目標點看成乙個向量點或者說運動學點,可以改變其方向和加速度,然後定義乙個向量類,並定義其中的屬性和方法 建...

加速度中的mg LSB是什麼意思

是g sensor靈敏度。range的設定是指sensor所能測量的加速度範圍,2g時最多能測到 2g,4g時最多能測到 4g,而sensor的adc的位數是固定的,也就是說10位能輸出的數字只有 512 511,不管range如何設定,數字輸出範圍是固定的。所以,range設定為2g時,測量範圍是...

cocos2d x 運動中的加速度效果

在實現運動中,我們常常需要實現一些加速度或者減速度的效果,cocos2d x引擎為我們提供了相應的實現介面,這樣我們就不用再用原來的公式計算方法來實現加減速度的效果 ease系列的方法改變了運動的速度,但是並沒有改變總體時間,如果整個的action持續5秒鐘,那麼整個的時間仍然會持續5秒鐘。這些ac...