https://github.com/ccsi-toolset/fixed_bed_adsorption
https://github.com/ccsi-toolset/fixed_bed_adsorption
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ccsi-toolset/fixed_bed_adsorption
- Owner: CCSI-Toolset
- Created: 2022-02-26T02:00:02.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-17T21:11:22.000Z (over 1 year ago)
- Last Synced: 2025-07-11T01:01:57.957Z (11 months ago)
- Language: Jupyter Notebook
- Size: 191 MB
- Stars: 5
- Watchers: 6
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MBDoE and MO analysis for co-current and counter-current RPB
Authors: Jialu Wang, Ryan Hughes, Debangsu Bhattacharrya, Alexander Dowling
## Installation instructions
The following instructions assume you have anaconda installed. We suggest create an environment with the following commands to run code:
### Step 1: create a new environment
- create new environment, called for e.g. `rotary`, with `conda`
`conda create --name rotary python==3.8`
`conda activate rotary`
### Step 2: install `IDAES-PSE`
- this step is necessary for running `homotopy` solve for the model
`pip install idaes-pse`
`idaes get-extensions`
### Step 3: install `Pyomo` from specified branches
- install from the following branch for a modified version of `Pyomo`:
`pip install git+https://github.com/jialuw96/pyomo.git@RPB_MBDOE`
### Step 4: install `jupyter notebook`
- this is needed only for the draw_figure.ipynb notebook
`conda install jupyter notebook`
### Software versions we use for the results
`Python`: 3.8
`IDAES-PSE`: 2.2.0
`Pyomo`: 6.7.0 dev 0
## Code content
### Co-current flow model
- `RPB_model_cocurrent.py`: Co-current flow RPB model provided by Ryan, modified for running `k_aug`
- `Cocurrent_flow_MBDoE.ipynb`: Apply `Pyomo.DoE` to the RPB model with `compute_FIM` and `run_grid_search`. `stochastic_program` is also tried but not debugged
### Counter-current flow model (Results are represented in Jialu's thesis chapter 4)
- `RPB_model_countercurrent_kaug.py`: Conter-current flow RPB model provided by Ryan, modified for running `k_aug`
- `Countercurrent_MBDoE.ipynb`: MBDoE analysis applying `Pyomo.DoE` and `k_aug` to the RPB model with `compute_FIM` and `run_grid_search`. `stochastic_program` is also tried but not debugged
- `Counterflow_MO_data_process.ipynb`: Process the sensitivity data for MO analysis
- `Counterflow_Jacobian_process.ipynb`: Reformulate the data structure for MO analysis
- `countercurrent_MO.py`: Measurement optimization analysis to the RPB model
- `counterflow_finite_difference_analysis.ipynb`: MBDoE analysis to the RPB model with finite difference method, not using `Pyomo.DoE`
- `draw_figure.ipynb`: Generates all results figures in the manuscript
## Results content
### Cocurrent flow model
- `Cocurrent_results/MO_results`: folder, contains the MO results at different budgets. For e.g., Sep17_2000_a means budget=2000, optimized with A-optimality
- `Cocurrent_results/MBDoE_results`: folder, contains the process models ran with different variables. For e.g., Nov25_368_388 means ads.T = 368K, des.T=388K
- `Countercurrent_results/MO_MILP_solution`: folder, contains the MO results at different budgets. For e.g., updated_2000 means budget=2000, optimized with A-optimality
- `Countercurrent_results/MBDoE_results/MBDOE_sens`: folder, contained the process models ran with different variables. For e.g., .Tgin_des_391/Tgin_ads_368 means ads.T = 368K, des.T=391K
## Run Models
Model code and how to run them are provided by Ryan Hughes in `Ryan-Hughes-8/fixed_bed_adsorption` repository:
Co-current flow model: https://github.com/Ryan-Hughes-8/fixed_bed_adsorption
Counter-current flow model: https://github.com/Ryan-Hughes-8/fixed_bed_adsorption/tree/counter-current-configuration
## Run measurement optimization results
The rerun instructions are for counter-current flow model, which is the model we use for the paper / thesis results.
### Step 1: Achieve sensitivity information (Jacobian) and error variance matrix
- Run `Counterflow_MO_data_process.ipynb` to generate all the sensitivity data
### Step 2: Process the data for MO analysis
- Run `Counterflow_Jacobian_process.ipynb` to organize the sensitivity data to .csv files that MO code use
### Step 3: Run MO analysis
- In `Countercurrent_MO.py`, find the toggles in line 17 - 27
- Choose mixed-integer option by `mip_option`
- Choose objective by `objective`
- Choose budget set. It is default to be the budget ranges we use for the paper, from 2000 to 10000
## Run MBDoE analysis
### Run MBDoE with `k_aug`
- `Countercurrent_MBDoE.ipynb`: MBDoE analysis applying `Pyomo.DoE` and `k_aug` to the RPB model with `compute_FIM` and `run_grid_search`
### Run MBDoE with finite difference
- `Counterflow-finite-difference-analysis.ipynb`: MBDoE analysis applying finite difference method to the RPB model. It runs the grid search, and generates the thesis results.
## Reproduce figures
- `draw_figures.ipynb`: include the functions and the path of results to reproduce Fig. 4.2, 4.3, 4.4, 4.5 in the Chapter 4 of Jialu's thesis.