A Ball and Plate system is a device that attempts to balance a ball on a plate. It is a well-known feedback control exercise for engineering students, and a fascinating contraption to see in action.
I realized this Ball and Plate control system for my last MSc degree exam, on Dynamic optimization, model predictive control, hybrid systems. I decided to build such an interesting device with LEGO MINDSTORMS: the hardware was quite challenging, in order to get the required precision.
The controller is not the good old PID (Proportional Integrative Derivative), but the Model Predictive Control. I just had to model the friction of the ball on the plate, and synthesize a piece-wise linear explicit controller using the Hybrid Toolbox for MATLAB, developed by professor Alberto Bemporad. A linear Kalman filter is used to estimate the position and velocity fo the ball on the plate.
My Ball and Plate simply regulates the ball position and speed to zero (in the middle of the plate). Future development could address a variable reference tracking, for example to make the ball move in circles.
The ball position is measured using Mindsensors’ NXTcam, and the linear controller is implemented in NXC, making the whole system independent from the PC. The plate is actuated by the NXT servomotors using chains. The non-LEGO parts used in this project are the steel ball, a sheet of black cardboard, and the plexiglass plate.
Check out my Arduino-based Ball on Plate System.