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