如何使用 Matlab spaps 计算 3D 对象的加速度?

Posted

技术标签:

【中文标题】如何使用 Matlab spaps 计算 3D 对象的加速度?【英文标题】:How to calculate acceleration of an object in 3D using Matlab spaps? 【发布时间】:2020-09-13 19:00:37 【问题描述】:

我有鸟类飞行的 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 采样)。其他飞行动物的论文似乎没有这么高的加速度,但我不知道我哪里出错了。任何人都可以在这里阐明一下吗?我只是在错误地处理这个问题吗?如何验证我的答案?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于如何使用 Matlab spaps 计算 3D 对象的加速度?的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB | 我用MATLAB制作了一款伪3D第一视角迷宫小游戏

MATLAB | 我用MATLAB制作了一款伪3D第一视角迷宫小游戏

如何使用MATLAB生成不同形状的3D矩阵? [关闭]

matlab计算相对功率

Unity 3d和MATLAB之间的连接

如何在matlab中生成概率3D图