當測量發生在不同的時間尺度上時,製造過程建模會面臨挑戰。例如,一家公司生產的玻璃含有二氧化硒(SeO2),由於SeO2在高溫熔點下易揮發,導致大量蒸發,這些蒸發物會被除塵器捕獲。更複雜的是,含SeO2的粉塵具有毒性,為處理帶來了難題。預測粉塵中的SeO2含量,可以將其回收利用到製造過程中,從而促進可持續、循環、零廢棄的生產,並降低成本。
玻璃製造過程連續進行,每分鐘採集一次感測器讀數以取得輸入變數。然而,粉塵中二氧化硒(SeO2)含量的測量間隔較長,因此需要足夠的粉塵累積才能達到均質化。在本次報告中,我們將展示如何利用有限的資料集建立二氧化硒粉塵濃度預測模型。為了確保製程參數在粉塵採樣期間得到平均,我們採用了蒙特卡羅模擬,並利用了製程參數的變異性。
本文利用 JMP Pro 概述了資料收集和準備方法,以及如何利用模擬資料建立二氧化硒濃度預測模型。我們探討了此方法在面臨類似挑戰的產業(例如化學或生物技術產業)的潛在應用價值,在這些產業中,對具有不同時間尺度和不確定性的過程進行建模十分常見。
大家好。我叫 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%的昂貴原料被取代,並且完全消除了濾塵處理成本。
就這樣。非常感謝。