TomSym Structural Optimization of Process Flowsheets

From TomWiki
Revision as of 09:33, 8 November 2011 by Mbot (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Notice.png

This page is part of the TomSym Manual. See TomSym Manual.

TomSym implementation of GAMS Example (PROCSEL,SEQ=116)

The goal is the profitable production of chemical C, which can be produced from chemical B where B may be the raw material that can be purchased from the external market or an intermediate that is produced from raw material A. There are two alternative paths of producing B from A. A mixed-integer nonlinear formulation is presented to solve the optimal production and capacity expansion problem.

Kocis, G R, and Grossmann, I E, Relaxation Strategy for the Structural Optimization of Process Flow Sheets. Independent Engineering Chemical Research 26, 9 (1987), 1869-1880.

Morari, M, and Grossmann, I E, Eds, Chemical Engineering Optimization Models with GAMS. Computer Aids for Chemical Engineering Corporation, 1991.

Process flowsheet:

A2    +-----+  B2      BP
       +----->|  2  |----->+    |
  A    |      +-----+      |    |  B1    +-----+    C1
  ---->|                   +----+------->|  1  |-------->
       |      +-----+      |             +-----+
       +----->|  3  |----->+
        A3    +-----+  B3

a2: consumption of chemical a in process 2 a3: consumption of chemical a in process 3 b2: production capacity of chemical b in process 2 b3: production capacity of chemical b in process 3 bp: amount of chemical b purchased in external market b1: consumption of chemical b in process 1 c1: production capacity of chemical c in process 1

toms a2 a3 b2 b3 bp b1 c1
posvbls = [a2 a3 b2 b3 bp b1 c1]';

% Variables are positive
cbnd1 = {posvbls >= 0};

% Binary variables, existence of process 1 2 and 3
toms integer y1 y2 y3

eq1 = {c1 == 0.9*b1        % Input-output for process 1
    exp(b2) - 1 ==  a2     % Input-output for process 2
    exp(b3/1.2) - 1 == a3  % Input-output for process 3
    b1 == b2 + b3 + bp     % Mass balance for chemical b
    c1  <= 2*y1            % Logical constraint for process 1
    b2  <= 4*y2            % Logical constraint for process 2
    b3  <= 5*y3};          % Logical constraint for process 3

% total profit in million dollars per year
% sales revenue, fixed investment cost, operating cost and purchases
pr = 11*c1;
pr = pr - 3.5*y1 - y2 - 1.5*y3;
pr = pr - b2 - 1.2*b3;
pr = pr - 1.8*(a2+a3) - 7*bp;

% c1 is less than 1
cbnd2 = {c1 <= 1};

solution = ezsolve(-pr,{cbnd1,cbnd2,eq1});
Problem type appears to be: minlp
Time for symbolic processing: 0.17066 seconds
Starting numeric solver
===== * * * =================================================================== * * *
TOMLAB - TOMLAB Development license  999007. Valid to 2011-12-31
=====================================================================================
Problem: ---  1:                                f_k      -1.923098737768011500
                                              f(x_0)     -0.000000000000000000

Solver: minlpBB.  EXIT=0.  INFORM=0.
Dense Branch and Bound MINLP
Optimal integer solution found

FuncEv   25 GradEv   29 HessEv   23 ConstrEv   28 ConJacEv   27 ConHessEv   23 Iter    9 
CPU time: 0.031200 sec. Elapsed time: 0.031000 sec.