MATLAB Answers

solve Equilibrium Position of Mass - Spring - Damped System

5 views (last 30 days)
Antonio d'Aniello
Antonio d'Aniello on 14 Oct 2020
Commented: Antonio d'Aniello on 15 Oct 2020
I am considering a damped system, with equation as below. I am asked to find the equilibrium position of the system, which I know being 0. So, in MATLAB I substitute the derivatives of x with zero (by using the definition of Equilibrium Position of the system), and then try to solve for x. This results in an empy sym. Anyone knows where the problem is?
syms x(t) m k b
systemDamped = m * diff(x, t, 2) + b * diff(x, t, 1) + k * x(t) == 0;
systemDampedEquilibrium = subs(systemDamped, {diff(x, t, 1), diff(x, t, 2), k}, {0 0 100});
EquilibriumPosition = solve(systemDampedEquilibrium, x(t));

  1 Comment

Alan Stevens
Alan Stevens on 15 Oct 2020
... m * diff(x, t, 20) + ...
20? I suspect this should be 2.

Sign in to comment.

Answers (1)

John D'Errico
John D'Errico on 15 Oct 2020
Edited: John D'Errico on 15 Oct 2020
As Alan pointed out, you probably wanted to take the 2nd derivative of x there in your system, not the 20th derivative. The term in the differential equation you posed wants to multiply mass with acceleration, which would be diff(x,t,2).
syms x(t) m k b
systemDamped = m * diff(x, t, 2) + b * diff(x, t, 1) + k * x(t) == 0;
systemDampedEquilibrium = subs(systemDamped, {diff(x, t, 1), diff(x, t, 2), k}, {0 0 100})
systemDampedEquilibrium(t) = 
100x(t)=0
isolate(systemDampedEquilibrium,x(t))
ans = 
x(t)=0
What a difference an extra zero makes.

  1 Comment

Antonio d'Aniello
Antonio d'Aniello on 15 Oct 2020
Yes sorry it was a typo. But technically “isolate” is not the same as “solve” the equation right?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by