#************************************************************* # Test Problem 4 from Chapter 11, section 4.5 # Oil Shale Pyrolysis #************************************************************* OPTION {{ FTOL = 1e-6; OTOL = 1e-6; NLP = "SNOPT"; RANDOMX; }} DECLARATION {{ INDEX {i}; SET CP = |0:9|; # Number of control parameters SET J = |1:2|; # Number of states SET I = |1:5|; # Number of reaction rates XVAR {z2f, # Final Time Value of state 2 w(CP), # Control parameters p # Time scaling }; ZVAR {z(J),u,k(I)}; ISPE {z(J)}; STP z(J) = {1,0}; TIME{0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}; PARA lna(I) = {8.86,24.25,23.67,18.75,20.70}; PARA br(I) = {10215.4,18820.5,17008.9,14190.8,15599.8}; # Variable Bounds LBDS w(CP) = < i E CP | 698.15>; UBDS w(CP) = < i E CP | 748.15>; LBDS z2f = 0; UBDS z2f = 1; LBDS p = 7; UBDS p = 11; }} MODEL {{ MIN: -z2f; dae1: z'(1) =e= -p*k(1)*z(1) - p*k(3)*z(1)*z(2) - p*k(4)*z(1)*z(2) - p*k(5)*z(1)*z(2); dae2: z'(2) =e= p*k(1)*z(1) - p*k(2)*z(2) + p*k(3)*z(1)*z(2); reaction(i E I): k(i) =e= exp[lna(i) - br(i)/u]; control: u =e= interv[i E CP| w(i)] ; endtime[10]: z2f - z(2) =e= 0; }}