When investigating a given system's trajectories and dynamics it
is often not intuitive how the system generally behaves. Even after
solving the state space and finding the eigenvalues and eigenvectors that
give information about the stability, it is still hard to visualize what
is occurring for a given set of trajectories.
In the special case of second-order systems, a phase portrait is particularly
useful. It plots the system trajectories as contours over a timespan along the X and Y axes
which respectively represent the first and second order of the state space. In the
case of nonlinear systems, phase portraits are particularly useful
because they do no require any linearization or elimination of nonlinear terms.
The phase portraits is able to perfectly capture all of the nonlinear trajectories
and display them in a way that would be otherwise difficult.
The simple pendulum is a great example of a second-order nonlinear system that can
be easily visualized by the phase portrait. The simple pendulum is often linearized using
the small-angle approximation and converted into a linear form of zdot = A*z
where
A
is a matrix of scalars. Instead, the phase portrait method
leaves the simple pendulum state space in its nonlinear form as sin(θ)
.
It is worth noting that the inherent limitation of phase portraits is that they only
applicable in second-order or lower systems. However, it cannot be asserted
enough how effective phase portraits are at giving quick analysis for even
highly-nonlinear systems.
The code below provide phase portraits for various dampened and undampened
simple pendulum scenarios. Notice how the dampened trajectories converge
to a point while the undampened ones form concentric contours, formally known as
limit cycles.
Also, notice how for the larger dampening coefficient, the trajectories converge to a point
much quicker, with fewer rotations around. This reflects our intution that a
pendulum with more friction (a larger dampening coefficient) will come to rest faster.
Similarly, the limit cylces formed
in the undampened figures show that without any friction, the pendulum will continue
to swing around the equilibrium point forever. It is clear why phase portraits
are a powerful tool for analyzing nonlinear systems, read more about
them here.
% Script for Plotting the Phase Portrait of a Nonlinear Pendulum
% init system and states
g = 9.81;
L = 1;
ss = @(t,THETA) [THETA(2); -g./L*sin(THETA(1))];
THETA1 = linspace(-2*pi,2*pi,50);
THETA2 = linspace(-2*pi,2*pi,25);
% Generate Meshgrid for numerically solving
[x,y] = meshgrid(THETA1,THETA2);
size(x)
size(y)
% Establish U and V vectors
u = zeros(size(x));
v = zeros(size(y));
% Init Loop over Vector field to compute Derivatives
t = 0;
for i = 1:numel(x)
Theta_d = ss(t,[x(i); y(i)]);
u(i) = Theta_d(1);
v(i) = Theta_d(2);
Mag = sqrt(u(i)^2+v(i)^2);
%u(i) = u(i)/Mag;
%v(i) = v(i)/Mag;
end
%Plot our vector field
quiver(x,y,u,v,'r'); figure(gcf)
xlabel('${\theta}$','interpreter','latex')
ylabel('$\dot{\theta}$','interpreter','latex')
axis tight equal;
hold on
% Plotting Solutions for Comparison
for THETA_sol = linspace(-4*pi,4*pi,150)
[ts,ys] = ode45(ss,[0,50],[0;THETA_sol]);
plot(ys(:,1),ys(:,2),'b')
plot(-ys(:,1),ys(:,2),'b')
%plot(ys(1,1),ys(1,2),'bo') %start of contour
%plot(ys(end,1),ys(end,2),'ks') %end of contour
end
axis([-5 5 -2*pi 2*pi])
grid on
hold off
% Script for Plotting the Phase Portrait of a Dampened Nonlinear Pendulum
% Change the state space to include "b" dampening coefficient
% init system and states
g = 9.81;
L = 1;
b = 1;
ss = @(t,THETA) [THETA(2); -b.*THETA(2)-g./L*sin(THETA(1))];
THETA1 = linspace(-2*pi,2*pi,50);
THETA2 = linspace(-2*pi,2*pi,25);