MatLens · Ecuaciones y modelos

DLS y potencial zeta

Esta sección resume las ecuaciones que MatLens aplica en el análisis de dispersión dinámica de luz (DLS) y de movilidad electroforética (potencial zeta), con las convenciones exactas del código.

Constantes y valores por defecto

Constantes CODATA 2018: k_B = 1.380649\times10^{-23} J/K, e = 1.602176634\times10^{-19} C, N_A = 6.02214076\times10^{23} mol⁻¹, \varepsilon_0 = 8.8541878128\times10^{-12} F/m.

Valores por defecto (agua a 25 °C): T = 298.15 K, \eta = 0.8900 mPa·s (IAPWS R12-08), \varepsilon_r = 78.30, n = 1.331 a 633 nm; longitud de onda \lambda_0 = 632.8 nm (He–Ne) y ángulo \theta = 173^\circ (retrodispersión no invasiva). La viscosidad y la permitividad no se recalculan al cambiar T: deben introducirse para la temperatura real.

Vector de dispersión y relación de Stokes–Einstein

Código: matlens/core/dls.py::scattering_vector, matlens/core/dls.py::stokes_einstein_d, matlens/core/dls.py::stokes_einstein_D.

q = \frac{4\pi n}{\lambda_0}\,\sin\frac{\theta}{2}
D = \frac{k_B T}{3\pi\eta d_H}, \qquad d_H = \frac{k_B T}{3\pi\eta D}
SímboloSignificadoUnidades
qmódulo del vector de dispersiónm⁻¹
níndice de refracción del medio—
\lambda_0longitud de onda del láser en el vacíonm (convertida a m)
\thetaángulo de deteccióngrados
Dcoeficiente de difusión traslacionalm²/s
d_Hdiámetro hidrodinámicom (se informa en nm)
\etaviscosidad del mediomPa·s (convertida a Pa·s)
TtemperaturaK

Validez: esferas que difunden libremente en un medio newtoniano, sin interacciones (dilución suficiente).

Referencia: Einstein, Ann. Phys. 17, 549 (1905).

Relación de Siegert y método de cumulantes (promedio Z, PDI)

Código: matlens/core/dls.py::cumulants, matlens/core/dls.py::cumulant_correlogram.

La relación de Siegert liga la autocorrelación de intensidad con la de campo:

g_2(\tau) - 1 = \beta\,|g_1(\tau)|^2

El desarrollo en cumulantes de \ln g_1 hasta segundo (o tercer) orden da el modelo que se ajusta:

\ln\!\left[g_2(\tau)-1\right] = \ln\beta - 2\Gamma\tau + \mu_2\tau^2 \;\left(-\,\frac{\mu_3}{3}\tau^3\right)
\Gamma = D q^2, \qquad \mathrm{PDI} = \frac{\mu_2}{\Gamma^2}, \qquad Z_{\mathrm{ave}} = \frac{k_B T}{3\pi\eta D}
SímboloSignificadoUnidades
\tautiempo de retardos
g_2-1correlograma de intensidad normalizado—
\betaintercepto (factor de coherencia)—
\Gammatasa media de decaimientos⁻¹
\mu_2, \mu_3segundo y tercer cumulantes⁻², s⁻³
PDIíndice de polidispersidad—
Z_{\mathrm{ave}}diámetro medio armónico ponderado en intensidadnm

Procedimiento de ajuste:

  • Si el correlograma se entrega como g_2 (la mediana del último 10 % de los puntos, mínimo 3, es mayor que 0.5 y hay al menos 10 puntos), se resta 1 automáticamente.
  • El valor inicial c_0 es el máximo del primer 5 % de los puntos (mínimo 3). Se usan solo los puntos con g_2-1 > \text{corte}\cdot c_0 (corte por defecto 0.1), y solo el primer bloque contiguo que supera el corte (el ruido cerca de la línea base se descarta aunque vuelva a cruzarlo).
  • Mínimos cuadrados lineales ponderados sobre \ln(g_2-1) con pesos w_i = (g_2-1)_i^2, la inversa de la varianza del logaritmo. Orden 2 por defecto; con orden 3 se añade la columna -\tau^3/3. No se necesitan valores iniciales (problema lineal).
  • Se requieren al menos orden + 3 puntos y \Gamma > 0.

