Stability Analysis of Control Algorithms
CSEF · 2011 Electronics & Electromagnetics Fourth Award
Overview
Objectives/Goals Both a robotics project and an experiment comparing the effectiveness and tuning process of different control algorithms, I investigated a system in which a robot balances on a rolling cylinder turned on its side. Control algorithms like the ones I have tested are used in everything from household heaters to high performance aircraft and are becoming ever more important as precise positioning and control is necessary in field such as robotics. Methods/Materials Before starting, I wrote a program in Java which simulates the system and the algorithms involved in stabilizing it. This program served as a starting point illustrating that the control algorithms work. To run the controller code onboard the robot, I used an Arduino board based off an ATMEGA328. This microcontroller board was programed in C. It sends data to a computer which analyzes and plots the data using custom data capture software written in Java. I created a custom circuit board which contains a motor controller I designed centered around the L298 IC and the sockets for plugging in the Gyro and Accelerometer boards which are used to sense rotation. I also designed and soldered a wheel encoder circuit board. With the robot placed on the test platform, I performed a frequency sweep and took the average angle error as a measure of stability. I also analyzed the effects of changing control constants on the performance of the robot, and analyzed the result when the robot faces a step change in its setpoint. Results The gyro and accelerometer didn#t output acceptable data on their own and must be combined in order to arrive at an accurate angle reading. As expected, the frequency response curve was upward sloping for higher frequencies, but it was interesting to note that the cure initially decreased. Being able to see the output of the system graphically was essential to tuning the gains in the control loop and detecting problems in software. Conclusions/Discussion A PID can be used to solve a wide range of control systems, but must be tuned carefully for good results. For more complex systems, a cascaded PID can be used, but the increased complexity makes the system much more difficult to debug and tune. In my case, integral windup was a serious problem. In the future, I may want to investigate methods to mitigate this such as setting limits or using a floating average.
Summary statement
In my project, I analyzed the performance of a small robot which balances on top of a cylinder turned on its side and measured the effect of changing the controller constants.
Help received
Father helped with wooden test platform
Awards (1)
Competition history
- CSEF 2011
Resources
Related projects
CSEF · 2018
PID Controlled Ball Balancing System
CSEF · 2013
Cruise Control
CSEF · 2011
Mission Control: Programming for Optimal Error Reduction in Line-Following Applications
ISEF · 2014
Mobile Inverted Pendulum Testing Platform
ISEF · 2019
Implementation of Basic Machine Learning and Iterative Algorithms into a Self-Tuning PID System
CSEF · 2014
Control of a Free Swinging Pendulum by the Force Created by Rotor Inertia
CSEF · 2008
An Investigation into the Optimization of Control Systems
CSEF · 2013
The Effect of Control Mechanisms on the Stability of an Electronically Reproduced Meissner Effect Levitation System
Closest projects by meaning, across every fair and year in the corpus.
Browse more like this
Source: California Science & Engineering Fair public projects