1. 冷箱整体换热温差基线建立与偏差识别
为什么先建基线,而不是直接看温差
冷箱内部是多股流换热,整体温差(热端温差、冷端温差、各段端差)本身随负荷、环境温度、原料气组成和制冷剂配比连续变化。单看某一时刻的温差数值,无法判断"正常"还是"异常"。因此第一步必须用设计参数 + 历史稳定工况数据建立各换热段的温差基线,再把当前运行温差与基线比较,用偏差量而非绝对值来识别异常时段。
本例采用"设计值锚定 + 历史数据修正"的双层基线:设计值给出物理上限与期望值,历史数据给出实际运行中的正常波动带(均值 ± k·标准差)。偏差识别用标准化残差 z 值判定,避免不同换热段因量纲和波动幅度不同而误判。
基线建立与偏差识别的数据链路
用示例数据走一遍基线建立
下表为某冷箱三个换热段的历史稳定工况统计结果(示例数据,用于演示方法,非实测)。每段独立计算均值 μ 与标准差 σ,形成正常波动带。
| 换热段 | 设计端差 (℃) | 历史均值 μ (℃) | 标准差 σ (℃) | 正常带 μ±2σ (℃) |
|---|---|---|---|---|
| 热端段 | 3.0 | 3.4 | 0.25 | 2.90 ~ 3.90 |
| 中段 | 2.5 | 2.8 | 0.30 | 2.20 ~ 3.40 |
| 冷端段 | 2.0 | 2.3 | 0.20 | 1.90 ~ 2.70 |
注意历史均值略高于设计端差,这是正常现象——设计值为理想工况,实际运行存在污垢、分配不均等固有偏差。基线应以历史均值为中心,设计值仅作物理合理性校核(若 μ 偏离设计值超过 30%,需先排查仪表或工况选取问题)。
偏差识别实现
下面代码读取当前运行各段温差,按段计算 z 值,并标记连续超限的异常时段。数据以列表形式内嵌,可直接运行验证。
import statistics
# 各段基线(来自历史统计)
baseline = {
"热端段": {"mu": 3.4, "sigma": 0.25},
"中段": {"mu": 2.8, "sigma": 0.30},
"冷端段": {"mu": 2.3, "sigma": 0.20},
}
# 当前运行各段温差序列(示例数据,按小时采样)
current = {
"热端段": [3.5, 3.6, 3.4, 3.7, 4.2, 4.6, 4.8, 4.5, 4.1, 3.8],
"中段": [2.9, 2.8, 2.7, 2.9, 3.0, 3.1, 3.0, 2.9, 2.8, 2.9],
"冷端段": [2.2, 2.3, 2.4, 2.3, 2.5, 2.6, 2.7, 2.6, 2.4, 2.3],
}
Z_WARN, Z_ALARM, CONSEC = 2.0, 3.0, 3
def detect(seg, series):
mu, sigma = baseline[seg]["mu"], baseline[seg]["sigma"]
flags = []
for i, t in enumerate(series):
z = (t - mu) / sigma
if abs(z) > Z_ALARM:
flags.append("异常")
elif abs(z) > Z_WARN:
flags.append("关注")
else:
flags.append("正常")
# 连续超限判定
abnormal_runs = []
run_start = None
for i, f in enumerate(flags):
if f == "异常":
if run_start is None:
run_start = i
else:
if run_start is not None and i - run_start >= CONSEC:
abnormal_runs.append((run_start, i - 1))
run_start = None
if run_start is not None and len(flags) - run_start >= CONSEC:
abnormal_runs.append((run_start, len(flags) - 1))
return flags, abnormal_runs
for seg in baseline:
flags, runs = detect(seg, current[seg])
print(f"{seg}: {flags}")
if runs:
for s, e in runs:
print(f" 异常时段: 第{s}~{e}点")
else:
print(" 无连续异常时段")
运行结果(示例数据直接推出):热端段在第 4~7 点 z 值超过 3,连续 4 点超限,判定为异常时段;中段与冷端段全部落在正常带内。这与表中数据一致——热端段当前温差升至 4.8℃,对应 z = (4.8−3.4)/0.25 = 5.6,远超阈值。
基线不是一次建好就永久使用。冷箱运行数月后,若换热器逐渐结垢,正常温差会缓慢漂移。建议每季度用最近一个月的稳定工况数据滚动更新 μ 与 σ,同时保留设计值作为漂移上限的校核依据。
若历史数据中混入了非稳态段(如开停车、大幅调负荷),σ 会被显著放大,导致正常带过宽、异常被掩盖。建基线前必须先按负荷、环境温度、原料气组成筛选稳定工况,并剔除温度变化率超过阈值的时段。
结果判读与后续衔接
本例输出的是"哪些时段整体温差偏离基线",属于时间维度的异常识别。若热端段被标记异常,下一步应采集该时段各股流进出口温度,计算各通道温差并与设计值对比,定位异常集中在哪个具体流道——这正是后续案例要处理的问题。本例只负责把异常时段圈出来,不展开流道级定位。