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:

\[\ln\left(\frac{\beta}{T_p^2}\right) = \ln\left(\frac{AR}{E_a}\right) - \frac{E_a}{RT_p}\]
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:
  1. e_a (float): Activation energy in J/mol.

  2. a (float): Pre-exponential factor in min^-1.

  3. se_e_a (float): Standard error of the activation energy in J/mol.

  4. se_ln_a (float): Standard error of ln(A).

  5. 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