Difference between revisions of "Supplement: Optimization-Based Control"

From FBSwiki
Jump to navigation Jump to search
 
(39 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
<font size="+1">[[User:Murray|Richard M. Murray]]</font>
 
<font size="+1">[[User:Murray|Richard M. Murray]]</font>
  
These notes serve as a supplement to ''Feedback Systems'' by {{Astrom}} and Murray and expand on some of the topics introduced there.  Our focus is on the use of optimization-based methods for control, including optimal control theory, receding horizon control and Kalman filtering.  Each chapter is intended to be a standalone reference for advanced topics that are introduced in ''Feedback Systems''.
+
These notes serve as a supplement to ''Feedback Systems'' by {{Astrom}} and Murray and expand on some of the topics introduced there.  Our focus is on the use of optimization-based methods for control, including optimal control theory, receding horizon control, and Kalman filtering.  Each chapter is intended to be a standalone reference for advanced topics that are introduced in ''Feedback Systems''.
  
'''Note:''' These notes are in draft form and may contain errors.  Permission is granted to download and print a copy for individual use, but this material may not be reproduced, in whole or in part, without written consent from the author.
+
'''Note:''' Permission is granted to download and print a copy for individual use, but this material may not be reproduced, in whole or in part, without written consent from the author.
  
 
===== News ([[OBC: Archived news|archive]]) =====
 
===== News ([[OBC: Archived news|archive]]) =====
* 21 Dec 2021: added new Chapter 1 (introduction) and starting to post updates for v2.2
+
* 12 Mar 2023: new version (2.3h) is now complete and posted
* 15 Feb 2010: updated version of Chapter 4 (stochastic systems) is posted; multiple fixes + some new material
+
* Jan-Feb 2023: updated versions of Chapters 2-7 (version 2.3x) posted roughly every week
* 3 Jan 2010: posted updated version of Chapters 1 and 2 (mainly small fixes) + working errata link
+
* 31 Dec 2022: posted Jupyter notebooks for Chapter 1 (intro to python-control)
* 22 Dec 2009: updated versions of all chapters posted; working through small fixes over the next few weeks
+
* 29 Dec 2022: added new Chapter 1 (introduction) and starting to post updates for v2.3
* 22 Dec 2009: updated supplement main page to a new format
 
 
<p>
 
<p>
  
Line 18: Line 17:
 
|- valign=top
 
|- valign=top
 
| width=50% |
 
| width=50% |
* {{OBC pdf|Contents and Preface|obc-frontmatter|21Dec2021}}
+
* {{OBC pdf|Contents and Preface|obc-frontmatter|20Feb2023}}
* {{OBC pdf|Ch 1 - Introduction|obc-intro|21Dec2021}}
+
* {{OBC pdf|Ch 1 - Introduction|obc-intro|03Jan2023}}
 
** System and Control Design
 
** System and Control Design
 
** The Control System “Standard Model”
 
** The Control System “Standard Model”
 
** Layered Control Systems
 
** Layered Control Systems
** The Python Control Systems Library (python-control)
+
** The Python Control Systems Library (python-control): {{OBC notebook|intro-iosys}}, {{OBC notebook|intro-xferfcn}}
* {{OBC pdf|Ch 2 - Trajectory Generation and Tracking|obc-trajgen|03Jan10}}
+
** Exercises: {{OBC exercise|servomech-python_template.ipynb}}, {{OBC exercise|servomech.py}}
 +
* {{OBC pdf|Ch 2 - Trajectory Generation and Tracking|obc-trajgen|08Jan2023}}
 
** Two Degree of Freedom Design
 
** Two Degree of Freedom Design
 
** Trajectory Tracking and Gain Scheduling
 
** Trajectory Tracking and Gain Scheduling
 
** Trajectory Generation and Differential Flatness
 
** Trajectory Generation and Differential Flatness
* {{OBC pdf|Ch 3 - Optimal Control|obc-optimal|27Oct18}}
+
** Implementation in Python: {{OBC notebook|trajgen-gainsched}}, {{OBC notebook|trajgen-flatness}}
 +
** Other Methods for Generating Trajectories
 +
* {{OBC pdf|Ch 3 - Optimal Control|obc-optimal|14Jan2023}}
 
** Review: Optimization
 
** Review: Optimization
 
** Optimal Control of Systems
 
** Optimal Control of Systems
 
** Examples
 
** Examples
** Linear Quadratic Regulators
+
** Implementation in Python: {{OBC notebook|optimal-kincar}}, {{OBC python|kincar.py}}
 +
** Linear Quadratic Regulators: {{OBC notebook|optimal-linquad}}, {{OBC notebook|optimal-pvtol-lqr}}, {{OBC python|pvtol.py}}
 
** Choosing LQR Weights
 
** Choosing LQR Weights
** Advanced Topics
+
** Advanced Topics: {{OBC notebook|optimal-lqr-tracking}}
* {{OBC pdf|Ch 4 - Receding Horizon Control|obc-rhc|22Dec09}}
+
* {{OBC pdf|Ch 4 - Receding Horizon Control|obc-rhc|28Jan2023}}
 
** Optimization-Based Control
 
** Optimization-Based Control
** Receding Horizon Control with CLF Terminal Cost
+
** Receding Horizon Control with Terminal Cost
 +
** Implementation in Python: {{OBC notebook|rhc-doubleint}}
 
** Receding Horizon Control Using Differential Flatness
 
** Receding Horizon Control Using Differential Flatness
 +
** Choosing Cost Functions
 
** Implementation on the Caltech Ducted Fan
 
** Implementation on the Caltech Ducted Fan
 
| width=50% |
 
| width=50% |
* {{OBC pdf|Ch 5 - Stochastic Systems|obc-stochastic|15Feb10}}
+
* {{OBC pdf|Ch 5 - Stochastic Systems|obc-stochastic|05Feb2023}}
** Review of Random Variables
+
** Brief Review of Random Variables
 
** Introduction to Random Processes
 
** Introduction to Random Processes
 
** Continuous-Time, Vector-Valued Random Processes
 
** Continuous-Time, Vector-Valued Random Processes
** Linear Stochastic Systems
+
** Linear Stochastic Systems with Gaussian Noise
 
** Random Processes in the Frequency Domain
 
** Random Processes in the Frequency Domain
* {{OBC pdf|Ch 6 - Kalman Filtering|obc-kalman|22Dec09}}
+
** Implementation in Python: {{OBC notebook|stochastic-linsys}}
 +
* {{OBC pdf|Ch 6 - Kalman Filtering|obc-kalman|20Feb2023}}
 
** Linear Quadratic Estimators
 
** Linear Quadratic Estimators
 
** Extensions of the Kalman Filter
 
** Extensions of the Kalman Filter
 
** LQG Control
 
** LQG Control
 +
** Implementation in Python: {{OBC notebook|kalman-pvtol}}, {{OBC python|pvtol.py}}
 
** Application to a Vectored Thrust Aircraft
 
** Application to a Vectored Thrust Aircraft
* {{OBC pdf|Ch 7 - Sensor Fusion|obc-fusion|22Dec09}}
+
* {{OBC pdf|Ch 7 - Sensor Fusion|obc-fusion|12Mar2023}}
 
** Discrete-Time Stochastic Systems
 
** Discrete-Time Stochastic Systems
 
** Kalman Filters in Discrete Time
 
** Kalman Filters in Discrete Time
 
** Predictor-Corrector Form
 
** Predictor-Corrector Form
 
** Sensor Fusion
 
** Sensor Fusion
** Information Filters
+
** Implementation in Python: {{OBC notebook|fusion-kincar}}, {{OBC python|kincar.py}}, {{OBC notebook|fusion-mhe-pvtol}}, {{OBC python|pvtol.py}}
 
** Additional Topics
 
** Additional Topics
* {{OBC pdf|Bibliography and Index|obc-backmatter|15Feb10}}
+
* {{OBC pdf|Bibliography and Index|obc-backmatter|20Feb2023}}
 
|}
 
|}

Latest revision as of 23:47, 12 March 2023

Quick Links

Richard M. Murray

These notes serve as a supplement to Feedback Systems by Åström and Murray and expand on some of the topics introduced there. Our focus is on the use of optimization-based methods for control, including optimal control theory, receding horizon control, and Kalman filtering. Each chapter is intended to be a standalone reference for advanced topics that are introduced in Feedback Systems.

Note: Permission is granted to download and print a copy for individual use, but this material may not be reproduced, in whole or in part, without written consent from the author.

News (archive)
  • 12 Mar 2023: new version (2.3h) is now complete and posted
  • Jan-Feb 2023: updated versions of Chapters 2-7 (version 2.3x) posted roughly every week
  • 31 Dec 2022: posted Jupyter notebooks for Chapter 1 (intro to python-control)
  • 29 Dec 2022: added new Chapter 1 (introduction) and starting to post updates for v2.3

Contents