Figure 5.4: Equilibrium points for an inverted pendulum
Jump to navigation
Jump to search
Chapter | Dynamic Behavior |
---|---|
Figure number | 5.4 |
Figure title | Equilibrium points for an inverted pendulum |
GitHub URL | https://github.com/murrayrm/fbs2e-python/blob/main/figure-5.4-invpend phaseplot.py |
Requires | python-control |
Figure 5.4: Equilibrium points for an inverted pendulum. An inverted pendulum is a model for a class of balance systems in which we wish to keep a system upright, such as a rocket (a). Using a simplified model of an inverted pendulum (b), we can develop a phase portrait that shows the dynamics of the system (c). The system has multiple equilibrium points, marked by the solid dots along the x2 = 0 line.
# invepend_phaseplot.py - inverted pendulum phase plots # RMM, 6 Apr 2024 import matplotlib.pyplot as plt import numpy as np from math import pi import control as ct import control.phaseplot as pp import fbs # FBS plotting customizations def invpend_update(t, x, u, params): m, l, b, g = params['m'], params['l'], params['b'], params['g'] return [x[1], -b/m * x[1] + (g * l / m) * np.sin(x[0])] invpend = ct.nlsys( invpend_update, states=2, inputs=0, name='inverted pendulum', params={'m': 1, 'l': 1, 'b': 0.2, 'g': 1}) fbs.figure() ct.phase_plane_plot( invpend, [-2*pi, 2*pi, -2, 2], 4, gridspec=[6, 6], plot_separatrices={'timedata': 20, 'arrows': 4}) fbs.savefig('figure-5.4-invpend_phaseplotf.png')