当测量发生在不同的时间尺度上时,制造过程建模会面临挑战。例如,一家公司生产的玻璃含有二氧化硒(SeO2),由于SeO2在高温熔点下易挥发,导致大量蒸发,这些蒸发物会被除尘器捕获。更复杂的是,含SeO2的粉尘具有毒性,给处理带来了难题。预测粉尘中的SeO2含量,可以将其回收利用到制造过程中,从而促进可持续、循环、零废弃的生产,并降低成本。
玻璃制造过程连续进行,每分钟采集一次传感器读数以获取输入变量。然而,粉尘中二氧化硒(SeO2)含量的测量间隔较长,因此需要足够的粉尘积累才能实现均质化。本次报告中,我们将展示如何利用有限的数据集建立二氧化硒粉尘浓度预测模型。为了确保工艺参数在粉尘采样期间得到平均,我们采用了蒙特卡罗模拟,并利用了工艺参数的变异性。
本文利用 JMP Pro 概述了数据收集和准备方法,以及如何利用模拟数据构建二氧化硒 (SeO2) 浓度预测模型。我们探讨了该方法在面临类似挑战的行业(例如化工或生物技术行业)的潜在应用价值,在这些行业中,对具有不同时间尺度和不确定性的过程进行建模十分常见。
大家好。我叫 Drejc Kopac,这项工作是我和我的同事兼联合演讲人 Matej Emin 以及 Philip Ramsey 教授合作完成的。
本次演讲的主题是预测玻璃熔融过程中的排放物,重点是模拟连续过程,并对过滤粉尘进行稀疏批次采样。
该项目是与斯洛文尼亚最大的玻璃制造商合作完成的,目的是建立一个预测过滤器粉尘成分的模型,以便对其进行回收利用。
首先,让我们来可视化一下我们正在建模的对象。这里是一个玻璃熔炉的三维示意图,我们可以看到它与人体相比的大小。原材料进入熔炉熔化,然后熔化的玻璃沿着管道流向生产线。我们可以看到两个热交换器,烟气在这里与过滤器进行交换。
我们还可以看到左右两个燃烧器周期性地交替工作。这种周期性会导致数据集出现短期波动。炉内工况和烟气特性对我们的工作至关重要,这也是我们将重点关注的内容。
为了更清晰地说明情况,这里展示一个以循环经济方式呈现的工艺流程图。如前所述,烟气首先进入热交换器。在这里,烟气被冷却,然后被静电过滤器捕集。在静电过滤器中,烟气进一步冷却并与氢氧化钙混合,从而净化烟气。
净化后的烟气经烟囱排出过滤器,而颗粒状粉尘则被收集到大袋子中。故事就此展开。这每天300-400公斤的粉尘能否回收利用,送回炉内而不是直接丢弃?要实现回收利用,我们需要了解过滤器中粉尘的成分。这正是本项目的主要内容。
这种粉尘及其回收利用的主要问题在于硒。硒是一种玻璃脱色剂。二氧化硒在玻璃熔化温度下易挥发,因此会迅速蒸发并被过滤器捕获。这种过滤器粉尘被视为危险废物,因此处理成本很高。问题是,是否有办法回收利用熔炉中每天产生的300-400公斤粉尘?需要说明的是,考虑到每天大约生产150吨玻璃,这个数量并不算多。
问题在于玻璃颜色对硒浓度极其敏感。这意味着硒浓度必须非常精确。对这种粉尘进行测量和化学分析既昂贵又耗时。一种可能的解决方案是建立预测模型。但这其中存在诸多挑战。
首先,玻璃制造过程是连续的,传感器每分钟读取一次数据。有40多个在线传感器测量各种温度、气体消耗量、加热器功率、玻璃池流速等。这里的挑战在于,如何基于对滤尘的稀疏采样、基于不同的采样时间尺度以及当然还有许多工艺参数,构建一个预测粉尘样本中二氧化硒含量的模型。
通常,当我们启动此类项目时,最典型的做法是收集历史数据,与公司内部的专家(例如工艺工厂经理)坐下来进行初步的数据筛选和头脑风暴。我们也采用了这种方法。我们收集了一年多的历史数据,并尝试与相关领域的专家一起确定关键参数。
在右侧,虽然有些模糊,但我们可以看到一个典型的多元图,它显示了参数之间的相关性。这个图通常有助于我们减少模型中影响较大的参数数量。
通常,获取可以可视化和分析的数据集需要花费大量时间,尤其是在处理工业数据集时。我将快速向您展示SCADA报告中的原始数据是什么样子的。
例如,这是该公司一天的典型数据报告。您可以看到,参数并非像我们通常那样排列在列中,而是排列在行中。如果您向下滚动这些数据,您会发现参数名称每分钟都会变化,其值则记录在这里。继续向下滚动,您会发现有 30 到 40 个参数以行而不是列的形式排列。
另一方面,这个数据集还有第二部分,实际上它已经按列排序了。您可以看到,参数实际上是按列输入的。这里的难点在于如何重新排序或重新格式化这个数据集,以便将其导入到 JMP 中。我们编写了一个简单的 JSL 脚本。我来快速演示一下。
这个 JSL,也就是 JMP 脚本语言脚本,会进入这个循环。这里,每 24 小时的数据是另一个处理因素。它实际上会遍历这个数据集,并将数据放入相应的列中,然后附加来自数据集第二部分的列。这就是我们使用的脚本。最终,我们得到了一个排列有序的数据集,其顺序与我们通常看到的一致。列中包含了所有这些参数,当然,它们都经过了匿名化处理。数据以分钟为间隔采集。这是第一部分。正如我提到的,通常需要相当长的时间才能完成到这一步。
首先,将数据可视化非常重要,这样我们才能大致了解数据所传达的信息。这里我们可以看到一组 X、Y 坐标图。这些图清晰地展示了数据的短期波动。这种短期波动,也就是这些 20 分钟的峰值,对应于切换燃烧器左右两侧的 20 分钟间隔。大部分短期波动都发生在这 20 分钟的间隔内。当我们采集过滤器粉尘样本时,这条信息对我们来说至关重要。
为了验证数据集中的这20分钟周期,我们使用了JMP中的时间序列分析平台。该平台清晰地显示了这一周期性,以及由于左侧或右侧燃烧器点火而导致的±20分钟的延迟。结合其他专业知识,例如熔体到过滤器的流出物过渡时间(约15秒)和过滤器除尘时间(约1分钟),我们随后将粉尘样本、测量数据和工艺参数结合起来。这些步骤在采集粉尘样本之前至关重要。
基于以上信息、专业知识以及之前的内部测试,影响二氧化硒含量的最重要参数之一是玻璃池的抽吸率。因此,我们向制造商索取了提前一个月制定的抽吸率方案,并从中选择了最佳日期进行滤尘的物理采样。我们选取了抽吸率的最小值、最大值以及中间值作为目标。通过这种方式,我们力求最大程度地覆盖参数范围。
一旦我们确定了生产线以如此高的产量运行的日期,我们就前往工厂,收集了粉尘并进行了均质化处理。然后,我们将这些粉尘送往外部机构进行ICP-OES分析,以确定滤尘的成分。我们尤其关注二氧化硒的含量。
这些是流程中的一些照片。右边这张照片展示的并非数据科学家办公室的日常工作。但这项任务确实是我们自己完成的,因为这是获取高质量数据的关键步骤。我们不想冒任何风险,比如样本出错,或者标签错误等等。
从外部机构收到结果后,我们将其录入数据集。您可以在这里看到原始数据集,但现在新增了一个名为“IGR 结果”的列。基本上,在某些时间段内,该列中的值对应于我们采集粉尘时二氧化硒的含量。
一旦我们获得了这组数据,就可以开始建模了。我们从一个非常简单的模型开始。我们使用了九个测定二氧化硒含量的数据点。这些数据点非常……我们对这些数据点非常有信心,因为时间和日期都非常明确,而且粉尘的成分也始终保持均质化。
此外,还有五个数据点可用,这些数据点来自内部人员对多个大袋灰尘进行的采样。但由于大袋灰尘采样较为粗略,这五个数据点的时间只能近似确定。我们预计这些数据点会给模型带来更大的不确定性。然而,如果不包含这些额外的数据点,模型在统计学上并不显著。因此,我们需要将这些数据点添加到数据集中。
我们重点关注三个输入参数,即天然气流量、玻璃拉拔率和电加热器功率。这些参数被认为影响最大,并且在采样期间数值基本保持不变。需要说明的是,我们取的是粉尘采样期间这些参数的中位数。
这里还展示了这些参数在采集尘埃样本日期对应的图表。我们使用了简单的标准最小二乘法进行建模,并考虑了二阶交互作用。最终得到的模型如下。我将在 JMP 中展示。这些数据点包括我们自行采集的尘埃样本中的九个点,以及从大袋采样中获得的五个点。这是一个简洁明了的模型,包含了二阶交互作用。
当然,我们可以看到 R² 值很高,非常接近 1。P 值也很低。可以说这是一个具有统计学意义的模型。此外,各因子的 P 值也很低。这意味着所有这些因子都很重要。但是,这个简单模型的问题或局限性可以在底部的分析器中看到。我稍微缩小一下视图,像这样。
公司专家也注意到,主要问题在于二氧化硒含量与天然气流量和加热器功率之间存在着非常陡峭的关系。如果这些数值取极端值,就会发现二氧化硒含量会被高估或低估。
此外,我们可以看到,在提取速率参数上,如果提取速率达到极端值,例如每天130吨,则二氧化硒预测的误差范围或不确定性会变得非常大。这些已经是该模型的一些缺陷,也让我们相信它不具有统计学意义。因此,这个简单的模型对新测量结果的预测效果并不理想,甚至出现了一些不符合物理实际的预测。
我们发现其他参数可能也会影响二氧化硒的含量,但由于数据集有限,我们无法将其纳入考虑。如前所述,预测分析表明,在参数空间的极端值处存在较大的不确定性。为了构建更完善的模型,我们需要考虑更多工艺参数。
当然,我们只有九次测量数据,而且我们也不想送检更多的粉尘样本,因为这既耗时又昂贵。我们问自己,关于工艺变异的信息能否为现有数据集提供一些额外信息,因为其他参数也可能产生影响。
在这里,我们开始考虑数据的变异性。首先,外部实验室测定的二氧化硒含量存在测量不确定度。这本身就是一种测量误差,我们可以利用它。此外,对于每个20分钟的采样间隔,我们都有18个数据点,这些数据点来自18分钟的传感器读数(当然,燃烧器切换期间的两分钟除外)。这18个测量值具有一定的分布特征。这里,我只展示其中五个,以便大家了解它们的形状。
我们的想法是,鉴于这种分布均值,实际上,由于某些分布略微偏斜,我们使用了中位数。考虑到分布的离散程度,我们可以从这些原始总体中随机抽取值,从而使用蒙特卡罗方法生成合成数据集。
我们与流程专家一起,从所有流程参数中筛选出13个输入参数。这13个参数被认为是影响最大的。此外,它们呈正态分布,或者至少在采样期间近似呈正态分布。它们没有异常值、没有异常误差,也没有短期时间漂移。这正是我们最初要求的,即选择具有良好分布的因素。
这里一个非常重要的注意事项是,我们必须小心保持各因素之间的相关性,也就是保持过程参数之间的关系不变。你可以想象,如果两个参数高度相关,那么当你随机选择一个参数值并将其设为非常高时,另一个参数的值也应该偏向于更高的值。当然,在蒙特卡罗方法中,这些参数相关性应该在随机选择过程中得到保留。我们通过协方差矩阵实现了这一点。
您可能已经了解JMP中的多元分析方法。我可以为您演示一下。在清理完数据集后,对于每个粉尘测量值,我们都可以构建这些多元图,它们现在就在这里。总共进行了九个多元图分析。对于每个分析,我们都可以提取协方差矩阵。这可以让我们了解这些参数之间的相关性。
对于每次粉尘采样,都会生成相应的协方差矩阵。我们导出了这些矩阵。这里我们使用 Python,是因为 NumPy 中有一个名为“多元正态分布”的方法。我们用它来生成多维正态分布,并考虑了这些协方差。我确信用 JMP 编写一些脚本也能做到这一点,但对我们来说,用 Python 更方便一些,因为我们更习惯在 Python 中使用这些方法。
利用这些方法,我们基本上可以生成一个合成数据集。我们正是利用这些矩阵完成了这项工作。针对每个选定的粉尘采样点,我们生成了500个合成值。我们使用了9个数据点,或者说9个区间,这些数据点来自我们自己采集并经过均质化的可靠样本。
但我们也使用了来自大袋取样的额外测量数据,该样品的二氧化硒含量非常低。这是为了将参数空间扩展到低二氧化硒值范围。我来向您展示一下具体情况。
这些是模拟或合成数据集。您可以看到 5000 行,也就是 500 乘以 10。当然,参数之间的相关性在这里得到了保留。我们已经验证过了。可以说,这是一个非常好的数据集,可以用来进行更详细的建模,因为我们现在拥有足够的数据。我们立即想到用神经网络来建模。我们进行了尝试,结果显示了一个不错的统计模型。
我们使用了一个包含三个 TanH 函数和一个隐藏层的简单神经网络,方法非常简单。训练集和验证集的 R² 值都非常高。顺便一提,我们将这 5000 个数据点分成三分之二用于训练,三分之一用于验证。此外,实际值与预测值的对比图也表明该模型具有统计学意义。
然后我们导出了这个模型。现在回到 JMP。您可以点击这里保存预测公式。但更重要的是……我先回到演示文稿。更重要的是,我们想用我们已有的其他大袋抽样数据来测试这个模型的预测结果。我们将这些大袋抽样数据用作验证点。
这里是二氧化硒的实际测量值,这是二氧化硒的预测值。将这两个数值绘制在“实际值 vs 预测值”图中,我们可以看到模型对其他测量值的预测效果相当不错。只有一大袋样品(编号为1)的预测值略高于实际值。基于这些测量值,“实际值 vs 预测值”曲线的R²值为0.86。我们对这个结果非常满意,下一步是将其展示给公司内部人员。
更重要的是,我们通过这个分析器来展示结果。在这个分析器中,我们调用了一个模拟器,您可以在这个红色三角形下方找到它。这里,我们不再仅仅基于这13个工艺参数预测一个二氧化硒含量的单一值,而是尝试模拟在将二氧化硒装入大袋期间,这些工艺参数的不确定性所导致的二氧化硒分布情况。我们在此确定了该时间段内这些工艺参数的均值和标准差。基于这些值,我们就可以模拟二氧化硒的预测值。
此外,我们可以从这个分析器中看出,响应比简单的线性或二次方行为要复杂得多。这些参数之间存在许多相互作用。但更重要的是,预测散点的模拟器给出了这批大袋样品中二氧化硒的分布情况。事实上,JMP 中的分布平台显示,正态二元混合分布最适合这种情况。我们对这个结果非常满意,因为它表明该分布与之后测量的值确实吻合。
我之前提到的关键步骤是考虑相关性,也就是考虑因子间的协方差。我们测试了如果不在蒙特卡罗模拟中考虑这些相关性会发生什么。这里你可以看到相同测量值的实际值与预测值的对比图,但我们模拟合成数据集时没有使用这些协方差。我们可以看到,首先,二氧化硒的预测范围不切实际,过大,而且数据点也更加分散。
对比两种模型(蓝色代表正确模型,红色代表错误模型,该模型未考虑相关性),可以看出蓝色模型要好得多。当然,它对二氧化硒的预测也更加符合实际。
总之,尽管最初的粉尘采样稀少且数据集较小,我们仍然构建了一个用于预测滤尘中二氧化硒含量的有效模型。考虑到过程的复杂性和数据集的稀缺性,我们发现蒙特卡罗方法实际上是必要的。此外,我们使用的神经网络模型实际上……我们也测试了一些其他方法,但神经网络模型被证明是更好的选择,因为这些参数之间的相关性并不高,而是相互作用的。因此,神经网络模型保留了这些相互作用。
利用新的粉尘采样方法测试了该模型的预测能力,结果表明其预测结果真实可靠且具有实际应用价值。最重要的结论是,在试点试验中,该方法实现了废弃滤尘100%回收利用。由此,玻璃脱色工艺中60%的昂贵原材料被替代,并且完全消除了滤尘处理成本。
就这样。非常感谢。