(rev.s Spring 2025)
This book evolved from a set of course notes from teaching EE447, a 10-week course on mostly classical control in the Department of Electrical and Computer Engineering at the University of Washington. My aim in the course was to enable ECE students (mostly Seniors in the Control and Robotics or Energy Systems concentrations) to master the minimal set of concepts needed to apply classical control design methods to basic control problems and implement a computer based controller.
The strategy is to focus on a minimal set of concepts, and repeated practice of related skills rather than racing through a comprehensive syllabus.
Computing is accomplished with Python 3 and python control.
A basic python script for optimization of PID controllers is provided for numerically driven design. This allows non-traditional aspects of performance such as control effort (addressing actuator saturation) to be factored in. Because of the small dimensionality of the controllers designed in this course, ``brute-force" optimization is employed. The power of today's computers make this attractive and avoids extensive consideration of starting point and local optima. Brute force optimization of PID design parameters is greatly simplified by an initial hand computation.
Problems are provided for active learning. In teaching the course, I spend about 1/2 the contact hours on lecture, and the remainder supporting students while they work on the in-class-problems (``ICPs"). Then traditional homework problems and exams, done by each student individually, solidify the knowledge gained.
Please use branch ``typos'' to fix typos.
The entire contents of this repository ("Book", "Problems", "Software") is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
