Displacements from acceleration: newmark methods--> Displacements too high!
1 回表示 (過去 30 日間)
古いコメントを表示
Hi, i have Acceleration data from accelerometers and i want to have displacements and velocity, i used Newmark methods. Displacements are too high (final instant, 200 m)!!! What's wrong? Period goes to 0 sec to 600 sec, delta_t=0.005 sec.
Acc=load('File.txt'); na=size(Acc,2) V1=zeros(size(Acc,1),na); %metodo differenze centrali S1=zeros(size(Acc,1),na);
V2=zeros(size(Acc,1),na); %metodo accelerazione media S2=zeros(size(Acc,1),na);
V3=zeros(size(Acc,1),na); %metodo accelerazione lineare S3=zeros(size(Acc,1),na);
gamma1= 0.5; %metodo differenze centrali gamma2=0.5; %metodo accelerazione media
beta1=0; %metodo differenze centrali beta2=0.25; %metodo accelerazione media
dt1=dt=0.005 %sec
for j=1:size(Acc,2) for i=2:size(t,1) V1(i,j)=V1(i-1,j)+(1-gamma1)*dt1*Acc(i-1,j)+gamma1*dt1*Acc(i,j); S1(i,j)=S1(i-1,j)+dt1*V1(i-1,j)+0.5*(dt1)^2*((1-2*beta1)*Acc(i-1,j)+2*beta1*Acc(i,j));
V2(i,j)=V2(i-1,j)+(1-gamma2)*dt1*Acc(i-1,j)+gamma2*dt1*Acc(i,j);
S2(i,j)=S2(i-1,j)+dt1*V1(i-1,j)+0.5*(dt1)^2*((1-2*beta2)*Acc(i-1,j)+2*beta2*Acc(i,j));
V3(i,j)=V3(i-1,j)+dt1*0.5*(Acc(i-1,j)+Acc(i,j));
S3(i,j)=S3(i-1,j)+dt1*V3(i-1,j)+0.5*(dt1^2)*(2/3*Acc(i-1,j)+1/3*Acc(i,j));
end
end
5 件のコメント
Mathieu NOE
2022 年 10 月 13 日
hello
sure you can change the values as soon as you follow the rules given above
be sure that the high pass filter cut off frequency is not too high otherwise you will start loosing some useful low frequency signal. therefore it's always good to make a fft analysis of the accel signal first and look at the spectral content, put the high pass filter not in the frequncy range where the signal has a strong amplitude
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Multibody Dynamics についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!