Skip to content

Biokinetic Models API Reference ​

Overview ​

ErgoPlanner supports advanced biokinetic models for mechanistic simulation of biological wastewater treatment processes. This includes Activated Sludge Models (ASM1, ASM2d, ASM3) and Anaerobic Digestion Model No. 1 (ADM1).

Note: Biokinetic model implementation is currently in development. This documentation will be updated as model interfaces are finalized.

Planned Model Support ​

Activated Sludge Models ​

ASM1 (Activated Sludge Model No. 1) ​

  • Purpose: Carbon oxidation, nitrification, denitrification
  • State Variables: 13 components including soluble/particulate COD fractions, nitrogen species, biomass
  • Processes: Aerobic/anoxic heterotrophic growth, autotrophic nitrification, decay, hydrolysis

ASM2d (Activated Sludge Model No. 2d) ​

  • Purpose: Extended biological phosphorus removal (EBPR)
  • State Variables: 19 components including phosphorus-accumulating organisms (PAO)
  • Processes: Biological P-removal, chemical P-precipitation, storage polymers

ASM3 (Activated Sludge Model No. 3) ​

  • Purpose: Storage polymer-based carbon removal
  • State Variables: Includes storage products, endogenous respiration
  • Processes: Storage of substrate, growth on stored products

Anaerobic Digestion Models ​

ADM1 (Anaerobic Digestion Model No. 1) ​

  • Purpose: Anaerobic digestion of complex organic matter
  • State Variables: 24 soluble and 12 particulate components
  • Processes: Hydrolysis, acidogenesis, acetogenesis, methanogenesis
  • Outputs: Biogas production (CH4, CO2, H2)

Planned Interfaces ​

ASM1Parameters ​

typescript
interface ASM1Parameters {
  // Heterotrophic biomass parameters
  muH: number;           // Maximum specific growth rate (1/d)
  KS: number;            // Half-saturation coefficient for substrate (mg COD/L)
  KOH: number;           // Oxygen half-saturation for heterotrophs (mg O2/L)
  KNO: number;           // Nitrate half-saturation for denitrification (mg NO3-N/L)
  bH: number;            // Decay coefficient for heterotrophs (1/d)

  // Autotrophic biomass parameters
  muA: number;           // Maximum specific growth rate for autotrophs (1/d)
  KNH: number;           // Ammonia half-saturation for autotrophs (mg NH4-N/L)
  KOA: number;           // Oxygen half-saturation for autotrophs (mg O2/L)
  bA: number;            // Decay coefficient for autotrophs (1/d)

  // Stoichiometric parameters
  YH: number;            // Yield for heterotrophic biomass (mg COD/mg COD)
  YA: number;            // Yield for autotrophic biomass (mg COD/mg N)
  fp: number;            // Fraction of biomass to particulate products
  iXB: number;           // N content of biomass (mg N/mg COD)
  iXP: number;           // N content of products (mg N/mg COD)

  // Hydrolysis parameters
  kh: number;            // Maximum specific hydrolysis rate (1/d)
  KX: number;            // Half-saturation coefficient for hydrolysis (mg COD/mg COD)

  // Correction factors
  tempCorrection: {
    theta: number;       // Temperature correction factor (-)
    referenceTemp: number; // Reference temperature (°C)
  };
}

ASM2dParameters ​

typescript
interface ASM2dParameters extends ASM1Parameters {
  // PAO-specific parameters
  muPAO: number;         // Maximum specific growth rate for PAO (1/d)
  qPHA: number;          // Rate constant for storage of PHA (1/d)
  qPP: number;           // Rate constant for storage of poly-P (1/d)
  KP: number;            // Half-saturation for phosphorus (mg P/L)
  KPHA: number;          // Half-saturation for PHA (mg COD/L)
  bPAO: number;          // Decay coefficient for PAO (1/d)

  // Stoichiometric coefficients for EBPR
  YPAO: number;          // Yield for PAO (mg COD/mg COD)
  iPAO: number;          // P content of PAO (mg P/mg COD)

  // Chemical precipitation
  kPRE: number;          // Precipitation rate constant (m³/mg/d)
  kRED: number;          // Redissolution rate constant (m³/mg/d)
}

ADM1Parameters ​

