ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

MTBF计算书实战:从BOM到元器件应力分析与可靠性预计

MTBF计算书实战:从BOM到元器件应力分析与可靠性预计

简介:面向电子硬件可靠性预计、元器件失效率计算与MTBF报告编制人员,提供一份可直接参照的MTBF计算书示例,重点解决实际项目中缺少完整算例、参数取值和表格组织范式的问题。整包仅含1份PDF,约187KB,共34页,以金属膜电阻器为对象,系统展示MTBF概念、失效率公式λp=λbπEπCVπQ,以及基本失效率、环境系数、质量系数、应力系数等参数在具体型号和位号中的取用与汇总方式,并逐项列出位号、数量、型号与各系数,说明工作失效率的汇总过程和结果呈现,便于对照检查参数选取是否完整。读者可据此理解从器件应力、温度条件到工作失效率的计算路径,参考其章节结构、表格字段和编制口径,用于产品可靠性预计、客户资料准备或内部计算书模板整理。已有1649人学习。

1. MTBF计算书不是“算”出来的,是“查”出来的

手里这份 34 页的 MTBF计算书,第一眼看像天书:几百行位号,每行后面挂着一串表号,工作失效率精确到小数点后四五位。真拿计算器从头敲一遍会发现,要“算”的地方只有乘法和加法,剩下全是查表和抄数。它解决的不是“MTBF 公式是什么”,而是“一台 80VDC 输入、+5V1/4A、+5V2/0.5A、-5V3/0.5A 输出的电源,按元器件应力分析法走完一遍,到底要准备哪些数据、每一列填什么、哪些系数会让人栽跟头”。适合正在写可靠性预计报告、要交客户交付件、或者想给自家板子估个寿命底线的硬件工程师。公式早就写在那里,难的是把 BOM 一行行对进表格里,还得保证对得进去。

2. λp = λb·πE·πCV·πQ:把 34 页表格还原成一个通用式子

2.1 串联模型:整机 MTBF 为什么不等于“最短命的那个器件”

计算书默认的前提是:板上每一个元器件都是串联的。任何一个位号失效,整机就判失效;器件之间相互独立;失效率在预计周期内视为常数。满足这三条,整机失效率就是各器件工作失效率的直接相加:

Σλ = Σ Ni × λpi,MTBF = 1 / Σλ

这个式子带来一个反直觉的结论。你可能盯着那几颗大电解电容和 MOS 管,觉得它们才是寿命短板,但整机 MTBF 并不由它们单独决定——真正决定结果的是“所有位号的失效率之和”。一百颗看起来不起眼的 1/4W 电阻,每颗 0.03×10⁻⁶/h,加起来就是 3×10⁻⁶/h,比一颗 0.5×10⁻⁶/h 的电解电容重得多。所以做敏感性分析时,先看“谁贡献的 Σλ 最多”,而不是“谁最贵、谁最热”。

还有一点容易混:严格讲,不可修复产品谈的是 MTTF,可修复产品才谈 MTBF。但电源类交付件里这两个叫法经常混着用,本质上都是“平均无故障时间”。心里清楚就行,写报告时按客户模板的用词来,不用在这种地方较真。

MTBF = 1/Σλ得到的是一个指数分布参数,不代表“能连续跑这么久不坏”。实际工作到 t 时刻仍然正常的概率是P(t) = e^(-t/MTBF)。MTBF 为 10 万小时,不等于跑 10 万小时才坏一次,而是大约 37% 的样本能无故障撑过 10 万小时。

2.2 每一行失效率的四段结构

把这 34 页拆开,任意一行都是同一个结构,只是 π 系数的个数不同:

