
简介《MTBF计算书MTBF计算示例》是一份面向电子硬件设计、可靠性工程及质量验证人员的实用案例文档围绕平均故障间隔时间MTBF的评估流程给出可对照学习的计算范本。文档以金属膜电阻器为主要对象结合常州智电电子有限公司的实例完整展示基本失效率、环境系数、质量系数、应力系数等参数的取值依据并运用 λpλbπEπCVπQ 逐步计算工作失效率涵盖R1、R10、R11等多组位号及型号数据。资源包共1个PDF文件大小约187KB正文约34页以表格化清单和计算过程为主便于按元件类别查阅与复核。目前已有1649人学习适合需要理解MTBF建模、开展元器件失效率估算或编写可靠性计算书的技术人员参考也可作为产品可靠性评审与设计验证的辅助材料。1. MTBF 不是平均寿命34 页计算书到底在算什么很多人第一次看到 MTBF 这个词会下意识把它读成“这台设备平均能用多久”。于是一份写着几十万小时的计算书摆在面前第一反应是“这机器能用几十年”。偏差就在这里MTBF 描述的不是寿命终点而是稳态工作期内两次故障之间的平均间隔它的倒数就是失效率 λ——一个描述“每小时坏掉的概率”的量。这份 34 页的 MTBF 计算书做的事很朴素把一块多路输出开关电源上几百个器件按种类逐行查表取基本失效率乘上一串环境、质量、应力修正系数算出每行的工作失效率再全部相加。它不预测哪天会坏它回答的是这套设计的失效率预算是多少。2. 串联模型为什么整机失效率就是所有器件相加2.1 恒定失效率假设计算只在浴盆曲线底部成立可靠性工程里有一条著名的浴盆曲线左端是早期失效期失效率随时间去递减对应产线上的老化筛选中间是一段长长的平坦区失效率近似常数右端是耗损失效期随磨损、电解液干涸、镀层疲劳而快速上升。所有基于手册的 MTBF 计算都只在中间那段平坦区有效。这也是为什么计算书的表头必须写清楚工况输入 80VDC、输出满载、环境温度 25℃。这些条件不是为了好看它们是把器件「钉」在平坦区某一点上的坐标。一旦你把环境温度改成 70℃、把负载从 100% 拉到 120%平坦区的位置就变了整份计算书要重算。恒定失效率这个假设一旦成立数学上就非常好办器件的寿命服从指数分布生存函数是 R(t) e^(-λt)。指数分布有「无记忆性」——已经正常跑了 1000 小时的器件接下来 1 小时的失效概率和全新的一模一样。这个性质在物理上当然不严谨但在电子元器件进入稳定期后的确是个足够好的近似而且它让整机可靠性可以从零件可靠性直接推出来。2.2 从 R(t)e^(-λt) 到 λ_totalΣλ_i推导只有两步但每一步都藏着工程假设。第一步单个器件的生存概率是 R_i(t) e^(-λ_i·t)。第二步假设整机是「串联可靠性框图」——任何一个器件失效整机就失效没有冗余、没有旁路。那么整机存活等价于所有器件同时存活R_system(t) Π R_i(t) Π e^(-λ_i·t) e^(-(Σλ_i)·t)对照指数分布的标准形式立刻得到 λ_system Σλ_i于是 MTBF 1 / λ_system。这个推导的杀伤力在于它把「整机可靠性」这个很虚的概念变成了一次加法。你不需要理解电源环路怎么补偿、PWM 怎么调制只需要把每一行的 λp 加起来取倒数。计算书的最后一页通常就一行字——总失效率多少、MTBF 多少小时背后的全部依据就是这一个加法。但串联假设本身就是一条设计取舍。真实的电源里输出侧的滤波电容坏掉可能只是纹波变大未必立刻停机某一路输出的整流管击穿其他路也许还能工作。串联模型故意不承认这种「部分降级」把所有器件都当成单点故障。这是保守估计也是它能被评审接受的原因——宁可算低不能算高。2.3 数量比单个器件的品质更致命因为 λ 是线性相加的一个器件再可靠乘上几百个也会变成可观的分量。这份文档里最能说明问题的是 PCB 那一行金属化孔 480 个单个孔的基本失效率只有 0.00017单位 10⁻⁶/h听起来可以忽略可 480 × 0.00017 0.0816加上基板本身的 0.0011再乘上环境、质量、复杂度系数整行贡献 0.16880。这个数字比很多有源器件都大。反过来看那些「单件失效率高」的选手铝电解电容某些行的行合计能到 0.5 量级继电器、光耦也在 0.2 以上。它们数量少但一颗顶几百个电阻。这就是为什么可靠性预计不能只盯着「关键器件」看。真正决定 MTBF 的是「单件失效率 × 数量」这个乘积在整张表里的分布。经验上一张元器件表里排名前 10 的行往往贡献了 70% 以上的总失效率。做设计改进时先砍这 10 行收益最大。3. π 系数体系基本失效率为什么要乘一串修正因子3.1 λb 从哪来查表法是一种工程折中看表格你会发现一个规律同一类器件λb 的取值少得可怜。金属膜电阻反复出现 0.005、0.009、0.01 这几个数安规电容是 0.0018、0.0031整流管是 0.016、0.036、0.051。这不是偷懒而是手册法的核心设计把海量的现场失效数据和实验室加速试验数据按「器件大类 额定功率/耐压档位」聚合成一张离散的基准表λb 就是这张表里某个档位的代表值。同档位内的差异比如同样是 1/4W 金属膜电阻阻值从 10Ω 到 1MΩ交给后面的应力系数去修正不放进 λb。这套做法的好处是可复现两个人拿到同一份 BOM、同一套表格算出来的结果应该一模一样。代价是精度——它描述的是「这一类器件」的统计平均而不是「这一颗」的真实寿命。所以计算书里每一行都要标注查的是哪张表表 5.1.4.2-5、表 5.1.6.5-1 这类编号编号就是可追溯性的锚点。λb 的物理含义是「在标准参考条件下的失效率」。参考条件通常是环境温度 25℃、电应力比 0.1~0.5、质量等级中等。所有偏离参考条件的地方都要用 π 系数补回来。3.2 πE 环境系数同一颗电阻在不同场景下的寿命差πE 是整串系数里影响最大的一个。它描述器件所处的宏观环境地面固定机房、地面移动设备、舰船舱内、机载、航天……每一档对应一个数值这份文档里 GF1 对应的值是 1.8电阻类或 2.5 或 2.4其他类别表格。环境不只是温度。它囊括了振动、湿度、盐雾、温度循环、气压。同一颗金属膜电阻装在恒温机柜里和装在带风机、有振动的户外机箱里膜层的裂纹扩展速率能差好几倍这就是 πE 要表达的东西。这里有一条容易踩的坑πE 在不同器件大类下取自不同的表格数值不同。电阻表里 GF1 是 1.8MOS 管的表里 GF1 可能是 2.0电解电容的表里是 2.4。它们同名同义但不能互相套用。计算书里每一行的 πE 后面都跟着一个表号就是为了防这个。3.3 πQ 与 πL采购等级和成熟度怎么进公式πQ 是质量系数对应器件的筛选等级和认证等级。文档里出现 A2、B2、A4 这类代号A 系列通常意味着更严的筛选和更低的失效率B 系列次之。落到数值上A2 可能是 0.3A4 可能是 0.25B2 是 1.0 或 1.6。差距是几倍。这解释了为什么「同等规格价格差三倍」在元器件采购里是常态你买的不只是参数还有筛选等级。做可靠性预算时必须提前确认 BOM 里实际用的是哪一级否则计算书和实物对不上评审一抽查就会暴露。πL 是成熟度系数看的是这颗器件投产多久、有没有批量使用历史。文档里 PWM 芯片那一行 πL 1.0意思是已经足够成熟。新产品、新料号在早期阶段 πL 会大于 1随着使用时间拉长逐渐降到 1。这是个很「软」的参数但它承认了一个事实可靠性数据本身也在积累没人能对新器件给出确定的失效率。3.4 πS / πCV 与 πT降额设计和结温怎么落到数字上应力系数是设计工程师唯一能直接控制的参数。πS或电容的 πCV由电应力比 S 查表得到S 实际工作应力 / 额定应力。文档里绝大多数电阻写「应力系数 S0.1」意思是实际耗散只有额定功率的十分之一。这是很典型的降额策略功率电阻降额到 50%~60%电阻降额到 10%~30%电解电容的电压降额到 50%~80%。注意电解电容那些行S 从 0.3、0.4、0.5 一路到 0.8对应的 πCV 从 1.9、1.3、2.2 变化。降额越狠系数越小这不是线性关系而是查表得到的非线性曲线。S0.8 那一档的系数明显偏高说明电容长期工作在接近额定电压的状态失效率会陡增。πT 是温度应力系数背后是 Arrhenius 模型化学反应速率近似正比于 exp(-Ea/kT)Ea 是激活能k 是玻尔兹曼常数T 是绝对温度。所以温度每升 10℃某些失效机理的速率翻倍——这就是「10℃ 法则」的来源。计算书里的温度不是环境温度而是器件的实际工作温度PWM 芯片填的是 Tj 58℃电感填的是 THS 45℃变压器 THS 60℃接插件 THS 50℃。这些数字必须来自热测试或热仿真不能拍脑袋填 25℃。3.5 复合模型为什么电容、MOS、光耦的公式长得不一样翻完这 34 页你会发现公式栏里至少有七八种不同的组合器件类别典型公式多出来的因子说明了什么金属膜电阻λb·πE·πCV·πQ膜层退化只受环境、功率应力、质量影响整流管λb·πE·πQ·πA·πS2·πr增加应用系数、二次应力、额定电流系数MOS 管λb·πE·πQ·πA·πK·πr用种类系数 πK 区分工艺无 πS2光耦λb·πE·πQ·πT·πC温度直接进公式发光二极管退化主导继电器λb·πE·πQ·πC1·πCYC机械动作次数 πCYC 是关键变量变压器λb·πE·πQ·πK绕组和绝缘老化无电应力项PCB(N·λb1 λb2)·πE·πQ·πC结构式孔数 N 直接进公式差异来自失效物理不同。电阻主要是膜层氧化和刻痕处的热点迁移所以温度和功率应力是主因MOS 管是栅氧击穿和热载流子注入跟工艺种类、电流额定值强相关继电器是机械磨损动作次数直接决定寿命所以 πCYC 必须单列PCB 的失效点是金属化孔的孔壁镀层热疲劳孔数越多风险越高所以公式是「每个孔的失效率 × 孔数 基板失效率」。最特殊的是 PWM 芯片那一行文档专门写了一段推导「计算较为复杂故计算如下按照单片双极与 MOS 模拟电路」λp [C1·πV·πT (C2 C3)·πE] · πQ · πLC1 是电路复杂度失效率0.346C2 是芯片复杂度0.030C3 是封装复杂度0.045。πV 1.79πT 1.33πE 2.5πQ 0.25πL 1.0。代进去[0.346 × 1.79 × 1.33 (0.030 0.045) × 2.5] × 0.25 × 1.0 [0.8237 0.1875] × 0.25 0.2528056文档写的结果就是 0.2528056乘 2两片芯片得 0.5056111。这说明集成电路用的是「复杂度加权 封装加权」的复合模型而不是简单的系数连乘——因为它内部有几千个晶体管没法按分立器件那样一颗颗算。提示这张公式表就是整份计算书的「源码」。看懂每类器件为什么用这套公式比记住某个具体数值有用得多。4. 从 34 页表格到可复现代码一行数据要装哪些字段4.1 数据模型一行 BOM 行需要携带哪些信息把这张表抽象成数据结构字段其实很固定。核心是六类身份位号、型号、分类决定查哪张表、用哪个公式、数量、基本失效率、一组命名系数、以及备注里的温度与应力条件。from dataclasses import dataclass, field dataclass class Row: ref: str # 位号如 R1 或 CD5-CD8 part: str # 型号/规格如 RN1/2WS 1M category: str # 器件类别决定公式和查表 n: int # 数量 N lambda_b: float # 基本失效率单位 1e-6/h pi: dict field(default_factorydict) # 各项修正系数 note: str # 温度、应力比等工况备注category是最关键的字段因为它同时决定了两件事查哪张 λb 表、用哪个公式。n放在这里而不是放在公式里是因为它属于行级属性——同一型号的多个位号可以合并成一行用 n 表示。note看起来可有可无实际是最容易被审计追问的地方。写「应力系数 S0.3环境温度 25℃环境系数 GF1质量系数 B2」这一串等于给出了这行数据全部的外部输入别人拿同样的条件能复现出同样的数字。缺了它这行就失去了证据价值。4.2 计算引擎分类派发与公式表有了数据结构计算就是一张派发表。每类器件对应一个纯函数输入行对象输出单件失效率。FORMULAS { resistor: lambda r: r.lambda_b * r.pi[E] * r.pi[CV] * r.pi[Q], diode: lambda r: r.lambda_b * r.pi[E] * r.pi[Q] * r.pi[A] * r.pi[S2] * r.pi[r], mosfet: lambda r: r.lambda_b * r.pi[E] * r.pi[Q] * r.pi[A] * r.pi[K] * r.pi[r], capacitor: lambda r: r.lambda_b * r.pi[E] * r.pi[CV] * r.pi[Q], opto: lambda r: r.lambda_b * r.pi[E] * r.pi[Q] * r.pi[T] * r.pi[C], relay: lambda r: r.lambda_b * r.pi[E] * r.pi[Q] * r.pi[C1] * r.pi[CYC], transformer: lambda r: r.lambda_b * r.pi[E] * r.pi[Q] * r.pi[K], } def row_lambda(r: Row) - float: 返回整行合计失效率单件失效率 × 数量 return FORMULAS[r.category](r) * r.n def mtbf(rows) - float: lam_total sum(row_lambda(r) for r in rows) # 单位 1e-6/h return 1e6 / lam_total # 小时这里有个必须注意的点FORMULAS里返回的是单件失效率乘 n 的动作放在row_lambda里统一做。文档原表更粗糙一些——它的 λp 列直接给的就是整行合计值比如 R1 那一行 0.02880是 0.005 × 1.8 × 1 × 1.6 × 2 得来的。如果在汇总时再乘一次 N结果就会翻倍。验证一下r1 Row(R1, RN1/2WS 1M, resistor, 2, 0.005, {E: 1.8, CV: 1.0, Q: 1.6}) print(row_lambda(r1)) # 0.0288与文档的 0.02880 一致 cap Row(CD5-CD8, 3300uF 电解, capacitor, 4, 0.0393, {E: 2.4, CV: 0.3, Q: 2.2}) print(row_lambda(cap)) # 0.24900与文档一致两行都对上了。这种「抽样反算」是检查一份可靠性计算书有没有抄错行的最快办法比逐页核对高效得多。4.3 用 PWM 芯片那一行反推公式是否正确集成电路那一行的公式是结构式的不适合套进上面的派发表单独写一个函数更清楚def pwm_lambda(c1, c2, c3, pi_v, pi_t, pi_e, pi_q, pi_l): 单片双极/MOS 模拟电路失效率模型返回值单位 1e-6/h c1: 电路复杂度失效率 c2: 芯片复杂度 c3: 封装复杂度 core c1 * pi_v * pi_t # 电压应力 结温构成主项 pkg (c2 c3) * pi_e # 复杂度项受环境影响 return (core pkg) * pi_q * pi_l single pwm_lambda(0.346, 0.030, 0.045, 1.79, 1.33, 2.5, 0.25, 1.0) print(single) # 0.2528055555555556 print(single * 2) # 0.5056111111111111输出与文档记载的 0.2528056、0.5056111 完全吻合说明这个模型的参数拆分是对的。这个式子值得多看两眼。注意c1 * pi_v * pi_t这一项占了主导0.8237 对 0.1875意味着集成电路的失效率主要由「电路有多复杂 × 电压应力 × 结温」决定封装只占小头。所以选型时把一颗大芯片换成两颗小芯片未必能降低失效率——复杂度项的平方效应会把这个便宜吃回去。另外注意 πT 1.33 对应的结温是 58℃而环境温度写的是 25℃。中间差的 33℃ 来自芯片自身的功耗和热阻。填表时如果直接拿 25℃ 去查 πT会得到偏小的系数算出来的 MTBF 偏乐观。这是文档里最容易出错、也最难被发现的一个数。5. 常见问题排查算出来的 MTBF 为什么对不上账5.1 现象换了个输入电压重算MTBF 掉了三分之一这份文档有个细节同一块板先用 80VDC 输入算一遍再用 100VDC 输入算一遍两套完整的表格。很多人第一反应是「重复劳动」。原因在于输入电压变了器件的工作点就变了。R11/R12 那一行80V 版本写的是 0.22Ω100V 版本写的是 0.75Ω——阻值都改了说明这是两块不同的配置或者不同的工作状态。更普遍的是电应力比 S 变化S 一变πCV、πS2 全部跟着变乘出来的结果自然不同。解决办法不是二选一而是两套都保留并在封面注明条件。交付时给最坏情况那个值作为承诺值另一套作为设计余量的证据。评审时被问「到底报哪个」答案是报最差工况下的那个但要能说清为什么另一个工况更好。5.2 现象同一型号的器件两行的 λp 差了一倍文档里 R24/R26/R28/R31 等 7 个位号合并成一行型号写「1K2」N 7R9、R14 等 9 个位号合并成另一行型号写「1K」N 9。这两行的 λb 相同、π 系数相同但行合计差了不是 9:7 的比例。原因通常是数量填错。合并行时人工数位号很容易漏掉带字母后缀的比如 R31A或者把重复位号数了两遍。解决办法是别靠人工数。用 BOM 按「型号 厂商 规格」做一次 group by数量由程序统计人工只负责核对分组对不对。另外合并行必须在备注里列出全部位号像文档那样写「R9,14,19,27,29,57,58,59,62」事后能一个个点回去。5.3 现象整机 MTBF 算出来比同行高一个数量级先查单位。λb 的单位是 10⁻⁶/h也就是每百万小时多少次失效。有些表格用 FIT1 FIT 10⁻⁹/h差 1000 倍。混用一次结果就离谱。再查质量系数。全部填 B2 是最常见的「偷懒优化」——B 系列系数大算出来的失效率高看起来保守可如果实物采购的是 A 系列你就是把成本花在了没算进去的地方。反过来全填 A2 讨好了数字实际装的是 B 级料这是自欺欺人。最后查环境系数。GF1 是地面固定环境里最好的一档。如果设备实际要装在振动平台上必须换成对应的档次不能因为「我们装在机柜里」就默认 GF1。5.4 现象温度那一栏全都填 25℃25℃ 是环境温度不是器件温度。文档里的做法很规范PWM 填 Tj 58℃电感和变压器填 THS 45~60℃接插件填 THS 50℃而且每一处都写了「环境系数 GF1、质量系数 B2」作对照。填错温度的后果是不对称的温度填低πT 查出来的值偏小失效率被低估MTBF 虚高。而电解电容这类器件对温度极其敏感寿命大致每升 10℃ 减半这个偏差能轻易让总失效率差出两三成。解决办法是把热测试数据作为计算书的前置输入。没有实测数据至少要有热仿真结果两样都没有就按最恶劣的机箱内温升做保守假设并在备注里写明「假设值待热测试后更新」。5.5 现象明明有冗余设计算出来还是串联结果如果电源做了 11 冗余两个模块并联供电整机可靠性显然比串联模型算出来的高。但计算书的公式里没有冗余项。原因很简单这份文档算的是单模块的 MTBF冗余是系统级的事要在上一层用并联模型另算。并联的可靠性是 R 1 - (1-R₁)(1-R₂)跟串联完全不是一回事。解决办法是分清层级。元器件级用串联相加模块级看有没有冗余系统级再考虑共用部件比如共用市电、共用散热。把三层混在一起算结果既不可信也无法评审。6. 预计值与实测值手册法的边界和那份文档的真正价值手册法的天花板在哪从这份文档里能看得很清楚。它给出的数字本质上是「同类器件在统计意义上的平均表现」叠加「本设计的应力条件修正」。它算不出一颗电容的电解液是哪家配的、一批焊点的空洞率是多少、某次来料变更有没有引入隐患。这些都超出模型边界。所以常有人说「算出来 50 万小时现场一年坏了 3%」两边都没错——前者是预计值后者是现场表现中间隔着批次差异、使用习惯、维修策略。真正让这份 34 页文档有价值的不是最后那个 MTBF 数字而是它的可追溯结构。每一行都写了查的哪张表、填的什么系数、依据什么工况等于把设计时的每一个假设都摊开在纸面上。半年后有人问「为什么当初认为这颗电容没问题」你翻到那一行看到 S0.3、THS45℃、πCV1.9就能回答。没有这份文档那些假设就只存在于某个人的记忆里。如果要做实测验证思路是从预计值反推试验方案。假设总失效率算出 λ_total要在 90% 置信度下验证 MTBF 下限用定时截尾的卡方公式MTBF_lower 2T / χ²(2r 2, 1 - α)T 是总试验时间r 是失效数α 是置信水平。反过来给定目标 MTBF 和允许的失效数就能反解出需要多少台样品跑多少小时。这一步经常被跳过结果试验做完了才发现样本量根本不足以支撑结论。比较务实的做法是分层看待元器件级用手册法做设计预算模块级做 HALT高加速寿命试验找薄弱环节系统级靠现场数据回归。三者互相校验谁也别想单独说话。从那以后我每次拿到一份可靠性预计表都会先做一件事随机抽三行把系数乘法自己按一遍再核对这些行的温度来源有没有实测支撑。这个习惯帮我抓到过好几次数量填错和温度照抄的问题——数字对不对是次要的能不能复现才是关键。希望帮到你。本文还有配套的精品资源点击获取