首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给定加速度数据和相应的时间,如何在MATLAB中找到位置和速度?

给定加速度数据和相应的时间,如何在MATLAB中找到位置和速度?
EN

Stack Overflow用户
提问于 2014-04-25 03:15:22
回答 1查看 1.6K关注 0票数 0

我在excel电子表格中得到了这些数据。所以导入之后,我只需要做velocity = cumtrapz(t,y),然后做position = cumtrapz(velocity)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 11:02:10

如果汽车在距离为零时从零开始,那是正确的。否则,你也需要有初始速度。请注意,这里真正要做的是通过将a = f(t) = dv/dt标识为ds/dt来求解方程v和进一步的ds/dt。你可以通过求解一个常微分方程组来做到这一点:

代码语言:javascript
复制
a = dv/dt
v = ds/dt

这可以用几种方式来完成。如与欧拉前进。

代码语言:javascript
复制
v'(t) = (v(t+h)-v(t))/h
<=> v(t+h) = hv'(t)+v(t)

其中给出了导数,这意味着a = a(t)。迭代是用初始条件v(0)初始化的,必须给出初始条件。

当您知道v之后,就转到s。

代码语言:javascript
复制
s'(t) = (s(t+h)-s(t))/h
<=> s(t+h) = hs'(t)+s(t)

其中必须知道初始条件s(0)。如果v(0) = s(0) = 0.欧拉正演算法是一种O(h)算法,但了解求解微分方程的技巧,一步一步地进行变换s'(t) = v(t)也是可能的。现在,任何runge方法都可供您使用。你所用的方法,累积量,实际上是一个O(h^2)方法。这比堆栈溢出中的自定义更多一些理论,但希望它会有所帮助。二阶边值问题也有一种矩阵解,称为有限差分法,但该方法略为超前。要进一步阅读,请先从

equations

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23283548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档