Digital Feedback Control Tutorial with Arduino
What you'll learn
- Students will learn how to implement a digital controller on the Arduino hardware from scratch.
- Students will gain an insight to how discrete-time theory, controls, and practical implementation are connected.
- Students should have SOME exposure to linear systems and signal, digital signal processing, classical control theory, Arduino coding, and basic electronics.
- MUST have had some exposure and understanding of Laplace Transform, Z-Transform, Classical Feedback Control Techniques, and System Modeling.
- If you have never studied these topics, I highly suggest studying them before purchasing this course!
Learn how to implement real-time digital controllers or compensators on the Arduino hardware for feedback control applications!
This short tutorial aims to take the theoretical knowledge of discrete-time systems and controls typically taught in undergraduate and graduate engineering curriculum, and apply them to real life applications of control systems. Often times university courses provide students with projects that end with MATLAB simulations and thus never allow the students to relate them to practice. In this short course, you'll hopefully be able to work your way from the theoretical understanding of sampled-time systems and Z-transforms, all the way to C implementation on the Arduino hardware!
1. Why Digital Control ?
2. Brief Overview of the Z-Transform
3. Discretization of Continuous-Time Controllers (Tustin's Method)
4. Implementation of Discrete-Time Systems on Arduino
5. Digital Controller Design Process (6 Steps)
6. Brushed DC Motor Speed Control: Obtaining the Transfer Function of a 34:1 12V Gearmotor
7. Brushed DC Motor Speed Control: Digital Controller Design
8. Brushed DC Motor Speed Control: Real-Time Implementation on the Arduino
Supplemental Material Included: Laplace and Z-Transform tables, MATLAB scripts/files, Arduino code/script for DC gearmotor speed control demonstration, experiment apparatus schematic, and links to useful information on derivation and analysis.
DISCLAIMER (PLEASE READ BEFORE PURCHASING): This is not an introductory course on digital signal processing, control theory, linear systems and signals, electronics, or Arduino coding. I will not be discussing how controllers are designed theoretically via root locus, frequency-domain analysis, etc.
This is a short video tutorial series for students, engineers, hobbyists, and DIY'er who would like to bridge their knowledge of theoretical discrete-time systems, control theory and Arduino hardware. I will not be covering their foundations in the video lectures as I will assume most of you interested will be coming to the course with some knowledge via university-level engineering educations or online courses. There will be no assignments or quizzes.
Please observe the syllabus and purchase at your own discretion!
Who this course is for:
- The target students are those who ALREADY have exposure to controls, digital signal processing, and Arduino coding and would like to know how they can bridge the gap to theoretically design digital controllers and then practically implement them on the Arduino hardware.
My name is Nabil, I'm an engineer by day and hobbyist by night. I was born in New York, USA but raised in New Jersey my whole life. I hold a BSc and MSc in Electrical Engineering from Rutgers University and currently work as a full-time engineer.
Like many engineering students, I had a hard time understanding the theory and concepts intuitively, but once I was able to make some practical sense of it all, I wanted to share my knowledge with others (students, engineers, makers, DIY'ers).
My courses will mostly be design-based, in areas of: analog design, audio amps, control systems, power supply design and much more!
When I am not working or tinkering, you can find me playing the electric guitar, hitting the gym, or cooking.