Description
Determine the reaction coefficients in the thermal isometrization of alpha-pinene. This model is from the COPS benchmarking suite. See http://www-unix.mcs.anl.gov/~more/cops/. The number of discretization points can be specified using the command line parameter --nh. COPS performance tests have been reported for nh = 25, 50, 100, 200
Large Model of Type : NLP
Category : GAMS Model library
Main file : pinene.gms includes : copspart.inc
$title Isometrization of alpha-pinene COPS 2.0 #5 (PINENE,SEQ=233)
$onText
Determine the reaction coefficients in the thermal isometrization of
alpha-pinene.
This model is from the COPS benchmarking suite.
See http://www-unix.mcs.anl.gov/~more/cops/.
The number of discretization points can be specified using the command
line parameter --nh. COPS performance tests have been reported for nh
= 25, 50, 100, 200
Dolan, E D, and More, J J, Benchmarking Optimization
Software with COPS. Tech. rep., Mathematics and Computer
Science Division, 2000.
Box, G E P, Hunter, W G, MacGregor, J F, and Erjavec, J,
Some Problems Associated with the Analysis of
Multiresponse Data. Technometrics 15 (1973), 33-51.
Tjoa, I B, and Biegler, L T, Simultaneous Solution and
Optimization Strategies for Parameter Estimation of
Differential-Algebraic Equations Systems. Ind. Eng.
Chem. Res. 30 (1991), 376-385.
Averick, B M, Carter, R G, More, J J, and Xue, G L,
The MINPACK-2 Test Problem Collection. Tech. rep.,
Mathematics and Computer Science Division,
Argonne National Laboratory, 1992.
Ascher, U M, Mattheij, R M M, and Russell, R D,
Numerical Solution of Boundary Value Problems
for Ordinary Differential Equations. SIAM, 1995.
Keywords: nonlinear programming, chemical engineering, thermal isometrization,
chemical kinetics, reaction rate coefficient
$offText
$if not set nh $set nh 50
Set
ne 'differential equations' / ne1*ne5 /
np 'ODE parameters' / np1*np5 /
nc 'collocation points' / nc1*nc3 /
nh 'partition intervals' / nh1*nh%nh% /
nm 'measurements' / 1*8 /;
Parameter
bc(ne) 'ODE initial conditions' / ne1 100, (ne2*ne5) 0 /
tau(nm) 'times at which observations made' / 1 1230.0, 2 3060.0
3 4920.0, 4 7800.0
5 10680.0, 6 15030.0
7 22620.0, 8 36420.0 /;
Table z(nm,ne) 'observation'
ne1 ne2 ne3 ne4 ne5
1 88.35 7.3 2.3 0.4 1.75
2 76.4 15.6 4.5 0.7 2.8
3 65.1 23.1 5.3 1.1 5.8
4 50.4 32.9 6.0 1.5 9.3
5 37.5 42.7 6.0 1.9 12.0
6 25.9 49.1 5.9 2.2 17.0
7 14.0 57.4 5.1 2.6 21.0
8 4.5 63.1 3.8 2.9 25.7 ;
$batInclude copspart.inc nc3 8
Positive Variable theta(np) 'ODE parameters';
Equation
collocation_eqn1(nh,nc)
collocation_eqn2(nh,nc)
collocation_eqn3(nh,nc)
collocation_eqn4(nh,nc)
collocation_eqn5(nh,nc);
collocation_eqn1(i,j).. Duc[i,j,'ne1'] =e= - (theta['np1'] + theta['np2'])*uc[i,j,'ne1'];
collocation_eqn2(i,j).. Duc[i,j,'ne2'] =e= theta['np1']*uc[i,j,'ne1'];
collocation_eqn3(i,j).. Duc[i,j,'ne3'] =e= theta['np2']*uc[i,j,'ne1']
- (theta['np3'] + theta['np4'])*uc[i,j,'ne3']
+ theta['np5']*uc[i,j,'ne5'];
collocation_eqn4(i,j).. Duc[i,j,'ne4'] =e= theta['np3']*uc[i,j,'ne3'];
collocation_eqn5(i,j).. Duc[i,j,'ne5'] =e= theta['np4']*uc[i,j,'ne3']
- theta['np5']*uc[i,j,'ne5'];
v.fx['nh1',s] = bc(s);
Model pinene / all /;
$if set workSpace pinene.workSpace = %workSpace%
solve pinene minimizing obj using nlp;