# CBE30338 - Spring 2020 Continuation This is a repository of class materials for for on-line continuation of [CBE 303338 Chemical Process Control](http://jckantor.github.io/CBE30338/) for Spring, 2020. The decision to shift from a traditional in-person course to an on-line course for a distributed audience, caused by the global outbreak of COVID-19, has dictated a shift in teaching methods, materials, and format. The purpose of this repository is to re-organize existing materials materials ([CBE 30338](http://jckantor.github.io/CBE30338/) and [CBE 32338](https://jckantor.github.io/CBE32338/)), add new materials, and make them accessible to students, teaching assistants, an other interested parties. Eventually these materials will be integrated back into existing course repositories. ## Week 0. (March 16 - 22) Preparation. There are no class meetings this week. Please use this week to prepare for the on-line continuation to commence on March 23. Pay attention to the following the following details: * We will be making extensive use of Zoom for office hours, on-classes, and laboratory sessions. Please verify that you can access Zoom by joining the test meeting **with video** at [https://zoom.us/test](https://zoom.us/test). * Please confirm that you have a working installation of the Anaconda distribution of Python. If in doubt, reinstall a fresh download available from [Anaconda.com](https://www.anaconda.com/). **Please let me know immediately if you don't have access to a laptop or you don't have adequate internet connectivity. The University has resources available to assist with these situations.** ## Week 1. (March 23 - 27) Linear Optimization Class meetings begin on week 1. Each of the sessions scheduled below will be done as a Zoom meeting. To protect privacy, the specific Zoom meeting links are available through the course management system. Attendance will be taken for each session marked as required. | Date | Time (EDT) | Activity | Topic | Attendance Req'd? | | :-- | :-- | :------ | :--- | :---: | | 3/23(M) | 1:30-4pm | Office hours | | | 3/24(T) | 11-12:15pm | Class Meeting | Case Study: Thermal Cycling for PCR [[notebook](https://colab.research.google.com/drive/13jKfeyvHW8unSBQWTN_Fp6n0DTJEn1Q4)] [[slides](https://docs.google.com/presentation/d/1NLf1kCBUSg0uxEjTUSPpqtXvUJdSzgWupt7clZVAk0k/edit?usp=sharing)] | :heavy_check_mark:| | 3/26(Th) | 11-12:15pm | Class Meeting | Linear Optimization [[notebook](https://github.com/jckantor/CBE30338/blob/master/notebooks/06.02-Linear-Production-Model.ipynb)] [[slides](https://docs.google.com/presentation/d/1EaDfchk8Qhjl-NovE8CLofdHOu7Qou7pRzFxHs4iAUc/edit?usp=sharing)] | :heavy_check_mark: | | 3/27(F) | 11:30-2pm | Lab Session | Update TCLab Firmware [[instructions](https://github.com/jckantor/CBE30338-Sp2020/blob/master/notebooks/Update-TCLab-Firmware.md)] [[testing](https://github.com/jckantor/CBE30338-Sp2020/blob/master/notebooks/02.00-Testing-your-TCLab.ipynb)] | ## Week 2. (March 30 - April 3) Static Controllability and Discrete Time Models [[how to download notebooks from github](https://notredame.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=9b74ad8d-4dcc-43f6-85ff-ab8f014b338b)] | Date | Time (EDT) | Activity | Topic | Attendance Req'd? | | :-- | :-- | :------ | :--- | :---: | | 3/30(M) | 1:30-4pm | Office hours | | | 3/31(T) | 11-12:15pm | Class Meeting | Linear Programming [[slides](https://docs.google.com/presentation/d/1iBKhN-svpNa--ToTKeZRBmCsQKT3gL8FH2kKrmN1yzI/edit?usp=sharing)] [[linprog example](https://colab.research.google.com/drive/12wZ9691OY8jN5H5FM-hWTMPuCmxw7xDm)] | :heavy_check_mark:| | 4/2(Th) | 11-12:15pm | Class Meeting | Static Control and Operating Envelope [[slides](https://docs.google.com/presentation/d/1OJHFq7SEySG4bHJs43eIf8F7za99ofEiiRVdpOAyZWk/edit?usp=sharing)] [[notebook](https://colab.research.google.com/drive/1BLeoUjkyVwEXNG-W1hGEu5CAyidu6QSY)]| :heavy_check_mark: | | 4/3(F) | 11:30-2pm | Lab Session | Static Controllability [[identification](https://github.com/jckantor/CBE30338-Sp2020/blob/master/notebooks/04.00-Model-Identification.ipynb)] | ## Week 3. (April 6 - April 10) Writing Optimization Models | Date | Time (EDT) | Activity | Topic | Attendance Req'd? | | :-- | :-- | :------ | :--- | :---: | | 4/6(M) | 1:30-4pm | Office hours | | | 4/7(T) | 11-12:15pm | Class Meeting | Open-loop optimization [[slides](https://docs.google.com/presentation/d/1EL_0QSxPVOH_qSkYqLZLV-kZPiUCyXrP-Zw8uDj8IeM/edit?usp=sharing)] [[notebook](https://colab.research.google.com/drive/1GlQtjUaTiMmIdTwuZ5HvfdyL2o_hKrk5)] | :heavy_check_mark:| | 4/9(Th) | 11-12:15pm | Class Meeting | Feedforward Control Prototype [[slides](https://docs.google.com/presentation/d/1YRfomRa8RkKag8GIVD0WFM0MZ4sYFrJdVkUU-onUQXE/edit?usp=sharing)] | :heavy_check_mark: | | 4/10(F) | 11:30-2pm | Lab Session | No meeting (Good Friday) | ## Week 4. (April 13 - April 17) Trajectory Optimization | Date | Time (EDT) | Activity | Topic | Attendance Req'd? | | :-- | :-- | :------ | :--- | :---: | | 4/13(M) | 1:30-4pm | Office hours | | | 4/14(T) | 11-12:15pm | Class Meeting | Integrating Feedforward and Feedback Control [[slides](https://docs.google.com/presentation/d/14ZtjUxRk7U5jBrvEFLSgWcveC0R_6wdPjvHTFoIgDC8/edit?usp=sharing)] [[notebook 1](https://github.com/jckantor/CBE30338-Sp2020/blob/master/notebooks/06.02-TCLab-Threaded-Interface-Version-1.ipynb)] [[notebook 2](https://github.com/jckantor/CBE30338-Sp2020/blob/master/notebooks/06.03-TCLab%20PCR%20UI%20Development.ipynb)] | :heavy_check_mark:| | 4/16(Th) | 11-12:15pm | Class Meeting | Trajectory Tracking [[notebook](https://colab.research.google.com/drive/1C5yDotTadCEZRqo8C6ttdFMhJne-7cu8)] | :heavy_check_mark: | | 4/17(F) | 11:30-2pm | Lab Session | Optimal Control | ## Week 5. (April 20 - April 24) Model Predictive Control | Date | Time (EDT) | Activity | Topic | Attendance Req'd? | | :-- | :-- | :------ | :--- | :---: | | 4/20(M) | 1:30-4pm | Office hours | | | 4/21(T) | 11-12:15pm | Class Meeting | Model Predictive Control [[notebook](https://colab.research.google.com/drive/1Hlv2vJ7l7MuPlkJCVrEXGkVCCpqBD-Ed)] | :heavy_check_mark:| | 4/23(Th) | 11-12:15pm | Class Meeting | Introduction to the Final Project [[instructions](https://github.com/jckantor/CBE30338-Sp2020/blob/master/notebooks/final-project-instructions.md)] | :heavy_check_mark: | | 4/24(F) | 11:30-2pm | Lab Session | Model Predictive Control | ## Week 6. (April 27 - April 29) User Interface | Date | Time (EDT) | Activity | Topic | Attendance Req'd? | | :-- | :-- | :------ | :--- | :---: | | 4/27(M) | 1:30-4pm | Office hours | | | 4/28(T) | 11-12:15pm | Class Meeting | Final Project Q&A | :heavy_check_mark:| ## Week 7. (May 4 - May 8) Final Project The course culminates with the delivery of a final project due at 12:30pm on Friday, May 8th (the end time of the final exam normally scheduled for the course.) There will be regular offices hours this week, and additional hours by appointment. | Date | Time (EDT) | Activity | Topic | Attendance Req'd? | | :-- | :-- | :------ | :--- | :---: | | 5/4(M) | 1:30-4pm | Office hours | | | -- | --- | Office hours by appointment | | 5/9(F) | Noon | Final Project Due | |