Incertidumbre: el código no propaga incertidumbre a Z_{\mathrm{ave}} ni al PDI; informa el residuo cuadrático medio del ajuste en la escala de g_2-1.

Controles de validez: aviso si \mathrm{PDI} > 0.7 (distribución muy ancha, muestra probablemente no apta para DLS), si \mathrm{PDI} < 0 (ajuste no fiable) y si \beta \notin (0, 1.2] (normalización dudosa).

Referencias: Koppel, J. Chem. Phys. 57, 4814 (1972); ISO 22412:2017, §8.2 y anexo; Frisken, Appl. Opt. 40, 4087 (2001) (ponderación); Malvern Instruments, "Dynamic light scattering: common terms defined", Inform white paper MRK1764 (2011) (umbral de PDI).

Distribución de tamaños por NNLS regularizado (tipo CONTIN)

Código: matlens/core/dls.py::size_distribution.

g_1(\tau) = \sqrt{\frac{g_2(\tau)-1}{\beta}}, \qquad g_1(\tau_i) \approx \sum_{k} G_k\, e^{-\Gamma_k \tau_i}, \qquad \Gamma_k = q^2\,\frac{k_B T}{3\pi\eta d_k}
\min_{G \ge 0}\; \lVert K G - g_1 \rVert^2 + \alpha^2 \lVert L G \rVert^2, \qquad K_{ik} = e^{-\Gamma_k \tau_i}
SímboloSignificadoUnidades
d_krejilla de diámetros, logarítmica, 80 clases entre 0.5 y 10 000 nm (por defecto)nm
G_kpeso en intensidad de la clase k (no negativo)—
Lmatriz de segundas diferencias, filas (1,-2,1)—
\alphaparámetro de regularización de Tikhonov—

Procedimiento:

  • \beta por defecto es el intercepto del ajuste de cumulantes. Se descartan los puntos con g_1 \le 10^{-3} (se exigen al menos 10).
  • El sistema aumentado [K;\,\alpha L]\,G = [g_1;\,0] se resuelve con NNLS (scipy.optimize.nnls).
  • Si no se da \alpha, se prueban 25 valores logarítmicos entre 10^{-4} y 10 y se elige el de máxima curvatura de la curva L (\log\lVert KG-g_1\rVert frente a \log\lVert LG\rVert, derivadas numéricas respecto a \ln\alpha, excluyendo los extremos).
  • La distribución se normaliza a suma 1. Los picos se separan donde el peso cae por debajo del 1 % del máximo; para cada pico se informa la moda, la media geométrica ponderada en intensidad \exp\left(\sum w\ln d / \sum w\right) y la fracción.

Incertidumbre: no se propaga; se informa el residuo \lVert KG-g_1\rVert/\sqrt{N}. Siempre se emite un aviso de problema mal condicionado (picos cercanos se funden y picos pequeños pueden ser artefactos) y otro si más del 5 % de la intensidad cae en las dos clases de cada borde.

Referencias: Provencher, Comput. Phys. Commun. 27, 213 (1982); Hansen, SIAM Rev. 34, 561 (1992) (curva L).

Nota (diferencia con la literatura): CONTIN original elige \alpha mediante una prueba F y un nivel de probabilidad, y usa la ponderación por varianza de los datos; MatLens usa la esquina de la curva L, sin pesos, ajustando g_1 (no g_2-1).

Conversión intensidad → volumen → número (Mie / Rayleigh)

Código: matlens/core/dls.py::convert_distribution, matlens/core/dls.py::particle_scattering, matlens/core/dls.py::mie_s1_s2, matlens/core/dls.py::rayleigh_valid.

N_k \propto \frac{I_k}{s(d_k)}, \qquad V_k \propto N_k\, d_k^3, \qquad s(d) = \begin{cases} |S_1(\theta)|^2 & \text{(Mie, polarización vertical)}\\ d^6 & \text{(Rayleigh)} \end{cases}
x = \frac{\pi d\, n_{\mathrm{medio}}}{\lambda_0}, \qquad m = \frac{n_{\mathrm{partícula}}}{n_{\mathrm{medio}}}
SímboloSignificadoUnidades
I_kdistribución en intensidad (valores negativos recortados a 0)%
N_k, V_kdistribuciones en número y volumen, renormalizadas al 100 %%
S_1función de amplitud de dispersión perpendicular (BHMIE)—
xparámetro de tamaño—
míndice relativo complejo (por defecto n_p = 1.59, poliestireno)—

