可靠性框图

关于可靠性框图

可靠性框图(RBD)展示系统的成功逻辑:每个组件是从输入节点到输出节点路径上的一个方块,只要有一条由正常工作组件构成的完整路径连通两端,系统便正常运行串联组件须全部正常工作;并联组件提供冗余(任意一个正常即可);k-of-n 组在其 n 个成员中至少有 k 个正常工作时运行正常。这是 RAMS(可靠性、可用性、可维护性、安全性)工程的标准工具,定义于 IEC 61078:2016 和 MIL-HDBK-338B。

Schematex 的优势在于引擎计算出答案,而不仅仅是绘制图形:从各方块的可靠性出发,将结构化简为系统可靠性(串联用 ∏,并联用 1−∏(1−Rᵢ),k-of-n 用精确枚举),推导每个方块的 Birnbaum 可靠性重要度(哪个最值得优化),并将单点故障——其单独失效即导致系统失效的方块——用红色标注。这与 faulttree 分析割集、pert 分析调度的思路一脉相承。RBD 是故障树在失效空间对应的成功空间对偶图。

rbd·§
↘ preview
100%
Redundant Server Reliability block diagram: 6 blocks. System reliability R = 0.98491. Single point of failure: PSU. Highest reliability-importance block: PSU. Redundant Server System reliability R = 0.98491 2/3 Power Supply R=0.99 Fan A R=0.95 Fan B R=0.95 Disk 1 R=0.97 Disk 2 R=0.97 Disk 3 R=0.97
UTF-8 · LF · 13 lines · 248 chars✓ parsed·3.4 ms·4.9 KB SVG

1. 第一张图

每个文档以 rbd 关键字(别名 reliability)开头,后跟可选标题,再是嵌套的成功逻辑组及 block 叶节点:

rbd "Two redundant pumps"
  parallel {
    block A "Pump A" R=0.9
    block B "Pump B" R=0.9
  }

引擎将两台水泵绘制在分流节点与合流节点之间的并联轨道上,计算系统可靠性 1 − (1−0.9)(1−0.9) = 0.99,并将其作为标题显示。若顶层没有外部组,直接列出方块则视为串联链。

2. 方块

block 是成功路径上的一个组件:

block ID "Label" R=0.99
  • ID — 简短标识符(未提供标签时显示此 ID)。
  • "Label" — 可选显示名称(支持 CJK 引号)。
  • 可靠性通过 R=0.99(可靠性/可用性)、p=0.01失效概率,→ R = 1−p)或百分比 R=99% 指定。未指定可靠性的方块,其系统数值显示为 n/a

3. 成功逻辑组

组可自由嵌套,从而对冗余链、投票组和热备对进行建模:

成功条件可靠性
series { … }每个子节点均正常∏ Rᵢ
parallel { … }任意子节点正常1 − ∏(1 − Rᵢ)
kofn k/n { … }n 个中至少 k 个正常精确状态枚举
series {
  block CTRL "Controller" R=0.995
  parallel {
    series { block P1 "Path 1 sensor" R=0.97
             block A1 "Path 1 actuator" R=0.98 }
    series { block P2 "Path 2 sensor" R=0.97
             block A2 "Path 2 actuator" R=0.98 }
  }
}

4. 计算可靠性、重要度与单点故障

解析完成后,引擎计算:

  • 系统可靠性 — 标题数值,通过递归串联/并联/k-of-n 化简得出。
  • Birnbaum 重要度 Iᴮ(i) = R_sys(Rᵢ=1) − R_sys(Rᵢ=0)(对每个方块计算);重要度最高的方块(最值得优化的对象)会被突出显示。
  • 临界重要度 I_C(i) = Iᴮ(i)·(1−Rᵢ)/(1−R_sys) — 在系统失效的条件下,方块 i 发生失效且处于关键位置的概率。
  • 单点故障 — 任何满足 R_sys(Rᵢ=0) = 0(其单独失效即导致系统失效)的方块会以红色边框标注。非冗余串联方块必然是单点故障。

5. 时间相关可靠性——R(t)

静态 R= 是入门写法;实际工程中,可靠性是任务时间的函数。设置 mission: <t> 并为方块指定失效分布而非常数——引擎会评估 R(t) 并以与之前完全相同的方式逐层汇总。请在 mission 和各失效率之间使用一致的时间单位

方块属性模型R(t)
rate=0.0001指数分布(常数失效率 λ)e^(−λt)
mtbf=10000指数分布(λ = 1/MTBF)e^(−t/MTBF)
weibull=2,10000Weibull 分布(β 形状参数,η 尺度参数)e^(−(t/η)^β)
rbd "Pump station — 1-year mission"
  mission: 8760            # 小时
  parallel {
    block A "Pump A" mtbf=10000
    block B "Pump B" weibull=1.5,12000
  }

标题将显示为 R(t=8760) = …。若方块有分布但未设置 mission:,则会产生警告并回退到其常数 R=(如有)。

6. 验证

解析器报告非致命警告而非直接失败:

  • kofn k/nk > n 时截断为 nk < 1 时截断为 1);
  • 超出 0..1 范围的可靠性值会被截断;
  • 重复的方块 ID 会被标记。

7. 主题

theme: default 使用共享的风险-可靠性调色板(中性方块、蓝色可靠性数值、红色单点故障边框)。theme: monochrome 渲染黑白打印版本(单点故障用边框粗细区分);theme: dark 为 Catppuccin 深色变体。

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.