Code covered by the BSD License  

Highlights from
Flotation kinetics - equation fitting

image thumbnail

Flotation kinetics - equation fitting

by

 

29 Aug 2010 (Updated )

Simple GUI to fit 6 different first order flotation kinetics equation types to experimental data.

MATLAB® tool for determining first order flotation kinetic constants

MATLAB® tool for determining first order flotation kinetic constants

               Ivan Brezani (a) and Fridrich Zelenak
                 Technical University of Kosice,
                          BERG Faculty,
   Institute of Montanneous Sciences and Environmental Protection
                    Last updated: 2010-09-14

(a) ivan.brezani@tuke.sk

Contents

1. Flotation

Flotation is a physico-chemical separation process that utilises the difference in surface properties of the valuable minerals and the unwanted gangue minerals. The theory of froth flotation is complex, involving three phases (solids, water, and froth) with many subprocesses and interactions, and is not completely understood. (Wills, 2005)

Flotation process and its results is affected by many factors involving not just physico-chemical and surface properties of minerals, but also many other factors such as selection and dosing of reagences, pulp pH, air velocity, bubble size, temperature, impeler speed, particle size, ...

This often leads to describing flotation as simplified - first order kinetic phenomenon.

2. Flotation kinetics - batch flotation

Many authors presented their equations that should describe flotation kinetics of various minerals. These equations are also present in different forms in mineral processing modeling and simulation software, such as MODSIM™, USIM™ PAC, JKSimFloat, etc. Although many different equations have been proposed over the years, only the selected ones describing batch (laboratory) flotation are implemented in this tool. Namely there are following six models (equation types):

  1. Classical model
  2. Klimpel model
  3. Kelsall model
  4. Modified Kelsall model
  5. Gamma model
  6. Fully mixed model

1. Classical model

Classical model uses two parameters to describe flotation kinetics:

$$R = R_{\infty} ( 1 \;\textrm{--}\; e^{\;\textrm{--}\; k \tau} )$$

where:

$$\bf R $$ - recovery of mineral [ ] (dependent variable)

$$\bf R_{\infty} $$ - infinite (equilibrium) recovery - maximum possible recovery of mineral [ ] (parameter 1)

$$\bf k $$ - flotation rate constant [1/min] (parameter 2)

$$\bf \tau $$ - flotation time [min] (independent variable)

2. Klimpel model (Klimpel 1980)

Klimpel model uses two parameters to describe flotation kinetics:

$$R = R_{\infty} \left( 1 \;\textrm{--}\; \frac{1}{k \tau} (1
\;\textrm{--}\; e^{ \;\textrm{--}\; k \tau} ) \right)$$

where:

$$\bf R $$ - recovery of mineral [ ] (dependent variable)

$$\bf R_{\infty} $$ - infinite (equilibrium) recovery - maximum possible recovery of mineral [ ] (parameter 1)

$$\bf k $$ - modified first-order rate constant [1/min] (parameter 2)

$$\bf \tau $$ - flotation time [min] (independent variable)

3. Kelsall model (Kelsall 1961)

Kelsall model uses three parameters to describe flotation kinetics:

$$R = (1 \;\textrm{--}\; \varphi ) (1 \;\textrm{--}\; e^{\;\textrm{--}\;
k_f \tau} ) + \varphi (1 \;\textrm{--}\; e^{\;\textrm{--}\; k_s \tau} )$$

where:

$$\bf R $$ - recovery of mineral [ ] (dependent variable)

$$\bf \varphi $$ - fraction of flotation components with the slow rate constan [ ] (parameter 1)

$$\bf k_f $$ - fast flotation rate constant [1/min] (parameter 2)

$$\bf k_s $$ - slow flotation rate constant [1/min] (parameter 3)

$$\bf \tau $$ - flotation time [min] (independent variable)

4. Modified Kelsall model (Jowett 1974)

Modified version of Kelsall model adds influence of infinite recovery to Kelsall model and brings number of parameters to four:

