11 December 2012
My lab partners and I spent the second half of the semester in the WUSTL Systems Engineering Laboratory building a control system to balance a ball on a beam at a specific point. Built in Simulink, the model implements cascaded feedback loops that take an input of the desired ball position and manipulates the motor to move the ball.
The above video demonstrates the system in action. For the input, we read the position of a second ball on the lower beam, which we can manually manipulate. As the lower ball is moved, the system matches its position with the upper ball.
The Simulink Model for the Ball and Beam Control System is available on Github. The system was designed to have zero steady-state error and a .15 second time-to-peak with 5.0% overshoot. The inner loop models the position of the motor, and the outer loop models the position of the ball. A high-pass filter is implemented to minimize noise.