InsightFab
知識庫/系統可靠度模擬:蒙地卡羅法應用
可靠度6 分鐘閱讀

系統可靠度模擬:蒙地卡羅法應用

欸,最近看到一篇超實用的文章,作者用他兩年前產品良率掉到谷底的慘痛經驗開場,說當時老闆氣到直接問他產品「預期壽命」還有多久,真的快笑死!他接下來就分享,其實很多時候產品出問題,不是單一零件不好,而是「系統可靠度」沒搞懂。就像組電腦,每個零件都沒問題,但組合起來就可能因為「互動」不良或環境因素,導致系統一直當機。讀完你會知道,產品開發不只看單一零件,更要從系統層面思考可靠度,絕對能讓你少走很多彎路!

那天良率掉到哭爸,老闆問我「預期壽命」是多久

還記得兩年前,我們那批新製程的產品剛量產,一開始良率還行,Cpk 也有個 1.08 左右。結果過沒多久,客戶那邊就開始抱怨了,說產品常常用到一半就掛掉。更慘的是,那個失效模式不是一開始就能抓到的,而是要累積一定的時間才會爆。當時老闆氣到臉都綠了,直接把我叫過去,劈頭就問:「你告訴我,這批貨的『預期壽命』到底還有多久?我們能撐到下次改版嗎?」媽的,那時候我哪知道啊,心裡只覺得涼了半截。

問題出在哪?不是單一事件,是連環爆啊!

說穿了,你遇到的問題跟我那天一樣,就是系統可靠度。很多人會想說,我每個零件都驗證過啊,Cpk 都有到,怎麼組合起來就出事?坦白講,這就像你買一堆零件回家組電腦,電源供應器很穩、記憶體很穩、主機板也很穩,但全部兜在一起,就可能因為某個零件跟其他零件的「互動」出問題,或是環境條件沒考慮到,結果就是不定時當機。

我們產線上的產品,通常不只一個失效模式。可能是高溫加速老化,也可能是濕氣入侵,或是震動導致焊點疲勞。每個失效模式都有自己的「壽命分佈」。當這些失效模式同時存在,而且它們之間又不是完全獨立的時候,你只看單一零件的 Cpk 根本不夠。你需要一個方法,去模擬這些「不確定性」疊加起來,會對整個產品的壽命造成什麼影響。這時候,蒙地卡羅法就派上用場了。

實際上怎麼做?用亂數模擬搞清楚人生

所以重點是,蒙地卡羅法就是一種「亂數模擬」的方法。它不是在算一個精確值,而是在模擬成千上萬次不同的情境,然後從這些情境中去觀察結果的分佈。

舉個例子,假設我們的產品有兩個主要的失效模式:

  1. 模式 A:平均壽命 1000 小時,標準差 100 小時(假設是常態分佈)
  2. 模式 B:平均壽命 1200 小時,標準差 150 小時(也假設是常態分佈)

用蒙地卡羅法,我們會這樣做:

  1. 設定模擬次數: 比如說,我們模擬 10,000 次。
  2. 每次模擬:
* 從模式 A 的分佈中,隨機抽取一個壽命值(比如 950 小時)。

* 從模式 B 的分佈中,隨機抽取一個壽命值(比如 1100 小時)。

* 由於產品的壽命是由「最先失效的模式」決定,所以這次模擬的產品壽命就是 950 小時(取兩者最小值)。

  1. 重複 10,000 次: 這樣你就得到 10,000 個模擬出來的產品壽命。
  2. 分析結果: 你可以畫出這些壽命的分佈圖,計算平均壽命、標準差,甚至找出產品在 500 小時內失效的機率是多少。

你看,這樣是不是就能比較客觀地評估你的產品「預期壽命」了?我們那次就是用這個方法,模擬了十幾種失效模式,結果發現產品在一年內失效的機率高達 15%!DPMO 換算下來大概是 150,000,嚇死人。

最常見的坑:數據來源不對,模擬出來都是垃圾

說實話,蒙地卡羅法最常見的坑,就是你輸入的數據根本是錯的。如果你一開始對每個失效模式的壽命分佈、參數(平均值、標準差、甚至分佈類型,是常態分佈還是 Weibull 分佈)估計不準,那模擬出來的結果就跟垃圾沒兩樣。

我曾經看過一個菜鳥,直接拿實驗室「加速壽命測試」的結果,套用在真實環境的產品上,結果參數完全跑掉。加速測試的壽命分佈跟實際產品的衰退曲線根本不同,他還傻傻地以為套個 Arrhenius 方程式就能搞定。所以重點是,你必須要有可靠的歷史數據,或是嚴謹的實驗設計去取得這些分佈參數,否則就是在盲人摸象。

今天能做的一件事

找出你產品最關鍵的兩個失效模式,估計它們的壽命分佈,然後用 Excel 跑 1000 次蒙地卡羅模擬。

想試試看?

文章裡提到的分析工具在 InsightFab 都可以直接用,上傳 CSV 即可分析。

前往工具頁面