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!