
Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
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
1 / 1
This page cannot be seen from the preview
Don't miss anything!
Ap2/
Name(s) Project Number
Project Title
Abstract
Summary Statement
Help Received
Stability Analysis of Control Algorithms
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