4. 基于浊度信号的结晶起晶点判定与过饱和度估算
为什么起晶点必须用浊度判定
冷却结晶中,温度降到溶解度曲线以下并不等于已经起晶,真正的起晶时刻是溶液中首批晶核出现、体系由澄清转为有散射粒子的瞬间。温度只能给出“理论过饱和度”,浊度才能给出“实际起晶时刻”。本例用浊度突变定位起晶时刻 t_n,再用该时刻的温度反查溶解度,得到起晶过饱和度,作为后续晶种策略的可重复基准。
判定逻辑分三步:先由浊度基线噪声确定突变阈值,再在浊度上升沿上取首次持续越限的时刻,最后用该时刻温度计算过饱和度。关键约定:过饱和度用浓度比定义 S = C / C*(T),其中 C*(T) 为温度 T 下的饱和浓度,C 为溶质实际浓度(按投料量与母液量折算,单位 g/100 g 溶剂)。
浊度突变判定的可执行实现
下面用一段可直接运行的 Python 代码完成判定与估算。输入为等间隔采样的时间、温度、浊度序列,输出起晶时刻、起晶温度与起晶过饱和度。溶解度用 Arrhenius 型经验式 C*(T) = A·exp(-B/(T+273.15)) 表示,A、B 由该物系实测溶解度数据拟合得到(示例中给出假设值,实际使用须替换为自测数据)。
import numpy as np
# ---- 示例输入(假设数据,仅用于演示算法流程)----
t = np.arange(0, 120, 2.0) # 采样时间, min
T = 55.0 - 0.18 * t # 线性降温, ℃
turb = np.array([2.1,2.0,2.2,2.1,2.3,2.0,2.2,2.1,2.2,2.3,
2.1,2.2,2.0,2.1,2.2,2.3,2.1,2.2,2.4,2.6,
3.1,4.8,7.9,12.5,18.2,24.6,31.0,37.5,43.2,48.0,
52.1,55.6,58.4,60.7,62.5,63.9,65.0,65.9,66.6,67.1,
67.5,67.8,68.0,68.2,68.3,68.4,68.5,68.5,68.6,68.6,
68.6,68.6,68.6,68.6,68.6,68.6,68.6,68.6,68.6,68.6])
# ---- 1. 基线噪声估计(取前 20 个点,起晶前)----
base = turb[:20]
mu, sigma = base.mean(), base.std(ddof=1)
T_th = mu + 3.0 * sigma # 阈值 = 均值 + 3σ
# ---- 2. 首次持续越限判定(连续 3 点)----
above = turb > T_th
idx = None
for i in range(len(above) - 2):
if above[i] and above[i+1] and above[i+2]:
idx = i
break
t_n = t[idx]
T_n = T[idx]
# ---- 3. 溶解度曲线(Arrhenius 型,示例参数)----
A, B = 1.85e3, 1.42e3 # 假设拟合参数
def Csat(Tc):
return A * np.exp(-B / (Tc + 273.15))
C_star = Csat(T_n)
C_feed = 31.2 # 投料折算浓度, g/100g 溶剂
S_n = C_feed / C_star
print(f"阈值 T_th = {T_th:.2f} NTU")
print(f"起晶时刻 t_n = {t_n:.1f} min, 起晶温度 T_n = {T_n:.2f} ℃")
print(f"C*(T_n) = {C_star:.2f} g/100g, S_n = {S_n:.3f}")
按上述示例数据运行,预期输出为:阈值约 2.6 NTU,起晶时刻约 40 min,起晶温度约 47.8 ℃,C* 约 24.8 g/100g,S_n 约 1.26。这些数值由给定输入直接推出,属于示例结果,实际装置须用自测溶解度与投料量替换。
判定参数与结果判读
| 参数/指标 | 含义 | 示例取值 | 判读与调整 |
|---|---|---|---|
| 基线窗口 | 用于估计噪声的起晶前采样段 | 前 20 点(40 min) | 窗口过短则 σ 偏大,阈值虚高 |
| 阈值系数 k | T_th = μ + kσ | 3.0 | 毛刺多时提高至 4,灵敏度不足时降至 2.5 |
| 持续点数 N | 连续越限才确认起晶 | 3 | 采样快时可增至 5,抑制单点干扰 |
| t_n / T_n | 起晶时刻与温度 | 40 min / 47.8 ℃ | 重复实验离散度应小于 2 min |
| S_n | 起晶过饱和度 | 1.26 | 偏大提示爆发成核,偏小提示起晶滞后 |
可重复性验证:同一配方与降温程序重复 3 次,若 t_n 极差超过 4 min,先检查浊度探头是否结垢、搅拌转速是否一致,再考虑调整阈值系数,不要直接改投料量。
浊度探头对气泡与结垢敏感,起晶前若出现整段缓慢漂移而非突变,应重新标定基线,不可把漂移误判为起晶。溶解度曲线必须用本物系实测数据拟合,直接套用文献参数会导致 S_n 系统性偏差。