Difference between revisions of "CDS 112/Ae 103a, Winter 2022"
(74 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
* Richard Murray (CDS/BE), murray@cds.caltech.edu | * Richard Murray (CDS/BE), murray@cds.caltech.edu | ||
* Lectures: MWF, 2-3 pm, 213 ANB | * Lectures: MWF, 2-3 pm, 213 ANB | ||
* Office hours: Wed, 3-3:30 pm (at CDS tea) | |||
| width=50% | | | width=50% | | ||
'''Teaching Assistants''' | '''Teaching Assistants''' | ||
* Apurva Badithela (CDS), Ayush Pandey (CDS) | * Apurva Badithela (CDS), Ayush Pandey (CDS) | ||
* Office hours: Fri | * Office hours: Fri 4-4:45 / Mon 3-3:45 in 213 ANB; <br> Fri 4:45-5:15 / Mon 3:45-4:15 via Zoom | ||
|} | |} | ||
Line 37: | Line 38: | ||
* Course introduction and logistics | * Course introduction and logistics | ||
* Overview: control architectures | * Overview: control architectures | ||
* Python Control Systems Library | * [[http:python-control.org|Python Control Systems Library]] | ||
| | | | ||
* OBC, Chapter 1 | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-intro|29Dec2021|Chapter 1}} | ||
* Lecture notes: {{cds112 wi2022 pdf|L1-1_intro-03Jan2022.pdf|Mon}}, {{cds112 wi2022 pdf|L1-2_intro-05Jan2022.pdf|Wed}} | |||
* Jupyter notebook: {{cds112 wi2022 pdf|W1_intro_to_python-control.ipynb}} | |||
* [https://simons.berkeley.edu/control-theory Feedback Control Theory video tutorial (Simons Institute)] | * [https://simons.berkeley.edu/control-theory Feedback Control Theory video tutorial (Simons Institute)] | ||
| {{cds112 | | {{cds112 wi2022 pdf|hw1-wi2022.pdf|HW #1}} <br> | ||
* {{cds112 wi2022 pdf|servomech-python_template.ipynb}} | |||
* {{cds112 wi2022 pdf|diskdrive.py}} | |||
Out: 5 Jan <br> | Out: 5 Jan <br> | ||
Due: 12 Jan <br> | Due: 12 Jan <br> | ||
{{cds112 wi2022 pdf|caltech/hw1-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
Line 53: | Line 58: | ||
* Differential flatness | * Differential flatness | ||
* Implementation in Python | * Implementation in Python | ||
* Gain scheduling | * Gain scheduling | ||
| | | | ||
* OBC, Chapter 2 | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-trajgen|08Jan2022|Chapter 2}} | ||
* Background: FBS2e, Section 8.5 | * Background: FBS2e, Section 8.5 | ||
* Theory: LST, Sections 3.1, 3.2 | * Theory: LST, Sections 3.1, 3.2 | ||
| {{cds112 | * Jupyter notebooks: {{cds112 wi2022 pdf|W2_flatness.ipynb}}, {{cds112 wi2022 pdf|W2_gainsched.ipynb}} | ||
| {{cds112 wi2022 pdf|hw2-wi2022.pdf|HW #2}} <br> | |||
Out: 12 Jan <br> | Out: 12 Jan <br> | ||
Due: 19 Jan <br> | Due: 19 Jan <br> | ||
{{cds112 wi2022 pdf|caltech/hw2-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
Line 68: | Line 74: | ||
| Optimal control | | Optimal control | ||
* Maximum principle | * Maximum principle | ||
* | * <s>Dynamic programming</s> | ||
* Examples and applications | |||
* Implementation in Python | * Implementation in Python | ||
| | | | ||
* OBC, Chapter 3 | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-optimal|19Jan2022|Chapter 3}} | ||
| {{cds112 | * Theory: [http://liberzon.csl.illinois.edu/teaching/cvoc/cvoc.html Liberzon, 2010] | ||
* Jupyter notebooks: {{cds112 wi2022 pdf|W3_optimal.ipynb}}, {{cds112 wi2022 pdf|W3_linquad.ipynb}}, {{cds112 wi2022 pdf|vehicle.py}} | |||
| {{cds112 wi2022 pdf|hw3-wi2022.pdf|HW #3}} <br> | |||
Out: 19 Jan <br> | Out: 19 Jan <br> | ||
Due: 26 Jan <br> | Due: 26 Jan <br> | ||
* {{cds112 wi2022 pdf|pvtol.py}} | |||
{{cds112 wi2022 pdf|caltech/hw3-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
Line 85: | Line 95: | ||
* Incorporating integral feedback | * Incorporating integral feedback | ||
* Implementation in Python | * Implementation in Python | ||
* Dynamic programming | |||
| | | | ||
* OBC, Chapter 3 | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-optimal|19Jan2022|Chapter 3}} | ||
| {{cds112 | * Theory: [http://liberzon.csl.illinois.edu/teaching/cvoc/cvoc.html Liberzon, 2010] | ||
* Jupyter notebooks (Wed): {{cds112 wi2022 pdf|W4_pvtol-lqr.ipynb}}, {{cds112 wi2022 pdf|W4_lqr-tracking.ipynb}}, {{cds112 wi2022 pdf|ctrlutil.py}}, {{cds112 wi2022 pdf|pvtol.py}} | |||
* Jupyter notebooks (Fri): {{cds112 wi2022 pdf|value_iteration_discrete.ipynb}}, {{cds112 wi2022 pdf|transys.py}} | |||
| {{cds112 wi2022 pdf|hw4-wi2022.pdf|HW #4}} <br> | |||
Out: 26 Jan <br> | Out: 26 Jan <br> | ||
Due: 2 Feb <br> | Due: 2 Feb <br> | ||
{{cds112 wi2022 pdf|caltech/hw4-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
Line 101: | Line 115: | ||
* Implementation in Python | * Implementation in Python | ||
| | | | ||
* OBC, Chapter 4 | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-rhc|31Jan2022|Chapter 4}} | ||
| {{cds112 | * Theory: [https://sites.engineering.ucsb.edu/~jbraw/mpc/ Model Predictive Control (2012)] by Rawlings, Mayne, Diehl | ||
* Jupyter notebooks: {{cds112 wi2022 pdf|W5_rhc-doubleint.ipynb}} | |||
* Lecture slides: {{cds112 wi2022 pdf|L5-3_dfan-04Feb2022.pdf|Fri}} | |||
| {{cds112 wi2022 pdf|hw5-wi2022.pdf|HW #5}} <br> | |||
Out: 2 Feb <br> | Out: 2 Feb <br> | ||
Due: 9 Feb <br> | Due: 9 Feb <br> | ||
{{cds112 wi2022 pdf|caltech/hw5-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
Line 117: | Line 134: | ||
* Random processes in the frequency domain | * Random processes in the frequency domain | ||
| | | | ||
* OBC, Chapter 5 | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-stochastic|07Feb2022|Chapter 5}} | ||
| {{cds112 | * Lectures notes: {{cds112 wi2022 pdf|L6-1_re-intro-07Feb2022.pdf|Mon}}, {{cds112 wi2022 pdf|stochastic_notes.pdf|Wed/Fri}} | ||
* Jupyter notebook: {{cds112 wi2022 pdf|W6_stochresp.ipynb}} | |||
| {{cds112 wi2022 pdf|hw6-wi2022.pdf|HW #6}} | |||
* {{cds112 wi2022 pdf|pvtol.py}} (updated) | |||
Out: 9 Feb <br> | Out: 9 Feb <br> | ||
Due: 16 Feb <br> | Due: 16 Feb <br> | ||
{{cds112 wi2022 pdf|caltech/hw6-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
Line 133: | Line 153: | ||
* Implementation in Python | * Implementation in Python | ||
| | | | ||
* OBC, Chapter 6 | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-kalman|13Feb2022|Chapter 6}} | ||
| {{cds112 | * Jupyter notebooks: {{cds112 wi2022 pdf|W7_pvtol.ipynb}}, {{cds112 wi2022 pdf|ctrlutil.py}} (updated), {{cds112 wi2022 pdf|pvtol.py}} (updated), {{cds112 wi2022 pdf|W7_Bayesian_Inference.ipynb}} | ||
| {{cds112 wi2022 pdf|hw7-wi2022.pdf|HW #7}} <br> | |||
Out: 16 Feb <br> | Out: 16 Feb <br> | ||
Due: 23 Feb <br> | Due: 23 Feb <br> | ||
{{cds112 wi2022 pdf|caltech/hw7-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 8'''<br> | | '''Week 8'''<br> | ||
<s>21 Feb</s> <br> 23 Feb | <s>21 Feb</s> <br> 23 Feb <br> 25 Feb | ||
| Sensor fusion | | Sensor fusion | ||
* Discrete-time stochastic systems | * Discrete-time stochastic systems | ||
Line 150: | Line 171: | ||
* Implementation in Python | * Implementation in Python | ||
| | | | ||
* OBC, Chapter | * [[http:fbswiki.org/OBC|OBC]], {{OBC pdf|obc-fusion|23Feb2022|Chapter 8}} | ||
| {{cds112 | * Jupyter notebook: {{cds112 wi2022 pdf|W8_kincar-fusion.ipynb}}, {{cds112 wi2022 pdf|ctrlutil.py}} (updated), {{cds112 wi2022 pdf|vehicle.py}} | ||
| {{cds112 wi2022 pdf|hw8-wi2022.pdf|HW #8}} <br> | |||
Out: 23 Feb <br> | Out: 23 Feb <br> | ||
Due: 2 Mar <br> | Due: 2 Mar <br> | ||
{{cds112 wi2022 pdf|caltech/hw8-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
Line 160: | Line 182: | ||
28 Feb <br> 2 Mar <br> 4 Mar | 28 Feb <br> 2 Mar <br> 4 Mar | ||
| Autonomous systems | | Autonomous systems | ||
* Advanced estimation: information filter, UKF, MHE, particle filter | |||
* Multi-layer control stack for autonomous systems | * Multi-layer control stack for autonomous systems | ||
* Introduction to discrete decision-making | * Introduction to discrete decision-making | ||
Line 165: | Line 188: | ||
* Challenges and open problems | * Challenges and open problems | ||
| | | | ||
* | * Lecture slides: {{cds112 wi2022 pdf|L9-1_kfexts.pdf|Mon}}, {{cds112 wi2022 pdf|L9-2_supervisory-02Mar2022.pdf|Wed}}, {{cds112 wi2022 pdf|L9-3_safety-critical-04Mar2022.pdf|Fri}} | ||
| {{cds112 | * [[http:www.cds.caltech.edu/~murray/courses/cds110/wi07/gro02_infofilter.pdf|Appendix]] from [[http:ses.library.usyd.edu.au/handle/2123/796|Ben Grocholsky's thesis]] on information filter | ||
* Rawlings, Mayne, Diehl: [[http:sites.engineering.ucsb.edu/~jbraw/mpc|Model Predictive Control: Theory, Computation, and Design]] (2nd edition) | |||
* [http://www.cds.caltech.edu/~murray/papers/2012z_wtm12-us.html Synthesis of Control Protocols for Autonomous Systems], N. Wongpiromsarn, U. Topcu and R. M. Murray. ''Unmanned Systems'', 2013 | |||
* [[http:www.youtube.com/watch?v=Wi8Y---ce28|Can We Really Use Machine Learning in Safety Critical Systems? (IPAM talk)]] | |||
| {{cds112 wi2022 pdf|hw9-wi2022.pdf|HW #9}} <br> | |||
Out: 2 Mar <br> | Out: 2 Mar <br> | ||
Due: 9 Mar <br> | Due: 9 Mar <br> | ||
{{cds112 wi2022 pdf|caltech/hw9-wi2022_solns.pdf|Solns}} (Caltech only) | |||
|- valign=top | |- valign=top | ||
| '''Week 10'''<br> | | '''Week 10'''<br> | ||
7 Mar <br> 9 Mar | 7 Mar <br> 9 Mar | ||
| Review for final | | Review for final | ||
| | | | ||
| {{cds112 | | {{cds112 wi2022 pdf|final-wi2022.pdf|Final}} <br> | ||
Out: 9 Mar <br> | Out: 9 Mar <br> | ||
Due: 16 Mar, 5 pm <br> | Due: 16 Mar, 5 pm <br> | ||
<!-- {{cds112 | <!-- {{cds112 wi2022 pdf|caltech/final-wi2022_solns.pdf|Solns}} (Caltech only) --> | ||
|} | |} | ||
Line 190: | Line 217: | ||
:The lowest homework set grade will be dropped when computing your final grade. | :The lowest homework set grade will be dropped when computing your final grade. | ||
* ''Final exam (30%):'' The final exam will be handed out on the last day of class ( | * ''Final exam (30%):'' The final exam will be handed out on the last day of class (9 Mar) and due at the end of finals week. It will be an open book exam and computers will be allowed (though not required). | ||
=== Collaboration Policy === | === Collaboration Policy === | ||
Line 201: | Line 228: | ||
The primary course texts are | The primary course texts are | ||
* [OBC] R. M. Murray, "Optimization-Based Control", 2022. [https://fbswiki.org/wiki/index.php/Supplement:_Optimization-Based_Control Online access] | * <span id="OBC">[OBC]</span> R. M. Murray, "Optimization-Based Control", 2022. [https://fbswiki.org/wiki/index.php/Supplement:_Optimization-Based_Control Online access] | ||
The following additional references may also be useful: | The following additional references may also be useful: |
Latest revision as of 01:29, 12 March 2022
Optimal Control and Estimation | |
Instructors
|
Teaching Assistants
|
This is the course homepage for CDS 112 (and Ae 103a), Winter 2022. This course is intended for undergraduates and graduate students interested in optimization-based methods in control. After completion of the course, students will understand the key principles of state-space based controller design, including optimal estimation and control techniques.
Catalog Description
CDS 112. Optimal Control and Estimation. 9 units (3-0-6): second term. Prerequisites: CDS 110 (or equivalent) and CDS 131. Optimization-based design of control systems, including optimal control and receding horizon control. Introductory random processes and optimal estimation. Kalman filtering and nonlinear filtering methods for autonomous systems.
Ae 103 a. Aerospace Control Systems. 9 units (3-0-6): second term. Prerequisites: CDS 110 (or equivalent), CDS 131 or permission of instructor. Optimization-based design of control systems, including optimal control and receding horizon control. Introductory random processes and optimal estimation. Kalman filtering and nonlinear filtering methods for autonomous systems.
Lecture Schedule
Date | Topic | Reading | Homework |
Week 1 3 Jan |
Introduction and review
|
|
HW #1 Out: 5 Jan |
Week 2 10 Jan |
Two degree of freedom control design
|
|
HW #2 Out: 12 Jan |
Week 3
|
Optimal control
|
|
HW #3 Out: 19 Jan Solns (Caltech only) |
Week 4 24 Jan |
Linear quadratic regulators
|
|
HW #4 Out: 26 Jan |
Week 5 31 Jan |
Receding horizon control
|
|
HW #5 Out: 2 Feb |
Week 6 7 Feb |
Stochastic systems
|
|
HW #6
Out: 9 Feb |
Week 7 14 Feb |
Kalman filtering
|
|
HW #7 Out: 16 Feb |
Week 8
|
Sensor fusion
|
|
HW #8 Out: 23 Feb |
Week 9 28 Feb |
Autonomous systems
|
|
HW #9 Out: 2 Mar |
Week 10 7 Mar |
Review for final | Final Out: 9 Mar |
Grading
The final grade will be based on homework sets and a final exam:
- Homework (70%): Homework sets will be handed out weekly and due on Wednesdays by 2 pm using 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 not be accepted without a note from the health center or the Dean. MATLAB/Python code and SIMULINK/Modelica diagrams are considered part of your solution and should be printed and turned in with the problem set (whether the problem asks for it or not).
- The lowest homework set grade will be dropped when computing your final grade.
- Final exam (30%): The final exam will be handed out on the last day of class (9 Mar) and due at the end of finals week. It will be an open book exam and computers will be allowed (though not required).
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. Any computer code that is used to solve homework problems is considered part of your writeup and should be done individually (you can share ideas, but not code).
No collaboration is allowed on the final exam.
Course Text and References
The primary course texts are
- [OBC] R. M. Murray, "Optimization-Based Control", 2022. Online access
The following additional references may also be useful:
- [FBS2e] K. J. Astrom and Richard M. Murray, Feedback Systems: An Introduction for Scientists and Engineers, Princeton University Press, Second Edition*, 2020.
- [LST] Richard M. Murray, Feedback Systems: Notes on Linear Systems Theory, 2020. (Updated 30 Oct 2020)
Note: the only sources listed here are those that allow free access to online versions. Additional textbooks that are not freely available can be obtained from the library.