# Control Systems

## Reference

* Norman S. Nise, Control Systems Engineering \[[website](https://bcs.wiley.com/he-bcs/Books?action=index\&bcsId=11568\&itemId=1119474221)]
* Katsuhiko Ogata, Modern Control Engineering
* Richard C. Dorf and Robert H. Bishop, Modern Control Systems \[[website](https://www.pearson.com/us/higher-education/program/Dorf-Modern-Control-Systems-13th-Edition/PGM328731.html?tab=resources)]
* Farid Golnaraghi and Benjamin C. Kuo, Automatic Control Systems \[[website](https://www.accessengineeringlibrary.com/content/book/9781259643835)]
* Brian Douglas, The Fundamentals of Control Theory \[[website](https://www.patreon.com/briandouglas)]\[[ebook](https://bit.ly/2XLlAKl)]
* Pao C. Chau, Process Control: A First Course With MATLAB \[[website](https://www.cambridge.org/id/academic/subjects/engineering/chemical-engineering/process-control-first-course-matlab?format=PB)]
* Karl J. Åström and Richard M. Murray, Feedback Systems: An Introduction for Scientists and Engineers \[[website](https://www.cds.caltech.edu/~murray/amwiki/index.php?title=Main_Page)]
* R.V. Dukkipati, Analysis and Design of Control Systems using MATLAB

## Online Book

* [CSA - Your Controls Resource](https://www.controlsystemsacademy.com/)
* [Book: Introduction to Control Systems (Iqbal) - Engineering LibreTexts](https://eng.libretexts.org/Bookshelves/Industrial_and_Systems_Engineering/Book%3A_Introduction_to_Control_Systems_\(Iqbal\)) License: CC-BY-NC
* [Book: Chemical Process Dynamics and Controls (Woolf) - Engineering LibreTexts](https://eng.libretexts.org/Bookshelves/Industrial_and_Systems_Engineering/Book%3A_Chemical_Process_Dynamics_and_Controls_\(Woolf\)) License: CC-BY
* [Linear Physical Systems Analysis](https://lpsa.swarthmore.edu/)

## Interactive Learning

* [Interactive Course for Control Theory](https://icct.riteh.hr/hub/login)
* [Umich Control Tutorials](https://ctms.engin.umich.edu/CTMS/index.php?aux=Home)

## Specific Topics

* [Linear Physical Systems - Erik Cheever](https://lpsa.swarthmore.edu/)
* [Root Locus Overview - Erik Cheever](https://lpsa.swarthmore.edu/Root_Locus/RootLocus.html)

## Control Theory Map

![Control Theory Map](https://static1.squarespace.com/static/5b2d76525cfd790c4a218093/t/5f3845ab3384b2337c3214b9/1597523382325/Control_Map_ver4.png)

## Software

* [Octave Online](https://octave-online.net/)

## Interactive Control Systems Learning

* [ICCT: Interactive course for control theory](https://icct.cafre.unipi.it/home), [ICCT Interactive Course in Jupyter](https://icct.riteh.hr/hub/login)
* [Umich Control Tutorials](https://ctms.engin.umich.edu/CTMS/index.php?aux=Home)

## Online Video Course

* [Brian Douglas Youtube Control System Lectures](https://www.youtube.com/user/ControlLectures/playlists)
  * [Routh Horwitz Criterion](https://www.youtube.com/watch?v=WBCZBOB3LCA\&list=PLUMWjy5jgHK0zTjna57eZX4RoZlJtG3L4)
  * [Root Locus](https://www.youtube.com/playlist?list=PLUMWjy5jgHK3-ca6GP6PL0AgcNGHqn33f)
  * [Bode Plots](https://www.youtube.com/watch?v=_eh1conN6YM\&list=PLUMWjy5jgHK24TCFwngV5MeiruHxt1BQR)
  * [Lead Lag Compensator](https://www.youtube.com/playlist?list=PLUMWjy5jgHK0WzmjRViTYtlSVSE_zP6yR)
  * [PID Control](https://www.youtube.com/watch?v=UR0hOmjaHp0\&list=PLUMWjy5jgHK20UW0yM22HYEUTMJfla7Mb)
  * [Discrete Control](https://www.youtube.com/watch?v=14cMhrp5wlk\&list=PLUMWjy5jgHK0MLv6Ksf-NHi7Ur8NRNU4Z)
* [Steve Brunton Control System Bootcamp](https://www.youtube.com/watch?v=Pi7l8mMjYVE\&list=PLMrJAkhIeNNR20Mz-VpzgfQs5zrYi085m)
* [MATLAB Control System](https://www.youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd)
* [MATLAB Channel: Control System in Practice](https://www.youtube.com/playlist?list=PLn8PRpmsu08pFBqgd_6Bi7msgkWFKL33b)
* [MATLAB Channel: Understanding Control System](https://www.youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd)
* [MATLAB Channel: Understanding PID Control](https://www.youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y)

## Control Learning Videos

* [Christopher Lum - YouTube](https://www.youtube.com/c/ChristopherLum/videos)
* [katkimshow - YouTube](https://www.youtube.com/c/katkimshow/featured)
* [Control Theory in Practice - YouTube](https://www.youtube.com/channel/UCV3CS_ygnzwGzjBXKjVdQIQ)

## Control Theory Interactive

[ICCT](https://icct.cafre.unipi.it/)

* Control Systems Academy - <https://www.controlsystemsacademy.com/>
* CBE30338: <https://jckantor.github.io/CBE30338/>
* Linear Physica l Systems Analysis: <https://lpsa.swarthmore.edu/>
* Python in Education (Institute of Control Theory): <https://tu-dresden.de/ing/elektrotechnik/rst/studium/python-in-der-lehre?set_language=en>\
  [Computational Methods for Control of Infinite-dimensional Systems - Institute for Mathematics and its Applications](https://www.ima.umn.edu/2015-2016/W3.14-18.16#schedule)

## Python Control

* [Python Control Systems Library—Python Control Systems Library dev documentation](https://python-control.readthedocs.io/en/latest/)
* [mpc.pytorch: A fast and differentiable MPC solver for PyTorch](https://locuslab.github.io/mpc.pytorch/)

## Intelligent Control

* [About the Book - DATA DRIVEN SCIENCE & ENGINEERING](https://www.databookuw.com/)
  * [dynamicslab/databook\_matlab: Matlab files with demo code intended as a companion to the book "Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control" by J. Nathan Kutz and Steven L. Brunton https://www.databookuw.com/](https://github.com/dynamicslab/databook_matlab)
  * [dylewsky/Data\_Driven\_Science\_Python\_Demos: IPython notebooks with demo code intended as a companion to the book "Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control" by J. Nathan Kutz and Steven L. Brunton](https://github.com/dylewsky/Data_Driven_Science_Python_Demos)

## Control Systems Online Curriculum

**Level 1:**

1. Math basics:
   1. Algebra 1: <https://www.khanacademy.org/math/algebra> and <https://www.khanacademy.org/math/algebra2>
   2. Trig: <https://www.khanacademy.org/math/trigonometry>
   3. Basic Calculus: <https://www.khanacademy.org/math/ap-calculus-ab> and <https://www.khanacademy.org/math/ap-calculus-bc>
2. Physics Basics:
   1. General Physics: <https://www.khanacademy.org/science/physics>
   2. More "advanced" general physics: <https://www.khanacademy.org/science/ap-physics-1> and <https://www.khanacademy.org/science/ap-physics-2>
3. MATLAB Basics:
   1. <https://ocw.mit.edu/courses/mathematics/18-s997-introduction-to-matlab-programming-fall-2011/index.htm>

**Level 2:**

1. Intermediate Math:
   1. Linear Algebra: <https://www.khanacademy.org/math/linear-algebra>
   2. Differential Equations: <https://www.khanacademy.org/math/differential-equations>
2. Intermediate Physics:
   1. Calculus based Mechanics at the college level: <https://ocw.mit.edu/courses/physics/8-012-physics-i-classical-mechanics-fall-2008/index.htm>
   2. E\&M: <https://ocw.mit.edu/courses/physics/8-02-physics-ii-electricity-and-magnetism-spring-2007/index.htm>
   3. Waves and vibrations: <https://ocw.mit.edu/courses/physics/8-03-physics-iii-spring-2003/index.htm>
3. Intro to Simulink: <https://ctms.engin.umich.edu/CTMS/index.php?example=Introduction&section=SimulinkModeling>

**Level 3:**

1. More rigorous math courses:
   1. Multivariable Calculus: <https://www.khanacademy.org/math/multivariable-calculus>
   2. Higher level linear algebra: <https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm>
   3. Higher level differential equations: <https://ocw.mit.edu/courses/mathematics/18-03-differential-equations-spring-2010/>
2. More rigorous physics:
   1. Mechanics 2: <https://ocw.mit.edu/courses/physics/8-223-classical-mechanics-ii-january-iap-2017/>
   2. Mechanics 3: <https://ocw.mit.edu/courses/physics/8-09-classical-mechanics-iii-fall-2014/>
3. Beginning Engineering:
   1. Electrical:
      1. Circuits: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-002-circuits-and-electronics-spring-2007/>
      2. Signals: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-003-signals-and-systems-fall-2011/>
   2. Mechanical:
      1. Beginning dynamics: <https://ocw.mit.edu/courses/mechanical-engineering/2-003sc-engineering-dynamics-fall-2011/syllabus/>
      2. More Dynamics and intro to control: <https://ocw.mit.edu/courses/mechanical-engineering/2-003j-dynamics-and-control-i-spring-2007/index.htm>

**Level 4:**

1. Helpful Math:
   1. Beginning Stats: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041sc-probabilistic-systems-analysis-and-applied-probability-fall-2013/>
2. Signal Processing:
   1. Signals and systems: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-011-signals-systems-and-inference-spring-2018/syllabus/>
3. Control:
   1. Dynamics and control 2: <https://ocw.mit.edu/courses/mechanical-engineering/2-004-dynamics-and-control-ii-spring-2008/index.htm>
   2. More systems and control: <https://ocw.mit.edu/courses/mechanical-engineering/2-04a-systems-and-controls-spring-2013/index.htm>
   3. Feedback Control: <https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-30-feedback-control-systems-fall-2010/index.htm>
   4. More intro control: <https://www.edx.org/course/introduction-control-system-design-first-mitx-6-302-0x?utm_source=OCW&utm_medium=CHP&utm_campaign=OCW>
   5. More state space intro: <https://www.edx.org/course/introduction-state-space-control-mitx-6-302-1x?utm_source=OCW&utm_medium=CHP&utm_campaign=OCW>
   6. Recommended Resources for this level in addition/ to help with the courses above, these will also help with some of the "higher" level stuff:
      1. katkimshow Intro to control: <https://www.youtube.com/playlist?list=PLmK1EnKxphikZ4mmCz2NccSnHZb7v1wV->
      2. Brian Douglas Control System Lectures: <https://www.youtube.com/playlist?list=PLUMWjy5jgHK3j74Z5Tq6Tso1fSfVWZC8L>
      3. Steve Brunton Control Bootcamp: <https://www.youtube.com/playlist?list=PLMrJAkhIeNNR20Mz-VpzgfQs5zrYi085m>

**Level 5:**

1. Optional Math:
   1. Complex Variable: <https://ocw.mit.edu/courses/mathematics/18-04-complex-variables-with-applications-fall-2003/>
   2. A course designed to help intuition: <https://ocw.mit.edu/courses/mathematics/18-098-street-fighting-mathematics-january-iap-2008/index.htm>
2. More rigorous practice in signals and systems:
   1. Graduate signals processing: <https://ocw.mit.edu/courses/mechanical-engineering/2-161-signal-processing-continuous-and-discrete-fall-2008/lecture-notes/>
3. Control:
   1. Higher level dynamics and control: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-241j-dynamic-systems-and-control-spring-2011/index.htm>
   2. Higher level feedback control: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-302-feedback-systems-spring-2007/calendar/>
   3. Slightly higher level control: <https://ocw.mit.edu/courses/mechanical-engineering/2-14-analysis-and-design-of-feedback-control-systems-spring-2014/index.htm>
   4. Multi-variable control systems: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-245-multivariable-control-systems-spring-2004/index.htm>

**Level 6:**

1. Optional Nonlinear Dynamics:
   1. Chaos: <https://ocw.mit.edu/courses/mathematics/18-353j-nonlinear-dynamics-i-chaos-fall-2012/index.htm>
   2. Continuum: <https://ocw.mit.edu/courses/mathematics/18-354j-nonlinear-dynamics-ii-continuum-systems-spring-2015/>
2. Non-Linear control:
   1. More theory based: <https://web.mit.edu/nsl/www/videos/lectures.html>
   2. More practice based: <https://www.youtube.com/watch?v=9xDZy5mE-3I&list=PLrxYXaxBXgRoqgaBlitaAA_sgVZ8V6Teg> (note, videos in english except introduction)
      1. Resources for these videos: <https://sites.google.com/a/g2.nctu.edu.tw/nonlinear-control-systems-2017-fall/course-materials>

**Level 7:**

1. More advanced, but optional, non-linear dynamics:
   1. Chaos: <https://ocw.mit.edu/courses/mathematics/18-385j-nonlinear-dynamics-and-chaos-fall-2014/index.htm>
   2. Waves: <https://ocw.mit.edu/courses/mechanical-engineering/2-034j-nonlinear-dynamics-and-waves-spring-2007/index.htm>
2. Control:
   1. Sliding mode: <https://www.youtube.com/watch?v=x9WxwM6Ebvo> (Note, this is the only videos or online materials I can find in a course-manner on sliding mode, please suggest more if you find them)
   2. Optimal and Robust control: <https://www.youtube.com/watch?v=z64cXTZKw4I&list=PLMLojHoA_QPmRiPotD_TnfdUkglTexuqm>\\

## Control eBook

* [calcmogul/controls-engineering-in-frc: Controls Engineering in the FIRST Robotics Competition: Graduate-level control theory for high schoolers.](https://github.com/calcmogul/controls-engineering-in-frc) License: CC-BY
* <https://github.com/calcmogul/control-theory-poster>