$$R = R_{\infty} \left[ (1 \;\textrm{--}\;\varphi )(1 \;\textrm{--}\; e^{
\;\textrm{--}\; k_f \tau} ) + \varphi (1 \;\textrm{--}\;
e^{\;\textrm{--}\; k_s \tau} ) \right]$$

$$\bf R $$ - recovery of mineral [ ] (dependent variable)

$$\bf R_{\infty} $$ - infinite (equilibrium) recovery - maximum possible recovery of mineral [ ] (parameter 1)

$$\bf k_f $$ - fast flotation rate constant [1/min] (parameter 2)

$$\bf k_s $$ - slow flotation rate constant [1/min] (parameter 3)

$$\bf \varphi $$ - fraction of flotation components with the slow rate constan [ ] (parameter 4)

$$\bf \tau $$ - flotation time [min] (independent variable)

5. Gamma model (Loveday 1966; Imaizumi and Inoue 1968),

Gamma model has three parameters and can be simplistically described as being made up of the sum of P exponential distributions:

$$R = R_{\infty} \left[ 1 \;\textrm{--}\; \left( \frac{\lambda}{\lambda
+ \tau} \right) ^P \right]$$

$$\bf R $$ - recovery of mineral [ ] (dependent variable)

$$\bf R_{\infty} $$ - infinite (equilibrium) recovery - maximum possible recovery of mineral [ ] (parameter 1)

$$\bf \lambda $$ - kinetic constant [min] (parameter 2)

$$\bf P $$ - exponent [ ] (parameter 3)

$$\bf \tau $$ - flotation time [min] (independent variable)

6. Fully mixed model (Imaizumi and Inoue 1965)

This model is simmilar to gamma model and uses two parameters to describe flotation kinetics:

$$ R = R_{\infty} \left[ 1 \;\textrm{--}\; \left( \frac{1}{1+
\frac{\tau}{k}} \right) \right]$$

$$\bf R $$ - recovery of mineral [ ] (dependent variable)

$$\bf R_{\infty} $$ - infinite (equilibrium) recovery - maximum possible recovery of mineral [ ] (parameter 1)

$$\bf k $$ - flotation rate constant [min] (parameter 2)

$$\bf \tau $$ - flotation time [min] (independent variable)

For more information on the above mentioned model equations see (Gupta and Yan 2006) or particular references.

NOTE: In all the equations displayed above, R stands for recovery of mineral [ ]. In the main GUI window R - calculated among other parameters as a single value for the whole data set stands for regression coefficient.

3. Running the GUI

After running the GUI in MATLAB® command line as:

>> model

or as a single executable Fit.exe file if compiled, main GUI screen is displayed (see Fig. 1).

Fig. 1 Main GUI window.

This window consist of a Menu, Table (top left) for entering the data, Graph (top right) for displaying scatter of the data set and fitted curves, Flotation Model Selection part (middle) for choosing first-order flotation models for which to calculate parameters, show interpotated curves in graph and save data and Buttons (bottom) for basic operations.

4. Entering (loading) data

The simplest method of entering experimental data is to simply type the data into the table (see Fig. 2) as a values of cumulative recovery of mineral vs. flotation time.

Fig. 2 Table for entering / to show calculated values of flotation time vs. cumulative recovery of mineral.

This data must be entered in ascending order (both from lowest to highest). It is not necessary to enter [0, 0] as a first input as this is added automatically while computing, however such an input will not produce any error or warning. Up to ten data pairs can be used.

The second option is to use the ability to load data from different file type formats supported. However, the best compatibility is achieved when the data is not edited externally (loading data saved with this tool), or using the suplied preformatted data.xls file for input (see Fig. 3).

Fig. 3 Sample file data.xls included in the package to simplify loading process.

This tool checks for the data in specified cells in the region B3:G28 and is not affected by changing any other cell outside of this region or by formatting (text flushing, color, borders, etc. both inside and outside of this region).

NOTE: In order for this tool to be able to load data from an xls file, Microsoft Office Excel must be installed on the machine as MATLAB® uses its COM port for handling spreadsheets.

Four different methods of loading the data are supported as can be seen in Fig. 4.

Fig. 4 Menu - data loading methods.

File --> Load Data --> Flotation time vs. cumulative recovery