S_1 se calcula con el algoritmo BHMIE (derivada logarítmica por recurrencia descendente, número de términos x + 4x^{1/3} + 2).

Validez: la aproximación de Rayleigh se acepta solo si todas las clases con intensidad no nula cumplen d \le \lambda_0/(10\,n_{\mathrm{medio}}); si no, se avisa. Si el índice de la partícula coincide con el del medio (sin parte imaginaria) el resultado se marca inválido. Siempre se avisa de que las distribuciones en volumen y número amplifican el ruido y dependen del índice supuesto. Supone esferas homogéneas.

Referencias: Bohren & Huffman, Absorption and Scattering of Light by Small Particles, Wiley 1983, §4.4, §5.2 y apéndice A.

Potencial zeta: ecuación de Henry, Smoluchowski, Hückel y Ohshima

Código: matlens/core/dls.py::zeta_from_mobility, matlens/core/dls.py::mobility_from_zeta, matlens/core/dls.py::henry_function, matlens/core/dls.py::debye_length_nm.

\mu_e = \frac{2\varepsilon_r\varepsilon_0\,\zeta\, f(\kappa a)}{3\eta} \quad\Longleftrightarrow\quad \zeta = \frac{3\eta\,\mu_e}{2\varepsilon_r\varepsilon_0\, f(\kappa a)}
f(\kappa a) = 1 + \frac{1}{2\left[1 + \dfrac{2.5}{\kappa a\left(1 + 2e^{-\kappa a}\right)}\right]^3}
\kappa^{-1} = \sqrt{\frac{\varepsilon_r\varepsilon_0 k_B T}{2 N_A e^2 I}}
SímboloSignificadoUnidades
\mu_emovilidad electroforéticaµm·cm/(V·s) =10^{-8} m²/(V·s)
\zetapotencial zetamV
f(\kappa a)función de Henry—
\kappa^{-1}longitud de Debyenm
aradio de la partículam
Ifuerza iónica (electrolito simétrico)mol/L (convertida a mol/m³)

Modelos: smoluchowski usa f = 1.5 (doble capa delgada, \kappa a \gg 1, medio acuoso); huckel usa f = 1.0 (\kappa a \ll 1, medio no polar); henry calcula f(\kappa a) con la forma cerrada de Ohshima y exige \kappa a. Para \kappa a \le 0 la función devuelve 1.

Validez: aviso si se usa Smoluchowski con \kappa a < 10 o Hückel con \kappa a > 0.1. Supone esferas rígidas, potencial bajo (sin relajación de la doble capa) y la permitividad y viscosidad indicadas.

Incertidumbre: no se propaga.

Referencias: Henry, Proc. R. Soc. A 133, 106 (1931); Ohshima, J. Colloid Interface Sci. 168, 269 (1994); Hunter, Foundations of Colloid Science, 2.ª ed., OUP 2001, cap. 7 (longitud de Debye).

Media y dispersión de una distribución

Código: matlens/core/dls.py::distribution_mean.

\bar{x} = \frac{\sum_i w_i x_i}{\sum_i w_i}, \qquad \sigma = \sqrt{\frac{\sum_i w_i (x_i - \bar{x})^2}{\sum_i w_i}}

Pesos negativos se recortan a 0. Referencia: implementación propia.

Origen físico y límites de validez

La DLS mide fluctuaciones de la intensidad dispersada por el movimiento browniano. Para partículas que difunden libremente, el campo dispersado decae como g_1(\tau) = e^{-Dq^2\tau} (propagador de difusión en el espacio recíproco), y para una distribución de tamaños g_1(\tau) = \int G(\Gamma)\,e^{-\Gamma\tau}\,d\Gamma, una transformada de Laplace. La relación de Siegert supone un campo gaussiano (muchas partículas independientes en el volumen de dispersión, sin heterodinaje). El desarrollo en cumulantes es la serie de Taylor de \ln g_1 en torno a \tau = 0: \Gamma es la media de G(\Gamma) y \mu_2 su varianza, por eso solo describe bien distribuciones estrechas y unimodales y el ajuste se limita a la parte inicial del decaimiento (corte 0.1).

