Enforce Kinematic Constraint in Initial Value Problem ode45()

3 views (last 30 days)
I have the following non-linear system:
I had originally solved for the displacement of each mass using ode45() (see https://www.mathworks.com/matlabcentral/answers/2107866-find-state-space-representation-of-linearized-non-linear-system-to-find-state-space-representation-i?s_tid=srchtitle). I had set the initial displacement and velocity of each mass to zero as my initial values. My confusion is with how my kinematic constraint (i.e. zero displacement at each wall) is accounted for or enforced in the ode45() solution. Is my ode45() solution valid for the system shown or do I need to form this as a boundary value problem with the boundary conditions as x(0) = 0 and x(l) = 0 instead of an initial value problem as I have done with ode45()? Another reason I bring this up is because my ode45() solver frequently fails after t<10^-5 s when solving. Is this because there are are singularities at the walls that I am not accounting for with my ode45() solution?
  1 Comment
Jonathan Frutschy
Jonathan Frutschy on 20 May 2024
@Sam Chak I'm not sure if you would know the answer to this, but any insight would be greatly appreciated.

Sign in to comment.

Accepted Answer

Sam Chak
Sam Chak on 20 May 2024
Visualizing a system with 600 masses can be challenging. However, I believe the kinematic constraint for this system may be formulated as a differential-algebraic system of equations (DAEs).
For more information, please refer to the following examples:

More Answers (0)

Products


Release

R2024a

Community Treasure Hunt

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

Start Hunting!