CDS 110/ChE 105, Spring 2024: Difference between revisions
(119 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{| | {{Course | ||
| | |Course number=CDS 110 | ||
|Course title=Analysis and Design of Feedback Control Systems | |||
|Year=2024 | |||
| | |Term=Spring | ||
| | |Lecture schedule=MWF, 2-3 pm, 106 Spalding | ||
|Instructors=Richard Murray (CDS/BE), murray@cds.caltech.edu | |||
|Instructor office hours=Wed, 3-4 pm, Annenberg Lounge | |||
|TAs=Natalie Bernat (CMS), Manisha Kapasiawala (BE) | |||
| | |TA office hours=<br> Mon, 3-4 pm, 111 Keck<br> Tue, 4-5 pm, 110 Steele | ||
}} | |||
This course is co-taught with ChE 105 (Dynamics and Control of Chemical Systems). | |||
This is | |||
=== Course Syllabus === | === Course Syllabus === | ||
Line 24: | Line 20: | ||
{| class="mw-collapsible wikitable" width=100% border=1 cellpadding=5 | {| class="mw-collapsible wikitable" width=100% border=1 cellpadding=5 | ||
|- | |- | ||
| | ! width=10% | Date | ||
! Topic | |||
! Reading | |||
| | ! width=20% | Homework | ||
|- valign=top | |- valign=top | ||
| '''Week 1'''<br> | | '''Week 1'''<br> | ||
1 Apr <br> 3 Apr <br> 5 Apr | 1 Apr <br> 3 Apr <br> 5 Apr | ||
| | | '''Introduction and review''' | ||
* Course overview and logistics | * Course overview and logistics | ||
* | * Introduction to feedback and control | ||
* Introduction to python-control | * Introduction to [[http:python-control.org|python-control]] | ||
| FBS2e, | | [[http:fbswiki.org/wiki/index.php/FBS|FBS2e]] 1.1-1.5 (skim), 2.1-2.4 | ||
| HW #1 | * Lecture materials: {{cds110 sp2024 pdf|L1-1_intro-01Apr2024.pdf|Mon}}, {{cds110 sp2024 pdf|L1-2_principles-03Apr2024.pdf|Wed}} | ||
* Notebooks: [https://colab.research.google.com/drive/1EeGcyP6pTGeCNALloq2TqvMJv8Rn-7L- L1-3_servomech-python.ipynb] ({{cds110 sp2024 pdf|L1-3_servomech-python-05Apr2024.pdf|PDF}}) | |||
* [https://simons.berkeley.edu/control-theory Feedback Control Theory video tutorial (Simons Institute)] | |||
| {{cds110 sp2024 pdf|hw1-sp2024.pdf|HW #1}} | |||
* Out: 3 Apr 2024 | |||
* Due: 10 Apr 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw1-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 2'''<br> | | '''Week 2'''<br> | ||
8 Apr* <br> 10 Apr <br> 12 Apr | 8 Apr* <br> 10 Apr <br> 12 Apr | ||
| | | '''Modeling, Stability''' | ||
* | * State space models | ||
* | * Continuous and discrete time systems | ||
* | * Phase portraits and stability | ||
| FBS2e, | | [[http:fbswiki.org/wiki/index.php/FBS|FBS2e]] 3.1-3.2, 4.1, 5.1-5.3 | ||
| HW #2 | * Lecture materials: {{cds110 sp2024 pdf|L2-1_dynamics-08Apr2024.pdf|Mon}}, {{cds110 sp2024 pdf|L2-2_dynamics-10Apr2024.pdf|Wed}} | ||
* Notebooks: [https://colab.research.google.com/drive/15w2lJFuVZCjP9TG-9PraYxOMx5BDAMgq#scrollTo=-MsMb5yfy2qX L2-3_invpend-dynamics-12Apr2024.ipynb] ({{cds110 sp2024 pdf|L2-3_invpend-dynamics-12Apr2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw2-sp2024.pdf|HW #2}} | |||
* Out: 10 Apr 2024 | |||
* Due: 17 Apr 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw2-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 3'''<br> | | '''Week 3'''<br> | ||
15 Apr <br> 17 Apr <br> 19 Apr | 15 Apr <br> 17 Apr <br> 19 Apr | ||
| | | '''Linear Systems''' | ||
* | * Input/output response of LTI systems | ||
* | * Matrix exponential, convolution equation | ||
* | * Linearization around an equilibrium point | ||
| FBS2e, | | FBS2e 6.1-6.4 | ||
| HW #3 | * Lecture materials: {{cds110 sp2024 pdf|L3-1_linsys-15Apr2024.pdf|Mon}}, {{cds110 sp2024 pdf|L3-2_linsys-17Apr2024.pdf|Wed}} | ||
* Notebooks: [https://colab.research.google.com/drive/1ow5YkJ_TIE4nN-DFvgbYy0slAC0daMpa#scrollTo=FDfZkyk1ly0T L3-3_linsys-19Apr2024.ipynb] ({{cds110 sp2024 pdf|L3-3_linsys-19Apr2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw3-sp2024.pdf|HW #3}} | |||
* Out: 17 Apr 2024 | |||
* Due: 24 Apr 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw3-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 4'''<br> | | '''Week 4'''<br> | ||
22 Apr <br> 24 Apr <br> 26 Apr | 22 Apr <br> 24 Apr <br> 26 Apr* | ||
| | | '''State Feedback''' | ||
* | * State feedback and eigenvalue placement | ||
* | * Integral action | ||
* | * Linear quadratic regulators (LQR) | ||
| FBS2e, | | FBS2e 7.2-7.5 | ||
| HW #4 | * Lecture materials: {{cds110 sp2024 pdf|L4-1_statefbk-22Apr2024.pdf|Mon}}, {{cds110 sp2024 pdf|L4-2_statefbk-24Apr2024.pdf|Wed}} | ||
* Notebooks: [https://colab.research.google.com/drive/1Fbf0zk7AKpsEvWi9rnak5Yuf6-kT5meo L4-1_predprey.ipynb], [https://colab.research.google.com/drive/1iROY3_wXCKaKEdNwCGsZ00EqC-AkpVCm L4-3_statefbk.ipynb] ({{cds110 sp2024 pdf|L4-3_statefbk-26Apr2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw4-sp2024.pdf|HW #4}} | |||
* Out: 24 Apr 2024 | |||
* Due: 1 May 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw4-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 5'''<br> | | '''Week 5'''<br> | ||
29 Apr <br> 1 May <br> 3 May | 29 Apr <br> 1 May* <br> 3 May | ||
| | | '''State estimation''' | ||
* Observers, observability | * Observers, observability | ||
* Control using estimated state | * Control using estimated state | ||
* | * Kalman filtering (intro) | ||
| FBS2e, | | FBS2e 8.1-8.4 | ||
| | * Lecture materials: {{cds110 sp2024 pdf|L5-1_estimators-29Apr2024.pdf|Mon}}, {{cds110 sp2024 pdf|L5-2_outputfbk-01May2024.pdf|Wed}} | ||
* Notebooks: [https://colab.research.google.com/drive/1BtNWAUY840s6MgRuzL8I2RuESowkTVOA#scrollTo=tk9GRiKFISSB L5-3_estimation.ipynb] ({{cds110 sp2024 pdf|L5-3_estimation-03May2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw5-sp2024.pdf|HW #5}} | |||
* Out: 2 May 2024 | |||
* Due: 8 May 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw5-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 6'''<br> | | '''Week 6'''<br> | ||
6 May <br> 8 May <br> 10 May | 6 May <br> 8 May <br> 10 May | ||
| Trajectory tracking | | '''Trajectory generation and tracking''' | ||
* Two degree of freedom design | * Two degree of freedom design | ||
* Gain scheduling | * Gain scheduling | ||
| OBC, Ch 2 | * Receding horizon/model predictive control | ||
| HW # | | FBS2e, 7.1, 8.5 <br> OBC, Ch 1, 2.1, 2.2, 4.3 | ||
* Lecture materials: {{cds110 sp2024 pdf|L6-1_trajgen-06May2024.pdf|Mon}}, {{cds110 sp2024 pdf|L6-2_tracking-08May2024.pdf|Wed}}, {{cds110 sp2024 pdf|L6-3_rhc-10May2024.pdf|Fri}} | |||
* Notebooks: | |||
** [https://colab.research.google.com/drive/1VXvfvBvoMTkIdNoRY0k23Lg0CrKejSac L6-1_kincar-trajgen.ipynb] ({{cds110 sp2024 pdf|L6-1_kincar-trajgen-06May2024.pdf|PDF}}) | |||
** [https://colab.research.google.com/drive/1t4c7xCTY3FMFZRE4euME7qadXRZtr5Mv L6-2_kincar-tracking.ipynb] ({{cds110 sp2024 pdf|L6-2_kincar-tracking-08May2024.pdf|PDF}}) | |||
** [https://colab.research.google.com/drive/1gxGImMP92UUmEiRJyZrt0-STucmaSNfM L6-3_doubleint-rhc.ipynb] ({{cds110 sp2024 pdf|L6-3_doubleint-rhc-10May2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw6-sp2024.pdf|HW #6}} | |||
* Out: 9 May 2024 | |||
* Due: 15 May 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw6-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 7'''<br> | | '''Week 7'''<br> | ||
13 May <br> 15 May <br> 17 May | 13 May <br> 15 May <br> 17 May | ||
| Frequency domain analysis | | '''Frequency domain analysis''' | ||
* Bode and Nyquist plots | * Bode and Nyquist plots | ||
* Stability margins | * Stability margins | ||
| FBS2e, | | FBS2e 9.1-9.4, 10.1-10.3 | ||
| HW # | * Lecture materials: {{cds110 sp2024 pdf|L7-1_smallsignal-13May2024.pdf|Mon}}, {{cds110 sp2024 pdf|L7-2_nyquist-15May2024.pdf|Wed}} | ||
* Notebooks: [https://colab.research.google.com/drive/1VzGLqWRIsTrwlUQliYfusy7bTtUx3YhY L7-3_bode_nyquist.ipynb] ({{cds110 sp2024 pdf|L7-3_bode-nyquist-17May2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw7-sp2024.pdf|HW #7}} | |||
* Out: 16 May 2024 | |||
* Due: 22 May 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw7-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 8'''<br> | | '''Week 8'''<br> | ||
20 May <br> 22 May <br> 24 May | 20 May <br> 22 May <br> 24 May* | ||
| Robustness and fundamental tradeoffs | | '''Robustness and fundamental tradeoffs''' | ||
* Sensitivity functions | * Sensitivity functions, performance specifications | ||
* Bode integral formula | * Bode integral formula | ||
| FBS2e, 12-14 | * Limits due to RHP poles/zeros via maximum modulus theory | ||
| HW # | | FBS2e, 12.1-12.3, 13.3, 14.2, 14.4 | ||
* Lecture materials: {{cds110 sp2024 pdf|L8-1_limits-20May2024.pdf|Mon}}, {{cds110 sp2024 pdf|L8-2_limits-22May2024.pdf|Wed}} | |||
* Notebooks: | |||
** [https://colab.research.google.com/drive/1-3rA7qYiAz0CP7Z3-lqgwzZic6k9RPI8 L8-3_maglev-limits.ipynb] ({{cds110 sp2024 pdf|L8-3_maglev-limits.pdf|PDF}}) | |||
** [https://colab.research.google.com/drive/1rLlz-UO7ElfW7oQoV69H0VGj2tMq_w_Y L8-3_pvtol-complete-limits.ipynb] ({{cds110 sp2024 pdf|L8-3_pvtol-complete-limits-24May2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw8-sp2024.pdf|HW #8}} | |||
* Out: 23 May 2024 | |||
* Due: 31 May 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw8-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 9'''<br> | | '''Week 9'''<br> | ||
<s>27 May</s> <br> 29 May* <br> 31 May | <s>27 May</s> <br> 29 May* <br> 31 May <br> 3 Jun | ||
| PID control | | '''PID control''' | ||
* Frequency domain design concepts | * Frequency domain design concepts | ||
* Windup and anti-windup | * Windup and anti-windup | ||
| FBS2e, 11 | | FBS2e, 11.1-11.4 | ||
| HW # | * Lecture materials: {{cds110 sp2024 pdf|L9-1_pid-29May2024.pdf|Wed}}, {{cds110 sp2024 pdf|L9-2_pid-31May2024.pdf|Fri}} | ||
* Notebooks: [https://colab.research.google.com/drive/1H8rrEPeKZ7rm46-NjM0LYttUEbdChR1z L9-3_servomech-pid.ipynb] ({{cds110 sp2024 pdf|L9-3_servomech-pid-03Jun2024.pdf|PDF}}) | |||
| {{cds110 sp2024 pdf|hw9-sp2024.pdf|HW #9}} (Sophomores, Juniors) | |||
* Out: 31 May 2024 | |||
* Due: 7 Jun 2024, 2 pm | |||
* {{cds110 sp2024 pdf|caltech/hw9-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 10'''<br> | | '''Week 10'''<br> | ||
5 Jun <br> 7 Jun | |||
| Final | | '''Final review and applications''' | ||
* Final exam review (Wed) | |||
| | |||
* {{cds110 sp2024 pdf|practice-sp2024.pdf|Practice final}} | |||
* {{cds110 sp2024 pdf|caltech/practice-sp2024_solns.pdf|Solutions}} (Caltech only) | |||
| Final exam (Seniors, Graduate Students) | |||
* 7 Jun (Fri), 2-3 pm | |||
|- valign=top | |||
| '''Finals week (Sophomores, Juniors)'''<br> | |||
| None | | None | ||
| Final (Sophomores, Juniors) | | | ||
| Final exam (Sophomores, Juniors) | |||
* 12 Jun (Wed), 2-3 pm | |||
|} | |} | ||
Line 116: | Line 177: | ||
The final grade will be based on homework sets, a midterm exam, and a final exam: | The final grade will be based on homework sets, a midterm exam, and a final exam: | ||
*''Homework ( | *''Homework (60%):'' Homework sets will be handed out weekly and due on Wednesdays by 2 pm via Gradescope. Each student is allowed up to two extensions of no more than 2 days each over the course of the term. Homework turned in after Friday at 2 pm or after the two extensions are exhausted will receive 50% credit. Python (or MATLAB) code is considered part of your solution and should be printed and turned in with the problem set (whether the problem asks for it or not). | ||
:(Sophomores and juniors only) The lowest score on your homework sets will be dropped. | |||
* ''Final exam ( | * ''Final exam (40%):'' The final exam will be a 1-2 hour, in-class, closed-book exam. | ||
** Seniors and graduate students: the final exam will be on 7 Jun (Fri), 2-4 pm | |||
** Sophomores and juniors: the final exam will be on 12 Jun (Wed), 2-4 pm | |||
=== Collaboration Policy === | === Collaboration Policy === | ||
Collaboration on homework assignments is encouraged. You may consult outside reference materials, other students, the TA, or the instructor, but you cannot consult homework solutions from prior years and you must cite any use of material from outside references. All solutions that are handed in should be written up individually and should reflect your own understanding of the subject matter at the time of writing. MATLAB | Collaboration on homework assignments is encouraged. You may consult outside reference materials, other students, the TA, or the instructor, but you cannot consult homework solutions from prior years and you must cite any use of material from outside references. All solutions that are handed in should be written up individually and should reflect your own understanding of the subject matter at the time of writing. Python (or MATLAB) scripts and plots are considered part of your writeup and should be done individually (you can share ideas, but not code). | ||
No collaboration is allowed on the | ChatGPT and other AI tools may be used in the same manner as a fellow student in the class: you are allowed to consult online tools and use them to understand the topics, but all solutions should be written up individually. You cannot use online tools to generate solutions for coding problems (cutting and pasting from templates or materials handed out in class and editing them as appropriate is OK). | ||
No collaboration is allowed on the final exam. | |||
=== Course Text and References === | === Course Text and References === | ||
The primary course text is | The primary course text is | ||
The following additional references may also be useful: | * <span id="OBC">[FBS2e]</span> K. J. Astrom and Richard M. Murray, [http://fbsbook.org ''Feedback Systems: An Introduction for Scientists and Engineers''], Second Edition. Princeton University Press, 2021. | ||
This book is available via free download. | |||
The following additional references, also available for free, may also be useful: | |||
* A. D. Lewis, ''A Mathematical Approach to Classical Control'', 2003. [ | * [Lew], A. D. Lewis, ''A Mathematical Approach to Classical Control'', 2003. [https://mast.queensu.ca/~andrew/teaching/pdf/332-notes.pdf Online access]. | ||
* | * <span id="OBC">[OBC]</span> R. M. Murray, "Optimization-Based Control", 2023. [https://fbswiki.org/wiki/index.php/Supplement:_Optimization-Based_Control Online access] | ||
* [LST] Richard M. Murray, [https://fbswiki.org/wiki/index.php/Supplement:_Linear_Systems_Theory Feedback Systems: Notes on Linear Systems Theory], 2020. (Updated 30 Oct 2020) | |||
In addition to the books above, the textbooks below may also be useful. They are available in the library (non-reserve), from other students, or you can order them online. | In addition to the books above, the textbooks below may also be useful. They are available in the library (non-reserve), from other students, or you can order them online. |
Latest revision as of 05:00, 10 June 2024
Analysis and Design of Feedback Control Systems | |
Instructors
|
Teaching Assistants
|
This is the course homepage for CDS 110, Spring 2024. This course is co-taught with ChE 105 (Dynamics and Control of Chemical Systems).
Course Syllabus
An introduction to analysis and design of feedback control systems in the time and frequency domain, with an emphasis on state space methods, robustness, and design tradeoffs. Linear input/output systems, including input/output response via convolution, reachability, and observability. State feedback methods, including eigenvalue placement, linear quadratic regulators, and model predictive control. Output feedback including estimators and two-degree of freedom design. Input/output modeling via transfer functions and frequency domain analysis of performance and robustness, including the use of Bode and Nyquist plots. Robustness, tradeoffs and fundamental limits, including the effects of external disturbances and unmodeled dynamics, sensitivity functions, and the Bode integral formula.
Lecture Schedule
Date | Topic | Reading | Homework |
---|---|---|---|
Week 1 1 Apr |
Introduction and review
|
FBS2e 1.1-1.5 (skim), 2.1-2.4
|
HW #1
|
Week 2 8 Apr* |
Modeling, Stability
|
FBS2e 3.1-3.2, 4.1, 5.1-5.3
|
HW #2
|
Week 3 15 Apr |
Linear Systems
|
FBS2e 6.1-6.4
|
HW #3
|
Week 4 22 Apr |
State Feedback
|
FBS2e 7.2-7.5
|
HW #4
|
Week 5 29 Apr |
State estimation
|
FBS2e 8.1-8.4
|
HW #5
|
Week 6 6 May |
Trajectory generation and tracking
|
FBS2e, 7.1, 8.5 OBC, Ch 1, 2.1, 2.2, 4.3 |
HW #6
|
Week 7 13 May |
Frequency domain analysis
|
FBS2e 9.1-9.4, 10.1-10.3
|
HW #7
|
Week 8 20 May |
Robustness and fundamental tradeoffs
|
FBS2e, 12.1-12.3, 13.3, 14.2, 14.4 | HW #8
|
Week 9
|
PID control
|
FBS2e, 11.1-11.4
|
HW #9 (Sophomores, Juniors)
|
Week 10 5 Jun |
Final review and applications
|
|
Final exam (Seniors, Graduate Students)
|
Finals week (Sophomores, Juniors) |
None | Final exam (Sophomores, Juniors)
|
Grading
The final grade will be based on homework sets, a midterm exam, and a final exam:
- Homework (60%): Homework sets will be handed out weekly and due on Wednesdays by 2 pm via Gradescope. Each student is allowed up to two extensions of no more than 2 days each over the course of the term. Homework turned in after Friday at 2 pm or after the two extensions are exhausted will receive 50% credit. Python (or MATLAB) code is considered part of your solution and should be printed and turned in with the problem set (whether the problem asks for it or not).
- (Sophomores and juniors only) The lowest score on your homework sets will be dropped.
- Final exam (40%): The final exam will be a 1-2 hour, in-class, closed-book exam.
- Seniors and graduate students: the final exam will be on 7 Jun (Fri), 2-4 pm
- Sophomores and juniors: the final exam will be on 12 Jun (Wed), 2-4 pm
Collaboration Policy
Collaboration on homework assignments is encouraged. You may consult outside reference materials, other students, the TA, or the instructor, but you cannot consult homework solutions from prior years and you must cite any use of material from outside references. All solutions that are handed in should be written up individually and should reflect your own understanding of the subject matter at the time of writing. Python (or MATLAB) scripts and plots are considered part of your writeup and should be done individually (you can share ideas, but not code).
ChatGPT and other AI tools may be used in the same manner as a fellow student in the class: you are allowed to consult online tools and use them to understand the topics, but all solutions should be written up individually. You cannot use online tools to generate solutions for coding problems (cutting and pasting from templates or materials handed out in class and editing them as appropriate is OK).
No collaboration is allowed on the final exam.
Course Text and References
The primary course text is
- [FBS2e] K. J. Astrom and Richard M. Murray, Feedback Systems: An Introduction for Scientists and Engineers, Second Edition. Princeton University Press, 2021.
This book is available via free download.
The following additional references, also available for free, may also be useful:
- [Lew], A. D. Lewis, A Mathematical Approach to Classical Control, 2003. Online access.
- [OBC] R. M. Murray, "Optimization-Based Control", 2023. Online access
- [LST] Richard M. Murray, Feedback Systems: Notes on Linear Systems Theory, 2020. (Updated 30 Oct 2020)
In addition to the books above, the textbooks below may also be useful. They are available in the library (non-reserve), from other students, or you can order them online.
- B. Friedland, Control System Design: An Introduction to State-Space Methods, McGraw-Hill, 1986.
- G. F. Franklin, J. D. Powell, and A. Emami-Naeni, Feedback Control of Dynamic Systems, Addison-Wesley, 2002.