Coats-Redfern Method¶
- coats_redfern_method(temperature: np.ndarray, alpha: np.ndarray, heating_rate: float, n: float = 1) Tuple[float, float, float, np.ndarray, np.ndarray, np.ndarray, np.ndarray]¶
Perform Coats-Redfern analysis to determine kinetic parameters for solid-state reactions.
- Parameters:
temperature (np.ndarray) – Temperature data in Kelvin.
alpha (np.ndarray) – Conversion data.
heating_rate (float) – Heating rate in K/min.
n (float) – Reaction order. Default is 1.
- Returns:
Tuple containing activation energy (E_a in J/mol), pre-exponential factor (A in min^-1), R-squared value, and arrays for plotting (x, y, x_filtered, y_filtered).
- Return type:
Tuple[float, float, float, np.ndarray, np.ndarray, np.ndarray, np.ndarray]
Theory¶
The Coats-Redfern method is an integral method used for the determination of kinetic parameters from thermogravimetric data. It is based on the following equation:
- where:
g(α) is the integral form of the reaction model
T is the temperature
β is the heating rate
E_a is the activation energy
A is the pre-exponential factor
R is the gas constant
Usage Example¶
import numpy as np
from pkynetics.model_fitting_methods import coats_redfern_method
from pkynetics.result_visualization import plot_coats_redfern
# Generate sample data
temperature = np.linspace(300, 800, 500)
alpha = 1 - np.exp(-0.01 * (temperature - 300))
heating_rate = 10 # K/min
# Perform Coats-Redfern analysis
e_a, a, r_squared, x, y, x_filtered, y_filtered = coats_redfern_method(temperature, alpha, heating_rate)
print(f"Activation energy (E_a): {e_a/1000:.2f} kJ/mol")
print(f"Pre-exponential factor (A): {a:.2e} min^-1")
print(f"R-squared: {r_squared:.4f}")
# Visualize results
plot_coats_redfern(x, y, x_filtered, y_filtered, e_a, a, r_squared)
Parameters¶
temperature (np.ndarray): Temperature data in Kelvin. Must be in ascending order.
alpha (np.ndarray): Conversion data. Must be between 0 and 1.
heating_rate (float): Heating rate in K/min. Must be positive.
n (float, optional): Reaction order. Default is 1.
Returns¶
- A tuple containing:
e_a (float): Activation energy in J/mol.
a (float): Pre-exponential factor in min^-1.
r_squared (float): Coefficient of determination (R^2) of the fit.
x (np.ndarray): x-values for plotting (1000/T).
y (np.ndarray): y-values for plotting (ln(g(α)/T^2)).
x_filtered (np.ndarray): Filtered x-values used for linear regression.
y_filtered (np.ndarray): Filtered y-values used for linear regression.
Raises¶
ValueError: If input arrays have different lengths or contain invalid values.
Notes¶
The method focuses on the most linear part of the data, typically between 20% to 80% conversion.
The function automatically removes any invalid points (NaN or inf) before performing the linear regression.
Use the returned x, y, x_filtered, and y_filtered arrays with the plot_coats_redfern function for visualization.
See Also¶
freeman_carroll_method(): For non-isothermal decomposition kineticsplot_coats_redfern(): For visualizing Coats-Redfern analysis results