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!