段内容例子(电阻行)常见误填
器件身份种类、位号、型号、厂商、数量 N金属膜电阻 / R1 / RN1/2WS 1MΩ / N=2把贴片电阻并进“金属膜电阻”类
基本失效率λb,只跟器件类型和规格有关,跟环境无关0.0050(10⁻⁶/h)拿同类别的别的阻值直接套
π 系数环境、质量、应力、温度、电路功能等πE=1.8、πQ=1.0、πCV=1.6全板 πE 填同一个值
工作失效率λp = λb × 全部 π 系数,再乘 N合计 0.0288(10⁻⁶/h)汇总时又乘了一遍 N

先看一个容易忽略的差异:同一块板、同一个环境,不同类型的器件查出来的 πE 并不相同。电阻是 1.8,铝电解电容是 2.4,整流二极管是 1.7,MOS 管是 2.0,光耦是 1.8,接插件是 1.5。这不是谁抄错了,而是每一类器件对应的系数表本来就不一样。把 πE 当成“整机环境参数”统一填一个数,是这类计算书里最常见的系统性偏差。

再看 π 系数的个数。电阻那行只有 πE、πQ、πCV 三项,二极管那行却有 πE、πQ、πA、πS2、πr 五项,MOS 管还要多一个 πK。不同器件类型的公式在结构上是不同的,不能用一个模板套到底。电解电容要额外乘 πCV(电压应力比),二极管要额外乘 πA(应用系数)和 πS2(二次应力),光耦要乘 πT(温度)和 πC(电路功能)。表格里那些“π 系数”列看似空着一大片,其实是留给不同器件类型的。

提示:判断一行填得对不对,最快的办法是看 π 系数的个数。电阻行出现 πA 或 πK,基本可以判定是模板串行了。

2.3 拿三行数据验算,确认你读对了列

光看结构没用,得能算回去。挑三行能形成完整对应关系的:

位号组类型Nλbπ 系数单个 λp合计
R1金属膜电阻20.0050πE=1.8、πQ=1.0、πCV=1.60.01440.0288
CD9~CD13铝电解电容40.0916πE=2.4、πQ=0.3、πCV=1.90.12530.5012
D8~D22整流二极管80.0160πE=1.7、πQ=1.0、πA=0.20.005440.0435

三行验算的过程:

  • R1:0.0050 × 1.8 × 1.0 × 1.6 = 0.0144,两颗合计0.0288
  • CD9~CD13:0.0916 × 2.4 × 0.3 × 1.9 = 0.1253,四颗合计0.5012
  • D8~D22:0.0160 × 1.7 × 1.0 × 0.2 = 0.00544,八颗合计0.0435

如果自己按这三行复现后对不上,先别怀疑系数,按顺序查三件事:单位是不是 10⁻⁶/h;N 到底乘在哪一层;πQ 有没有从“质量等级 B2”错译成一个数字 2。这三处能解释九成以上的偏差。

3. 把 BOM 变成失效率表:位号、数量与系数的对齐

3.1 位号合并与数量列:N 到底乘在哪一层

计算书里 R9、R14、R19、R27、R29、R57、R58、R59、R62 九颗 1K 电阻合成一行,N=9,这是正确的做法——同型号、同应力、同温度的位号才允许合并。合并的判据不是“阻值一样”,而是“阻值 + 封装 + 精度 + 应力比 + 工作温度”五项全一致。少一项就得拆行。

拆行的反例在这份文档里就有:80VDC 那一节写的是RSS2W 0.22Ω,翻到 100VDC 那一节,同一位号变成了RSS1W 0.75Ω。输入电压变了,采样电阻的阻值和功率都跟着换,这是真实现象,但也说明这两行根本不能合并——它们代表两种不同的物料状态。如果你的 BOM 里一个位号对应多个可选料,合并前先确认最终交付的是哪一版。

关于 N 乘在哪一层,我的习惯是:末列一律存“合计失效率”,单只失效率单独留一列做核对。这样汇总时只做一次sum(),不会出现“表里已经乘过 N、汇总又乘一次”的重复计入。文档里几个行能验证这一点:D8~D22 八颗,单只 0.00544,末列 0.04352,正好是 8 倍;CD9~CD13 四颗,单只 0.1253,末列 0.5012,正好是 4 倍。看到末列等于单只乘以 N,说明这一列是合计值。

