Matlab-Emulsion-polymerizat.../NOTES.md
2026-07-08 18:50:19 +03:00

8.9 KiB
Raw Blame History

Emulsion-Polymerization-Modeling — Analysis Notes

Source: gtancev/Emulsion-Polymerization-Modeling
Author: Georgi Tancev, PhD
Relevance to project: — Heterogeneous-phase framework; pairs with the copolymerization model


What This Code Does

Simulates seeded emulsion polymerization (Stage II — monomer droplets still present) in a 10 L batch reactor. Two model variants are run:

  • Model 1 (emulsion1.m) — Fixed n̄ = 0.5 (Smith-Ewart Case II)
  • Model 2 (emulsion2.m) — Dynamic n̄ from radical entry/exit balance

The state variables are:

  • n_M — total moles of monomer (both phases)
  • n_M_p — moles of monomer inside particles

Inferred Monomer/System (from parameters)

Parameter Value Interpretation
k_p = 715 L/(mol·s) Consistent with styrene at ~60°C (lit. ~480715)
M_M = 0.1 kg/mol Styrene MW = 104, close approximation
M_I = 0.164 kg/mol AIBN (MW = 164.21)
k_d = 5.55e-6 s⁻¹ AIBN at ~60°C
d_p_0 = 50 nm Typical seed particle diameter
phi_M = 0.5 Monomer volume fraction in swollen particle

The system is a styrene-like seeded emulsion polymerization in water with AIBN initiator and a nonionic-like emulsifier (Langmuir adsorption with K_E = 100 L/mol).


Model Components

Phase Structure

Three phases are tracked implicitly:

  1. Water phase — initiator, emulsifier, free radicals (c_R computed at quasi-steady-state: c_R = sqrt(2f·kd·cI/kt))
  2. Particle phase — polymer + swollen monomer (volume tracked via v_pol and v_p)
  3. Droplet phase — reservoir of monomer (present while n_M_d > 0)

Monomer Partitioning

While monomer droplets exist (Stage II), monomer in particles is maintained at the thermodynamic swelling equilibrium:

dn_M_P = n_s * c_M * 1/(1-phi) * dv_pol

Once droplets are exhausted, dn_M_P = dn_M (Stage III, all remaining monomer is in particles).

Model 1 — Fixed n̄ (emulsion1.m)

Smith-Ewart Case II: n̄ = 0.5 (at any instant, each particle contains exactly 0 or 1 radical with equal probability). Valid for small particles where termination upon entry of a second radical is instantaneous.

n_bar = 0.5;
dn_M = -k_p * c_M * n_bar / N_A * n_s;

Model 2 — Dynamic n̄ (emulsion2.m)

Steady-state radical balance inside particles:

n̄ = ρ / (2ρ + k_des)

where:

  • ρ = A_p * k_e * c_R * N_A — radical capture rate (1/s), proportional to particle surface area
  • k_des — radical desorption rate constant (1/s)

This is a simplified Nomura/Ugelstad expression that includes desorption as an exit mechanism. It predicts n̄ < 0.5 when desorption is significant.

Emulsifier Partitioning (in main.m only)

The code computes min/max bounds on emulsifier amount using a Langmuir adsorption isotherm:

F_E = F_E_inf * K_E * E_w / (1 + K_E * E_w)

where F_E_inf is the maximum surface coverage (from a_E, the area per emulsifier molecule). This is used to check whether the emulsifier loading falls between minimum stabilization (20% surface coverage) and CMC saturation. This is only calculated, not used dynamically in the ODE.


Critical Bug: Typo in Function Names

The function files contain a typo that will cause MATLAB to fail:

  • File: emulsion1.m → Function declared as: function [ dm ] = emuslion1(...) (missing 'l', 's' transposed)
  • File: emulsion2.m → Function declared as: function [ dm ] = emuslion2(...) (same typo)

In MATLAB, the function name inside the file must match the filename. main.m calls @emulsion1 and @emulsion2 (correct names), but the functions are defined as emuslion1 and emuslion2. This will throw an error on some MATLAB versions. Fix by correcting the function declarations:

% emulsion1.m line 1: change
function [ dm ] = emuslion1( t,n,n_s,n_M_0,V_p_0 )
% to:
function [ dm ] = emulsion1( t,n,n_s,n_M_0,V_p_0 )

Same fix needed in emulsion2.m.


