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

6 次查看(过去 30 天)
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.
  2 个评论
Sam Chak
Sam Chak 2023-2-17
Can you show the mathematical equation for the 1-DoF SMD system that you are trying to solve?
How is the secondary spring suddenly brought into the 1-DoF SMD system without an external force?
reza ahmadian
reza ahmadian 2023-2-17
Dear Sam,
Thank for replying,
The equation will be something like :
F(t)=m*x(2)+b*x(1)+k1*x+k2*f1(x)
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.

请先登录,再进行评论。

回答(1 个)

Sam Chak
Sam Chak 2023-2-18
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')

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by