提示:如果一批数据的末列和单只恰好相等、而 N 又大于 1,先别急着往下算,回头确认那一列到底记的是单只还是合计。

3.2 实测应力和温度从哪来

π 系数里最容易被拍脑袋填的是应力项和温度项,而这两项恰恰是拉开门差距的地方。

应力比 S 的定义是“实际工作值 / 额定值”。电阻看功率比,电容看电压比,二极管看电流或电压比中的较大者。计算书里电阻的应力系数 S 大量填 0.1,说明这些电阻的实际功耗只有额定功率的十分之一;电解电容则填 0.3 到 0.8,明显吃得更满——这也是为什么电容那几行的 λp 一骑绝尘。

温度要填热点温度,不是环境温度。文档里 PWM 芯片那段写的是Tj = 55 + 3 = 58℃,55 是壳温、3 是热阻折算的温升,这个“壳温 + 温升”的写法值得学。用 25℃ 室温去查 πT,等于假设芯片不发热,算出来的 MTBF 会偏乐观一大截。至于电阻、电容那些行统一写“环境温度 25℃”,是因为它们的温升相对小、且手册表本身就是按环境温度组织的,属于合理简化,但芯片、MOS、大功率二极管不能这么干。

3.3 系数表的索引规律

表格里那些表5.1.6.8-1、表5.1.6.8-2看着像乱码,其实有规律可循:前缀5.1.6.8指向“铝电解电容”这一大类,尾号-1是环境系数 πE,-2是质量系数 πQ,-3是电压应力系数 πCV,-5是基本失效率 λb。同一组前缀下,尾号越小越靠前,通常对应越基础的系数。

掌握这个规律的好处是:拿到一份陌生的计算书,不用逐行读,只看每一行引用的表号前缀,就能判断它归到了哪个器件大类。如果一行电阻引用了5.1.6.x开头的表(电容类),基本可以判定归类错了。会读表号,比会套公式更能决定这份文档能不能被复现。

3.4 用 Python 把汇总跑起来

手工算几十行还行,几百行必须上脚本。下面这段只取五组器件做小样,结构可以直接扩到整份 BOM:

import pandas as pd # 一行 = 一组“同型号 + 同应力 + 同温度”的位号 # lb 单位 10^-6/h;pi_* 为各类系数;n 为该组数量 rows = [ dict(group="R1", kind="金属膜电阻", n=2, lb=0.0050, pi_E=1.8, pi_Q=1.0, others={"pi_CV": 1.6}), dict(group="R10/R15/R46", kind="金属膜电阻", n=3, lb=0.0050, pi_E=1.8, pi_Q=1.0, others={"pi_CV": 1.0}), dict(group="CD9~CD13", kind="铝电解电容", n=4, lb=0.0916, pi_E=2.4, pi_Q=0.3, others={"pi_CV": 1.9}), dict(group="D8~D22", kind="整流二极管", n=8, lb=0.0160, pi_E=1.7, pi_Q=1.0, others={"pi_A": 0.2, "pi_S2": 1.0, "pi_r": 1.0}), dict(group="Q2", kind="MOS管", n=1, lb=0.3560, pi_E=2.0, pi_Q=0.2, others={"pi_A": 2.5, "pi_K": 0.7, "pi_r": 1.0}), ] df = pd.DataFrame(rows) # 把 others 里不定长的系数摊平成列,缺失项补 1.0(不参与乘积) pi_cols = sorted({k for d in df["others"] for k in d}) for c in pi_cols: df[c] = df["others"].apply(lambda d: d.get(c, 1.0)) # 单只失效率 = lb × 全部 π 系数(缺省 1.0 的项不影响结果) coef_cols = ["pi_E", "pi_Q"] + pi_cols df["coef_prod"] = df[coef_cols].prod(axis=1) df["lam_single"] = df["lb"] * df["coef_prod"] df["lam_total"] = df["lam_single"] * df["n"] # 数量只在这里乘一次 lam_sum = df["lam_total"].sum() df["share"] = df["lam_total"] / lam_sum * 100 print(df[["group", "kind", "n", "lam_single", "lam_total", "share"]] .round(5).to_string(index=False)) print(f"\nΣλ = {lam_sum:.4f} ×10^-6/h") print(f"MTBF = {1/lam_sum:.2f} ×10^6 h ≈ {1/lam_sum*1e6/8760:.0f} 年")

