如何使用 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第一视角迷宫小游戏