How can I find equilibrium points in a non linear ODE
33 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello everyone, kinda new to Matlab and trying some excercises. Have some probleme here. I hope someone can help me. #
I have the non linear ODE:
And i want to find the equilibrium points. How do I find them?
3 commentaires
Réponse acceptée
Sam Chak
le 9 Juin 2023
Modifié(e) : Sam Chak
le 9 Juin 2023
Hi @Karl-JR
If you unsure of how to analytically find the equilibrium point for the unforced case, then try look for "how to find the equilibrium point" in the calculus textbooks or online materials. Else, you can also simulate the nonlinear ODE a dozen times for a range of initial values x0. I usually use this method for forced cases (non-zero u).
If the states converge to some steady values after some time t, then you can empirically say that set of values
is the equilibrium point of the system.
% Define the input signal
u = @(x) 0; % unforced
% Define the system dynamics
f = @(t, x) [x(2); x(3); (u(x).^2 - 10*sin(x(3)) - x(2)./(x(2).^2 + 1) - x(1))/3];
% Define the initial conditions
% x0 = [1 0 0]; % test 1
% x0 = [0 1 0]; % test 2
% x0 = [1 1 0]; % test 3
% x0 = [0 0 1]; % test 4
% x0 = [1 0 1]; % test 5
% x0 = [0 1 1]; % test 6
x0 = [1 1 1]; % test 7
% Define the time interval
tspan = [0 300];
% Solve the system using the ode45 solver
[t, x] = ode45(f, tspan, x0);
% Plot the responses of the states
plot(t, x); grid on
xlabel('Time');
ylabel('System states');
legend({'$x$', '$\dot{x}$', '$\ddot{x}$'}, 'interpreter', 'latex', 'fontsize', 14);
% Values of the states at the end of simulation time
x(end, :)
From the responses and the steady-state values, we can intuitively say that the states will eventually converge to zero,
as
.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
