***************************************************************** *** Chapter 6 *** Test Problem 5 *** *** SBA - DSBE - Water -- Gibbs energy minimization(UNIQUAC) ***************************************************************** SETS i components /1*3/ k phases /1*3/ alias(i,j); ***************************************************************** * P = pressure (atm) * T = temperature (K) * liqphase(k) = is phase k a liquid phase? * ntot(i) = number of moles of component i in feed * gform(i,k) = Gibbs energy of formation of component i in phase k * z, q(i), r(i), qp(i), zr(i), zrm, zb(i), za, psi(i) = pure component * and calculated parameters * tau(i,j) = binary interaction parameter (nonsymmetric) PARAMETERS gc, P, T, liqphase(k), gform(i,k), ntot(i), minval, z, q(i), r(i), qp(i), zr(i), zrm, zb(i), za, psi(i), tau(i,j), bina(i,j); gc = 1.98721; P = 1.16996; *T = 363.19909; T = 721.67659; liqphase('1') = 1; liqphase('2') = 1; liqphase('3') = 0; gform('1','1') = -0.3658348; gform('1','2') = -0.3658348; gform('1','3') = 0.0; gform('2','1') = -0.9825555; gform('2','2') = -0.9825555; gform('2','3') = 0.0; gform('3','1') = -0.3663657; gform('3','2') = -0.3663657; gform('3','3') = 0.0; ntot('1') = 40.30707; ntot('2') = 5.14979; ntot('3') = 54.54314; z = 10.0; q('1') = 3.6640; q('2') = 5.1680; q('3') = 1.4000; qp('1') = 4.0643; qp('2') = 5.7409; qp('3') = 1.6741; r('1') = 3.9235; r('2') = 6.0909; r('3') = 0.9200; bina('1','1') = 0.0; bina('1','2') = -193.141; bina('1','3') = 424.025; bina('2','1') = 415.855; bina('2','2') = 0.0; bina('2','3') = 315.312; bina('3','1') = 103.810; bina('3','2') = 3922.5; bina('3','3') = 0.0; tau(i,j) = EXP(-bina(i,j)/T); zr(i) = (z*q(i)/2.0 - 1.0)/r(i); minval = 100.0; LOOP(i, IF( (zr(i) LT minval), minval = zr(i))); zrm = minval; zb(i) = SUM(j$(ord(j) NE ord(i)), zr(j)-zrm); za = zrm + SUM(i,zr(i)-zrm); *psi(i) = qp(i) + r(i)*za; psi(i) = qp(i) + r(i)*(zr(i)+zb(i)); DISPLAY psi, zr, zb, za, tau; *************************************************************************** * gfe = Gibbs free energy * n(i,k) = number of moles of component i in phase k VARIABLES gfe, n(i,k); *************************************************************************** * obj = objective function * molesum(i) = material balance on component i EQUATIONS obj molesum(i); obj.. gfe =e= SUM(k$liqphase(k), SUM(i, n(i,k)*gform(i,k))) +SUM(k$(liqphase(k) eq 0), SUM(i, n(i,k)*(LOG(n(i,k)/SUM(j,n(j,k)))+LOG(P)))) +SUM(k$liqphase(k), SUM(i, n(i,k)*(z*q(i)*LOG(q(i))/2.0-zr(i)*r(i)*LOG(r(i)))) +SUM(i, za*r(i)*n(i,k))*LOG(SUM(j,r(j)*n(j,k))) +SUM(i, zb(i)*r(i)*n(i,k)*LOG(n(i,k))) +SUM(i, -zb(i)*r(i)*n(i,k)*LOG(SUM(j, r(j)*n(j,k)))) +SUM(i, (z/2.0)*q(i)*n(i,k)*LOG(n(i,k))) +SUM(i, -(z/2.0)*q(i)*n(i,k)*LOG(SUM(j, q(j)*n(j,k)))) +SUM(i, qp(i)*n(i,k))*LOG(SUM(j,qp(j)*n(j,k))) +SUM(i, qp(i)*n(i,k)*LOG(n(i,k))) +SUM(i, -qp(i)*n(i,k)*LOG(SUM(j, qp(j)*tau(j,i)*n(j,k)))) ) +SUM(k$liqphase(k), SUM(i, -psi(i)*n(i,k)*LOG(n(i,k)))); molesum(i).. SUM(k, n(i,k)) =e= ntot(i); MODEL gmin / all /; n.lo(i,k) = 0.0000001; n.up(i,k) = ntot(i); n.l('1','1') = 31.459; n.l('1','2') = 0.901998; n.l('2','1') = 3.10348; n.l('2','2') = 0.0000096; n.l('3','1') = 26.1669; n.l('3','2') = 15.0141; SOLVE gmin USING nlp MINIMIZING gfe;