| 揚聲器 |
抄本 |
| 布拉德福克斯 |
感謝您參加我的演講“但我現在該做什麼?”,使用可靠性模型在 JMP 中進行事件預測。 |
| |
我經常被問到…一旦我建立了可靠性模型,我實際上會用它做什麼?人們常常忘記,你可以使用可靠性模型來預測事件實際發生的時間。 |
| |
甚至不僅僅是第一個事件,也許該產品隨著時間的推移可能會看到第二個、第三個或第四個事件。 |
| |
我先簡單介紹一下自己。我叫布拉德‧福克斯 (Brad Foulkes)。我是 Optimal Analytics 的工程總監,我們與企業合作,幫助他們理解數據,識別障礙,並提高效率。 |
| |
在此之前,我從事可靠性工程工作了大約九年,致力於研究如何理解零件的可靠性以及確定零件何時會隨著時間的推移而真正發生故障。 |
| |
我已經使用 JMP 大約八年了,大概是 JMP 10 左右。我不確定,那是很久以前的事了,所以我忘記我們當時使用的是哪個版本...我當時使用的是。 |
| |
在我最喜歡的 JMP 工具中,我經常使用壽命分佈,因為可靠性建模就在這裡。擬合模型和 JSL 我也經常使用。 |
| |
劇本可以為你帶來一系列全新的工具和玩具。那麼,我今天為什麼要講這個呢? |
| |
因為,這個問題往往在最後出現……在建立模型的最後,直到那時才真正被考慮過。 |
| |
你可能完成了一個模型,得到了一大堆機率,卻不知道下一步該做什麼。所以,這裡有一個選項,你可以在模型建立完成後繼續下一步。 |
| |
所以,我們今天討論的是事件預測,當你建立模型時,你常常會看到這樣的圖。你會有自己的時間, |
| |
這些可能是硬體或產品的生命週期。比如說攪拌機,或任何一種廚房電器或小型廚房電器,它們的使用壽命可能不長。 |
| |
很長一段時間。所以有些會很早就失敗,有些則會很晚才失敗。 |
| |
但最終,當這些事情發生時,你還是會面臨失敗的機率。所以你可能會說,好吧,大約90%的失敗將在四年內發生。 |
| |
嗯,這很棒。這能幫你理解第一次故障,或許還能估算出零件在實際使用上發生故障的機率。但對於真正需要購買或使用這些東西的人來說,這並沒有太大幫助。 |
| |
對於實際使用這些產品的顧客來說,他們並不在乎它們能用多久。他們可能不想知道一段時間內需要買多少個。 |
| |
也許是在整個生命週期中。他們只想看10年,我需要在10年內購買多少個這樣的產品才能讓它存活下去。 |
| |
這就是事件預測的用武之地。事件預測的真正作用是獲取分佈並將其翻轉,這樣仍然保留你的時間分佈。 |
| |
你這裡提到的事件發生時間是多少?然後是事件發生的機率。那麼現在 |
| |
你可以看看這些事件發生的頻率。例如,第一個事件發生在大約八年半,第二個事件發生在九年半。 |
| |
第三個事件……但這都針對同一個客戶。所以這都針對同一個客戶,同一個用例,所以對他們來說,你知道,他們的平均失敗時間。 |
| |
看看這裡的所有這些部分,看看所有這些間隔和替換。所以這裡, |
| |
客戶實際上已經關注這個問題超過20年了。他們可能會…所以他們想知道…為了在這20年裡生存下來,我至少需要三個零件。 |
| |
因此,透過使用一些隨機選擇和模擬,您可以了解這些零件需要更換的頻率以及客戶需要購買您的產品的頻率。 |
| |
那麼,這在實際中如何實現呢?好吧,歸根結底還是要歸結為替換。 |
| |
那麼,更換零件的頻率是多少呢?您更換新零件的頻率是多少?或者更換幾乎等同於新零件的零件的頻率是多少? |
| |
可修復系統和不可修復系統。可修復系統是指你能夠將事情恢復到 |
| |
到了可以再行駛的程度,車子可能就不如新的了。假設你的輪胎破了個洞。你把漏氣的地方堵上,然後繼續行駛。 |
| |
修好了。但如果你能把輪胎修得像新的一樣好,讓它永遠不再出問題呢? |
| |
現在對於輪胎來說,也許這並不是那麼實用,但是對於其他東西,您可能需要更換某個部件,或者您可能需要切掉某個部件的一部分並只更換那個或那個出現故障的部件。 |
| |
讓零件恢復到全新狀態,可能會讓系統無法修復。所以,即使你進行了維修,為了讓它恢復到全新狀態, |
| |
它稍微改變了一些東西。你知道,這是一個巨大的警告。你確實需要仔細考慮「像新品一樣好」的含義,但很多時候,我認為部分…或者人們處理的部分 |
| |
他們修好了,而且修得跟新的一樣,他們覺得,嗯,這個系統是可以修復的,但從可靠性的角度來看,它並非如此。好了,我暫時不說這些了。 |
| |
回到替換的問題。當我們考慮單一系統時, |
| |
你可能會看到這裡的一些東西然後說,好吧,你知道, |
| |
對於單一系統, |
| |
零件故障頻率是多少?如果我們只看一個客戶,他們購買這些零件的頻率是多少?第一批零件在這裡花了四年。 |
| |
然後他們只好買第二輛。第二輛只用了1.3年,然後他們又不得不買第三輛,而第三輛表現非常出色,用了8年。 |
| |
所以,最終,他們在12年裡只買了三個零件,但差異很大。所以,你可以在各種產品上看到這種情況,例如一些手機, |
| |
其他家用產品。有些東西會早點壞,有些東西會晚點變壞。 |
| |
你可能正跟朋友聊天,說,嘿,我……我的手機太爛了。真不敢相信它這麼早就壞了。然後他們就會跟你聊起他們用了十年的那支手機。當然,可能沒用十年,但 |
| |
可能要花點時間。所以到最後,對於這個系統、這個客戶,他們不得不更換三次零件。 |
| |
現在,如果我們觀察多個系統,就能了解這些事件隨時間推移而發生的頻率。所以 |
| |
一個客戶可能有第一個系統,然後第二個客戶,可能在相同的時間段內有五次或六次替換。 |
| |
因此,如果我們看一下第一個系統,我們可能會說,好吧,我們預計至少在第四年之前不會出現任何故障。 |
| |
但如果我們看第二個系統,他們在第一年就出現了故障。因此,如果我們想計算第一年或第二年預計的平均故障次數或平均事件數量, |
| |
第一個系統並沒有告訴我們太多資訊。所以,如果你沒有數據,但你的模型中有分佈,其中有威布爾分佈的 beta 和 eta 或類似的東西, |
| |
您可以使用模擬來嘗試列出一些客戶在第 1 年、第 2 年、第 3 年以及以後預期發生事件的頻率,並且比您實際擁有的數據要遠得多。 |
| |
透過這樣做,透過觀察這些多個系統和模擬,你可以理解並開始看到頻率趨勢 |
| |
這些部件每年都會更換。所以,雖然這些數據可能只是基於過去七年的事件時間, |
| |
無論是日曆時間或客戶時間,替換量都會出現一個峰值,然後逐漸趨於平穩。現在 |
| |
在模擬中,你會看到一些彈跳,這就是你在這裡看到的。如果我們有一個閉式解,我們會得到一條很好的直線,但是 |
| |
透過模擬,我們確實得到了一些變化。這就是你在這裡看到的。所以你可以畫一條線,看看平均而言, |
| |
一個人可能預計每年要更換三分之一。所以三年後,一旦它開始運轉,你就可以預期更換一個。所以一開始會有一些,然後就趨於穩定了。 |
| |
讓我們看一個例子來了解我的意思。 |
| |
這裡有一個數據表,這裡我有一個模型。這個模型就是一個隨機威布爾分佈。如果你不熟悉 JMP 中可以使用的各種函數, |
| |
你可以使用隨機威布爾函數、威布爾分位數函數、威布爾分佈函數、威布爾密度函數。這些函數都可以應用於不同的分佈。 |
| |
在本例中,我們從某個特定分佈中隨機選取一組點。我的分佈的 Beta 值為 1.2,eta 值為 3。 |
| |
所以,透過選擇這些隨機...隨機事件, |
| |
這些都是單獨的事件,最終會被納入你的模型。如果你要建立一個零件故障模型,最終會得到什麼呢?這些日期通常會納入模型。然而,人們忽略了這些事件對客戶的實際影響。所以隨著時間的推移 |
| |
顧客可能想知道 20、30、40 年後我可能需要更換多少個這樣的產品。 |
| |
這時你需要查看系統事件總時間。這只是各個時間的累計和,所以 8.3 是第一個,1.2 是第二個,以此類推。 |
| |
因此,當您進入第二個系統時,我們得到 1.8、3.9、5.9,所以它只是各個時間的累積計數。 |
| |
這裡要記住的是,當你試圖計算所有這些的平均值時, |
| |
您會查看系統編號,但隨後會查看實際發生的年份,因此在運行的第二年發生了 1.8 年。 |
| |
這是一個需要牢記的重要區別...要牢記,因為您要確保在適當的年份識別出失敗。 |
| |
所以你的 0.6,雖然它...如果那是第一個,那將是在第一年,它實際上只是增加了年份...系統時間...系統年份在這裡增加了一年。 |
| |
有了這些,你可能會想,好吧,既然我們已經掌握了所有這些,我們就可以統計事件數量,查看這個系統、年份,然後進行一些簡單的分析。 JMP 實際上有一個很好的工具,可以幫助你完成所有這些工作。 |
| |
所以 |
| |
JMP 中有一個稱為可修復系統模擬的工具。 |
| |
這個工具 |
| |
我知道...我相信它出現在 JMP 13,也許是 JMP 14 中。它已經存在了幾年。 |
| |
我不知道它是否得到了應有的宣傳,因為它是一個非常強大的工具,但我認為很多人並不欣賞它。 |
| |
所以,你看到的是一個系統。所以,也許,或者現在,我這裡有兩個部分,但也許我的系統實際上是 |
| |
七、八個零件,或整個變速箱,或是一個泵,或是類似的東西。所有這些零件協同工作,如果任何一個零件發生故障, |
| |
你知道,整個系統都崩潰了,所以你想了解事件是什麼,事件發生的時間是多少。所以在每一個事件中,你都要列出你的威布爾分佈或你的模型是什麼,這裡我得到的是 beta 值 1.2 和 alpha 值 15。 |
| |
它是一個以年為單位的時間單位,如果我願意的話,我當然可以選擇不同的分佈。 |
| |
然後我可以說如果某個事件發生會發生什麼事。如果一個區塊…這裡我遇到了一個區塊故障,如果真的發生了故障會發生什麼? |
| |
結果是換新的,所以我只想換零件。現在有很多不同的選擇,也許我可以做個小修,但我說,我想換個全新的零件,這樣它就能像新的一樣……像新的一樣。 |
| |
然後你可以加入停機時間。那麼修復需要多長時間?平均修復時間是多少?它可以是一個常數值。 |
| |
或者…你可以說立即執行,甚至不用考慮執行所需的時間,或者你可以給它一個清單供它選擇。你也可以在這裡給它幾個分佈。 |
| |
有了這些工具…現在我已經建立了一個非常簡單的系統。我得到了一個已知分佈的部分,或者兩個已知分佈的部分。 |
| |
當其中任何一個失敗時,我都有一個替代時間,因此第二個有選擇選項。 |
| |
你可以看到,你把它放在這裡。現在,這些選擇需要與你的模擬使用相同的時間單位。 |
| |
所以我選擇以年為單位進行模擬。這是以年為單位的,所以準備某件事的時間可能只有一小時、兩小時,甚至可能是一天。但當你把時間換算成數時,數字就變得非常小了,所以這就是你在這裡看到的。 |
| |
我不會在這裡詳述所有選項。如你所見,備用資料庫(K out of N)還可以做很多其他事情,其中很多都適用於更複雜的分析。 |
| |
好的,我運行我的分析,我將運行 20 年,這裡列出了這些年,模擬次數為 100。您通常會想要更多,但出於演示目的,我們將其設置為 100,種子為 1234。 |
| |
那麼,我在這裡得到了這個漂亮的大輸出,並且初始輸出總是被稱為數字,這非常有幫助。 |
| |
但你可能會想,好吧,我該怎麼處理這些東西呢?你可以過來,啟動這個分析, |
| |
也許你想查看每個組件的總停機時間。所以,這說明,你知道,每個組件的停機時間分佈是怎麼樣的? |
| |
但它實際上從未回答過這個問題:20 多年來,我需要更換這個部件多少次? |
| |
所以我寫了一個腳本,所以當你...當你下載這個日誌時,它將包含其中的所有這些腳本。 |
| |
我將其設定為按鈕,但如果您想使用它,實際腳本就在下面,供您參考。 |
| |
所以我只需點擊按鈕,就會發生很多事情。現在我已經開始計算這些事件預計每年發生的頻率。所以從系統的角度來看, |
| |
我已經對失敗事件進行了子集化,並設定了年份值。所以你可能還記得,年份值是向上取整的,所以 3.8 年等於 4。 |
| |
現在,這會查看日曆時間,請查看我們可能正在使用的系統時間。它不查看單一時間,所以第一行和第二行之間的時間間隔大約是1.8年。 |
| |
但因為我們正在查看系統,所以我們實際上計算的是 5.69。 |
| |
現在我想把它轉化成...我想把所有這些價值轉化成有用的東西。 |
| |
不過,要記住的是…當你尋找每年平均發生的事件數量時,你需要查看那些沒有發生事件的年份。所以在第一個模擬中,第一個事件發生在第四年, |
| |
但我需要用零來表示一、二和三,這就是我的腳本的作用。我的腳本有點像是設定 |
| |
我想要查看的模式。所以,我想查看第一部分,查看年份值和模擬ID,然後查看事件的實際發生時間。所以在這裡你可以看到,第一部分的第一個事件發生在第十年。 |
| |
所以,當這些內容加入這裡時,分析結果也會隨之更新。如果我向下捲動到第二部分… |
| |
當你向下捲動到模擬一的第二部分時, |
| |
那裡...沒有事件。 |
| |
模擬一的第一個事件直到...才發生。 |
| |
直到四年級。所以如果我一直滾動到四年級 |
| |
對於第二部分,它會顯示我在模擬一中有一個事件,好吧。所以這其實就是把這些事件按照可能發生的年份組合排列起來。 |
| |
好吧,有了這種程度的信息,現在我已經掌握了所有...所有模擬的信息,您看到我有 4,000 條記錄,這些只是年份、模擬和部分的所有可能排列。 |
| |
但實際上我想把它們平均下來。所以我取平均值,然後查看模擬次數,也就是行數、年份值,以及零件數。最後我把模擬次數降到了 40 行,這樣就比較容易管理,也比較容易理解了。 |
| |
在第二部分中,你可以看到一開始有一個小的峰值,然後趨於平穩。 |
| |
它會反覆波動,因為這是模擬,我們只運行了 100 個事件,但...或 100 次模擬,但我們可能會看到穩定的替換狀態。 |
| |
不過,如果我們試著從累積的角度來看這個問題,這就能告訴客戶他們預計10年後會更換多少台。所以在第二部分中, |
| |
假設客戶想知道我什麼時候需要更換第一個?第一個是什麼?第一個 |
| |
會在第四年和第五年之間發生,例如第四年剛過。然後第二次發生在……或者大約第七年。 |
| |
第三次故障發生在大約第 10 年。所以你可以看到,你經歷了一段上升期,前期不會出現太多故障,但隨後進入穩定狀態,大約每三年你就需要更換零件。 |
| |
如果您想嘗試做這樣的事情,這對客戶、業務規劃甚至供應鏈工作都非常有幫助。 |
| |
因此,使用可修復系統模擬中的事件預測是一種便捷的方法,它不僅能預測故障發生的機率和時間,還能給出關於有多少部件可能發生故障的理解。所以 |
| |
一件事…今天我想談的另一件事是如何讓可修復系統模擬變得更容易。 |
| |
所以這可能會讓人望而生畏。這是一個新工具,你可能並不了解你正在使用的所有內容,但是 |
| |
如果您...如果您從模板開始,從表格開始,那麼建立可修復系統模擬會容易得多。 |
| |
所以最終,為了建立你的模型,你需要大約 13 個資料。其中大部分數據都在後台進行,你可能想不到,但如果你把它們放到一個表格和一個模板中 |
| |
有了這些不同的列…我說的是13列,實際上你需要的更少。我在這裡做了一些修改,以便處理一些你可以在這裡做的巧妙的小事情。 |
| |
但實際上,您有自己的分佈、模型類型、參數以及時間單位。這些都是 JMP 中的預設設置,您可以更改,或者 |
| |
這些都是你需要添加的東西。所以,如果區塊失敗了,你會用什麼新的區塊來取代它?這些你都可以調整,你可以用不同的方式連結這些事件名稱和流程。 |
| |
在我看來,很多時候我們會看到行為的改變。也許我們想了解一下,前幾年,這是人口更替率;接下來幾年,這是人口更替率。 |
| |
或者你可能有一些想要利用的競爭性故障模式。所以我在這裡要展示的方法可以處理很多這樣的問題。 |
| |
抱歉,這絕對不是完美的。這 |
| |
絕對應該根據你自己的用例進行調整,但最終,從模板開始是一種加速開發的絕佳方式,並且 |
| |
讓你能夠進行調整……即時進行細微調整。如果我有這個,我這裡有一個很棒的小腳本,如果我點擊這個腳本,它就會為我產生可修復系統模擬。 |
| |
如果我看這裡,我得到了我的第一個...我的第一部分,其 beta 值為 1.86 或 826,alpha 值為 153。 |
| |
其實就是把這個表格轉換成可修復系統模擬。你可以這樣做 |
| |
甚至更複雜。所以讓我先結束這個主題。 |
| |
這裡有14個部分。我可以根據需要更改其中任何一個分佈。 |
| |
但我還有其他類型的事件想在這裡查看。我想將我的分佈拆分到 |
| |
它會在一段時間後發生變化或改變形狀。也許我正在嘗試模擬產品推出,或者說,整個產品線的產品升級。或者我這裡存在競爭故障模式,我想將其考慮進去。 |
| |
所以如果我……你知道……在腳本中使用這個模板,我就能用非常簡單的方式處理所有這些。現在你看到了它有多快。那是什麼?大概一秒鐘就能 |
| |
生成這個模型?現在如果我想再創建一個,也許,也許我想把它變成一個 |
| |
記錄正常。 |
| |
我可以在這裡做,然後 |
| |
來看看我的劇本 |
| |
和 |
| |
再運行一遍。我得到了另一個模型,(讓我們看看,它是什麼?第五部分。) |
| |
第五部分現在呈對數常態分佈。嘗試不同的迭代、不同的模型非常容易,而且每次都會產生一個新的模型。 |
| |
把這張圖標記為你的表格。所以,使用這個模板,使用嵌入在這裡的腳本,可以很方便地進行分析,並了解你的事件預測隨時間的變化。 |