How can I find equilibrium points in a non linear ODE
33 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Sam Chak
2023 年 6 月 9 日
編集済み: Sam Chak
2023 年 6 月 9 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Symbolic Math Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
