- Assign a small initial displacement to match the oscillation amplitude, such as setting y0 = [0.01; 0]
- Adjust the frequency f by reducing it or modifying it as needed to better fit the data, for example, using f = 4.5.
Solution of 2nd order differential equation
8 次查看(过去 30 天)
显示 更早的评论
I am trying to validate the plots of a research paper. But whenever I try to solve I don't get the appropriate plot. There is a difference in the plot. I am providing the equation and the values of different constants. I am also providing the plot which is given in the research paper. Kindly guide me for this.
The Highlighted one is the governing equation.
Plot given in the research paper given below.
I m providing you the code I have tried and the result obtained below.
% Constants
m = 0.89694;
m0 = 0.012992;
c = 0.0689097;
g = 9.81;
F0 = 124.728;
alpha = 54.5841;
e = 0.050;
f = 5;
omega = 2 * pi * f;
t = linspace(0, 100, 100000);
Fm = @(x) F0 ./ (1 + alpha * x).^4;
y0 = [0; 0];
[t, sol] = ode45(@(t, y) model(t, y, m, m0, c, g, Fm, omega, e), t, y0);
x = sol(:, 1);
x_dot = sol(:, 2);
% Plot time-displacement
figure(1);
plot(t, x,'r');
xlabel('Time (s)');
ylabel('Displacement (m)');
title('Time vs Displacement');
grid on;
% Define the differential equation
function dydt = model(t, y, m, m0, c, g, Fm, omega, e)
x = y(1); % Displacement
x_dot = y(2); % Velocity
total_mass = m + m0;
% Acceleration term
x_ddot = (Fm(x) + m0 * e * (omega^2) * sin(omega * t) - c * x_dot - total_mass * g) / total_mass;
dydt = [x_dot; x_ddot]; % Return [velocity; acceleration]
end
12 个评论
VBBV
2024-9-9
@Parthajit the values given show that the graphs are computed using Eq. 32 and not Eq. 31
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!