Enforce Kinematic Constraint in Initial Value Problem ode45()

1 次查看(过去 30 天)
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?

采纳的回答

Sam Chak
Sam Chak 2024-5-20
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:

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

产品


版本

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by