matlab加速度数据积分,android – MATLAB从加速度到速度到位置的积分时,我的y值非常高...

我从加速度计获得原始加速度数据,并试图对其进行双重积分以获得位置.

用于获取数据的Android手机在平面上设置3秒钟以减少漂移.我在静止期间采取加速度的平均值将开始时归零.这很好,但是当我们整合到速度和位置时(使用cumtrapz),我们得到了不切实际的高y值(速度的米/秒和位置的米).

原始数据以一定的速度挥动手机.

有没有人知道为什么这个位置获得如此高的价值?

下面的图表显示了我描述的内容以及我的代码.

编辑:即使手机没有旋转,这些值也是不切实际的,并不表示手机的移动方式.在附图中,手机在平坦表面上以盒子的形状移动而不涉及旋转.

%VarName2 = accelerometer values in X direction

%VarName3 = accelerometer values in Y direction

%VarName4 = accelerometer values in Z direction

%elapsedArray = time values for each sample of accelerometer data

ddx = VarName2 - mean(VarName2(1:limit));

ddx = ddx(1:length(ddx)-200);

elapsedArray = elapsedArray(1:length(elapsedArray)-200);

ddy = VarName3 - mean(VarName3(1:limit));

ddy = ddy(1:length(ddy)-200);

ddz = VarName4 - mean(VarName4(1:limit));

ddz = ddz(1:length(ddz)-200);

velX = cumtrapz(ddx .* elapsedArray);

velY = cumtrapz(ddy .* elapsedArray);

velZ = cumtrapz(ddz .* elapsedArray);

dx = velX - mean(velX(1:limit));

dy = velY - mean(velY(1:limit));

dz = velZ - mean(velZ(1:limit));

posX = cumtrapz(dx .* elapsedArray);

posY = cumtrapz(dy .* elapsedArray);

posZ = cumtrapz(dz .* elapsedArray);

x = posX - mean(posX(1:limit));

y = posY - mean(posY(1:limit));

z = posZ - mean(posZ(1:limit));

figure;

plot(ddx);

title('Acceleration in X')

xlabel('Time (sec)')

ylabel('Acc (meters squared');

figure;

plot(dx);

title('Velocity in X')

xlabel('Time (sec)')

ylabel('Velocity (meters)');

figure;

plot(x);

title('Position X')

xlabel('Time (sec)')

ylabel('Position (meters)');

figure;

plot(y);

title('Position Y')

xlabel('Time (sec)')

ylabel('Position (meters)');

figure;

plot(z);

title('Position Z')

xlabel('Time (sec)')

ylabel('Position (meters)');

X方向的加速度

X方向的速度和位置

c28589fb6a971f94f8fd1126534f65be.png

193732ee0cd6dd045fe807c8d04ab8fb.png

4ecbeec0915a8023794727efe41ec75b.png

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值