You are looking at the website for a prior offering of this course. Here is the current website:
Contents
- Week 1
- Week 2
- Week 3
- Week 4
- Week 5
- Week 6
- Week 7
- Week 8
- Week 9
- Week 10
- Week 11
- Week 12
- Week 13
- Week 14
- Week 16
Week 1
Day 01 (Monday, January 25)
Day 02 (Wednesday, January 27)
- Video
- Survey to fill out by noon on Thursday, January 28
- Example code (reaction wheel)
Day 03 (Friday, January 29)
- Video
- Survey to fill out by noon on Saturday, January 29
- Example code (platform with reaction wheel)
Week 2
Day 04 (Monday, February 1)
Day 05 (Wednesday, February 3)
Day 06 (Friday, February 5)
- No synchronous lecture - see Campuswire
- Survey to fill out by noon on Saturday, February 6
Week 3
Day 07: State space models (Monday, February 8)
- Video
- Survey to fill out by noon on Tuesday, February 9
- PrairieLearn HW1
- Reference
- Design Project #1 (CMG)
Day 08: State space models for second-order systems (Wednesday, February 10)
- Video
- Survey to fill out by noon on Thursday, February 11
- PrairieLearn HW2
- Reference
Day 09: Linearization (Friday, February 12)
Week 4
Day 10: Matrix exponential (Monday, February 15)
Day 11: Stability - theory (Friday, February 19)
Week 5
Day 12: Stability - practice (Monday, February 22)
- Video
- Survey (Results)
- PrairieLearn HW6
- Example code - there are two notebooks here, one before class and one after class
Day 13: Project - getting started (Wednesday, February 24)
- Video
- Survey (Results)
- Example code - in particular, see this notebook for how to implement PD control
Day 14: Project - working together (Friday, February 26)
- Video
- Survey (Results)
- Example code - in particular, see this notebook for:
- how to implement linear state feedback
- how to choose (or randomize) non-zero initial conditions
- how to take a snapshot of the simulation
- Some old reports for in-class discussion:
- Some old code for in-class discussion:
REPORT 01
REPORT 02
REPORT 03
CODE 01
CODE 02
CODE 03
Week 6
Day 15: Eigenvalue placement (Monday, March 1)
- Video
- Survey (Results)
- Notes (After Class)
- Example code - in particular, see this notebook for an example of how to do eigenvalue placement with scipy.signal.place_poles
- PrairieLearn HW7
Day 16: Second design project - getting started (Wednesday, March 3)
- Video
- Survey (Results)
- Design Project #2 (Differential-drive robot)
- Example code - in particular, see this notebook for a PD controller that keeps the robot upright
Day 17: Ackermann’s method - controllable canonical form (Friday, March 5)
- Video
- Survey (Results)
- Notes (Before Class)
- Notes (After Class)
- Example code
- Supplementary videos on the details of Ackermann’s method:
- PrairieLearn HW8
Week 7
Day 18: Ackermann’s method - implications for controllability (Monday, March 8)
Day 19: Examples of what it means for a system to be controllable (Wednesday, March 10)
- Video
- Survey (Results)
- Example code — in particular, see this notebook for many examples of how to check if a system is controllable
Day 20: How to improve your design projects (Friday, March 12)
- Video
- Survey (Results)
- Form to submit a project revision
- Shared document for collaborative in-class discussion about how to do your own work when collaborating with others
Week 8
Day 21: LQR - scalar example (Monday, March 15)
Day 22: LQR - effect of initial conditions and of weights (Wednesday, March 17)
Day 23: LQR - general statement and example application (Friday, March 19)
Week 9
Day 24: How to avoid self-plagiarism, and what to do if we can only measure part of the state (Monday, March 22)
Day 25: Design project #3 - getting started (Friday, March 26)
- Video
- Survey (Results)
- Design Project #3 (Spacecraft with star tracker)
- Example code - playing around with the third design project
Week 10
Day 26: Finite difference approximation does not work with noisy sensor measurements (Monday, March 29)
Day 27: How to implement an observer (Wednesday, March 31)
- Video
- Survey (Results)
- Example code
- Supplementary videos on the details of observer design and analysis:
Day 28: Observer design and analysis (Friday, April 2)
Week 11
Day 29: More observer design and analysis - the full system, linearization, optimality (Monday, April 5)
Day 30: Nonlinear sensor model (Wednesday, April 7)
Day 31: Optimal observer design (Friday, April 9)
- Video
- Survey (Results)
- Example code
- Notes
- Supplementary videos on the details of optimal observer design:
Week 12
Day 32: Optimal observer implementation, aggregate data collection and analysis (Monday, April 12)
Day 33: Project Q+A, introduction to trajectory tracking (Wednesday, April 14)
Day 34: Preview of fourth design project (Friday, April 16)
Week 13
Day 35: More about fourth design project (Monday, April 19)
Day 36: Tracking (Wednesday, April 21)
- Video
- Survey (Results)
- Example code: tracking with full state feedback
- Example code: tracking with partial state feedback
Day 37: Implementation details of tracking (Friday, April 23)
- Video
- Survey (Results)
- Example code: tracking with full state feedback
- Example code: tracking with partial state feedback