SIMULATION, PARAMETER ESTIMATION, EXPERIMENTAL DESIGN, and OPTIMAL CONTROL OF BATCH CRYSTALLIZATION

S.H. Chung, D.L. Ma, M. Fujiwara, R. Gunawan, T. Togkalidou, and R.D. Braatz
Department of Chemical Engineering
University of Illinois at Urbana-Champaign


Crystallization is used in a wide range of industries to provide high purity separations. The crystal growth and nucleation kinetic parameters must be determined experimentally before systematically designing a crystallizer and computing optimal operations and control procedures.

Here we provide computer programs that simulate a crystallization process, estimate model parameters from data, implement model-based experimental design to minimize the number of experiments required to construct a sufficiently accurate model, and optimize the temperature profile and seed distribution once the model is known. These programs are used in an undergraduate/graduate course taught at the University of Illinois. Also provided are some data files for use in the course. Comments in the codes give explicit information on running the codes. Most of the codes require linking optimization (ffsqp) and integration (lsodes) subroutines, which can be obtained from http://www.isr.umd.edu/Labs/CACSE/FSQP/fsqp_dist.html and http://www.nea.fr/abs/html/nesc9935.html, respectively. The algorithms and techniques for industrial crystallization are described in a series of theses, proceedings, and journal papers written by the co-authors.

dim1.f:
This program simulates the operation of an industrial crystallizer scaled-up from the experimental batch cooling crystallizer described in S. M. Miller's Ph.D. thesis published at the University of Texas at Austin in 1993. The crystals have one characteristic growth dimension. [tested on a Pentium processor running Windows NT, using Microsoft Fortran]

dim2.f:
This program simulates the growth of crystals with two characteristic growth dimensions, using the sparse ODE solver LSODES. [tested on a Pentium processor running Windows NT]

param.f:
This program reads solute concentration and moments measurement data from data files, and estimates growth and nucleation kinetic parameters with the smallest weighted least-squares error. The crystals have one characteristic growth dimension. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

concen_data11.txt:
Example solute concentration measurement data for use with param.f.

mu_data11.txt:
Example moments measurement data for use with param.f.

param2.f:
This program reads solute concentration and moments measurement data from data files, and estimates growth and nucleation kinetic parameters with the smallest weighted least-squares error. The crystals have two characteristic growth dimensions. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

conf.f:
This program calculates the parameter covariance matrix and the confidence interval for each growth and nucleation kinetic parameter (g, kg, b, and kb). The crystals have one characteristic growth dimension. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

conf2.f:
This program calculates the parameter covariance matrix and the confidence interval for each growth and nucleation kinetic parameter (g1, kg1, g2, kg2, b, and kb). The crystals have two characteristic growth dimensions. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

optexp.f:
This program calculates the temperature profile and seed distribution for optimal experimental design. The crystals have one characteristic growth dimension. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

optexp2.f:
This program calculates the temperature profile and seed distribution for optimal experimental design. The crystals have two characteristic growth dimensions. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

optcon.f:
This program calculates the optimum temperature profile and initial seed distribution for optimizing a product crystal property of interest. The crystals have one characteristic growth dimension. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

optcon2.f:
This program calculates the optimum temperature profile and initial seed distribution for optimizing a product crystal property of interest. The crystals have two characteristic growth dimensions. [tested on a Pentium processor running Windows NT, using Microsoft Fortran Developer with IMSL]

crystals.txt:
This ascii text file lists the lengths of 100 crystals measured using a Nikon microscope. The crystals were taken directly from a bottle of potassium dihydrogen phosphate purchased from the Aldrich Chemical Company. The units of length are microns. This data file is used in Lab 1 of the web-based ChE 391/469B course.

crystals2.txt:
This ascii text file lists the lengths of 100 crystals measured using a Nikon microscope. The crystals were taken from a slurry produced by the uncontrolled cooling a potassium dihydrogen phosphate-water solution from 60 degree Celsius to room temperature. The units of length are microns. This data file is used in Lab 1 of the web-based ChE 391/469B course.

dim1sun.f:
This is the same as dim1.f, but designed for use with Exponent Graphics. [tested on a Sun workstation]

paramsun.f:
This program reads concentration and transmittance data from data files, and estimates growth and nucleation kinetic parameters with the smallest weighted least-squares error. The crystals have one characteristic growth dimension. [tested on a Sun workstation]

fort.56:
Example solute concentration and transmittance measurement data for use with paramsun.f.

confsun.f:
This program calculates the parameter covariance matrix and the confidence interval for each growth and nucleation kinetic parameter (g, kg, b, and kb). The crystals have one characteristic growth dimension. [tested on a Sun workstation]

optexpsun.f:
This program calculates the temperature profile and seed distribution for optimal experimental design. The crystals have one characteristic growth dimension. [tested on a Sun workstation]

optconsun.f:
This program calculates the optimum temperature profile and initial seed distribution for optimizing a product crystal property of interest. The crystals have one characteristic growth dimension. [tested on a Sun workstation]

sim1d.f:
This program uses the high resolution algorithm to simulate a well-mixed batch crystallizer. The crystals have one characteristic growth dimensions. [tested on a Sun workstation]

compart.f:
This program uses the high resolution algorithm and compartmental model to simulate a batch crystallizer in which the crystal size distribution varies significantly along the hight of the crystallizer. Parallel computation is also used to speed up the simulation. The crystals have two characteristic growth dimensions. [tested on a 64 HP Kayak Visualize workstation]

sim2d.f:
This program uses the high resolution algorithm to simulate a well-mixed batch crystallizer. The crystals have two characteristic growth dimensions. [tested on a Sun workstation]

lab4c



Richard D. Braatz
1/27/2002