双积分加速度数据获得位置:2个问题

计算科学 数值分析 计算物理学 时间积分
2021-12-21 21:53:25

我有一个来自手机加速度计的数据样本(虽然加速度计很糟糕)。我正在尝试对其进行双重积分,以获得作为时间函数的位置。我正在使用 Python3 中的程序来集成它,代码如下:

nm = input("Filename: ")

fil1 = open(nm,"r")
i = 0
s = 0.0
fil2 = open("int1.dat","w")

for line in fil1:
    xi,yi = line.split()
    if i == 0:
        x = float(xi) ; y = float(yi)
    if i > 0:
        s = s  + (float(xi)-x)*(float(yi)+y)/2
        x = float(xi)
        y = float(yi)
    i = i + 1
    fil2.write("{} {} \n".format(xi,s))
fil2.close()
#I just integrated the file. Now, i will integrate it again:
fil3 = open("int1.dat","r")
s = 0.0
i = 0
fil4 = open("int2.dat","w")
for line in fil3:
    xi,yi = line.split()
    if i == 0:
        x = float(xi) ; y = float(yi)
    if i > 0:
        s = s  + (float(xi)-x)*(float(yi)+y)/2
        x = float(xi)
        y = float(yi)
    i = i + 1
    fil4.write("{} {} \n".format(xi,s))
fil3.close()
fil4.close()

如您所见,我正在使用梯形近似该区域。

在运动中获得的加速度数据如下:

  1. 从我定义为的位置开始x=0.
  2. 直线移动到桌子的尽头,停了下来。
  3. 等了几秒。
  4. 回到原来的位置

因此,位置 x 时间的图表应该类似于“山”:它上升,而不是下降。这是价值x(t)在峰值处将代表表格的总长度。

但是,事情并不顺利。我通过消除所有的平均值来消除噪音|a(t)|<0.15. 但是,它仍然没有很好地总结。图表变得非常糟糕。所以,这是我的第一个问题: 当我整合它时,噪音太大了。 所以,我的第一个问题是:我怎样才能减少噪音?

正在发生的另一个问题,我觉得奇怪的是,我的位置并没有“去然后回来”到它开始的地方。它开始于0, 去7(大约是桌子的长度)然后,而不是回到0,它一直下降到14. 为什么是这样?我似乎找不到任何特别的理由让积分没有认识到我正在倒退的事实。

我试图上传图形,但我现在不能。我会尽快上传它们。非常感谢。

0个回答
没有发现任何回复~