How to create a Matlab object that simulates a spring-mass system without Simulink

1 view (last 30 days)
I am trying to model a dynamic system (e.g., a spring-mass system) withing a big project, that may be deployed on a machine that doesn't have Simulink.
I would like to create a spring-mass system object, which has a method that takes time as input and return the position, and that stores all the history of states, to be used for the numerical integration.
How can I do it, without SImulink?
Note: I am aware of ODE solvers (e.g., ode45), but my problem with these solvers is that they solve for the all time steps at once, which contrary to what I need. I need to solve for only one time step, as needed.
Thanks :)

Accepted Answer

Sam Chak
Sam Chak on 11 Apr 2022
If the spring-mass system is non-stiff, and you want to solve for only one step time, then the conventional Runge–Kutta 4th-order formula should be good enough for the job.
For example, given the dynamical system:
and the initial value ,
select a sufficiently small step size h, and compute the following
to obtain 1-step propagated solution:
  1 Comment
Mahmoud Elzouka
Mahmoud Elzouka on 11 Apr 2022
Thanks @Sam Chak for the solution. It is similar to what I am currently doing.
I was hoping Matlab can give us access to the Simulink-like classes, rather than implement the numerical technique of handling the DE.

Sign in to comment.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!