$************************************************************* $ Transshipment LP Model for Minimizing the Utility Cost $ in a Heat Exchanger Network $ N. V. Sahinidis and I. E. Grossmann $ $ CACHE Process Design Case Studies $ M. Morari and I.E. Grossmann $ $ Optimal solution: 570000 $************************************************************* DECLARATION {{ INDEX {i,j,s,w,k,l}; SET I = |1:4|; #hot process SET J = |1:2|; #cold process SET S = |1:3|; #hot util SET W = |1|; #cold util SET K = |1:6|; #interval sets SET L = |1:7|; #interval sets PARA cs(S) = {120, 90, 70}; #hot utility costs PARA cw(W) = {15}; #cold utility costs #hot process loads PARA hpload(I,K) = {2000, 1800, 1000, 800, 0, 0, 0, 3600, 2000, 2000, 2000, 2000, 0, 0, 0, 3500, 3500, 3500, 0, 0, 0, 0, 0, 4700}; #cold process loads PARA cpload(J,K) = {3000, 4500, 2500, 2500, 2500, 0, 0, 0, 0, 0, 9000, 9000}; PARA maxhu(S) = {100000, 1000, 500}; #max hot utility PARA maxcu(W) = {100000}; #max cold utility PARA qhpsum(I) = > >; PARA qcpsum(J) = > >; XVAR {rp(I,L), ru(S,L), rtot(L), qhpcp(I,J,K), qhpcu(I,W,K), qhucp(S,J,K), qhpcptot(I,J), qhpcutot(I,W), qhucptot(S,J), huload(S,K), cuload(W,K)}; POSI {rp(I,L), ru(S,L), rtot(L), qhpcp(I,J,K), qhpcu(I,W,K), qhucp(S,J,K), qhpcptot(I,J), qhpcutot(I,W), qhucptot(S,J), huload(S,K), cuload(W,K)}; UBDS rtot(L) = {0,-,-,-,-,-,0}; UBDS qhpcptot(I,J) = >; UBDS qhpcutot(I,W) = >; UBDS qhucptot(S,J) = >; LBDS qhpcptot(I,J) = >; LBDS qhpcutot(I,W) = >; LBDS qhucptot(S,J) = >; #max hot utility UBDS huload(S,K) = {100000, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 500, 0}; #max cold utility UBDS cuload(W,K) = { 0, 0, 0, 0, 0, 100000}; }} MODEL {{ MIN: <>) >> + <>) >>; hpr(i E I,k E K): rp(i,k+1) - rp(i,k) + <> + << w E W| qhpcu(i,w,k) >> =e= hpload(i,k); hur(s E S, k E K): ru(s,k+1) - ru(s,k) + <> =e= huload(s,k); cpr(j E J, k E K): <> + <> =e= cpload(j,k); cur(w E W, k E K): <> =e= cuload(w,k); res(l E L): rtot(l) =e= <> + << s E S| ru(s,l) >>; qpp(i E I, j E J): qhpcptot(i,j) =e= << k E K| qhpcp(i,j,k) >>; qpu(i E I, w E W): qhpcutot(i,w) =e= << k E K| qhpcu(i,w,k) >>; qup(s E S, j E J): qhucptot(s,j) =e= << k E K| qhucp(s,j,k) >>; qbd: qhpcptot(1,1) =e= 0; }}