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 Electronics & Electromagnetics · Entry S0909

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google