typescript
interface ADM1Parameters {
  // Hydrolysis parameters
  kHyd_ch: number;       // Hydrolysis rate for carbohydrates (1/d)
  kHyd_pr: number;       // Hydrolysis rate for proteins (1/d)
  kHyd_li: number;       // Hydrolysis rate for lipids (1/d)

  // Acidogenesis parameters
  km_su: number;         // Maximum uptake rate for sugars (1/d)
  km_aa: number;         // Maximum uptake rate for amino acids (1/d)
  km_fa: number;         // Maximum uptake rate for fatty acids (1/d)

  // Acetogenesis parameters
  km_c4: number;         // Maximum uptake rate for valerate/butyrate (1/d)
  km_pro: number;        // Maximum uptake rate for propionate (1/d)

  // Methanogenesis parameters
  km_ac: number;         // Maximum uptake rate for acetate (1/d)
  km_h2: number;         // Maximum uptake rate for hydrogen (1/d)

  // Yield coefficients
  Y_su: number;          // Yield for sugar degraders (kg COD/kg COD)
  Y_aa: number;          // Yield for amino acid degraders
  Y_fa: number;          // Yield for fatty acid degraders
  Y_c4: number;          // Yield for valerate/butyrate degraders
  Y_pro: number;         // Yield for propionate degraders
  Y_ac: number;          // Yield for acetate degraders
  Y_h2: number;          // Yield for hydrogen degraders

  // Decay rates
  kdec_X: number;        // Decay rate for biomass (1/d)

  // Inhibition parameters
  KI_h2_fa: number;      // Inhibition constant for H2 on fatty acids
  KI_h2_c4: number;      // Inhibition constant for H2 on valerate/butyrate
  KI_h2_pro: number;     // Inhibition constant for H2 on propionate
  KI_nh3: number;        // Inhibition constant for ammonia

  // Gas transfer
  kLa: number;           // Gas-liquid transfer coefficient (1/d)
  pGas_h2o: number;      // Partial pressure of water vapor (bar)

  // Temperature correction
  tempCorrection: {
    theta: number;       // Temperature correction factor
    referenceTemp: number; // Reference temperature (°C)
  };
}

State Variables ​

ASM1 State Variables ​

typescript
interface ASM1State {
  // Soluble components (mg/L)
  S_I: number;           // Inert soluble COD
  S_S: number;           // Readily biodegradable substrate COD
  S_O: number;           // Dissolved oxygen
  S_NO: number;          // Nitrate and nitrite nitrogen
  S_NH: number;          // Ammonia nitrogen
  S_ND: number;          // Soluble biodegradable organic nitrogen
  S_ALK: number;         // Alkalinity (mol HCO3/m³)

  // Particulate components (mg/L)
  X_I: number;           // Inert particulate COD
  X_S: number;           // Slowly biodegradable substrate COD
  X_BH: number;          // Active heterotrophic biomass
  X_BA: number;          // Active autotrophic biomass
  X_P: number;           // Particulate products from biomass decay
  X_ND: number;          // Particulate biodegradable organic nitrogen
}

ADM1 State Variables ​

typescript
interface ADM1State {
  // Soluble components (kg COD/m³)
  S_su: number;          // Monosaccharides
  S_aa: number;          // Amino acids
  S_fa: number;          // Long chain fatty acids
  S_va: number;          // Valerate
  S_bu: number;          // Butyrate
  S_pro: number;         // Propionate
  S_ac: number;          // Acetate
  S_h2: number;          // Hydrogen gas
  S_ch4: number;         // Methane gas

  // Inorganic components
  S_IC: number;          // Inorganic carbon (kmol C/m³)
  S_IN: number;          // Inorganic nitrogen (kmol N/m³)
  S_I: number;           // Soluble inerts (kg COD/m³)

  // Particulate components (kg COD/m³)
  X_c: number;           // Composites
  X_ch: number;          // Carbohydrates
  X_pr: number;          // Proteins
  X_li: number;          // Lipids
  X_su: number;          // Sugar degraders
  X_aa: number;          // Amino acid degraders
  X_fa: number;          // Fatty acid degraders
  X_c4: number;          // Valerate/butyrate degraders
  X_pro: number;         // Propionate degraders
  X_ac: number;          // Acetate degraders
  X_h2: number;          // Hydrogen degraders
  X_I: number;           // Particulate inerts

