matlab加速度積分成速度及位移請神人幫忙

2021-03-03 21:02:46 字數 3785 閱讀 2553

1樓:匿名使用者

你給我公式,我不可能知道你們的公式吧。還有你給的財富積分太低了這個可不是一般的程式設計呀

最近在用matlab處理振動資料,加速度頻域積分為位移,但是我不明白為什麼最後是用逆變換的實部作為結果?

2樓:匿名使用者

以上程式是對加速度二次積分為位移,將

時域積分裝換為頻域積分, 實現方法為將時域訊號進行fft到頻域,然後對頻譜做簡單運算實現了頻域上的積分 最後將頻域經過ifft到時域 實現了頻域上的積分。

時域積分對應在頻域上的頻譜函式為:∫f(x)dx →f(jw)/jw所以時域上的一次積分對應在頻域上的處理為:逆完fft之後取虛部,因為加速度與速度之間的關係為jw

二次積分時因為是-w^2,所以有 y=-a 即為取實部

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

3樓:昂徠教育科技****

方法一:

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);

matlab中怎樣將加速度訊號積分

4樓:

我是用採集到的加速度訊號來做兩次積分得到位移訊號,由於採集到的加速度訊號有直流偏移量,所以用了detrend命令做去趨勢處理。為了檢驗**是否正確,我用了一個標準的正弦函式來驗證。**如下:

t=(0:1:10240-1)/2000;

a=sin(5*t); %標準的正弦函式,準備對其進行兩次積分處理

fs=2000;

n=10240;

za=detrend(a); %對採集到的加速度訊號去趨勢處理(因為採集到的加速度訊號有直流偏移量)

v=cumtrapz(t,za); %對加速度訊號積分得速度訊號

zv=detrend(v); %對速度訊號去趨勢處理

l=cumtrapz(t,zv); %對速度訊號積分得到位移訊號

zl=detrend(l); %對位移訊號去趨勢處理

figure(1)

subplot(3,1,1)

plot(t,za)

title('加速度訊號');

subplot(3,1,2)

plot(t,zv)

title('速度訊號');

subplot(3,1,3)

plot(t,zl)

title('位移訊號');

振動加速度的一次積分得出速度,二次積分得出位移.但具體是怎樣做呢? 假設加速度是2m/s^2,時間是500ms,求

5樓:匿名使用者

直接積分不是實用方法,因實際資料都混有噪聲,每次積分將累積這些噪聲(你可以想象一個小的常量經長時間積分變得巨大、乃至無窮大),也就是形成所謂趨勢項。

可參考頻域積分法:王濟,... matlab在訊號處理中的應用,超星上有的。

6樓:假公成私

如果是簡諧振動,那只有在質點過零瞬間加速度達到最大值2m/s²,而並非所有時刻都是。其函式為正弦曲線,與位移曲線相差90°。所以速度也是變化的,位移也是變化的。

除非你這500ms小於半個週期,否則積分算出來也是錯的。

7樓:

1. 幾個自由度? 2. 有無阻尼? 3. 受迫與否?

假如是最簡單的「單自由度無阻尼簡諧振動」:

那麼,運動方程屬於「二階常係數線性微分方程」,其通解是三角函式,根本用不著採用積分;

直接輸入數值,用c++自帶的三角函式就能求出"位移";

同理,可以得到」速度「;

然後根據初相位、運動時間、週期的關係,程式設計判斷出經過了幾次平衡點,再結合振幅和先前求出的位移,就能求出「路程"。

另外,畢業好多年,這函式看得不甚理解。但裡面明顯只有下限a、上限b和迭代次數n這三個變數,只是一個單純的數學函式的程式設計,缺少其他力學量的輸入函式,所以和振動這個現象沒有毛線的關係,所以你根本用不到這個程式。

加速度感測器訊號如何積分,成為位移?

8樓:匿名使用者

積分可以在時域裡實現,也可以在頻域裡實現;

時域積分法:梯形公式數值積分法,或者其他直接積分法頻域積分法:基本原理是首先將加速度訊號作傅立葉變換,然後將變換結果在頻域裡進行2次積分,最後進行傅立葉逆變換得到積分後的位移訊號。

參考文獻:王濟,胡曉《matlab在振動訊號處理中的應用》

9樓:流傷

基本的原理很簡單,兩次積分過程用梯形積分公式,關鍵是對感測器的資料的誤差進行分析,選擇合適的演算法消除誤差,一般誤差源有輸入環境不理想,如手持感測器運動,感測器對手的撥動都檢測到了,用低通fir濾波,手的振動波段在8-12hz,還有直流量帶來的誤差,靜止下,對感測器的資料求均值標準差,估計波動範圍設波動閾值,在感測器運動的資料上減去,再有感測器模組機械工藝誤差,三軸的非絕對兩兩垂直,小限度內,感測器輸出與輸入是線性關係的誤差等,一次積分過程會得到速度,結合運動的起始終止條件速度為零對積分的速度進行修正,第二次積分的位移。但是得到的結果誤差還是很大,可以一起討論一下。

關於加加速度微積分計算,速度,加速度與微積分的問題

一看樓主的物理就很水.按照你的定義,加加速度積分,就為加速度,加速度積分就為速度,速度的積分就為位移了!所以連續積分三次就行了。f為加加速度的函式,f t dt bx u t u為加速度的函式。u t dt bt 2 2 v t v t 為速度的積分 再對速度積分就得位移了 s v t dt bt ...

已知加速度,對加速度求積分可得速度,為什麼求積分會是這樣子求

把v和t換位置之後,兩邊分別轉化為為v和t求積分,這樣比較好算。加速度對時間積分是什麼?加速度對時間積分是 v,就是速度在積分時間段內的變化量。加速度是速度變化量與發生這一變化所用時間的比值 v t,是描述物體速度變化快慢的物理量,通常用a表示,單位是m s2。加速度是向量,它的方向是物體速度變化 ...

角加速度等於切向加速度除以半徑,角加速度等於切向加速度除以半徑 求解

由於角加速度 d dt 是角速度而切向加速度是 a切 dv dt v是線速度大小且 v r r 是半徑 顯然在半徑不變時,有 d dt 1 r d r dt a切 r 可見,在半徑不變的圓周運動中,角加速度等於切向加速度除以半徑。注 如果半徑是變化的 如帶電粒子在磁場中做半徑不斷減小的運動 則本題這...