Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Stability Analysis of Control Algorithms for a Balancing Robot, Study notes of Algorithms and Programming

A project summary for the California State Science Fair in 2011. The project analyzes the performance of a small robot that balances on top of a cylinder turned on its side and measures the effect of changing the controller constants. the objectives, methods, materials, results, and conclusions of the project. The project uses Java and C programming languages, an Arduino board, a custom circuit board, a motor controller, a gyro, an accelerometer, and a wheel encoder circuit board.

Typology: Study notes

2021/2022

Uploaded on 05/11/2023

shafi
shafi 🇺🇸

3.9

(9)

221 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CALIFORNIA STATE SCIENCE FAIR
2011 PROJECT SUMMARY
Ap2/11
Name(s) Project Number
Project Title
Abstract
Summary Statement
Help Received
Keegan R. Mann
Stability Analysis of Control Algorithms
S0909
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.
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.
Father helped with wooden test platform

Partial preview of the text

Download Stability Analysis of Control Algorithms for a Balancing Robot and more Study notes Algorithms and Programming in PDF only on Docsity!

CALIFORNIA STATE SCIENCE FAIR

2011 PROJECT SUMMARY

Ap2/

Name(s) Project Number

Project Title

Abstract

Summary Statement

Help Received

Keegan R. Mann

Stability Analysis of Control Algorithms

S

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.

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.

Father helped with wooden test platform