How to use ode45 in this case?

2 visualizaciones (últimos 30 días)
Elie Hatem
Elie Hatem el 28 de Mayo de 2021
Editada: Elie Hatem el 28 de Mayo de 2021
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.

Respuesta aceptada

Torsten
Torsten el 28 de Mayo de 2021
Editada: Torsten el 28 de Mayo de 2021
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 comentarios
Torsten
Torsten el 28 de Mayo de 2021
Editada: Torsten el 28 de Mayo de 2021
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.
Elie Hatem
Elie Hatem el 28 de Mayo de 2021
Editada: Elie Hatem el 28 de Mayo de 2021
Alright I will check and compare both solutions. Thanks for your help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Ordinary Differential Equations en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by