El promedio Z es un diámetro armónico ponderado en intensidad: como la intensidad de partículas pequeñas escala con d^6 (Rayleigh), unas pocas partículas grandes o agregados dominan el resultado. Stokes–Einstein falla para partículas no esféricas (da el diámetro de la esfera equivalente en difusión), en medios no newtonianos, en suspensiones concentradas (difusión colectiva, dispersión múltiple) y si hay sedimentación durante la medida.

Algoritmo completo de MatLens (cumulantes)

  1. Se eliminan los puntos no finitos o con \tau \le 0 y se ordenan por \tau.
  2. Detección de g_2: si hay al menos 10 puntos y la mediana del último 10 % (mínimo 3) supera 0.5, se resta 1.
  3. c_0 = \max del primer 5 % (mínimo 3 puntos); máscara g_2-1 > 0.1\,c_0; se conserva solo el primer bloque contiguo.
  4. Mínimos cuadrados lineales (numpy.linalg.lstsq) de \ln y sobre las columnas (1, -2\tau, \tau^2[, -\tau^3/3]), multiplicando filas y objetivo por y (peso y^2).
  5. \beta = e^{\text{coef}_0}, \Gamma, \mu_2; q con los parámetros ópticos; D = \Gamma/q^2; Z_\text{ave} por Stokes–Einstein; \mathrm{PDI} = \mu_2/\Gamma^2.
  6. Errores (no avisos): menos de orden + 3 puntos sobre el corte, o \Gamma \le 0.

Resumen de incertidumbre y avisos

ResultadoIncertidumbre que da MatLensLo que no incluye
Z_\text{ave}, PDIninguna (solo el RMS del ajuste)repetibilidad entre medidas; errores de T, \eta, n, \theta
Distribución NNLSninguna (residuo)ambigüedad de la inversión de Laplace; elección de \alpha
\zetaningunaerror de la movilidad, de \varepsilon_r, \eta y del modelo f(\kappa a)

Avisos que emite el código (warning): PDI > 0.7; PDI < 0; \beta \notin (0, 1.2]; problema mal condicionado (NNLS, siempre); más del 5 % de la intensidad en los bordes de la rejilla; Rayleigh fuera de validez; volumen y número dependientes del índice (siempre); Smoluchowski con \kappa a < 10; Hückel con \kappa a > 0.1. Inválido (invalid): índice de la partícula igual al del medio en la conversión Mie. ISO 22412:2017 pide repetir la medida e informar la dispersión del promedio Z; MatLens no lo hace automáticamente.

Ejemplo resuelto: cumulantes

Correlograma sintético de esferas de 100 nm en agua a 25 °C (\lambda_0 = 632.8 nm, \theta = 173^\circ), \beta = 0.90, PDI = 0.10, 200 retardos logarítmicos entre 10^{-7} y 10^{-1} s y ruido gaussiano \sigma = 10^{-3} (semilla fija). Las tasas de decaimiento siguen una distribución gamma de media \Gamma y varianza \mu_2, de modo que g_1(\tau) = (1+\Gamma\tau/k)^{-k} con k = 1/\mathrm{PDI} (sus cumulantes son exactamente \Gamma y \mu_2). Resultado de cumulants (orden 2, corte 0.1):

MagnitudValor
q2.63822e+07 m⁻¹
D verdadero4.9075e-12 m²/s
\Gamma verdadero3415.7 s⁻¹
\Gamma ajustado3413.3 s⁻¹
\beta ajustado0.9
Z_\mathrm{ave}100.07 nm
PDI0.0934
puntos usados118
RMS del residuo0.00108
validezok

Ejemplo resuelto: potencial zeta

Movilidad \mu_e = -3.0 µm·cm/(V·s), partícula de radio a = 50 nm en NaCl 1 mM (agua a 25 °C). debye_length_nm da \kappa^{-1} = 9.608 nm, luego \kappa a = 5.204. zeta_from_mobility con los tres modelos:

Modelof(\kappa a)\zeta (mV)validez
smoluchowski1.5-38.51warning
huckel1-57.77warning
henry1.156-49.98ok

Generado desde MatLens c0ab138. ← Todas las técnicas