1.基本情况
1.1 各种特气的容器和计量方式
| 中文名 | 英文名 | 容器 | 计量方式 |
|---|---|---|---|
| 氨气 | NH3 | 束管车 | 按重量 |
| 硅烷 | SIH4 | 束管车 | 按重量 |
| 笑气 | N2O | 束管车 | 按重量 |
| 三氟化氮 | NF3 | 束管车 | 按重量 |
| 三氯化硼 | BCl3 | 钢瓶 | 按重量 |
| 磷烷 | PH3 | 束管车 | 按压力 |
1.2 基本的计量逻辑
- 几种特气的计量方式大体上可以分为以下3类:
| 特气名称 | 计量方式 |
|---|---|
| 氨气、硅烷、笑气、三氟化氮 | 使用束管车作为容器,时段内消耗量(KG)=重量差值 |
| 三氯化硼 | 使用钢瓶作为容器,时段内消耗量(KG)=重量差值,总重量和束管车差距较大,要看看实际数据再说 |
| 磷烷 | 时段内消耗量(m3)=f(P2)-f(P1),f(x)是压力瞬时值的分段函数,计算结果是束管车内磷烷的体积(m3); |
2.按重量值计量
- 氨气、硅烷、笑气、三氟化氮、三氯化硼,使用束管车装载,束管车停在一个地磅上,由地磅计量)。
- 采集到的数据是车重+特气重的组合,即地磅称重值,随着束管车内的气体不断被使用,地磅称重值不断减轻,通过计算某一时间段的差值,即可得到某种特气的消耗量;

2.1 理想情况下的计量方式
- 理想情况下指的是:地磅称重值数据呈持续稳定下降趋势,如下图所示:
- 此时的消耗量计算方式可以参考有功电度的计算方式;
- 需要注意的是,有功电度持续上涨,地磅称重值持续下降,需要确保消耗量为正;

理想情况下的特气钢瓶重量(原始地磅读数)
2.2 重新装载情况下的计量方式
- 与电表不同的是,束管车内的特气,随种类不同,能使用3-10天不等,也就是说每3-10天,会有一个充装步骤(空车开下地磅,同时在旁边等待的满车开上地磅),结果是曲线有一个突然升高,如下图(模拟数据);
- 使用地磅称重值小时整点瞬时值相减的方式,计算小时级消耗量,可能会跨越充装步骤,导致小时级消耗量不准,因此暂定每分钟计算差值(diff),60个差值相加,得到特气的小时级消耗量;
- 在1min内完成换车的情况下,计算的分钟级消耗量是一个很大的负值,考虑通过一些方法,使系统判定这个很大的值是“重新装载”导致的:
- 1)定义“前一日平均差值”:前一日/向前寻找最近一日/人工给定 的一个平均差值(diff);
- 2)当计算的某个差值的绝对值,超过前一日平均差值 ,幅度大于某个倍数(100倍),则认为这个分钟级消耗量是“重新装载”导致的;
- 后续优化:经过分析采集到的数据发现,所有分钟级消耗量可以近似看作是正态分布的。使用平均值、标准差计算每一个分钟级消耗量的Z-score,Z-score绝对值大于等于10时,可以作为重新加载预警;
- 3)如果一个分钟级消耗量是“重新装载”导致的,无论它的diff是正值还是负值,均将这个分钟级消耗量更新为前一日平均差值,进行传递;

- 如果换车的时间超过1min,就会出现下图的情况,同理,会出现2个超过前一日平均差值100倍的分钟级消耗量,将它们更新为前一日平均差值即可;

2.3 噪声值和缺失值的情况
2.3.1 噪声值
- 如下图所示,存在一些上下抖动的点(目前来看,范围大概在±3kg以内);
- 将这些抖动的点形成的差值定义为噪声值:如果一个分钟级消耗量的绝对值,超过前一日平均差值 ,幅度大于某个倍数(5倍),且小于100倍,则认为这个分钟级消耗量是噪声值,需要处理;
- 后续优化:经过分析采集到的数据发现,所有分钟级消耗量可以近似看作是正态分布的。使用平均值、标准差计算每一个分钟级消耗量的Z-score,Z-score绝对值大于等于3时,可以作为噪声值预警;
- 对于噪声值的处理方法可能有以下两种(看看哪种好):
- 1)按时间顺序依次计算分钟级消耗量,计算后判断其与前一日平均差值的关系,如果是噪声值,则更新为前一日平均差值,同时更新地磅称重值(?同上);
- 后续优化:考虑使用滑动窗口(最近一小时)的平均值(而非上一日均值)来填充噪声值
- 2)不去管这种抖动形成的噪声值,因为一正一负可以抵消;如下图中,我利用原始数据计算出,总消耗量是+15.59KG(共2h);
- 似乎:利用5倍筛选的噪声值,如果有漏网之鱼,会自动变为第二种逻辑;
- 1)按时间顺序依次计算分钟级消耗量,计算后判断其与前一日平均差值的关系,如果是噪声值,则更新为前一日平均差值,同时更新地磅称重值(?同上);

- 下图是我们实际采集到的抖动值(最大幅度是1249~1243,±6),不确定是否有更大幅度(需要更多数据支撑),但看起来都是正负相抵;

2.3.2 缺失值
- 上图1中还有一处缺失值,系统判断某一分钟没有采集到地磅称重值后,认为该处存在缺失值,建议使用前一日平均差值进行填充,同时填充对应的地磅称重值(?同上);
- 后续优化:考虑使用滑动窗口(最近一小时)的平均值(而非上一日均值)来填充噪声值;

3.按压力值计量(磷烷)
2.1 基地提供的分段函数
- 磷烷密度低,不能称重计算,读取束管车内的实时压力(单位是PSI),使用分段函数(y=ax+b)计算当前压力下对应的气体的标况体积(Nm3)

2.2 理想情况下的计量方式
- 分别计算首、尾两个时间点的磷烷标况体积,相减即可得消耗值(Nm3);
- 暂定按1h/次的频率进行计算;
- 其余与氨气、硅烷、笑气、三氟化氮、三氯化硼的计算方法相同;
2.3 重新装载情况下的计量方式
- 可以看到,磷烷大约每3天更换一次,除了更换频率更高一些、单位不同,其他的与氨气、硅烷、笑气、三氟化氮、三氯化硼的计算方法相同;
2.4 噪声值和缺失值的情况
- 与氨气、硅烷、笑气、三氟化氮、三氯化硼的处理方法相同;