How to impose constraint in ode45 on output variable?

3 visualizaciones (últimos 30 días)
Alessandro Longo
Alessandro Longo el 28 de Sept. de 2017
Comentada: Torsten el 29 de Sept. de 2017
I have a system of this type
to solve with ode45. I already built the mass matrix (several terms of this matrix depend on the x unknowns), the unknown vector x and the f vector (several terms of this vector depend on the x unknowns). My code is something like this:
options_ODE = odeset('AbsTol',1e-6,'Mass',@MassStickFree);
[vTime,vX] = ode45(@eqLongDynamicStickFree,[0 t_fin],x0',options_ODE);
where the M matrix has been built in the MassStickFree file and the f vector in the eqLongDynamicStickFree file. I would impose that the term x(8) will satisfy a certain condition, for example x(8)=0. How can I do?
  5 comentarios
Alessandro Longo
Alessandro Longo el 29 de Sept. de 2017
Editada: Alessandro Longo el 29 de Sept. de 2017
The mass is exactly that one. The problem is that x (7) and x (8) are related because xdot (8)=x (7). I would impose that both x (8) and x (7) are zero. I tried to set
x (7)=0
x (8)=0
And to set in the function file
f (8)=0
But in this way, only the x (8) variable is zero after calculation. I also tried to define, in the mass matrix
M (7,7)=0
But in this case no result is produced (matrix is singular).
Torsten
Torsten el 29 de Sept. de 2017
What's wrong about setting x0(8)=0, f(8)=0 and leave everything else unchanged ?
Best wishes
Torsten.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by