The Population Balance Equation

1

Click here to load reader

description

What DPB Does DPB Is a Mathematica package Data Read from a spread sheet file “Re-grid” size points Interconvert number and weight data Extraction and fitting Extract nucleation, growth, aggregation, selection or sink rate constants Fit models to rate constants Simulation - PowerPoint PPT Presentation

Transcript of The Population Balance Equation

Page 1: The Population Balance Equation

The Population Balance EquationA statement of continuity relating particle-size distributions (PSDs) to underlying rate processes, such as the rates of growth and aggregation. PSDs are described by number probability density functions n(l,t), where l is particle size and t is time.

In words: Accumulation =Nucleation + Growth + Aggregation + Breakage + Sink

In symbols:

In DPB:

An Interactive Population Balance Tool: DPBM.J. Hounslow, Particle Products Group, Department of Chemical and Process Engineering

The University of Sheffield, U.K.

What DPB Does

DPB Is a Mathematica

package

Data Read from a spread

sheet file “Re-grid” size points Interconvert number and

weight data

Extraction and fitting Extract nucleation,

growth, aggregation, selection or sink rate constants

Fit models to rate constants

Simulation Uses a discretised

population balance Solves dynamic problems Solves steady-state

problems

Plotting Rate constants Moments Particle size distributions

Find out how AIChEJ, 34, no. 11, 1821, 1988 J. Coll. Interf. Sci., 203, no 1,

155, 1996

In[22]:=PsiNPlot[{data138,sim138},SmoothPlot->{False,True},PlotRange->All]

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

5́ 1010

1́ 1011

1.5́ 1011

2́ 1011

2.5́ 1011

yn

t=0

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2.5́ 1010

5́ 10107.5́ 1010

1́ 10111.25́ 10111.5́ 1011

yn

t=300.

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2́ 1010

4́ 1010

6́ 1010

8́ 1010

1́ 1011

1.2́ 1011

yn

t=600.

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2́ 1010

4́ 1010

6́ 1010

8́ 1010

1́ 1011

yn

t=900.

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2́ 1010

4́ 1010

6́ 1010

8́ 1010

yn

t=1200.

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2́ 1010

4́ 1010

6́ 1010

8́ 1010

yn

t=1800.

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2́ 1010

4́ 1010

6́ 1010

8́ 1010

yn

t=2400.

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2́ 1010

4́ 1010

6́ 1010

8́ 1010

yn

t=3000.

2. ´ 10 - 6 5. ´ 10 - 60.00001 0.00002 0.00005size HmL0

2́ 1010

4́ 1010

6́ 1010

8́ 1010

yn

t=3600.

Out[22]=8… Graphics …, … Graphics …, … Graphics …, … Graphics …, … Graphics …,

… Graphics …, … Graphics …, … Graphics …, … Graphics …<

AggregationRateConstant

AggregationDrivingForce

AggregationSizeDependence

GrowthRateConstant

GrowthDrivingForce

GrowthSizeDependence

SelectionRateConstant

SelectionDrivingForce

SelectionSizeDependenceBreakageSizeDependence

SinkRateConstant

SinkDrivingForce

SinkSizeDependence

In[21]:=MomentPlot[{data138,sim138},SmoothPlot->{False,True}]

500 1000 1500 2000 2500 3000 3500t HsecL

5́ 1010

1́ 1011

1.5́ 1011

2́ 1011

m0

500 1000 1500 2000 2500 3000 3500t HsecL

200000

400000

600000

800000

m1

500 1000 1500 2000 2500 3000 3500t HsecL

1

2

3

4

5

m2

500 1000 1500 2000 2500 3000 3500t HsecL

0.00001

0.00002

0.00003

0.00004

0.00005

m3

500 1000 1500 2000 2500 3000 3500tHsecL

1́ 10-10

2́ 10-10

3́ 10-10

4́ 10-10

5́ 10-10

m4

Out[21]=8… Graphics …, … Graphics …, … Graphics …, … Graphics …, … Graphics …<

ŸPlot the results

Ÿ read in the packageIn[1]:=<<DPB4̀Ÿ read in a package to calculate supersaturations from third moment dataIn[2]:=<<CaOx̀Ÿ these are the standard settingsIn[3]:=Options[CaOxSetUp]

Out[3]=8Ksp®2.24´ 10-9, KCaOx ®0.000364, KNaOx®0.0752, gamma®0.314,

Mr®146.1, rhos®2200, w0®0.01608, TCa0 ®0.000981, TOx0 ®0.000196,

TNa0®0.1578<Ÿ this sets up the supersaturation calculation using the correct initial concentrationsIn[4]:=CaOxSetUp[{TCa0->0.000286,TOx0->0.00143,w0->0.022}]ŸRead the data from a spread sheet file of Coulter Counter data, turning minutes to seconds, microns to

metres and the sample volume to cubic metres.In[7]:=rawdata138=ReadSSFile["d:\13_8N.txt",

TimeScaleFactor->60.,

SizeScaleFactor->10̂ -6,

AmountScaleFactor->1/(100 10̂ -9)];ŸConvert them into a standard dataset conserving the thrid moment

