Git Product home page Git Product logo

cbe30338's Introduction

CBE 30338 Chemical Process Control

This repository comprises a collection of Jupyter/Python notebooks in support of CBE 30338 Chemical Process Control, a course taught at the University of Notre Dame. Please note there is a companion site CBE 32338 Process Control Laboratory with additional notebooks demonstrating the practical implementation of these concepts using the Temperature Control Laboratory.

The links below display the notebooks as regular HTML web pages. From there you can run the notebook on Google Colaboratory or download to run on your own laptop. To run on your own laptop you will need to install Jupyter and Python 3, such as the excellent Anaconda distribution from Continuum Analytics.

Please let me know (jeff at nd.edu) if you any thoughts or suggestions on how these notebooks could be improved for teaching and learning the principles of Chemical Process Control.

License Requirements. The materials in this repository are available at https://github.com/jckantor/CBE30338.git for noncommercial use under terms of the Creative Commons Attribution Noncommericial ShareAlike License. You are invited to fork this repository, and to use, adapt, remix these material for non-commericial purposes. The license terms require you to give attribution and share your work under the same terms. Pull requests for corrections and additions to these materials are most welcome.

cbe30338's People

Contributors

franktoffel avatar jckantor avatar jjgerace avatar mcallara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cbe30338's Issues

Some minor issues in 06.08 gasoline blending

Thanks for making this material available, it has helped me a lot in my journey trough operations research and confused me at the same time, mainly because there's a couple of glitches in the code, maybe they are intentional to help a careless student, but if so, I hope that this suggestion is not out of place, it's better to leave a clue around the footer of the text in the form of a comment, the glitches:

  • In google colab you have to actually install the packages for pyomo and glpk it can be easily done in the preamble by adding a comment <!pip install pyomo> <!apt-get install -y -qq glpk-utils>
  • The code for the model constraints in section 6.8.3 reference an undefined set feeds it should be streams this same error is found in sections 6.8.5-7.

Wrong lines

# constraints
m.cons = pyomo.ConstraintList()
for s in S:
    m.cons.add(sum(m.x[s,p] for p in P) <= streams[s]['avail'])
for p in P:
    m.cons.add(sum(m.x[s,p]*(feeds[s]['octane'] -    products[p]['octane'])       for s in S) >= 0)
    m.cons.add(sum(m.x[s,p]*(feeds[s]['RVP']**1.25 - products[p]['RVPmin']**1.25) for s in S) >= 0)
    m.cons.add(sum(m.x[s,p]*(feeds[s]['RVP']**1.25 - products[p]['RVPmax']**1.25) for s in S) <= 0)
    m.cons.add(sum(m.x[s,p]*(feeds[s]['benzene'] -   products[p]['benzene'])      for s in S) <= 0)

Corrected Lines

    m.cons.add(sum(m.x[s,p]*(streams[s]['octane'] -    products[p]['octane'])       for s in S) >= 0)
    m.cons.add(sum(m.x[s,p]*(streams[s]['RVP']**1.25 - products[p]['RVPmin']**1.25) for s in S) >= 0)
    m.cons.add(sum(m.x[s,p]*(streams[s]['RVP']**1.25 - products[p]['RVPmax']**1.25) for s in S) <= 0)
    m.cons.add(sum(m.x[s,p]*(streams[s]['benzene'] -   products[p]['benzene'])      for s in S) <= 0)

Hope this helps.

Since I'm reading this as a novice, please regard this petition, may you send me a concrete representation of the matrix form for this problem, set notation is unclear to me although its advantages for generalization and problem statement, are obvious, it makes it really difficult to formulate a constraint matrix, if my mistake is far worse than it seems could you please reference some texts that help with a concrete formulation in matrix form, thank you <3.

Question regarding - 02.06-Exothermic-CSTR.ipynb

The solver has difficulty with the stiff ODE in the exothermic CSTR example.
The solution is not the same as the textbook solution for 300K, any idea for improvement?

I tried a few options in scipy for solve_ivp, namely "Radau" and "BDF", but didn't solve the issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.