Solve Displacement Driven Mass/Spring System

45 visualizzazioni (ultimi 30 giorni)
I try to find a way to calculate the transient behavior of a mass pre-loaded by a spring but driven by a harmonic mass displacement. Single mass oscillators are described with either driving forces at the mass center or displacements at the root point. But my physical problem is that a mass is harmonically driven by a surface touching the mass. The turning point (x = 0) is NOT the equilibrium state. The spring is pre-loaded.
I want to calculate the driving displacement frequency when the contact force between mass and surface is < 0 (mass starts loosing the contact when the surface is moving down again).
All I can manage so far is to solve the standard equation for harmonic force driven mass point oscillation. The equation is not considering a spring pre-loaded condition (I have no idea to manage that either).
Any guidance to go forward?
standard equation of motion to a force driven mass oscillator without pre-loaded condition (this does not fit to my problem!):
equ = @(t,x) [x(2); (-d/m*x(2)-k/m*x(1)+A/m*sin(wd*t))];
% xi are start conditions [x0, v0]
xi = [x0; v0];
% options structure for ODE solvers; % solver statistics
opts = odeset('stats','on','RelTol',1e-8);
delt = .0001;
tspan = 0:delt:0.03;
% solving differential equation using ode78 solver w/ high quality
tic, [t,x_]=ode78(equ, tspan, xi, opts); toc
x = x_(:,1); % x-displacement vector
xdot = x_(:,2); % x-dot or velocity vector
my physical problem to solve:

Risposte (1)

William Rose
William Rose il 7 Nov 2023
You have written a system of first order differential equations, but I don't think it describes the system you have drawn and described. I say that becaus ethe system that you have described suggests that the mass is sometimes in contact with the driving plate, and sometimes not. If that is true, then your differential equation should have an "if" statement, or equivalent. (More on that below.)
You say "I want to calculate the driving displacement frequency...". Isn't the frequency of the driving plate a constant? If so, then it will constrain the mass to oscillate at the same frequency. If the frequency of the driving plate is not constant, then what determines the driving plate frequency?
Does the driving plate have a sinusoidal displacement pattern which is independent of the load on it? If yes, then the position of the mass equals the position of the plate when they are in contact. This will be challenging to model, because it implies infinite acceleration when the mass "collides" with the plate and suddenly changes velocity from its "free" velocity to the plate velocity.
Your equation for dx(2)/dt (also known as dv/dt) is
Term 1 on the right side looks like a damping term, where d is the damping coefficient. Is that correct? You did not mention damping in your description. Term 2 on the right side is the force from a spring which produces zero force when x=0. You say "The turning point (x = 0) is NOT the equilibrium state. The spring is pre-loaded." Please explain. Perhaps you are referring to gravity acting on the mass, to pull the mass down from the "zero" position of the spring. But there is no gravity term in your equation for dv/dt. Term 3 is an external forcing term. The units only work out right if A hase units of force. Is that correct? If so, then it means the mass is subjected to an external force, not an externally imposed displacement. Please clarify.
Differential equations with "if" statements are tricky. I have dealt with this problem when modeling the cardiovascular system, which includes one-way valves. (See here for a recent example.) In my experience, the most effective way to deal with the "if" statement is to convert it to a steep but smooth (i.e. differentiable) function that goes from 0 to 1.
  7 Commenti
Joerg Fricke-Schmidt
Joerg Fricke-Schmidt il 9 Nov 2023
Hey William,
thanks a lot for the great update. I was already starting to calculate this in Excel based on your earlier advices. Your new details will help me a lot to go forward. I will update the calculation with the pre-loaded condition. This should impact the motion of the mass below "0" position.
Thanks you very much!

Accedi per commentare.





Community Treasure Hunt

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

Start Hunting!

Translated by