Notes from Aaron Lewis for using CPD to predict biomass pyrolysis (September 2013)

The CPD model (Fletcher et al., 1992) was originally developed to predict coal devolatilization. We use the Bio-CPD model (Lewis and Fletcher, 2013) to predict biomass devolatilization assuming that biomass pyrolysis takes place as a weighted average of its main components (cellulose, hemicellulose, and lignin). 

 

You have to be aware of some things when using the CPD code.  First, here's a link to where all the versions of the CPD code are available on-line:

 

http://www.et.byu.edu/~tom/devolatilization/CPD%20model.html

 

There are 3 versions of the CPD model.  The original code (1 of 3) is named “CPD” on-line and requires a particle velocity profile and a particle temperature profile (not gas temperature) as a function of distance since the code was made for reacting particles in entrained flow. 

 

Another version of the CPD code (2 of 3) is named “CPDCP.” It requires a particle velocity profile and a gas temperature profile, and it then solves for the particle temperature using an energy balance on a reacting particle. 

 

The last version of the CPD code (3 of 3) is called “CPD_heat” on-line.  This version requires a particle heating rate, which makes it ideal for comparing with TGA data.   

 

 I mainly use CPDCP and CPD-heat. I’ve included those files with this email. If you try to use the biomass kinetic and structural parameters with the CPDCP code that’s on-line, it will have problems from what I remember.  Newer versions of these files that work in Windows with FORCE2.0 (fortran compiler) can be downloaded here: CPDCP CPD-heat 

 

How to use the files:

 

       It is important when using any version of the CPD code to understand its assumptions and limitations.

 

 

 

 

 

---------- ------------------------ --------------------------- ---------------------------- ----------------

There are definitely improvements to be made to get a prediction of biomass pyrolysis from any version of the CPD codes, but our current procedure works although it could be optimized by writing additional Fortran code.  Currently, we combine the CPD results of cellulose, hemicellulose, and lignin manually by pasting the results into Excel in order to combine the gas, tar, and char yields appropriately. An example Excel spreadsheet has been included for your convenience in the CPDCP file entitled “Example Post Process File.”

 First, we run a version of the CPD code (CPDCP or CPD_heat) for cellulose, hemicellulose, and lignin separately using kinetic and structural parameters summarized recently (Lewis and Fletcher, 2013). The Windows-compatible FORCE Fortran compilier works nicely, and is available for free download at download.com.

Sometimes, the cellulose file has a numerical instability and causes negative pyrolysis yields after the completion of pyrolysis. The hemicellulose and lignin files don’t have this problem. Dallan Prince (a graduate student that was mentioned above) discovered that the root cause for the numerical instability is due to negative mass fractions being incorporated into the flash calculation upon the completion of cellulose pyrolysis. The Fortran files I’m including haven’t been corrected yet.  However, an easy way around this problem is to only use the CPD’s predictions for cellulose up until the negative fractions start (because cellulose pyrolysis is completed by this point).

 

“CPDCP Version”

 

The CPDCP version of the code requires a particle velocity profile and a gas temperature profile. These files are named “Sawdust_vel_1150.dat” and “Sawdust_temp_1150.dat”, respectively in the folders I sent although you can name them whatever you want. The main Fortran file is called “Pond.f.”  Cell.inp, Hemi_hardwood.inp, and Lignin_hardwood.inp are the 3 input files for cellulose, hemicellulose, and lignin, respectively. They’re very similar files, except that they contain different structural and kinetic parameters and different output file names.  When you run the code for either of these files, then you’ll get 3 output files. We only use the first output file since it contains “ftar” and “fchar” which are the fractions of tar and char, respectively.  You can calculate the gas yield by (1-ftar – fchar), or you can look in the 3rd output file (fgas). The output files have some gas composition and nitrogen chemistry predictions, but are only valid for coal, not biomass.  Therefore, don’t use them since they don’t mean anything when the code is run using biomass kinetic and structural parameters. Remember that the CPDCP folder also contains the example Excel post-processing spreadsheet that might be helpful to you. The spreadsheet is where the separate pyrolysis results of cellulose, hemcellulose, and lignin are combined and where tar-cracking is implemented.  The included Excel spreadsheet only shows an example of Vizzini’s tar-cracking kinetics being applied, but Fagbemi’s tar-cracking kinetics could be applied in a similar fashion.

To copy and paste the results into Excel, the following is helpful: open the CPD output file in either Word Pad or Notepad, and then do ‘Control A’ to select the data, ‘Control C’ to copy the data, ‘Control V’ to paste it into Exel, and then use “Text to Columns” in Excel.

 

 

“CPD_heat Version”

 

            In the “CPD Heat” folder, there are the input files for cellulose, hemicllulose, and ligning (named cpdheat_Cellulose.inp, cpdheat_Hardwood_Hemi.inp, and cpdheat_Hardwood_lignin.inp, respectively). The current names make them convenient to know which kinetic and structural parameters they contain, but you’ll need to change the name of the files to run them. The Fortran code is looking for a file entitled “cpdheat.inp” so if you want to run the cellulose file for example, then you’ll have to rename it “cpdheat.inp” and then execute the Fortran file that’s contained in the same folder (cpdheat.f).

            The CPD_heat has 4 output files, but you’ll only use the first output file to get dry, and ash free fractions of tar, gas, and char (named ftar, fgas, and fsolid, respectively). You’ll then need to combine the results in Excel (as described above) or write additional Fortran code that will do the same thing.

            In the input file for CPD_heat, some code looks like this:

 

1                !number of time points

100,1500,0            !heat (K/s),temp(K), time(s)

 

which tells it to heat at 100 K/s particle heating rate to 1500 K particle temperature with no hold time.  The following:

 

 3               !number of time points

100,1500,1            !heat (K/s),temp(K), time(s)

-5,1200,2   !heat (K/s),temp(K), time(s)

10,1500,3  !heat (K/s),temp(K), time(s)

 

would tell it to heat at 100 K/s to 1500 K with no hold time, followed by cooling at 5 K/s to 1200 K with 2-second hold time at 1200 K, followed by heating at 10 K/s to 1500 K with a 3 second hold time at 1500 K. 

 

    Anyways, here's some information to get you started. 

-          Aaron Lewis –

       BYU Chemical Engineering Graduate Student

       September, 2013

 

Fagbemi, L., L. Khezami and R. Capart, "Pyrolysis Products from Different Biomasses: Application to the Thermal Cracking of Tar," Applied Energy, 69(4), 293-306 (2001).

Fletcher, T. H., A. R. Kerstein, R. J. Pugmire, M. S. Solum and D. M. Grant, "Chemical Percolation Model for Devolatilization .3. Direct Use of C-13 Nmr Data to Predict Effects of Coal Type," Energy & Fuels, 6(4), 414-431 (1992).

Lewis, A. D. and T. H. Fletcher, "Prediction of Sawdust Pyrolysis Yields from a Flat-Flame Burner

Using the Cpd Model," Energy & Fuels, 27, 942-953 (2013).

Vizzini, G., E. B. A. Bardi, M. Calcitelli and L. Tognotti, "Prediction of Rapid Biomass Devolatilization Yields with an Upgraded Version of the Bio-Cpd Model," 31st Meeting of the Italian Section of the Combustion Institute, Torino, Italy (2008).