Physical Limitations

  1. Seeded emulsion only (no nucleation) — particle number n_s is fixed. No homogeneous, micellar, or coagulative nucleation is modeled. This restricts simulation to Stage II and III only.

  2. Monodisperse particles — all particles are assumed identical (same size, same n̄). Real emulsions have a particle size distribution (PSD).

  3. Fixed radical concentration in waterc_R is computed once from the initial initiator concentration and held constant. In reality, cI decays and c_R drops with it; this is a significant approximation for long reaction times.

  4. No temperature model — all rate constants are isothermal. The polymerization of styrene is exothermic (~70 kJ/mol); temperature rise would accelerate kd and kp, changing kinetics.

  5. No gel/glass effect — unlike the copolymerization model, emulsion1/2 use constant k_p. At high conversion inside particles (phi → 0), diffusion limitation on kp should be included.

  6. No coagulation or Ostwald ripening — particle stability and size evolution by mass transfer are not modeled.

  7. n̄ expression in Model 2 is simplified — the full Smith-Ewart recursion for n̄ accounts for termination, entry, and exit across all radical numbers (n = 0, 1, 2, ...). The simplified expression ρ/(2ρ + k_des) holds in the limit of small n̄ and pseudo-bulk behavior but is not exact for intermediate cases.


Outputs Computed in main.m

For both models, the following are plotted vs. conversion or time:

  1. Conversion vs. time
  2. Total particle volume and polymer volume vs. conversion
  3. Monomer volume fraction in particles (φ) vs. conversion
  4. Particle diameter vs. conversion
  5. n̄ vs. time/conversion
  6. Number-average (n_N) and weight-average (n_W) chain lengths

The chain lengths are computed from the ratio of characteristic time scales:

  • tau_p = 1/(kp * c_M) — monomer consumption time
  • tau_in = 1/ρ — radical entry interval

Adaptation Suggestions for This Project

1. Fix the function name typo (immediate)

See above — must match file name and function declaration.

2. Fix the decaying initiator (important)

Replace the fixed c_R with an ODE for initiator:

% Add to state vector:
dcI = -kd * cI;
c_R = sqrt(2*f*kd*cI/kt);  % updated at each step

3. Couple with copolymerization kinetics

The most powerful adaptation: replace the single-monomer propagation (k_p * c_M * n_bar) with the Mayo-Lewis terminal model (from Copolymerization-Reaction-Modeling/batch.m) operating inside the particle phase. This would give a full emulsion copolymerization model.

4. Python port

Convert to Python using scipy.integrate.solve_ivp. The particle volume calculations and phase-switching logic (Stage II → III) translate straightforwardly.

def emulsion_odes(t, n, params):
    n_M, n_M_p = n
    # compute phase volumes, phi, c_M, n_bar
    # return [dn_M, dn_M_p]

5. Add particle size distribution (PSD)

Replace the single particle with a population balance — discretize particle sizes and track radical occupancy per size class.

6. Compare n̄ models

The two models (fixed vs. dynamic n̄) differ in their treatment of exit kinetics. Comparing their predictions vs. conversion reveals the importance of desorption for the specific monomer system. Small, water-soluble radicals (e.g., from vinyl acetate) have large k_des; hydrophobic monomers (styrene) have small k_des, so Model 1 and Model 2 should agree well for styrene.


Key Literature

  • [1] Free Radical Entry in Emulsion Polymerization: A Comprehensive Theory — Herrera-Ordonez, Macromol. React. Eng. 2025. Critical review of radical entry models; shows diffusion/adsorption is rate-limiting (not aqueous-phase propagation as in older theories).

  • [2] Calculations of the Average Number of Radicals per Particle — Tiwari, 2021. Smith-Ewart recursion and pseudo-bulk vs. 0-1 kinetics — directly relevant to the n̄ approximation used here.

  • [3] Particle by Particle Kinetic Monte Carlo Tracking in Miniemulsion — Marien et al., Macromolecules 2019. kMC approach showing the limits of the average-particle (Smith-Ewart) assumption; important context for Model 1 vs. Model 2.

  • [4] Gilbert, R.G. Emulsion Polymerization: A Mechanistic Approach, Academic Press, 1995. The canonical reference for emulsion polymerization kinetics.

  • [5] Nomura, M.; Harada, M. J. Appl. Polym. Sci. 1981, 26, 17. Original simplified n̄ expression similar to what is used in Model 2.


Notes written: 2026-06-26