  // Gas phase (bar)
  p_h2: number;          // Hydrogen partial pressure
  p_ch4: number;         // Methane partial pressure
  p_co2: number;         // Carbon dioxide partial pressure
}

COD Fractionation ​

COD Components ​

Wastewater COD fractionation for ASM models:

typescript
interface CODFractionation {
  // Total COD
  totalCOD: number;      // Total COD (mg/L)

  // Soluble fractions
  S_I: number;           // Inert soluble COD (mg/L)
  S_S: number;           // Readily biodegradable COD (mg/L)

  // Particulate fractions
  X_I: number;           // Inert particulate COD (mg/L)
  X_S: number;           // Slowly biodegradable COD (mg/L)

  // Calculated fractions (0-1)
  f_SI: number;          // Fraction of soluble inert
  f_SS: number;          // Fraction of readily biodegradable
  f_XI: number;          // Fraction of particulate inert
  f_XS: number;          // Fraction of slowly biodegradable
}

Nitrogen Speciation ​

typescript
interface NitrogenSpeciation {
  // Total nitrogen
  totalN: number;        // Total nitrogen (mg N/L)

  // Inorganic nitrogen
  NH4_N: number;         // Ammonia nitrogen (mg N/L)
  NO2_N: number;         // Nitrite nitrogen (mg N/L)
  NO3_N: number;         // Nitrate nitrogen (mg N/L)

  // Organic nitrogen
  TKN: number;           // Total Kjeldahl nitrogen (mg N/L)
  S_ND: number;          // Soluble biodegradable organic N (mg N/L)
  X_ND: number;          // Particulate biodegradable organic N (mg N/L)
  organicN_inert: number; // Inert organic nitrogen (mg N/L)
}

Phosphorus Speciation ​

typescript
interface PhosphorusSpeciation {
  // Total phosphorus
  totalP: number;        // Total phosphorus (mg P/L)

  // Inorganic phosphorus
  PO4_P: number;         // Orthophosphate (mg P/L)
  polyP: number;         // Polyphosphate (mg P/L)

  // Organic phosphorus
  organicP: number;      // Organic phosphorus (mg P/L)

  // In biomass
  biomassP: number;      // Phosphorus in biomass (mg P/L)
}

Model Execution ​

Planned BiokineticsEngine Interface ​

typescript
interface BiokineticsEngine {
  /**
   * Execute one timestep of biokinetic model
   */
  step(
    state: ASM1State | ASM2dState | ASM3State | ADM1State,
    parameters: ModelParameters,
    dt: number,
    temperature: number,
    volume: number
  ): {
    newState: ModelState;
    rates: ProcessRates;
    outputs: ModelOutputs;
  };

  /**
   * Calculate steady-state solution
   */
  steadyState(
    influent: ModelState,
    parameters: ModelParameters,
    operatingConditions: OperatingConditions
  ): ModelState;

  /**
   * Validate parameters
   */
  validateParameters(parameters: ModelParameters): {
    valid: boolean;
    warnings: string[];
    errors: string[];
  };
}

Implementation Status ​

Current Status: Biokinetic model interfaces are in the design phase.

Planned Implementation:

  1. ASM1 for basic nitrification/denitrification modeling
  2. ASM2d for biological phosphorus removal
  3. ADM1 for anaerobic digestion and biogas production
  4. Model parameter libraries for typical wastewater types
  5. Temperature correction functions
  6. Steady-state and dynamic solvers

Future Documentation ​

This section will be expanded to include:

  • Complete parameter definitions for each model
  • Default parameter sets for municipal wastewater
  • Influent characterization methods
  • Stoichiometry matrices
  • Process rate equations
  • Solver configuration
  • Model calibration guidelines
  • Typical operating ranges

References ​

  1. Henze, M., et al. (2000). Activated Sludge Models ASM1, ASM2, ASM2d and ASM3. IWA Publishing.
  2. Batstone, D.J., et al. (2002). The IWA Anaerobic Digestion Model No 1 (ADM1). Water Science and Technology, 45(10), 65-73.
  3. Rieger, L., et al. (2012). Guidelines for Using Activated Sludge Models. IWA Publishing.