ŸThis is a set of options needed often, so store them in a variable

In[8]:=data138=DeltaNtoN[rawdata138,NormaliseMoment->{3,Conserve}];

ŸThe growth rate is known as a function of supersaturation, so use it, and the number of particles in the first size inteval, and the zeroth moment to calculate aggregation and (apparent) nucleation rates.In[13]:=rates138=ExtractRateConstants[data138,

GrowthRateConstantKnown->True,

GrowthRateConstant->Function[s,1.45 10̂ -9 s 2̂],

caoxoptions,

UseEquations->{-1,0}]

Out[13]=:Nucleation®True, NucleationRateConstantKnown®False,

NucleationSizeDependence®DiracDelta, NucleationDrivingForce®Time,

B0Data®880, 1.53101´ 108<,8300., 3.56839´ 107<,8600., 1.48665´ 107<,8900., 3.85979´ 106<,81200., 2.32911´ 106<,81800., 699021.<,82400., - 406198.<,83000., 23869.2<,83600., - 492004.<<,Growth®True, GrowthRateConstantKnown®True,

GrowthSizeDependence®SizeIndependent, GrowthDrivingForce®SigmaCaOx,

GrowthRateConstant®FunctionBs, 1.45 s2

109F,

Aggregation®True, AggregationRateConstantKnown®False,

AggregationSizeDependence®SizeIndependent,

AggregationDrivingForce®SigmaCaOx,

Beta0Data®881.5702, 1.67973´ 10-14<,81.04785, 1.65338´ 10-14<,80.823875, 1.67153´ 10-14<,80.546143, 1.13117´ 10-14<,80.530671, 6.81055´ 10-15<,80.231345, 3.22629´ 10-15<,80.185455, 1.5403´ 10-15<,80.157354, 1.36033´ 10-15<,80.0616058, 9.00712´ 10-16<<,Breakage®False, Sink®False>

Crystallisation Example.Batch experiments with calcium oxalate yield PSDs at regular time intervals. Aggregation and apparent nucleation rates are extracted and correlated. The PBE is solved to predict moments and the PSD.

In[10]:=caoxoptions={Nucleation->True,

Growth->True,

Aggregation->True,

GrowthDrivingForce->SigmaCaOx,

AggregationDrivingForce->SigmaCaOx,

NucleationDrivingForceVariable->t,

GrowthDrivingForceVariable->s,

AggregationDrivingForceVariable->s};

AIChE Miami 1998

z z z n l t

dtB B l G

lG l n l t

ll

n l t n t

ld n l t l n t d S S b l n t d S S l n l t IN G A

l

A Sl

S

,( ) , ( ) ,

, ,, , , , , ,* * *

/* * *bg b gbg bgbgd i e j e j b g

d i b gbg b gb g bg bgb gb g bgbgbg00

00 0

23 33

3 33

3 3 2 30

0

0

0 0 0

2

I I l n l tbgbgbg* ,

NucleationRateConstant

NucleationDrivingForce

NucleationSizeDependence

ŸSet up to simulate - this extracts initial conditions from the experimental data

ŸFit models to both sets of rate constants.In[16]:=model138=FitRateConstants[rates138,

NucleationRateConstantModel->a Exp[-t/b],

NucleationRateConstantModelParameters->{{a,1.5 10̂ 8},{b,200}},

NucleationDrivingForceVariable->t,

AggregationRateConstantModel->Min[k s 2̂,1.67 10̂ -14],

AggregationRateConstantModelParameters->{{k,{10̂ -14,10̂ -13}}},

Method->FindMinimum,

AggregationDrivingForceVariable->s,

PrintStatistics->False]

Out[16]=:Nucleation®True, NucleationRateConstantKnown®True,

NucleationSizeDependence®DiracDelta, NucleationDrivingForce®Time,

NucleationRateConstant®Function@t, 1.52708´ 108E-0.00458081tD,Growth®True, GrowthRateConstantKnown®True,

GrowthSizeDependence®SizeIndependent, GrowthDrivingForce®SigmaCaOx,

GrowthRateConstant®FunctionBs, 1.45 s2

109F,

Aggregation®True, AggregationRateConstantKnown®True,

AggregationSizeDependence®SizeIndependent,

AggregationDrivingForce®SigmaCaOx,

AggregationRateConstant®Function@s, [email protected]´ 10-14, 3.18205´ 10-14 s2DD,Breakage®False, Sink®False>

ŸCompare the fit and the rate constants

In[18]:=initial138=Simdata[data138,1];

ŸSimulateIn[20]:=sim138=Simulate[initial138,model138];

In[17]:=RateConstantPlot[model138,

RotateLabel->False,

AggregationRateConstantPlotRange->{{0,Automatic},{0,Automatic}},

caoxoptions,

PlotRange->All,

rates138]

0 500 1000 1500 2000 2500 3000 3500t

0

2.5́ 107

5́ 107

7.5́ 107

1́ 108

1.25́ 108

1.5́ 108

B0

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6s

0

2.5́ 10-155́ 10-15

7.5́ 10-151́ 10

-14

1.25́ 10-14

1.5́ 10-14

b0

Out[17]=8… Graphics …, … Graphics …<