Skip to content

Commit cf10d95

Browse files
committed
update Google Colab links, Makefile directions
1 parent e4f2710 commit cf10d95

15 files changed

+36
-15
lines changed

doc/examples.rst

+16
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,19 @@ online sources.
6262
simulating_discrete_nonlinear
6363
steering
6464
stochresp
65+
66+
Google Colab Notebooks
67+
======================
68+
69+
A collection of Jupyter notebooks are available on [Google Colab](),
70+
where they can be executed through a web browser:
71+
72+
* [Caltech CDS 110/112 Google Colab
73+
notebooks](https://drive.google.com/drive/folders/1LI2xWVn1kqrZ5lIcM5Ktxr2B7X730cCj?usp=share_link):
74+
Jupyter notebooks created by Richard Murray for CDS 110 (Analysis
75+
and Design of Feedback Systems) and CDS 112 (Optimization-Based
76+
Control) at Caltech.
77+
78+
Note: in order to execute the Jupyter notebooks in this collection,
79+
you will need a Google account that has access to the Google
80+
Colaboratory application.

examples/Makefile

+7-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,15 @@
33
#
44
# This makefile allows cleanup and posting of Jupyter notebooks into
55
# Google Colab.
6+
#
7+
# Files are copied to Google Colab using rclone. In order to copy files to
8+
# Google Colab, you should edit the GDRIVE variable to use the name of the
9+
# drive you have configured in rclone and the path where you want to place
10+
# the files. The default location is set up for the fbsbook.org@gmail.com
11+
# Google Drive account, currently maintained by Richard Murray.
612

713
NOTEBOOKS = cds110-L*_*.ipynb cds112-L*_*.ipynb
8-
GDRIVE= gdrive:projects/python-control/public/notebooks
14+
GDRIVE= fbsbook-gdrive:python-control/public/notebooks
915

1016
# Clean up notebooks to remove output
1117
clean: .ipynb-clean
@@ -21,4 +27,3 @@ clean: .ipynb-clean
2127
# Post Jupyter notebooks on course website
2228
post: .ipynb-clean
2329
rclone copy . $(GDRIVE) --include /cds110-L\*_\*.ipynb
24-
rclone copy . $(GDRIVE) --include /cds112-W\*_\*.ipynb

examples/cds110-L1_servomech-python.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1414
"</center>\n",
1515
"\n",
16-
"[Open in Google Colab](https://colab.research.google.com/drive/1a9ECA-g4Vfi-D3LtbN21xtV9dLzA2RrF)\n",
16+
"[Open in Google Colab](https://colab.research.google.com/drive/1GKRYwtbHWSWc21EIYYIZUnbJqUorhY8w)\n",
1717
"\n",
1818
"In this lecture we show how to model an input/output system and design a controller for the system (using eigenvalue placement). This main intent of this lecture is to introduce the Python Control Systems Toolbox ([python-control](https://python-control.org)) and how it can be used to design a control system.\n",
1919
"\n",

examples/cds110-L2_invpend-dynamics.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1313
"</center>\n",
1414
"\n",
15-
"[Open in Google Colab](https://colab.research.google.com/drive/1rAFZyV5XrLrqTpCJ83ow7QBJBJy8yy3u)\n",
15+
"[Open in Google Colab](https://colab.research.google.com/drive/1is083NiFdHcHX8Hq56oh_AO35nQGO4bh)\n",
1616
"\n",
1717
"In this lecture we investigate the nonlinear dynamics of an inverted pendulum system. More information on this example can be found in [FBS2e](https://fbswiki.org/wiki/index.php?title=FBS), Examples 3.3 and 5.4. This lecture demonstrates how to use [python-control](https://python-control.org) to analyze nonlinear systems, including creating phase plane plots.\n"
1818
]

examples/cds110-L3_lti-systems.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1313
"</center>\n",
1414
"\n",
15-
"[Open in Google Colab](https://colab.research.google.com/drive/1ZJUAOXFR6VXQ9xfba9KT99N4FbEraQMM)\n",
15+
"[Open in Google Colab](https://colab.research.google.com/drive/164yYvB86c2EvEcIHpUPNXCroiN9nnTAa)\n",
1616
"\n",
1717
"In this lecture we describe tools in the Python Control Systems Toolbox ([python-control](https://python-control.org]) that can be used to analyze linear systems, including some of the options available to present the information in different ways.\n"
1818
]

examples/cds110-L4a_predprey-statefbk.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1313
"</center>\n",
1414
"\n",
15-
"[Open in Google Colab](https://colab.research.google.com/drive/1Xi-BErGhxYUkJfx3XD_b3PAAR0eIHV8d)\n",
15+
"[Open in Google Colab](https://colab.research.google.com/drive/1yMOSRNDDNtm-TJGMXX3NS7F4XybOuch-)\n",
1616
"\n",
1717
"In this lecture we describe the use of state space control concepts to analyze and stabilize the dynamics of a nonlinear model of a predator-prey system.\n"
1818
]

