本示範將探討使用多元控製圖為工業製程系統所建立的工作流程。首先,建立一個 PLS 模型來預測製程結果,例如產量或產品的蛋白質含量等。然後,建立一個模型驅動的多元控製圖 (MDMCC),用於表示進行該預測的關鍵變數。
然後將 MDMCC 上傳到 JMP Live。此外,用於建立模型和 MDMCC 的資料將透過一個插件提取,該插件專門用於從 PI 資料歷史資料庫中提取資料。在 JMP Live 中,編寫腳本會自動執行資料擷取,使其自動刷新,從而建立一個即時的模型驅動多元變數控製圖。對於流程工程師來說,這是一個非常棒的工具,因為它可以指示 T2 和平方預測誤差的偏差。我們喜歡這些圖表,因為它們比典型的控製圖提供更多信息,因為它們不僅顯示變量的單變量控制偏差,還顯示 x 變量之間關係的偏差,而這是典型的控製圖無法顯示的。
大家好,我是 Drew Luby。今天,我將和大家分享我的海報展示,主題是「使用 JMP Live 自動更新多元控製圖」。首先,簡單介紹一下我的背景。我是 ADM 的分析工程師。 ADM 是一家農業加工廠,實際上我們在世界各地有許多工廠。這些工廠中有很多都配備了大量的感測器數據,包括壓力、溫度、流量等等。我們希望能夠分析、排除故障,並根據這些數據即時採取行動。
以下是這些數據的範例,或說該流程的大概情況。在這個例子中,您看到的是玉米胚芽的乾燥過程。這裡有五台乾燥機,它們最終共同作用,使胚芽水分達到最終狀態。您可以看到所有這些感測器數據。我們有閥門和AMPS的運作狀態數據,還有蒸汽流量和壓力,以及溫度數據。我們的流程中有很多不同的數據,我們希望將所有這些數據關聯起來,並將其與最終水分值(也就是我們這款產品的規格)進行比較。
我們面臨的挑戰是,我們需要觀察許多不同的變量,但同時又需要能夠一目了然地了解整個過程。為此,我們認為目標是建立一個模型驅動的多元控製圖,以便我們能夠在一張圖表上查看我剛才展示的所有變量,而不必每天單獨分析它們的趨勢。
然後,模型驅動的多元控製圖將讓我們了解是否存在任何超出正常運行範圍的變量,以及是否存在任何變量的表現與預期不同的變量。透過此模型驅動的多元控製圖,我們能夠深入挖掘,找出是否存在單一變數故障、超出規格或參數與正常值不同的變數。這將引導我們找到這些變量,以便工廠的工程師或操作員可以立即採取行動。
我們的最終目標是利用異常檢測來提醒這些製程變化並採取相應措施,這樣我們就不會長時間運行超出規格的參數,或某個參數或閥門的性能與我們預期的不一致。有很多例子。我們希望快速識別這些異常,並能夠採取行動。模型驅動的多元控製圖可以幫助我們做到這一點。
我們將採用的方法就在這裡。我將在海報中介紹這些步驟,然後在 JMP 中實際演示。存取數據,我們首先需要使用一個名為 OSIsoft PI Tools 的插件。這是我們創建的,可以在社區中找到,我相信海報上也有連結。這個外掛程式允許我們提取這些 PI 標籤(也就是我們的資料歷史庫 PI),並將它們匯入 JMP。不僅如此,它還會創建一個 JSL 腳本,我們可以將其複製並貼上到 JMP Live 端,這樣我們就可以每天自動提取新資料。這對於當時的流程故障排除非常必要。
資料導入後,我們將建立一個偏最小二乘(PLS)模型。從技術上講,我們可以根據主成分分析(PCA)或偏最小二乘(PLS)模型建立一個模型驅動的多元控製圖,但這裡我們選擇偏最小二乘(PLS),因為它是一個可以預測Y變數的多元模型。在我使用的這個例子中,我們想要使用我展示的所有製程參數,包括溫度、壓力、AMPS(氨氮濃度)和流量。我們希望用所有這些參數來預測最終的水分含量。我們將建立一個偏最小二乘(PLS)模型,並將其用於我們的模型驅動控製圖。
一旦我們獲得了基於偏最小二乘法 (PLS) 創建的模型驅動多元控製圖,我們將在 JMP 中建立一個儀表板來顯示該控製圖,然後建立一個流程篩選平台,讓我們可以單獨查看每個變數。最後,當我們將其發佈到 JMP Live 後,我將逐步講解如何自動化資料擷取。
再次強調,我們創造的價值或目標是為我們的製程工程師和操作員打造一款易於使用的工具,讓他們能夠即時查看最新的數據。這樣,該工具就能向他們展示製程中可能存在問題的地方,而無需對每個變數進行趨勢分析。實際上,模型驅動的多元控製圖與 JMP Live 的結合完美地實現了這一目標。我們將使用 JMP,並演示如何具體實現這一點。
我們在 JMP 中創建了這個插件,JMP OSI PI 資料。這是一個很棒的插件。基本上,它允許我們輸入伺服器的位址。我根據下拉式選單找到了一些地址。如果您熟悉 PI 數據,它會提供 PI 使用的查詢類型,並且還會使用 PI 時間顯示開始和結束時間。如果您不熟悉這些,可能需要查找一下。但是,如果您的機構使用 PI,您可能對它很熟悉。
在這個例子中,我將使用 7 天的提取數據,也就是減去 7 天,每小時提取一次插值。我將要使用的標籤,我已經仔細檢查並預先選定了。我不會用到之前展示的所有標籤。這些是一些關鍵的標籤,但我可以使用每個標籤。我只需將它們貼到這裡的視窗中,然後就可以更改我的搜尋條件。我可以創建一個長表而不是寬表。我可以在這裡做很多事情,讓我的資料提取出我們想要的內容。這個外掛的關鍵部分就在這裡,它會產生一個腳本,這個腳本可以複製並貼上到 JMP Live 中。它相當長,但可以複製並貼上到 JMP Live 中,以便重新建立這個資料表。
重要的是,因為我使用的是相對時間戳,所以從今天減去 7 天到從今天減去 7 天前,每次運行時,它都會根據 JMP Live 指定的重新運行時間提取新資料。如果明天運行,則提取的資料是從明天到 7 天前。我一直都在即時提取數據。
我不會讓它運行,實際上它可能需要一些時間。在這個影片裡,我之前已經重新創建了它,並且做了一些隱藏和排除操作來清理資料表。這是準備好的,但你可以看到上面這些標籤是一樣的,而且是為期7天的運行。這次運行恰好從7月23日開始,一直持續到7月30日。
通常,當我匯入這些資料時,需要進行大量的清理工作,並整理資料表,而這些工作在這裡已經完成了。我不想跳過這些步驟,但我已經預先完成了這些工作。
為了創建這個偏最小二乘模型,我使用了 JMP Pro,因此我可以在「擬合模型」平台中進行操作,或者直接在「多元方法」下的「偏二乘」中進行操作。我將根據所有這些製程變數來預測胚芽乾燥機的水分。我將繼續進行 K 倍驗證。 “偏最小二乘”,我點擊“運行”,並使用預設設置,這樣這個模型就創建好了。
就我的職業和工作而言,這是一個相當不錯的模型。我們有很多過程噪聲,所以不一定能達到 90% 或 0.9 R² 的水平。這對我們的工作來說是可以接受的。這裡有四個因子,這很好。我或許可以進一步完善一下,但我認為這種模型在方向上是正確的,就準確性而言,對於我們的例子來說已經足夠好了。同樣,通常我會用一個迭代過程來稍微完善一下。
要建立模型驅動的多元控製圖,有幾種方法。我可以直接進入「已儲存 X 分數的模型驅動多元控製圖」。這樣做的目的是將這些 X 分數保存到資料表中,然後基於這些分數建立模型驅動的多元控製圖,這樣就可以了。但我選擇將預測結果儲存為 X 分數公式,因為在這個例子中,我可能想建立一個趨勢圖,顯示樣本之間以及模型驅動的多元控製圖中預測的水分含量。這就是我在這裡採用的路徑。無論哪種方式都可以讓你達到我即將展示的狀態,也就是一些 X 分數公式的欄位。
如果您不太熟悉因子和PLS建模,我們可以在Discovery上討論。這是一個因子,您可以看到它是一個公式,是所有這些變數的線性組合。這裡有四個因子。那麼這個預測公式其實就是這四個因子的線性組合。 PLS模型就是這樣報告的。
要製作模型驅動的多元控製圖,我會進入「分析」、「品質與流程」、「模型驅動的多元控制圖」。我只需將這些 X 分數放入「流程變數」中,並將時間放入「時間 ID」中,即可產生 T² 圖。
不必過度關注統計數據,T² 本質上衡量的是我距離所有變數的流程中心有多遠。我對此的一種解釋是,我們工廠有一個運行速率。我們稱之為研磨速率,指的是我們在那種情況下研磨玉米的速率。如果我們通常有一個標準速率,那麼研磨速率降低到一半或零研磨,我的 T² 就會很高,因為它與正常狀態非常不同。還有一些情況,例如,如果從乾燥機出來的水分非常高,或者蒸汽比通常高得多,所有變數都可能非常高或非常低,這都會導致 T² 升高。透過真正查看一個叫做 T² 的統計數據,我就能了解流程中所有變數的狀態。
舉個例子,如果我看一下這一點,你會發現它允許我顯示那些長條圖。那麼就在這裡,讓我強調一下這一點……你可以看到,這是最失控的一點。果然,這個胚芽乾燥機 4 的濕度比平常高很多。好消息是,我這裡有一個胚芽乾燥機 4 的控製圖,顯示它遠遠超出了規格,但我能夠用一個控製圖顯示所有這些變數。這實際上是這裡的增值原則,我可以用一個統計數據來查看數百個變數。
我喜歡在這裡繪製貢獻熱圖,我相信這有助於製程工程師排除故障,這樣我就能看出胚芽乾燥機4的水分在那裡是紅色的。我很快就能看到T²,也就是造成問題的原因,就在這裡。他們馬上就知道需要去哪裡查看問題所在。
我想在「監控過程」下的模型驅動多元控製圖中添加的另一個內容是平方預測誤差圖。我將稍微調整一下比例尺。 SPE,即平方預測誤差,它測量的指標與 T² 略有不同。 SPE 測量的是距離模型預測值(或者說,超出模型平面)的距離。
如果 SPE 很高,這表示我們預測的值與模型預測值相差很大,或者我們預測的值與實際發生的情況不同,或者 X 矩陣的預測值與實際發生的情況不同。這意味著變數之間的交互作用與我的預期不同。在我的例子中,我對此進行了一些研究,您可以看到胚芽乾燥機 1 的濕度在這裡很高,SPE 也很高。
在這種情況下,實際情況是,通常當我們增加蒸汽量時,蒸汽閥會打開,蒸汽流量計的讀數會增加,我們通常會看到胚芽乾燥機的濕度下降。但在這種情況下,濕度並沒有下降。這表示模型的預測結構存在一些問題,SPE 會發出警報,提示濕度過高。單變量控製圖或 T² 控製圖可能無法捕捉到這種情況,因為這些變數本身可能都在正常的控制限度內。
通常情況下,它們是正相關的,但在這段時間內,它們是負相關的。這對我們工廠很重要,因為它可能會識別出,首先,實驗室樣本的值不正確。可能是在錯誤的地點取樣。這可能意味著我的蒸汽流量計故障。也可能意味著我的烘乾機出了問題。這些對我們來說很重要,需要發現問題。同樣,我對貢獻熱圖也做了同樣的事情,只是稍微拉伸了一下。
正如在這個例子中,您可以看到這裡有缺失的資料。我們這裡恰好發生了一些中斷,您可以看到因此而出現的問題是如何突出顯示的。這就是模型驅動的多元控製圖,我認為它對我們的工程師和製程工程師排除製程故障非常有用。
他們通常需要做的一件事是觀察…他們看到較高的T²或較高的SPE,然後他們想在單變量控製圖上看到這些變數。我認為最好的展示方式是在「分析」、「品質和流程」、「流程篩選」下,我會將所有這些值放入「流程變數」和「時間歸一化」中。
現在我得到了一個方便的工具,你可以看到這個資料集出現了故障,所以所有變數都顯示為紅色,但它實際上是按最不穩定的變數排序的。這樣,當你嘗試排除流程故障時,你就能知道該查看哪個變數。如果我突出顯示所有變量,並執行“顯示選定變量的圖表”,我就會得到單變量控製圖,然後我會打開這些標記。你可以看到它正在下降,這就是那個例子。
這個工具與模型驅動的多元控制圖工具結合使用,功能非常強大,因為我可以快速知道T²和SPE是否一致。理論上,身為工程師,我可以轉到另一個流程。我不需要查看胚芽流程。它像往常一樣運行,所有變數也像往常一樣相互作用。如果我發現了什麼問題,我可以使用這個熱圖來找出哪個變數出了問題,然後我可以查看單變數控製圖,看看它到底出了什麼問題。
現在的挑戰是,這很棒,但我們如何將其轉換為易於共享、方便用戶訪問且每次都能更新的形式,而無需每天早上有人來再將其拉入 JMP。我們的方法是,首先將其發佈到 JMP Live。首先,我們要建立一個儀表板。我要合併視窗。我們稱之為「儀表板」。沒問題。我們再試一次。我們需要選擇要合併的視窗。
現在我們有了一個儀表板。根據我的經驗,它在 JMP Live 中看起來不太好,因為有滾動條,而且需要縮放。所以我喜歡點擊這個紅色的熱點,也就是「編輯儀表板」。我要點擊它,把它拖到“在選項卡後插入”的位置,然後運行這個儀表板。
現在我有了一個漂亮的儀錶板,可以隨時使用。你可以想像我的工程師會來到這裡,看著它,看看他們是否需要注意細菌系統。如果需要,在下一個標籤上,他們可以看到所有的單變數控製圖。
這就是我真正想要發佈到 JMP Live 的內容。我會選擇“歸檔”,將報告發佈到 JMP Live。只需片刻。我們將發布該儀表板,我現在要將其放入海報演示資料夾中。我將為其命名“海報演示摘要範例”。我們將發布一個新的數據表,然後點擊“發布”,然後我就可以在這裡打開它。讓我們把它帶到這裡。這是 JMP Live 端。 JMP Live 的好處是,我們公司中的任何人都可以存取它,無論他們是否擁有 JMP。這讓他們有機會查看這些內容。它是互動的。如果我在那裡突出顯示一些點,我可以在這裡看到它們,這樣我就可以看到這些點。我可以將它們帶到這裡。這一切都是互聯且互動式的,這非常方便,比發送 PDF 或圖像要好得多。
這正是我想要的效果。你可以看到,我排除了某些數據,我們的 T² 會非常高,因為我認為那裡經常發生中斷。這也是為什麼 SPE 在那些時間段如此之高的原因。這正是我想要自動化的功能。我希望它每小時提取一次新數據,這樣我們就能始終看到最新的數據。
JMP Live 的工作方式是,這是一個報告,背後實際上是我們創建的資料表。它將我的資料表發佈到 JMP Live 中,因此自動化的關鍵在於讓這個資料表以新的 PI 資料更新,無論頻率如何,然後它都會自動產生新的報告。
我在資料表那邊,可以進入“設定”,然後透過腳本刷新資料。回到我的 JMP 資料表,這裡實際上是我的插件產生的腳本。我可以將其複製並貼上到 JMP Live 視窗中,它就可以正常工作。它會按照我最初創建的方式重新建立表格。它不會重新建立這些 X Scores 1 公式或預測。
您需要做的是,在建立這些列時,您可以使用日誌或工作流程產生器,或者如果您要執行任何操作,例如新增規格限值,或對資料表進行任何更改,您都需要複製這些腳本。為了節省時間,我已經在這裡創建了這些腳本,但您可以在腳本的底部看到,我基本上創建了新的公式列,我只需使用日誌或工作流程生成器複製這些公式即可。我複製了該列的公式,並為其添加了模型驅動的多元控製圖統計資料。
這些都複製貼上到了最後。頂部剩下的內容直接來自那個插件,我只需要找到這個空腳本,粘貼進去,點擊“保存”,然後設置一個刷新時間表,這樣我就可以選擇了。我打算每小時重複一次。我打算明天取消我的範例,這樣它就不會佔用太多伺服器資源。如果我想的話,也可以每5分鐘重複一次。我只想讓它每小時執行一次,然後我可以選擇刷新時間表。
每次執行時,此腳本都會返回到我們的 PI Server,呼叫新數據,重建數據表,然後會自動根據新數據產生報告。我還必須提供一些憑證,以便它能夠存取我們的 PI Server。點擊“儲存”,然後點擊“刷新資料”來驗證它是否正常運作。只需一秒鐘即可顯示它正常工作。
當然,在我執行操作的時候,它失敗了……因為我的剪貼簿裡還有我們貼在插件中的舊標籤。我們要複製它,貼上它。很抱歉。我們點選「儲存」。現在它已保存,我們應該可以刷新資料了。很抱歉出現這個錯誤。在運行過程中,我想說 JMP Live 的另一個優勢,那就是有時我們想要每天、每月更新資料表。您不必每次都親自去更新 JMP,只需在這裡建立它,設定更新頻率,然後我可以重新加載它,然後您可以隨時將該資料表從 JMP Live 中拉出來。這是一個非常棒的工具,不僅可以更新資料表,還可以建立自動更新的報表。
現在您可以查看我的報告,可以看到我們的數據從 8 月 25 日到 8 月 28 日的變化。您可以看到 T² 值正在下降。我知道工廠正在處理一些維護問題。事實上,我相信我們有一台乾燥機故障,這就是為什麼蒸汽壓力控制器總是在那裡讀取資料的原因。這是我們希望員工擁有的工具,我們也從中發現了價值。再次,快速瀏覽一下,這是我的 T² 檢查,就像我查看任何控製圖一樣,然後是 SPE。如果這兩者都很好,那麼我真的不需要擔心那些可能隱藏在幕後的數百個單變量。
如果有什麼值得關注的問題,例如這裡的T²值過高,我可以在這裡查看我的熱圖,或者在這裡查看工藝篩選,你就能發現問題出在哪裡。我這裡還有一個有趣的例子,我們的乾燥機出現了一些波動,但你可以很快找到哪個變數有問題。它的運行是否超出了規格?它的運作是否與我們預期的不一樣?一旦找到問題所在,你就能更輕鬆、更快速地採取行動。
這就是我想展示的全部內容。如果您要參加探索號,並且對此有任何疑問,我會在場,我們可以討論。謝謝。