In this case data pairs present in the xls file in columns C and D are checked for consistency and loaded without any further computation. This method can also be used for loading previously saved data from any other supported file formats (dat, txt, csv).

File --> Load Data --> Flotation time vs. cumulative mass

In this case corresponding data pairs of Flotation time [s] - column C and Cumulative mass [g] - column G are loaded. It is also necessary to specify mass of the sample for flotation [g] - cell E15. Without this value it is not possible to calculate values of cumulative recovery and an error message is displayed. If all the necessary data is present, values of mineral Mass [g], Recovery [] and Cumulative recovery [] are silently calculated and stored while only the values of Flotation Time [s] vs. Cumulative Recovery [] are displayed in the table.

File --> Load Data --> Flotation time vs. non-cumulative recovery

In this case corresponding data pairs of Flotation Time [s] - column C and Non-cumulative Recovery [] are checked for consistency. From this data, cumulative values of Recovery [] are calculated and displayed in the table.

File --> Load Data --> Flotation time vs. non-cumulative mass

In this case corresponding data pairs of Flotation Time [s] - column C and non-cumulative Mass [g] - column E, as well as value of sample weight - cell E15 is checked for consistency and loaded. In the next step values of Cumulative Mass [g], Recovery [] and Cumulative Recovery [] are calcuĺated and internally stored while only the values of Flotation Time [s] vs. Cumulative Recovery [] are displayed in the table.

NOTE: Internally stored data of Mass [g], Cumulative Mass [g] and the value of the sample weight are lost if the data in the table is edited.

Example:

Example file Data - example.xls is included in the package and can be used as an example for loading data and calculating model parameters. Any from the above mentioned methods can be used to load the data, while all of them should produce the same result shown in Fig. 5.

Fig. 5 Example data set loaded from Data - example.xls

5. Calculation and plot

When necessary data is entered (or loaded) and enough data pairs are displayed in the table, one can choose methods to be used for modelling. This is done simply by ticking appropriate checboxes.

Unknown parameters of selected models calculated after the Calculate & Plot button is pressed.

NOTE: At least the same amount of data pairs of Flotation Time [s] vs. Cumulative Recovery [] (excluding [0, 0]) as the amount of parameters (R - correlation coefficient is not considered to be a parameter) to be calculated must be entered prior to calculation in order to avoid warnings. Example: for modelling using "Classical" model, at least two data pairs must be entered, for "Modified Kelsall" model it is at least four data pairs, etc.

Example:

The above mentioned (example) data set can be used also as an example for calculating and ploting. Result of such an calculation is displayed as Fig. 6.

Fig. 6 Parameters of selected models calculated from example data set in file Data - example.xls.

All parameters of the selected models are calculated immediatelly after pressing the Calculate & Plot button. In the graph, scatter created from entered data is approximated by selected curves (equations).

6. Editing options

Only the selected options can be edited via GUI menu (see Fig. 7).

Fig. 7 menu items for editing options.

Edit --> Use unconstrained optimization (LMA)

Under normal circumstances, this tool uses constrained optimization for equation fitting (parameter estimation). I. e. the lower bound of infinite recovery is automatically set to maximum value of recovery present in the data set. Although this limitation is correct, in some cases higher values of regression coefficient can be achieved with the lower value of this parameter. Also some other parameters are constrained when optimization is run. This menu item can be used to turn this constrains off and use Levenberg-Marquardt algorith instead.

NOTE: When using unconstrained optimization (LMA), values of some estimated parameters can be unrealistic.

Edit --> Show grid in graph

This menu item is similar to MATLAB® grid on command.

Edit --> Show Seconds on X-axis

Tick this menu item if flotation time is to be displayed in seconds on X-axis instead of minutes (default).

Edit --> Show % Recovery on Y-axis

Tick this menu item if cumulative recovery is to be displayed in percent on Y-axis of graph.

7. Saving graph and calculated data

Saving graph

For saving graph to any supported file format select File --> Save Graph item from the menu or use the Ctrl + P shortcut. New figure window will pop-up (see Fig. 8).

Fig. 8 default MATLAB® window for saving figures.

