在煉油過程中,一項關鍵的最佳化技術是利用低頻採樣對品質變數進行連續在線控制。這需要基於線上過程條件建立品質變數的經驗預測模型。該模型隨後被用作推斷變量,並可用於連續控制演算法。
有些模型即使具有很強的擬合統計量,在實際應用中也可能無法準確預測品質變量,這其中存在著許多陷阱。許多模型失效的原因並非工程師所能控制,例如異常的製程條件和輸入訊號故障。雖然可以建立預測模型來最大限度地減少製程外部因素的影響,但這往往會降低模型的準確性。因此,工程師面臨的挑戰是如何建立兼顧準確性和可靠性的預測模型。
本文探討了使用 JMP 建立適用於線上製程控制的預測模型的模型開發過程中的幾個步驟。透過使用自訂插件,可以將原始流程資料聚合為一種能夠過濾製程變異性的格式。聚合後的資料會使用諸如「分佈」和「異常值篩選」等工具進行篩選,以檢查異常值和運作範圍。模型輸入會透過列公式進行轉換,以進一步降低製程變異。最後,使用「擬合模型」中的「廣義迴歸」建立模型,以比較迴歸演算法並最小化輸入,從而提高可靠性。最終得到的模型能夠提供足夠的精度,以持續優化過程並滿足品質約束,同時保持對過程/儀表擾動的穩健性。
大家好,我叫安德魯‧韋弗,是埃克森美孚公司的控制應用工程師。今天我們將探討如何使用JMP建構用於線上最佳化控制的預測模型。在我們的化學和煉油裝置中,我們使用先進的製程控制器對裝置進行即時控制,以確保製程裝置符合品質標準,並透過減少產品損耗來優化產品性能。
這些先進的控制器依賴即時測量,以便根據感測器數據回饋對製程做出瞬時響應。建構這些控制模型時面臨的一個關鍵挑戰是,許多品質變數實際上是透過實驗室取樣獲得的,而不是透過連續測量獲得的。例如,這裡展示的實驗室值每兩小時採集一次,但如底部圖表所示,在採集樣本之前可能會發生製程偏移。因此,我們的控制器需要資訊來感知到這種過程偏移的發生。
解決此問題的方法是建立一個預測推理模型,該模型利用過程中的其他感測器數據,為線上控制器提供品質變數何時發生這些流程變化的資訊。這使得我們的模型能夠即時調整,而無需等待實驗室結果來觀察控制措施的效果。
建構此類模型有時可能頗具挑戰性,需要巧妙地平衡工程領域知識和統計建模技術。今天,我們將使用 JMP 逐步講解如何建立這些模型,以及在建立線上製程控制模型時會遇到的一些獨特挑戰。今天,我想先介紹一個簡化的範例,說明在線上過程控制中可能會用到推斷模型。
這是一個蒸餾塔,用於將丙烷和丁烷的混合氣流分離成兩種成分。塔頂主要為上升的丙烷氣流,塔底主要為冷凝的丁烷氣流。我們想要測量的質量變數是塔頂丙烷的濃度,該濃度透過實驗室取樣獲得。
在開始任何建模之前,了解流程的一些物理特性至關重要,因為這些特性會影響我們所做的建模選擇。例如,塔內溫度對分離丁烷和丙烷混合物的蒸餾效果至關重要。隨著塔內溫度升高,我們預期更多較重的成分(在本例中為丁烷)會從塔內沸騰出來,污染我們正在測量的丙烷流。
這意味著塔頂餾出液中丙烷的濃度將會降低。這將有助於我們向模型修正預測模型,確保模型中觀察到的任何溫度效應都與塔頂餾出液中丙烷的濃度呈負相關。此外,我們也掌握壓力數據,壓力也會透過改變兩種組分的沸點來影響蒸餾過程。在開始建模時,這一點也需要考慮。
最後一點是關於裝置的流量測量。我們有多個流量測量值,稍後會看到,流量與丙烷濃度和塔頂餾出物濃度密切相關。特別是進料流量、回流流量和塔頂餾出物流量,分別對應流量一、二和三。然而,如果不對這些流量測量值進行任何修改就直接將其用於模型,將會帶來一些後續問題,因為原始流量沒有考慮系統中的任何累積或系統動態變化。為了能夠使用這些數據,我們需要將它們從目前的擴展變數修改為強度變數。稍後我們將探討如何實現這一點。
在系統建構之初就進行探索,其關鍵在於理解每個輸入資料的物理意義,然後再開始模型建構過程。這樣,我們就能清楚了解模型的最終形態。這確保了我們的模型能夠反映真實的流程行為,而不僅僅是數據中呈現的統計相關性。最終,這些洞察將指導我們如何提取輸入資料、將哪些輸入資料匯入JMP、如何篩選這些輸入資料、轉換哪些變量,以及最終模型中包含哪些內容。
讓我們快速瀏覽完整的模型建立工作流程,了解建立模型所需的步驟,然後我們將進入 JMP,更詳細地了解其中的一些步驟。第一步是選擇一個推斷候選變數。這通常是一個品質變量,它已經過定期實驗室採樣,擁有大量數據,並且已經定義了我們需要控制的品質限值。在我們的例子中,這將是丙烷濃度,也就是我們在上一張投影片中提到的實驗室頂棚溫度。
接下來,是時候開始對流程進行工程分析了。我們在上一張投影片中已經開始討論這個問題,但在分析自身數據時,還有一些其他因素需要考慮。首先,評估任何未測量的干擾因素,例如進料品質變化及其對最終模型的影響。此外,您還需要考慮模型預期在哪些運行條件下運行。如果您在各種不同的運行條件下運行,則模型需要包含裝置運行在所有這些不同條件下的資料才能有效運作。此時,您需要考慮是否有足夠的資料開始建模,或者是否需要進行專門的工廠測試來確定實際需要收集哪些資料。
接下來,您可以進行輸入變數選擇,就像我們在上一張投影片中所做的那樣,我們逐一分析了模型的每個潛在輸入,並開始探討它們對推斷變數的物理影響。模型選定後,就可以開始收集資料了。對於我們的製程工程而言,資料通常來自製程歷史資料庫,該資料庫會為我們儲存資料。這樣我們就能獲得製程中每個感測器的逐分鐘數據。對於適用廣泛的模型,最好收集 6 到 18 個月的即時數據,具體時長取決於實驗室的取樣頻率。這可以確保您擁有足夠的數據,從而建立一個適用於多種不同運行條件的模型。
接下來,我們需要進行資料清洗和預處理。我們將收集所有感測器的每分鐘數據。因此,每個實驗室樣本都會產生大量數據。我們需要將這些數據格式化為清晰的XY座標對,稍後會使用外掛程式來完成這項工作。此外,您還需要開始進行異常值篩選,以標記您提取的可疑資料。
需要注意的是,不應僅使用統計檢驗,因為異常值應該是過程中需要剔除的物理影響因素。例如,當設備未運作時、發生嚴重故障時,或您確定感測器資料故障時,都需要剔除資料。資料篩選完成後,我們就可以開始建立模型了。對於剛開始建立模型的人來說,一個常見的誤解是將所有收集到的輸入資料直接輸入最小平方法演算法,並以此產生模型。但這種方法行不通,原因有以下幾點。
首先,我們要確保模型中每個輸入變數都具有合理的物理意義。當我們對多個變數執行迴歸演算法時,很可能會出現一些統計上看似良好或擬合度很高,但實際上並不存在的結果。工程師需要仔細檢查模型中每個輸入變數的符號和大小,以確保其符合工程預期。
第二個原因,也是更微妙的原因,是當我們將這些模型投入線上控制時,必須確保這些模型的穩健性和可靠性。模型中的每個輸入都是單點故障,一旦連接到該輸入的儀器發生故障,就會造成嚴重後果。因此,我們會盡量減少輸入的數量,以降低儀器故障的風險。模型建置完成後,就需要開始測試。首先進行離線測試,將預測結果與我們最新的實驗室結果進行比較;然後進行線上測試,並將其整合到線上控制器中。這是一個循環往復的過程,因為你會發現,有些模型預測效果很好,但在閉環控制中卻會失效。工程師需要反覆建立新模型,直到找到一個既能作為預測器又能與控制系統相容的模型。
現在我們已經完成了建立推斷模型的步驟,接下來打開 JMP,更詳細地了解其中的一些步驟。第一個資料表展示了原始資料池的組成。您將獲得每個感測器和實驗室測量的每分鐘數據,這些數據涵蓋了八個月的時間跨度。透過開啟實驗室變數的時間序列圖,我們可以看到實驗室測量的時間間隔並不頻繁,似乎每隔幾天才進行一次,並且在某些時期,我們會在短時間內採集多個實驗室樣本。
如前所述,我們目前的資料格式並不利於建立推斷模型,因為我們需要清晰的XY關係來表示每個實驗室結果和輸入資料。我們將使用一個自訂的內建插件來幫助我們建立一個簡化的資料表,從而建立這種XY關係。我們將透過選擇實驗室樣本和日期來聚合數據,然後需要考慮我們希望對數據使用哪種聚合區間。
此插件將分析我們的數據表。它會偵測實驗室值何時發生變化,然後計算實驗室變數變化前後各輸入值的平均值。此過程可以全域自訂,也可以針對每個單獨的輸入值進行自訂。此外,此平均值計算可以採用回溯法,即從實驗室樣本採集時間點開始,向前回溯 X 分鐘;也可以採用中心法,即在採集實驗室樣本時,選取採集樣本前後一段時間的數據。
最終,這取決於您對實驗室樣本時間記錄的信任程度以及您的流程變異性。在我們的範例中,我們將所有變數的全域間隔設定為 60 分鐘。這將產生良好的匯總結果。運行此過程需要幾分鐘。因此,我們將直接跳到結果,即此數據表。您可以看到,每個實驗室結果都有單獨的一行,並且包含所有輸入資料的清晰 X 值。
現在我們可以……利用這些數據,我們可以開始進行篩選、預處理,最後進行建模。首先,我們將查看資料分佈,看看是否有任何需要移除的異常值。請記住,我們不僅要從統計檢定中移除異常值,還要確保移除的每個資料點都具有背後過程的物理意義。例如,觀察左側的實驗室數據,我們在分佈的遠端看到了一些尾部效應,但現在判斷這些是真實數據點還為時過早,或者它們只是我們正常處理環境中的低點。
然而,如果我們仔細觀察右側的流量圖,可以看到分佈圖中存在一長串低進料流量,甚至還有一些負流量。由於這是進入裝置的進料流量,因此準確記錄裝置正常運作時的進料速率至關重要。我們需要定義一個閾值,用於衡量裝置正常運作的進料流量。在本例中,我們將該閾值設為 10,低於 10 則表示裝置運作異常或已停機。我們將選擇所有小於 10 的數據,並將其從數據集中排除。
瀏覽其餘變量,唯一異常的是流量三,即回流到塔內的流量。此流量的流入量非常高,這很可能表示製程流程出現了嚴重異常,因為它與我們其他操作範圍內的流量完全不符。因此,我們也將隱藏並排除這組數據。
現在我們已經篩選了數據,可以開始研究一些關係並建立一些模型了……我們將開始建立輸入數據與最終模型之間的關係。這些XY圖表按最佳擬合度排序,我們可以看到,位於蒸餾塔上部的溫度4和溫度2與我們的丙烷實驗室數據擬合度最高。
這符合我們的工程預期,因為我們知道溫度對蒸餾過程有關鍵影響。同樣,我們也觀察到流量(包括產品流量和塔頂壓力)與蒸餾過程之間存在密切關係。與其使用 JMP,不如嘗試推斷溫度和壓力與蒸餾過程之間的關係。我們可以將一些已知的汽液平衡概念融入模型中,方法是將壓力和溫度合併為一個計算變量,以便更好地用於模型建構。
我們可以使用另一個自訂內建插件來建立所謂的壓力補償溫度,它會根據壓力效應對溫度進行修正…基於某個參考壓力。我們將使用這個溫度值作為最終模型,而不是直接使用原始溫度值。同樣,如前所述,我們不能單獨使用流量,因為它是一個廣延變量,必須先將其轉換為強度變量。我們將透過建立一個新列並建立一個產品與進料比來實現這一點。這兩個流量的比率將把它們從廣延變量轉換為強度變量,從而更容易對數據中的質量變化進行建模。因此,這將是我們的流量二除以流量一。
在開始建模之前,最後一步是建立驗證列,我們會快速完成,只需將分層列覆蓋即可。現在我們可以正式開始建模了。我要展示的第一種方法是,如果我們對模型的輸入不太清楚,可以採用一種稱為「大雜燴」的方法,將實驗室數據作為 Y 值,添加驗證列,並將所有行輸入作為 X 值,然後在通用回歸平台上運行。
我們將採用最佳子集估計方法,在遍歷每個變數組合的過程中,找出最佳變數子集。如您所見,這裡存在一個平台期,在此之後,我們可以減少變數的數量而不會對模型精度產生顯著影響。如前所述,我們希望盡可能減少最終模型中的變數數量,以降低在儀器故障時對感測器的依賴性。
此外,我們注意到這裡選擇了溫度(第二個)和壓力(第一個)作為輸入,之前我們已經看到它們之間有強烈的相關性。我們有充分的工程理由說明為什麼應該將它們納入模型中。如果你的流程不太明確,這算是一個不錯的起點。但就我們而言,基於工程分析,我們已經確切地知道哪些輸入應該放入模型中。因此,我們將再次輸入實驗室數據,這次的 X 值將再次使用驗證列計算出的變數。
這次我們直接運行標準的最小平方法演算法。這將得到我們控制器中最終使用的模型。你會注意到R平方值略有不足。但這對於大型製程系統的模型運作來說是正常的,因為我們試圖提取的儀器動態特性變化很大。有時很難獲得非常高精度的模型。記住,我們應該避免為了進一步提高精度而在模型中添加更多輸入,以免模型容易受到儀器故障的影響。
最後,我們需要檢查在線控制的輸入變數是否彼此獨立,以及它們之間是否存在共線性。我們可以透過查看 VIF 欄位來驗證這一點,看看這些輸入變數的 VIF 值是多少。如果 VIF 值過高,幾乎可以肯定模型在應用於控制演算法時會失效。但由於這兩個輸入變量的 VIF 值處於足夠低的閾值,我們可以確信該模型能夠合理地預測這一品質變量,因此我們可以開始在控制軟體中對其進行建模。
現在我們回到演示環節。我們現在有了一個推斷模型,可以開始將其用於線上控制。我們剛剛開發的這個模型將作為高階控制器的輸入。此輸入將在控制器操作設備時向其提供回饋,並即時顯示控制器如何影響品質變數。
同樣,這種即時回饋使我們能夠優化產品質量,確保產品品質始終在我們的容差範圍內。正如您可能預料到的,這是一個循環過程:首先是建立一個運作良好的模型,然後隨著製程條件的變化或設備的老化,模型最終會失效,需要從頭開始建立新模型。
總之,這些推論模型彌合了我們連續控制軟體與實驗室樣本採集頻率不高之間的差距。這凸顯了建構統計模型時領域知識的重要性。正如您所記得的,在打開 JMP 之前,我們花費了大量時間進行工程分析,以確保我們完全了解模型上線後的運作方式。即使在化學工程和製程工程之外,這項原則也同樣適用。工程分析應該指導模型,而不是反過來。借助這些技術,無論您身處哪個領域,都可以利用有限的數據將其轉化為可操作的見解。非常感謝您的觀看。