首页 > 解决方案 > 如何使用 Matlab spaps 计算 3D 对象的加速度?

问题描述

我有鸟类飞行的 x,y,z 数据。

5.41634053198718    -18.1810946096409   -0.780385429905346
5.35578033638605    -18.1270442655634   -0.776694225482939
5.28687303433952    -18.0715127366784   -0.771968693273565
5.22280640780212    -18.0183932558829   -0.754602789629705
5.15964035792608    -17.9643849978555   -0.745350176350257
5.09014224340910    -17.8968959680244   -0.731112510479869
5.02017144713341    -17.8157826681313   -0.716412745992774
4.94927907542683    -17.7428283683055   -0.705797975911837
4.88058887728044    -17.6828866166493   -0.695765115125014
4.81567941240209    -17.6178084266463   -0.687394977780229

我想知道飞行轨迹的运动学特性。目前,我已经尝试使用 Matlab spaps 函数进行平滑来生成五次样条,这在文献中经常这样做。我使用样条曲线生成一阶和二阶导数(速度和加速度)。这会产生以下结果:

速度(米/秒)

7.53445215021684
8.69441552364295
8.81064845682925
8.18234102569862
8.90947412371613
10.6002874957899
10.6624464789766
9.82686835741751
8.47284851350541
11.3409318153158

直线加速度 (m/s^2)

183.838635562134
102.230396070086
217.935743093510
166.277761581847
195.859134993080
177.605911374232
133.877969039041
111.044847076448
83.5303968061012
691.158834476335

速度似乎是现实值,但我没有计算加速度的经验,而且这些值似乎非常高。我什至尝试只使用速度和加速度方程(位置之间的时间为 0.01,因为数据以 100 fps 采样)。其他飞行动物的论文似乎没有这么高的加速度,但我不知道我哪里出错了。任何人都可以在这里阐明一下吗?我只是在错误地处理这个问题吗?如何验证我的答案?

标签: matlabvalidationvelocityacceleration

解决方案


例如,如果您查看速度数组的前两个元素,它们的差异为1.159963373426111m/sin 0.01s,因此它与数百 m/s^2 数量级的加速度一致。我不知道这对你的飞行动物来说是否可行。

另一方面,请记住,速度和加速度始终是矢量,而我猜你只是在看幅度?


推荐阅读