This is MATLAB® default figure window in which the graph can be further edited using standard implemented procedures. If no editing is necessary, graph can by saved into one of the supported file formats (see Tab. 1).

Tab. 1. Filetypes supported by MATLAB® for saving figures.

  ____________________________________________
  |  Extension  |       Format                |
  |_____________|_____________________________|
  | ai          | Adobe® Illustrator `88      |
  | bmp         | Windows bitmap              |
  | emf         | Enhanced metafile           |
  | eps         | EPS Level 1                 |
  | fig         | MATLAB figure               |
  | jpg         | JPEG image                  |
  | m           | MATLAB file                 |
  | pbm         | Portable bitmap             |
  | pcx         | Paintbrush 24-bit           |
  | pdf         | Portable Document Format    |
  | pgm         | Portable Graymap            |
  | png         | Portable Network Graphics   |
  | ppm         | Portable Pixmap             |
  | tif         | TIFF image, compressed      |
  |_____________|_____________________________|

Saving calculated data

For saving entered (and calculated) data select File --> Save Data item from menu or use the Ctrl + S shortcut. For list of supported file types see Tab. 2. Only the parameters of currently selected models are saved.

Tab. 2 file types supported for saving data

  ____________________________________________
  |  Extension  |       Format                |
  |_____________|_____________________________|
  | csv         | Comma-separated values      |
  | xls         | Microsoft Office Excel file |
  | dat         | Generic data file           |
  | txt         | Text file                   |
  |_____________|_____________________________|

NOTE: In order for this tool to be able to save data to an xls file, Microsoft Office Excel must be installed on the machine as MATLAB® uses its COM port for handling spreadsheets.

8. Modeling data

Support tool was developed for modeling recovery of up to three minerals simultaneously. It was designed to cooperate with this tool in terms of compatibility with saved files. Flotation kinetics - modeling tool (see Fig. 9) is available for download from MATLAB® File Exchange (File ID: #28703):

http://www.mathworks.com/matlabcentral/fileexchange/28703

Fig. 9 Main GUI of MATLAB® Flotation kinetics - modeling tool.

Acknowledgement

This work was inspired by the wasmflot.xls (Mineral Processing Computations #3 by WA School of Mines, 1997) file previously available for download at http://wasm.curtin.edu.au/yand/downloads.html.

Supported by the Scientific Grant Agency (VEGA) of the Ministry of Education of the Slovak Republic and the Slovak Academy of Sciences, Grant No. 1/0752/10.

License

Copyright (c) 2010, Ivan Brezani All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Neither the name of the Technical University of Kosice, Slovakia nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

References

Gupta, A., Yan, D. S., 2006. Flotation, Mineral Processing Design and Operation. Elsevier Science, Amsterdam, 2006, Pages 555-603, ISBN 978-0-44-451636-7.

Imaizumi, T. and Inoue, T., 1965. _Kinetic consideration of froth flotation. International Mineral Processing Congres, 6th Cannes, 1963 (1965), pp 563–579.

Imaizumi, T. and Inoue, T., 1968. Some aspects of flotation kinetics. 8th International Mineral Processing Congres, Leningrad, 1968, Paper S-15.

Jowett, A., 1974. Resolution of flotation recovery curves by a differential plot method. Transactions, American Society of Mining and Metallurgical Engineers, 85, pp. C263–C266.

Kelsall, D. F., 1961. Application of probability assessment of flotation systems. , Transactions, American Society of Mining and Metallurgical Engineers, 70, pp. 191–204.

Klimpel, R. R., 1980. Selection of chemical reagents for flotation. In: A. Mular, R. Bhappu Eds.., Mineral Processing Plant Design, 2nd edition. SME, Littleton, CO, pp. 907–934.

Loveday, B.K., 1966. Analysis of froth flotation kinetics. Transactions, American Society of Mining and Metallurgical Engineers, 75, pp. C219-C225.

Wills, B. A., Napier-Munn, T. J., 2006. WILL'S Mineral Processing Technology, Seventh Edition, Elsevier Science & Technology Books. ISBN: 0750644508

Contact us