跑出来的结果是 Σλ ≈ 0.8497×10⁻⁶/h,MTBF ≈ 1.18×10⁶ 小时。这个数字看着离谱,是因为只塞了五组器件——真实整机有几百个位号,Σλ 会大两三个数量级,MTBF 自然回落到正常区间。

代码里有三个参数值得说明。n只参与lam_total的计算,绝不进lam_single,这是防止重复计入的关键隔离。others字典里缺失的系数统一补 1.0,是因为乘 1 不改变结果,这样不同类型器件可以共用同一张表,不必为每种器件建一个 schema。share那一列是给下一步用的——按占比降序排,前十名就是整机的失效率大头,改料、降额、加散热都优先从这几个位号下手。

4. 80VDC 与 100VDC 两套工况:多工况汇总与结果自检

4.1 为什么要按输入电压分两遍算

这份文档把 80VDC 和 100VDC 分成前后两大块,各算一遍。原因很直接:输入电压变了,采样电阻的阻值要换(0.22Ω → 0.75Ω),开关管的占空比和工作点变了,二极管的电压应力比跟着变,πS 和 πCV 都会动。这些变化会传导到最终 λp 上,不能只算一种工况就交差。

更实际的原因是客户要求。电源类产品的规格书通常标一个输入范围,交付件需要证明“在最不利输入下仍然满足 MTBF 指标”。所以要按边界工况各算一遍,取更差的那个。

4.2 取最坏值,但不能重复计入

多工况汇总的原则是:同一台整机,同一时刻只可能处在一种工况。所以不能把 80VDC 和 100VDC 的 Σλ 相加,那样相当于假设两个工况同时发生。正确做法是分别得到Σλ_80和Σλ_100,取较大者作为整机失效率,再用MTBF = 1/Σλ_最坏得出结果。

实际操作中有个细节:不是所有器件在两种工况下都变。变压器、PCB、接插件、外壳相关的失效率基本不动,电阻电容里也只有承担应力变化的那部分会变。如果两套表算出来的 Σλ 差异很小,说明整机的失效率大头落在“与输入电压无关”的器件上,这时候再优化输入侧的降额,收益有限。

4.3 三个量级自检

算完别急着写结论,先做三道量级检查,能挡掉大部分低级错误。

第一道,看 Σλ 的量级。几十个位号的小板子,Σλ 通常在 0.1 到 1×10⁻⁶/h;几百个位号的整机电源,落在 10 到 200×10⁻⁶/h 之间。如果你的结果跑到 10⁴ 量级,八成是某个 π 系数多乘了一位,或者单位从 10⁻⁶/h 错当成了 10⁻⁹/h。

第二道,看单项占比。正常电源里,电解电容、光耦、继电器、变压器这几类通常是失效率大户,单类占到 20% 到 40% 不奇怪。如果某颗普通 1/4W 电阻的贡献超过了整块板的 30%,回去查它的 π 系数是不是串行了。

第三道,看两套工况的比值。80VDC 和 100VDC 的 Σλ 一般差在 5% 到 30% 之间,差出几倍就说明某处应力比算错了。文档里 R11 从 0.22

本文还有配套的精品资源,点击获取

返回列表