Inverted Pendulum Tutorial - Part 4
Below is a JAVA simulation of the cascade inverted pendulum system. You can adjust the simulation parameters by pressing the "Change Parameters" button, which asks for the set point, the noise level and the transfer functions of both controllers (C1 is the outer loop controller and C2 is the inner loop controller). The transfer functions are represented by their coefficients, with the top row being the numerator coefficients and the bottom row the denominator coefficients. This time, set point changes of -0.5m to +0.5m will ensure that the pendulum stays visible on the screen.
The scale of the graph is such that each vertical division represents 0.4m. If the simulation should become unstable, press the "Reset" button. (As a technical note, the noise level is 10 times the peak amplitude of the cart position measurement noise, and 100 times the peak amplitude of the angle measurement noise. This is because the angle measurement is on a smaller scale.)
This cascaded system is much better at controlling the inverted pendulum system. The overshoot/undershoot for this system is around 20%, which is much better than the 600% overshoot/undershoot in previous response. Also, note the much better noise rejection in this system due to the lower bandwidth. This system performs better at a noise level of 1 than the previous system did at a noise level of 0.1 (see for yourself!).
Next, we will examine the use of state feedback control with the use of an observer.