solving a 1 DoF MSS-Spring-Damper when the spring stiffness is a function of displacement

4 views (last 30 days)
Hello guys,
I'm trying to solve a 1 DoF SMD system whith an external force (as a function of time) and a step spring stiffness as a function of the displacement.
Actually, after reaching a specific displacement, there would be a secondary spring (in parallel) so the total stiffness is afunction of displacement.
Any help would be appreciated.
reza ahmadian
reza ahmadian on 17 Feb 2023
Dear Sam,
Thank for replying,
The equation will be something like :
where f1(x)= x-x1 if x>x1
=0 if x<=x1
x1,x,b,k1 and k2 are constant parameters
There is an external force. the fact is if that force exceed a specific value, the system will reach the engaging point over time, where the secondary spring will get involved.

Sign in to comment.

Answers (1)

Sam Chak
Sam Chak on 18 Feb 2023
If the system is stiff, then you can try using the ode15s() solver.
In the following example, the external force f(t) is assumed a unit step function.
% Parameters
m = 1;
b = 2;
k1 = 1;
k2 = 1;
xd = 0.5;
% Settings
% x(1) is the position of the spring
% x(2) is the time derivative of x(1)
odefun = @(t, x) [x(2);
(heaviside(t) - b*x(2) - k1*x(1) - k2*((x(1) - xd).*heaviside(x(1) - xd)))/m];
tspan = [0 15];
x0 = [0 0];
% Solving and plotting
[t, x] = ode15s(odefun, tspan, x0);
plot(t, x), grid on
xlabel('t'), ylabel('\bf{x}')
legend('x_1', 'x_2', 'location', 'east')
  1 Comment
reza ahmadian
reza ahmadian on 19 Feb 2023
Thanks Sam,
That helped me alot, although I managed to model the problem by Simulink, the answers looks ok now

Sign in to comment.


Find more on Programming in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!

Translated by