examples/cds110-L4b_lqr-tracking.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"<h3>Richard M. Murray and Natalie Bernat, Winter 2024</h3>\n",
1313
"</center>\n",
1414
"\n",
15-
"[Open in Google Colab](https://colab.research.google.com/drive/1hMR9YfmWJZ72r9_eObeA9JKkpTt-jDtM)\n",
15+
"[Open in Google Colab](https://colab.research.google.com/drive/1Q6hXokOO_e3-wl6_ghigpxGJRUrGcHp3)\n",
1616
"\n",
1717
"This example uses a linear system to show how to implement LQR based tracking and some of the tradeoffs between feedfoward and feedback. Integral action is also implemented."
1818
]

examples/cds110-L5_kincar-estimation.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1313
"</center>\n",
1414
"\n",
15-
"[Open in Google Colab](https://colab.research.google.com/drive/1SzTlvNUQIlOyQuNNu-SqQ8cFM3d1r2m-)\n",
15+
"[Open in Google Colab](https://colab.research.google.com/drive/1TESB0NzWS3XBxJa_hdOXMifICbBEDRz8)\n",
1616
"\n",
1717
"In this lecture, we will show how to construct an observer for a system in the presence of noise and distrubances.\n",
1818
"\n",

examples/cds110-L6a_kincar-trajgen.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1414
"</center>\n",
1515
"\n",
16-
"[Open in Google Colab](https://colab.research.google.com/drive/1zDllxX3q--nmElAaCGAuEl0taVNJ-8UF)\n",
16+
"[Open in Google Colab](https://colab.research.google.com/drive/1vBFjCU2W6fSavy8loL0JfgZyO6UC46m3)\n",
1717
"\n",
1818
"This notebook contains an example of using (optimal) trajectory generation for a vehicle steering system. It illustrates different methods of setting up optimal control problems and solving them using python-control."
1919
]

examples/cds110-L6b_kincar-tracking.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1414
"</center>\n",
1515
"\n",
16-
"[Open in Google Colab](https://colab.research.google.com/drive/17ZtYB2wQDl_cS1VaQwo62c8UU05lNAg6)\n",
16+
"[Open in Google Colab](https://colab.research.google.com/drive/12VSFMqM6HVyj8TY_3zb0AnsJrG6UeLKF)\n",
1717
"\n",
1818
"This notebook contains an example of using trajectory tracking for a (nonlinear) state space system. The controller is of the form\n",
1919
"\n",

examples/cds110-L6c_doubleint-rhc.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1414
"</center>\n",
1515
"\n",
16-
"[Open in Google Colab](https://colab.research.google.com/drive/1c_Af8KVRhfyMFOT3WtLALBjEI6A0pTWK)\n",
16+
"[Open in Google Colab](https://colab.research.google.com/drive/1AufRjpbdKcOEoWO5NEiczF3C8Rc4JuTL)\n",
1717
"\n",
1818
"To illustrate the implementation of a receding horizon controller, we consider a linear system corresponding to a double integrator with bounded input:\n",
1919
"\n",

examples/cds110-L7_bode-nyquist.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1414
"</center>\n",
1515
"\n",
16-
"[Open in Google Colab](https://colab.research.google.com/drive/1K4J9ljR4cw9WBjlYQZ2a1cK0XLH6Vhrf)\n",
16+
"[Open in Google Colab](https://colab.research.google.com/drive/1-BIaln1nF41fGqavzliuWT74nBkAnM3x)\n",
1717
"\n",
1818
"The purpose of this lecture is to introduce tools that can be used for frequency domain modeling and analysis of linear systems. It illustrates the use of a variety of frequency domain analysis and plotting tools."
1919
]

examples/cds110-L8a_maglev-limits.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1414
"</center>\n",
1515
"\n",
16-
"[Open in Google Colab](https://colab.research.google.com/drive/16ZYDXSU7aBNcDiWiYrGU3iMCjXvDY2aN)\n",
16+
"[Open in Google Colab](https://colab.research.google.com/drive/1MuDZfw72UkI4_Ji_AsEDTPi7IaSURsYP)\n",
1717
"\n",
1818
"This notebook contains the code used to create the magnetic levitation example in Lecture 8-1 of CDS 110, Winter 2024."
1919
]

examples/cds110-L8b_pvtol-complete-limits.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"<h3>Richard M. Murray, Winter 2024</h4>\n",
1414
"</center>\n",
1515
"\n",
16-
"[Open in Google Colab](https://colab.research.google.com/drive/1ZdY0Xq7k6pOksM6DW1q4iPN6rQ9yeLn7)\n",
16+
"[Open in Google Colab](https://colab.research.google.com/drive/1XulsQqbthMkr3g58OTctIYKYpqirOgns)\n",
1717
"\n",
1818
"The purpose of this lecture is to introduce tools that can be used for frequency domain modeling and analysis of linear systems."
1919
]

examples/cds110-L9_servomech-pid.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"<h3>Richard M. Murray, Winter 2024</h3>\n",
1313
"</center>\n",
1414
"\n",
15-
"[Open in Google Colab](https://colab.research.google.com/drive/1UTFFAQckiPEiGUvmQTAAJLUmoVpXymzz)\n",
15+
"[Open in Google Colab](https://colab.research.google.com/drive/1BP0DFHh94tSxAyQetvOEbBEHKrSoVGQW)\n",
1616
"\n",
1717
"In this lecture we will use a variety of methods to design proportional (P), proportional-integral (PI), and proportional-integral-derivative (PID) controllers for a cart pendulum system."
1818
]

0 commit comments

Comments
 (0)