Check ode45 for a certain value and start a new solver when these limitations are reached

조회 수: 4 (최근 30일)
I use the ode45 solver for my rigid multibody system. I wanted to limit the movement of the bodies to a certain max and min. I know it is possible to stop the solver completely when a condition is reached but I want it to compute the remaining values and if possible mirror the second output of the body so that a bouncing is simulated.
In my first attempt I solved the system and swapped the unwanted values with my max/min but that doesn't make sense. Could I start another ode45 with initial conditions that are my last values of the first ode45 outputs and just mirror the second output with a minus?

채택된 답변

Torsten
Torsten 2023년 5월 26일
이동: Torsten 2023년 5월 26일
That's exactly what the Event facility of the ODE integrators does.
Look at the "ballode" example:

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by