I am currently working in Nonlinear Friction-Induced Vibration of a Slider–Belt System. I have to solve two set of ordinary differential equation. One is separation equation and another one is reattachment equation.
During vibration, it is necessary to check whether the slider separates from the moving belt or remains in contact with it. The condition for staying in separation only depends on the vertical motion of the vibrating mass m, which is given by the following equation: y(t) > 0
.
I have to solve the equations of motion for the mass during separation and the initial conditions for these separation equations are calculated from the equation of motion of reattachment at the last moment in contact. Then, the vertical displacement y(t)
of the mass is monitored at the end of each time step. The condition for reattachment is when y(t)
becomes zero, which means that the mass is vibrating downward back to the original static position.
At this moment, the slider is just touching the moving belt without any contact force. If y(t)
becomes negative at the end of a time step, then the bisection method is used to and the critical point, at which y(t)
is very near zero satisfying the defined tolerance in the MATLAB codes, where the dynamics switches from separation phase to reattachment phase
After reattachment, the equations of motion of this system have to be solved until the condition of separation is satisfied again and the initial conditions are calculated from separation governing equation at the last step before reattachment.
This scenario of switching between contact and separation can be repeated. My code is given below and it is not giving correct results and I am not able reproduce the figure no 10 which is there in the journal paper titled “Nonlinear Friction-Induced Vibration of a Slider–Belt System’’
Function File:
function xdot = Numerical(~,x) global m c1 c2 k1 k2 k3 knl F nu
if( (abs(x(3)) == 0) )
xdot = [x(2); -((k1/m)+(k3/2*m))*x(1)-(c1/m)*x(2)-((-k3/2*m)+((nu*k2)/m))x(3)-((nuknl)/m)*(x(3))^3; x(4); (k3/2*m)*x(1)-((k2/m)+(k3/2*m))*x(3)-(c2/m)x(4)-(knl/m)(x(3))^3-(F/m)]; % Ignoring separation
else
xdot = [x(2); -(c1/m)*x(2)-(k1/m)*x(1)-(k3/2)*x(1); x(3); -(c2/m)*x(4)+(k3/2*m)*x(3)-(k3/2*m)*x(3)-(F/m)]; % Considering separation
end end
Run File:
clc; clear all; global m c1 c2 k1 k2 k3 knl F nu
m = 5; c1 = 0; c2 = 0; k1 = 100; k2 = 50; k3 = 60; knl = 100; F = 80; nu = 0.7;
x0 = [0; 0; -1.5; 0]; % initial condition tspan = [0 100]; % time span
[t,x] = ode45('Numerical',tspan,x0); % Solver
p = x(:,1); % Displacement in x direction
q = x(:,2); % Velocity in x direction
r = x(:,3); % Displacement in y direction
s = x(:,4); % Velocity in y direction plot(t,r);