ISO26262 中 ASIL 與 DFMEA 有什麼區別?
ASIL中安全完整性等級考慮功能失效的嚴重性、暴露率和可控性,DFMEA中考慮故障嚴重度、發生度和探測度,兩者關注點和控制方法看起來是一樣的。
ASIL 全稱是Automotive safety integration level 針對的是電子模塊制定的標準
The standard ISO 26262 is an adaptation of the Functional Safety standard IEC 61508 for Automotive Electric/Electronic Systems. ISO 26262 defines functional safety for automotive equipment applicable throughout the lifecycle of all automotive electronic and electrical safety-related systems.
分為Severity / exposure/ controllability
Severity Classifications (S):
S0 No InjuriesS1 Light to moderate injuries
S2 Severe to life-threatening (survival probable) injuriesS3 Life-threatening (survival uncertain) to fatal injuriesExposure Classifications (E):E0 Incredibly unlikelyE1 Very low probability (injury could happen only in rare operating conditions)E2 Low probabilityE3 Medium probabilityE4 High probability (injury could happen under most operating conditions)Controllability Classifications (C):C0 Controllable in general
C1 Simply controllableC2 Normally controllable (most drivers could act to prevent injury)C3 Difficult to control or uncontrollable然後根據三個指標對某個系統進行S/E/C 綜合評價得到總的ASIL等級
FMEA全稱是Failure mode effect analysis
分為Severity/Occurrence/DetectiveS/O/D 根據程度分為1-10.其中Occurance的定義如下Detective- 所以區別在於一個針對電子模塊系統進行的一個風險管理體系FMEA則應用更廣泛。
- 對於發生度評價指標量化程度不同。Exposure和Occurrence;
- 對於可探測度和可控性的定義不同,FMEA更多關注於子系統零件本身失效是否可以被發現,輸入可以是實驗報告,檢車設備,防錯設計等。而Contrallability則是整車駕駛員對失效的可控制性。
先答這些。
借這個問題的人氣淺談一下汽車研發領域的功能安全(Functional Safety)和ISO26262。至於FMEA的部分, 希望以後慢慢補上。
在這篇文章中我會簡要談談以下內容:
1. 什麼是功能安全
2. 什麼是ISO26262
3.什麼是ASIL,如何進行需求的ASIL評級
4.在獲得ASIL評級以後,如何確保功能安全
------------ ------------ ------------ ------------ -------迷之分割線----- ------------ ------------ ------------ ------------
隨著消費者對汽車質量和安全性要求的日益提升,以及近年來輔助駕駛/自動駕駛概念的興起,功能安全(Functional Safety) 在汽車研發中佔據的地位變得越來越重要。無論是控制工程師、機械工程師還是像我一樣的軟體狗(誤??),能對功能安全的基本概念有所了解,也逐漸成為了skill set中的重要一環。
但是在實際工作中,我發現剛入職一兩年的同事們,基本上就沒有接受過任何功能安全相關的培訓。在開技術討論會牽涉到相關話題時往往是一臉懵逼。所以借著在中國休假等簽證的機會,我打算寫這篇文章對功能安全進行一個簡單介紹,同事也是回饋點了我關注的800多同學....
1. 什麼是功能安全
按照比較老的ISO8402的定義,功能安全就是:
「A state in which the risk of harm (to persons) or damage is limited to an acceptable level.」
而根據ISO26262, 功能安全被定義為:
「Absence of unreasonable risk due to hazards caused by malfunctioning behavior of E/E systems.」
所以綜合一下、按通俗的理解而言,功能安全就是指汽車即便出現了故障,這個故障也是可控的,不會出現「玩脫了」的情況。實現功能安全是汽車設計的主要目標,也是評價汽車設計的重要標準。
2. 什麼是ISO26262
ISO26262: Road Vehicles – Functional Safety 是一個適用於汽車電子/電氣系統的國際標準。這個標準對汽車的研發、生產、測試、售後等整個生命周期,在文檔管理、流程規劃、功能設計和任務執行等方面進行了具體的指導,並提出了一系列要求,最終使產品達到功能安全的目標。
可以說,「功能安全」好比一位童顏巨乳、溫婉善良、人人都想追的妹子,而「ISO26262」則是一本針對這個妹子的詳細把妹教程。而且ISO26262比把妹教程更牛逼:沒有哪本教程可以保證你把妹成功,但只要企業詳細遵循了ISO26262標準,其設計出的產品就一定能滿足功能安全的目標。只要了解了ISO26262,可以說就了解了功能安全的絕大部分內容。
ISO26262內容非常豐富,但對於非安全工程師而言,我認為了解到ISO26262中最重要的三部分內容就可以了,它們是:1. 「V」型開發流程 2. ASIL概念 3. 功能安全設計開發流程
對於「V」型開發流程(the 「V」 cycle),我在另外一篇文章:寫工業級別代碼是怎樣一種體驗? - 知乎 中已經介紹過了(是的我就是順便打個廣告),在這裡我想先介紹一下ASIL的概念。
3. ASIL
3.1 ASIL 的定義
ASIL(Automotive Safety Integrity Level)是用來描述一項需求(Requirement)的安全嚴格等級的概念。它由低到高分為A、B、C、D四個級別,除此之外還有一個非安全需求的QM(Quality Management)級。粗略而言,ASIL D級別的需求,一旦發生故障則具有相當高的安全風險,會導致嚴重的安全後果,往往危及人員生命安全;而對於ASIL A級別的需求,安全風險就很小了,就算出了故障也無所謂。
比如需求「順/逆時針轉動方向盤時,電子助力的力矩須與其保持同方向」是ASIL D級,因為如果駕駛員向左打方向盤而助力向右,汽車很快就會失控並撞向道路一側,這是要出人命的;而「車窗可通過按鈕控制上行/下行」就是ASIL A級——你的車窗就算壞了,除了淋點雨,並不會發生什麼了不起的事情。
於是,當汽車研發人員拿到一份需求文檔,首先要做的就是對其中每一項需求進行ASIL評級。
3.2 ASIL 的評級
那麼一項需求的ASIL具體是怎麼確定的呢?為了詳細說明,還要引入幾個ISO26262中定義的概念。
第一個概念:Exposure(E)。Exposures是指故障發生的時長佔平均運行時長的比例,用來表徵故障發生的概率大小。E值越大則故障發生的概率越大。
第二個概念:Controllability(C)。Controllability是指故障發生以後,駕駛員是否可以人為對故障狀態加以控制。C值越大則越難以控制。比如前面的例子中,如果反向的轉向助力非常大,以至於駕駛員靠手臂的力量無法控制方向盤,則C值也就很大。
第三個概念:Severity(S)。這個比較好理解了,就是故障的嚴重程度。S值越大則故障越嚴重。轉向助力失靈是很嚴重的故障,而車窗失靈就不嚴重。S值分由輕微到嚴重為S0至S3共四級。
聰明的你一定已經意識到了,一項需求發生故障以後的安全風險,可以用公式
Risk = E * C * S
來表示。
第四個概念:Tolerable Risk。前面我們已經得到了安全風險的量化公式,那麼進行評級還需要一個對比標準,這個標準就是Tolerable Risk。
為了吹噓我家的汽車安全,我可能會說:「我們生產的軟體狗牌轉向機的故障的風險,比空難的風險還低!」這裡就選擇了空難作為對比標準。事實上,安全工程師在制定Tolerable Risk的時候,確實類比了諸如空難、七級以上大地震、嚴重車禍等等事件的量化風險做標準——如果我做出來的汽車部件的安全風險,比大地震的風險還低,你作為消費者,是不是已經可以安心使用了呢?
把以上四個概念繪製在一個圖表中,以S為橫軸,E*C 為縱軸,就可以得到以下一張ASIL評級圖:
從圖中我們可以看出,左下角的安全風險最低,而右上角部分的安全風險最高,並且有Tolerable Risk線把圖分為了兩部分。Tolerable Risk 線以下的部分,就好比「比地震風險還低」的部分,不需要給予特別關注,可以直接評為非安全需求的QM級;而線以上的部分,就具有顯著的安全風險,需要進行ASIL評級,最右上角評為D級,向左下依次評為C、B、A級。
在實際評級中,安全工程師會制定詳細的E、C、S值量化評分表,於是對於任意一項需求,都可以對照評分表得出其E、C、S的值。其中,確定E值的過程叫做Risk Assessment,而確定C值和S值的過程叫做 Hazard Analysis。有了E、C、S值, 再對照ASIL評級圖,就可以得出這項需求的ASIL 評級了。
ISO26262中給出了一張標準的ASIL評級表,這裡也貼出來(其中的C1-C3,E1-E4是各種具體分級,具體定義前面的答案已經描述過了),和我畫的其實是一個意思。對於初學者而言,我覺得我畫的圖更容易理解(迷之自信...)。
注意: ASIL 評級過程和DFMEA中PRN值的計算以及PRN值的降低過程有些相似,卻又有本質上的不同。這部分其他答案已經有所涉及,限於篇幅這裡就不對比說明了。等我下次寫一篇介紹DFMEA的文章時再詳細說吧(希望不要又是半年以後……)
4. ISO26262如何保證功能安全?
前面說了那麼多各種概念,現在來談一下為什麼說執行ISO26262後一定能保證功能安全。
根據ISO26262, 對於任何一項需求,其功能安全大致可以通過以下幾個步驟來保證:
1)進行Hazard Analysis 和 Risk Assessment。前文已敘,這個步驟是為了獲得需求的E、C、S值。
2)評出此需求的ASIL評級並建立Safety Goal。Safety Goal 是一個具體的、定性的安全目標,比如轉向助力那個例子中,「助力方向一致」這個需求一定是ASIL D級,故障後會有相當大的安全風險。其Safety Goal就是把故障風險降低至可容忍風險以下。Safety Goal繼承對應需求的ASIL評級。
3) 將Safety Goal 進一步分解為 Functional Safety Concept 和 Technical Safety Concept。還舉前例,要怎樣降低「助力方向一致」 故障的風險呢?一個可行的辦法是進行冗餘計算:用兩套不同的演算法計算助力方向,保證結果的正確性。或者,把助力電機的力矩限制在一個較小的值也是個好辦法,因為這樣一來即便助力方向錯誤,由於助力有限,駕駛員還是可以控制汽車。
這些解決方法就是Functional Safety Concept。把Functional Safety Concept進一步在技術上具體化,就是Technical Safety Concept。它們將繼承步驟2)評出的ASIL等級。不同的ASIL等級對Functional Safety Concept 和 Technical Safety Concept有不同的要求。
4)由Technical Safety Concept 形成Software Safety Requirements 和 Hardware Safety Requirements。這些就是非常具體的安全需求了,可以直接作為軟/硬體設計的依據。這些需求也繼承了相同的ASIL等級。
5)根據4)步得到的安全需求,結合其ASIL 等級制定測試與驗證方案。對於不同等級的安全需求,ISO26262對測試方案有著硬性的要求。比如ASIL D級需求除了進行MISRA、PolySpace等測試外,還要進行完備的功能測試和覆蓋率100%的MCDC測試,並對Traceability (可溯性?)也有相應要求。
功能安全設計開發流程
在進行這套流程的同時,還需配合FMEA 和 DRBFM 對系統設計進行分析和評價。可以說,全套流程結束以後,功能安全能夠得到有效的保障。
5. 最後再說一些
其實吧,要說透功能安全流程的實施,一定要配合著V型開發流程講。但是這樣講起來再畫五張圖、再寫一千字也未必講得清楚,這裡就作罷了。ISO26262還有一個 Safety Life Cycle 的概念,我個人認為對普通工程師沒有那麼重要,限於篇幅也就不涉及了。
我在美國工作了五年,也去歐洲開會交流,感覺現在整個歐美汽車行業,除了幾家主要OEM, 大部分企業對功能安全可以說既不重視,理解也不到位。每家企業對於ISO26262都有自己的理解,甚至有時彼此間的理解差異還很大。在這裡我盡量寫出了自己的理解,希望能拋磚引玉,和大家探討。
參考資料:
[1] ISO26262:2011 Road Vehicles – Functional Safety
[2] ISO8402:1994 Quality management and quality assurance
[3] Wikipedia.org, item "ISO 26262"
1. 首先,ISO26262的ASIL與DFMEA的打分對象不同二者具有相同點,都研究失效(failure)。那麼,我們舉一個具體的例子來對比:「整車控制器(VCU)上的某個器件發生失效後,導致VCU發出錯誤的扭矩命令,從而使動力總成輸出過大扭矩,車輛發生了非預期加速。而前方恰好有車,非預期加速導致了追尾碰撞,駕駛員受到不同程度的傷害」。以下圖表示此事件,發生在element level的fault向上級系統層層傳遞,導致了vehicle level的failure(也可以叫做malfunction或malfunction hazard)。Vehicle level的failure在一定的情景下會危害到人的安全,發生危害事件(Hazard event).DFMEA的打分對象是element或component或system或vehicle,在企業中,不同系統級別的DFMEA一般是在不同級別部門裡進行,某一系統級別的failure mode是上級系統的fault。DFMEA打分的3個維度Severity/Occurrence/Detective都是針對器件或系統的:
- Severity嚴重度:某個器件或系統失效後有多嚴重?
- Occurrence頻度:某個器件或系統失效有多頻繁?
- Detective探測度:發現失效的難度程度(可能性)有多高?
ISO26262的打分對象是Hazard event,打分的3個維度Severity / exposure/ controllability都是針對可能危害到人身安全的危害事件的(若只損害汽車而不危害到人身安全,則為S0,不需要打分):
- Severity嚴重度:危害事件會對人造成多大危害?(無大礙、輕傷、致殘、致死)
- Exposure暴露度:此危害事件的情景(Scenario)發生的頻繁程度?(注意,與系統無關,情景的頻繁程度)
- Controllability可控度:駕駛員通過觀察系統警示信息或快速反應,以避免危害事件發生的難易程度。(注意,不是系統主動避免危害事件)。
綜上,二者的打分對象是完全不同的。DFMEA關注的是系統或器件,而ISO26262關注的則是抽象概念的危害事件(所謂抽象,是指ISO26262時在打分的時候是不關注系統的,可適用於不同車輛。)。
2. 然後,二者的思維方法是完全不同的(對應於題主所說的「控制方法」)。
DFMEA是典型的歸納式(inductive)方法,從單個fault出發,去思考可能引發的後果(failure或hazard)。與DFMEA相對應的是故障樹方法(FTA: fault tree analysis),從hazard去分析可能的原因,是一種演繹式(deductive)方法。ISO26262的功能安全是一整套體系與流程,不能籠統地說是歸納式的還是演繹式的。但從上面的圖可以看出,ISO26262的分析起點是Hazard event,從最終的後果去定ASIL等級,再通過一定的方法將ASIL等級分配給系統、子系統、部件、器件。從宏觀的思路上來看,這與FTA類似而與FMEA相反,是一種演繹的思維方法。3. 最後,二者的概念級別是不同的。DFMEA與FTA可以是同一級別的概念,是分析失效的兩種不同思維方法。而ISO26262是一整套流程,大體上可以分為幾大階段:- 概念階段Concept Phase
- 系統開發階段System Design (V型開發)
- 硬體開發階段Hardware Design
- 軟體開發階段Software Design
每一階段,均會使用到FMEA方法與FTA方法(有可能只做部分工作,而不是完整的FMEA或FTA)。ISO26262將FMEA與FTA當作是整套流程的一種工具。
%%%%%%%答主知識水平自評%%%%%%%%- ISO26262:接觸3個半月,即將入門。
- FMEA:6年前上過幾節課,學了點皮毛。
因此,答主水平也是相當一般的,因此答的內容不要全信。高人如指出錯誤,答主在確認之後會第一時間更正。
%%%%題外話%%%%%二者還有不少相同之處。由於題目問的是不同之處,因此不就贅述了。我嚼著小梅算是答道點子上,對於我們來說FMEA是每個零件開發中都要做的一項工作,這是一個工具幫助我們理解零件開發過程中會遇到的失效並安排相應的措施避免。但是無論如何,失效在概率上是無法避免的,而且減少概率是要成本的。這個就叫失效率,通俗點說,你的失效率如果能做到某個很小的級別,你就可以做到ASILD的標準。
題主問的可以總結是:
ISO26262中的FMEDA和TS16949中DFMEA的計算理解的區別
為了能回答好這個問題,我在某寶上搞了好些資料,我一定要成為這個問題的最佳回答者。
- FMEDA: (Failure Modes Effects and Diagnostic Analysis)失效模式、影響及其診斷分析。
主要針對硬體 HW level。
失效模式、影響及其診斷分析( FMEDA) 法在功能安全工作中起到很重要的作用,它對功能安全產品的失效風險、是否可診斷進行定性分析,同時也為平均失效概率和安全完整性等級的計算提供了有效的數據支撐。
λ :Component Failure Rate [1/h]
∑λSafety :Component Failure Rates added for all components with safety related issues
DC :Diagnostic Coverage
FCCU: Fault Collection Communication Unit
GPM-ECU: General Purpose Machine - Electronic Control Unit
LFM :Latent Fault Metric [%]
PMHF :Probabilistic Meteric for Random Hardware Failures
FIT :Failures In Time,in one billion device-hours of operation.
SPFM: Single Point Fault Metric [%]
MPF :Multiple Point Fault [1/h]
RF :Residual Fault [1/h]
MTBF: Mean Time Between Failure 1/h
2:DFMEA: (Design Failure Mode and Effects Analysis )應在一個設計概念形成之時或之前開始,並且在產品開發各階段中,當設計有變化或得到其他信息時及時不斷地修改,並在圖樣加工完成之前結束。其評價與分析的對象是最終的產品以及每個與之相關的系統、子系統和零部件。
DFMEA是一種分析方法,功能安全里可以採用的安全分析方法包括FMEA, FTA, RBD, ETA等等,很多種,其中FMEA和FTA是用的最普遍的。ASIL是在HARA這個階段的安全分析來確定的,其本身是安全需求的一種屬性。在HARA分析中借鑒了FMEA的思路,尤其是通過三個參數來確定ASIL等級,所以看上去確實有相似之處。
大概念就不說了,問這個問題大概是沒有實際使用過。個人建議不用太過糾結於這些問題,用一次大概就知道是怎麼回事了。asil是評價安全目標的危險程度,dfmea是分析有哪些潛在可能的危險。兩者的使用目的不一樣。就好像車輪壞掉了對整車有多大的危險,這是在做asil分析,目的是為了確定我們到底用一種什麼態度去對待這輪壞了這樣的問題(然後你就會發現不是那麼簡單的說壞了就完了,你就需要把車輪的功能細分,然後針對各個功能去再做分析)。而dfmea是在確定車輪都有什麼樣的可能性發生故障,或者到底有多少種類的車輪故障,每種故障到底有多大可能性發生,發生了會對車輪甚至車輛造成多嚴重的影響,等等。dfmea的目的是為了評價潛在的可能發生的問題以及各種問題的風險程度。從而能讓我們發現沒有發現的風險和故障的可能。這兩種分析在做之前他們的背景信息,或者說出發點是完全不同的。雖然同樣都是分析風險的程度,但是使用的目的不一樣,思維的方式和思考的方向也就不一樣。還是那個話,我覺得不太需要太過在意這些,因為兩者不是一個類型的概念,所以用個一兩次應該就可以理解了。
ASIL 是安全需求的屬性,而FMEA是安全分析和工程分析的方法?兩者不是一個科目,沒法比較。命題錯誤。
跟題主討論下問題中的某一句,「 ASIL中安全完整性等級考慮功能失效的嚴重性、暴露率和可控性 」,ASIL中的暴露率指的是事件場景的暴露率,而不是功能失效本身的暴露率。
今天看《電動汽車動力電池系統-安全分析與設計》(王芳夏軍)中提到,其中ISO26262中ASIL等級裡面的 Exposure ,指的是場景的暴露率,而不是故障的暴露率。舉例,比如說分析過充起火和慢充這個事件,評估的是慢充充電這件事(電動車幾乎每天都會充電)的暴露率,而不是慢充起火這件事的暴露率。
不知題主和大家如何看。
推薦閱讀:
※眾包模式的平台如何控制服務提供方的服務質量?
※大學剛畢業從事質量工作,如何提高英語能力呢?謝謝大家??
※質量保證(QA)人員需要具備的能力?
※供應商質量管理(SQE)的技能需求?
※公司的質量指標體系應該包括哪些?