How to use ode45 in this case?
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I have the variable ydd (y double dot) that I want to integrate twice to get the variable y.
The formula of ydd is:
ydd = -tan(phi).*(zdd + gravity)
where phi, zdd are vectors of size (1xn) containing different angles and accelerations at each time instant.
And, gravity is also a vector of size (1xn) containing a constant value (which is 9.81) repeated n times.
So, ydd is also a (1xn) vector containing different accelerations at each time instant.
How can I use ode45 to integrate ydd twice?
Thank you for taking the time to read my question.
0 个评论
采纳的回答
Torsten
2021-5-28
编辑:Torsten
2021-5-28
ydot = y'(t0) + cumtrapz(t,-tan(phi).*(zdd+gravity));
y = y(t0) + cumtrapz(t,ydot),
plot(t,y)
where t is your (1xn) vector of times (t0,...,t_(n-1)) and y(t0) and y'(t0) are initial conditions (position and velocity at t=t0, respectively).
3 个评论
Torsten
2021-5-28
编辑:Torsten
2021-5-28
t can be arbitrarily spaced, but must be increasing and of the same length as the other vectors, namely n.
You could use ODE45 for a solution, but since your equation only depends on t and not on y, it would be overkill to use this solver.
If you want to compare results, take a look at the example "ODE with time-dependent terms" in the ODE45 documentation. It can easily be adapted to solve your application.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!