Boiler-Turbo Generator System Optimization
Author's Data: Housam BINOUS
Department of Chemical Engineering
National Institute of Applied Sciences and Technology
Tunis, TUNISIA
Email: binoushousam@yahoo.com

The solution provided in this notebook is in agrrement with the values reported by Edgar et al. (2001). The author has solved this problem using GAMS and obtained the following results: 

            VARIABLE   I1                 =   136328.740
            VARIABLE   I2                  =   244000.000
            VARIABLE   HE1                 =   128159.000
            VARIABLE   HE2                 =   143377.000
            VARIABLE   LE1                 =        0.000
            VARIABLE   LE2                 =   100623.000
            VARIABLE   C                   =     8169.740
            VARIABLE   BF1                 =        0.000
            VARIABLE   BF2                 =        0.000
            VARIABLE   HPS                 =   380328.740
            VARIABLE   MPS                 =   271536.000
            VARIABLE   LPS                 =   100623.000
            VARIABLE   P1                  =     6250.000
            VARIABLE   P2                  =     7060.714
            VARIABLE   PP                  =    11239.286
            VARIABLE   EP                  =      760.714. 

GAMS file is available from author upon request. 

Reference:
Edgar, Himmelblau and Lasdon in Optimization of Chemical Processes, McGraw-Hill International Edition, 2001

Off[General::spell1]

cost = 0.00261*HPS + 0.0239*PP + 0.00983*EP;

turbine11 =  P1 ≤ 6250 ;
turbine12 =  P1 ≥ 2500 ;
turbine13 =  I1 ≤ 192000 ;
turbine14 =  C ≤ 62000 ;
turbine15 =  I1 - HE1 ≤ 132000 ;

turbine21 =  P2 ≤ 9000 ;
turbine22 =  P2 ≥ 3000 ;
turbine23 =  I2 ≤ 244000 ;
turbine24 =  LE2 ≤ 142000 ;

matbal1 =  HPS - I1 - I2 - BF1 == 0 ;
matbal2 =  I1 + I2 + BF1 - C - MPS - LPS == 0 ;
matbal3 =  I1 - HE1 - LE1 - C == 0 ;
matbal4 =  I2 - HE2 -LE2 == 0 ;
matbal5 =  HE1 + HE2 + BF1 - BF2 - MPS == 0 ;
matbal6 =  LE1 + LE2 +BF2 - LPS == 0 ;

purchase = EP + PP ≥ 12000 ;

demand1 = MPS ≥ 271536 ;
demand2 = LPS ≥ 100623 ;
demand3 = P1 + P2 + PP ≥ 24550 ;

engbal1 = 1359.8*I1 - 1267.8*HE1 - 1251.4*LE1 - 192*C - 3413*P1 == 0 ;
engbal2 = 1359.8*I2 - 1267.8*HE2 - 1251.4*LE2 -3413*P2 == 0 ;

positv1= I1 > 0;
positv2= I2 > 0;
positv3= HE1 > 0;
positv4= HE2 > 0;
positv5= LE1 ≥ 0;
positv6= LE2 > 0;
positv7= C ≥ 0;
positv8= BF1 ≥ 0;
positv9= BF2 ≥ 0;
positv10= HPS > 0;
positv11= MPS > 0;
positv12= LPS > 0;
positv13= P1 > 0;
positv14= P2 > 0;
positv15= PP > 0;
positv16= EP > 0;

cost

sol=Minimize[cost,{turbine11,turbine12,turbine13,turbine14,turbine15,turbine21,turbine22,turbine23,turbine24,matbal1,matbal2,matbal3,matbal4,matbal5,matbal6,purchase,demand1,demand2,demand3,engbal1,engbal2,positv1,positv2,positv3,positv4,positv5,positv6,positv7,positv8,positv9,positv10,positv11,positv12,positv13,positv14,positv15},{I1,I2,HE1,HE2,LE1,LE2,C,BF1,BF2,HPS,
MPS,LPS,P1,P2,PP,EP}]

cost/.sol[[2]]