PID Ball Balancer
For my Control Systems Class of Fall 2019, my partner Eric Byers and I were tasked with modeling and simulating a system to achieve realistic control objectives. We settled upon a scenario to balance a ball upon a rail, no matter where the ball is placed on the rail or being disturbed while it is on the rail. To achieve this, a PID controller with lead compensation was tuned using the root locus editor in MATLAB. We were able to achieve this goal on Simulink with a 2.85% undershoot, 1.84 second settling time, 0.225 second peak time, and a steady state error of 0.004 ft, well within our control objective.
Completing the project well within the timeline, we figured it would be fun and interesting to physically build the model. With the use of a 3D printer, Arduino Uno, a servo, and bouncy balls, the Ball Balancer 3000 was born.
While quite rudimentary, the result was extremely satisfying, being my first experience with programming a physical microcontroller.
If I were to tackle another version of the ball balancer, I would incorporate a higher quality servo to achieve more precise movements, leading to a smoother overall motion execution. Additionally, a redesign of the 3D printed housing would be highly desirable for aesthetic purposes.