Kissinger Method¶
- kissinger_method(t_p: np.ndarray, beta: np.ndarray) Tuple[float, float, float, float, float]¶
Perform Kissinger analysis for non-isothermal kinetics using peak temperature data from multiple heating rates.
- Parameters:
t_p (np.ndarray) – Peak temperatures for different heating rates in K.
beta (np.ndarray) – Heating rates corresponding to the peak temperatures in K/min.
- Returns:
Tuple containing activation energy (E_a in J/mol), pre-exponential factor (A in min^-1), standard error of E_a, standard error of ln(A), and coefficient of determination (R^2).
- Return type:
Tuple[float, float, float, float, float]
Theory¶
The Kissinger method is used for determining the activation energy and pre-exponential factor in non-isothermal kinetic analysis. It is based on the following equation:
- where:
β is the heating rate
T_p is the peak temperature
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 kissinger_method
from pkynetics.result_visualization import plot_kissinger
# Sample data
t_p = np.array([450, 460, 470, 480]) # Peak temperatures in K
beta = np.array([5, 10, 15, 20]) # Heating rates in K/min
# Perform Kissinger analysis
e_a, a, se_e_a, se_ln_a, r_squared = kissinger_method(t_p, beta)
print(f"Activation energy (E_a): {e_a/1000:.2f} ± {se_e_a/1000:.2f} kJ/mol")
print(f"Pre-exponential factor (A): {a:.2e} min^-1")
print(f"95% CI for ln(A): [{np.log(a)-1.96*se_ln_a:.2f}, {np.log(a)+1.96*se_ln_a:.2f}]")
print(f"R-squared: {r_squared:.4f}")
# Visualize results
plot_kissinger(t_p, beta, e_a, a, r_squared)
Parameters¶
t_p (np.ndarray): Peak temperatures for different heating rates in K.
beta (np.ndarray): Heating rates corresponding to the peak temperatures in K/min.
Returns¶
- A tuple containing:
e_a (float): Activation energy in J/mol.
a (float): Pre-exponential factor in min^-1.
se_e_a (float): Standard error of the activation energy in J/mol.
se_ln_a (float): Standard error of ln(A).
r_squared (float): Coefficient of determination (R^2) of the fit.
Raises¶
ValueError: If input arrays have different lengths or contain invalid values (e.g., negative temperatures or heating rates).
Notes¶
The method assumes that the reaction rate is maximum at the peak temperature.
It is typically applied to reactions that follow first-order kinetics, but can be used as an approximation for other reaction orders.
The method provides standard errors for both E_a and ln(A), allowing for the calculation of confidence intervals.
Use the plot_kissinger function to visualize the results and assess the quality of the fit.
See Also¶
horowitz_metzger_method(): For single heating rate thermal decomposition kineticscoats_redfern_method(): For solid-state reaction kineticsplot_kissinger(): For visualizing Kissinger analysis results