指数分布与不可修复系统:电力可靠性的串并联建模与Python实现
2026/9/18 8:34:30 网站建设 项目流程

简介:该资源为电力系统规划与可靠性主题的教学课件,聚焦概率基础知识中的指数分布及不可修复系统可靠性分析,适合电气工程相关专业学生、电力行业初学者及相关技术人员用于理论巩固与课堂复习。PPT系统梳理集合与事件、正态分布、二项分布、泊松分布等概率基础,重点讲解指数分布及其在可靠度函数R(t)、不可靠度Q(t)、故障率函数λ(t)、平均无故障工作时间MTTF中的应用,并给出典型的浴盆曲线分段特征与并联冗余系统的可靠性算例。内容还覆盖不可修复系统的串联、并联可靠性建模思路,便于读者理解随机故障与系统整体可靠性之间的量化关系。资源为单个PPT文件,大小830KB,内容精炼紧凑,适合作课件讲解或自学笔记使用。已有75人学习浏览,可用于课程预习、期末复习或工程可靠性分析的快速入门参考。

1. 指数分布在电力系统可靠性里的位置:先看它为什么绕不开

电力系统规划里,可靠性计算最早遇到的数学模型几乎都是指数分布,不是因为它最精确,而是因为它在「数据不足、部件众多、解析可行」这三件事之间找到了最佳平衡点。一个断路器、一台变压器、一段线路,它们的寿命数据往往少到没法拟合威布尔分布的形状参数,而指数分布只需要一个失效率 λ,这个数在设备台账、厂家手册、运行统计里通常都能查到。不可修复系统这个词指的是设备一旦失效就进入维修或更换流程、不再回到运行状态的那类系统,比如一条输电线路、一台主变,规划阶段默认它们故障后就是退出运行,而不是像可修复系统那样考虑修复时间。这篇文章从指数分布的概率含义讲起,落到不可修复系统的串并联模型、可靠性指标计算和规划实务里的典型参数取值,最后给出一套可以直接抄的 Python 计算脚本。适合做电网规划、可靠性评估、设备资产管理的人,也适合刚接触电力系统可靠性理论、想搞清楚 λ 和 R(t) 到底怎么用的学生。

2. 指数分布的三个核心性质:失效率恒定、无记忆性、与泊松过程的关系

2.1 失效率函数为什么是常数 λ

指数分布的失效率函数定义是 h(t) = f(t) / R(t),其中 f(t) 是概率密度函数,R(t) 是可靠度函数。对指数分布来说,f(t) = λe^(-λt),R(t) = e^(-λt),代入后 h(t) 恰好等于 λ,一个不随时间变化的常数。这意味着什么?意味着一个运行了 10 年的变压器,在下一个小时里发生故障的概率,和一个刚投运的变压器在下一个小时里发生故障的概率是相同的。从物理直觉上看这好像不合理,因为设备明明有老化现象,但在规划阶段的宏观尺度上,这个假设是可以接受的——设备在正常寿命期内(浴盆曲线的底部)失效率确实近似恒定,而规划计算关心的是十年、二十年的整体可靠性水平,不是设备投运后第几小时的风险。

指数分布的累积分布函数 F(t) = 1 - e^(-λt) 给出了设备在时间 t 之前发生故障的概率,可靠度函数 R(t) = e^(-λt) 则给出了设备至少存活到时间 t 的概率。这两个函数是后续所有串并联系统可靠性计算的基础。比如一条输电线路的失效率 λ = 0.05 次/年,那么它一年内不发生故障的概率 R(1) = e^(-0.05) ≈ 0.9512,也就是说这条线路在一年内大约有 95.12% 的概率全程正常运行。

2.2 无记忆性在规划计算里如何被实际使用

指数分布的另一个关键性质是无记忆性:P(T > t + s | T > s) = P(T > t)。翻译成工程语言就是,已知设备已经正常运行了 s 小时,它在未来 t 小时内不发生故障的概率,和一台全新设备在 t 小时内不发生故障的概率完全相同。这个性质在实际规划计算中最直接的应用是:不需要追踪每台设备的已运行年限,只需要知道失效率 λ 就可以了。这让大规模系统的解析计算成为可能——如果可靠性模型依赖设备年龄,那么一个包含几百个节点的电网模型就必须引入年龄状态变量,计算复杂度会爆炸性增长。

实际规划项目中,无记忆性也经常被用来简化备用容量分析。比如分析两台并列运行的变压器,一台已运行 8 年、一台刚投运,规划人员不需要区分它们的剩余寿命分布,统一用同一个 λ 计算即可。这个近似在大样本统计意义下是站得住的,但如果某台设备已经出现了明显的劣化趋势(比如油中溶解气体分析异常),就不能再套用指数分布了,需要切换到威布尔分布或直接采用状态检修数据。

2.3 指数分布与泊松过程的对应关系

指数分布和泊松过程是同一个硬币的两面:如果设备的故障间隔时间服从参数为 λ 的指数分布,那么在任意时间区间内发生的故障次数服从参数为 λt 的泊松分布。泊松过程的叠加性质在系统级可靠性分析中特别有用——多个独立部件的故障过程叠加后仍然是泊松过程,其总失效率等于各部件失效率之和。这为串联系统的失效率计算提供了理论依据。

在电力系统规划中,这个关系最常见的应用是计算一个变电站全站的故障率。假设站内有 3 台主变,各自的失效率分别为 λ₁、λ₂、λ₃,那么不考虑冗余关系时,全站故障过程的总失效率就是 λ₁ + λ₂ + λ₃。如果考虑的是「任一台主变故障都会导致全站失电」的串联逻辑,那么全站可靠度就是三台主变可靠度的乘积。

提示:指数分布的无记忆性决定了它不适合描述有明显磨损期的设备。如果设备处于浴盆曲线的早期失效期或耗损期,用指数分布会高估可靠度,这种场景下优先考虑威布尔分布或伽马分布。

3. 不可修复系统的可靠性建模:串联、并联与 k/n 表决结构

3.1 不可修复系统和可修复系统的本质区别

不可修复系统(non-repairable system)在可靠性理论中的定义是:系统或其组成单元一旦失效,就不再恢复到可用状态。对电力系统规划来说,这个假设对应的是「设备故障后直接更换或弃用」的资产管理策略,以及规划分析中只评估设备在任务期内的存活概率,而不考虑故障后的修复和恢复过程。典型的不可修复系统分析对象包括:单次任务期内的卫星电源系统、一次性投运且无备用通道的海底电缆、某些只在规划期内评估一次的设备选型对比。

与可修复系统相比,不可修复系统的可靠性指标更简单——因为不需要引入修复率 μ、可用度 A、平均修复时间 MTTR 这些与维修策略相关的参数。计算核心就是可靠度函数 R(t) 和平均无故障时间 MTTF。在电力系统规划的早期阶段,这种简化是有必要的,因为规划决策关注的是「在设备寿命期内,停电风险有多大」,而不是「停电之后多久能恢复」。

3.2 串联系统:可靠度相乘与失效率相加

串联系统指的是系统中任意一个部件失效都会导致整个系统失效的系统结构。电力系统中的一条输电通道,从首端变电站到末端变电站,经过断路器、隔离开关、导线、绝缘子等设备,只要任何一个环节失效,整条通道就不可用,这就是标准的串联模型。

对于由 n 个独立部件组成的串联系统,如果每个部件的可靠度分别为 R₁(t), R₂(t), ..., Rₙ(t),那么系统可靠度为:

R_s(t) = ∏Rᵢ(t) = ∏e^(-λᵢt) = e^(-(∑λᵢ)t)

这个公式揭示了串联系统的一个关键特征:系统失效率等于各部件失效率之和。计算示例:

部件失效率 λ(次/年)年可靠度 R(1)
断路器0.0020.9980
隔离开关0.0010.9990
输电线路(10km)0.0500.9512
变压器0.0100.9900

串联后系统失效率 λ_s = 0.002 + 0.001 + 0.050 + 0.010 = 0.063 次/年,系统年可靠度 R_s(1) = e^(-0.063) ≈ 0.9389。可以看出,4 个部件串联后,系统年可靠度从最高的 0.9990 降到了 0.9389,这就是串联系统的劣化效应——链路的可靠性由最薄弱的环节主导。

3.3 并联系统:可靠度与失效率的对应关系

并联系统指的是系统中至少有一个部件正常工作,系统就能维持运行的结构。电力系统中的双回线路供电、两台主变互为备用、发电机组的冗余配置,都是并联模型的典型场景。

对于 n 个独立且相同的并联部件,系统可靠度为:

R_p(t) = 1 - ∏(1 - Rᵢ(t)) = 1 - (1 - e^(-λt))ⁿ

用两个失效率 λ = 0.05 次/年的部件并联,任务期 t = 1 年:

单部件可靠度 R₁(1) = e^(-0.05) ≈ 0.9512,不可靠度 F₁(1) = 0.0488。并联系统不可靠度 F_p(1) = F₁² = 0.0488² ≈ 0.00238,系统可靠度 R_p(1) ≈ 0.9976。对比单部件的 0.9512,双冗余把年可靠度提升了约 4.88 个百分点,不可靠度降低了两个数量级。

这里要特别注意:并联系统虽然可靠度提升了,但系统的等效失效率不再是常数,并联系统的失效率函数 h_p(t) 是随时间变化的。这是并联结构分析中新手最容易犯的错误——直接用 2λ 或者 λ/2 来估算并联系统的失效率。从定义出发,并联系统等效失效率 h_p(t) = f_p(t) / R_p(t),其中 f_p(t) 可以通过 R_p(t) 的导数求得。简单说,并联系统的失效率在 t = 0 时为 0,随 t 增大逐渐趋向于单部件的失效率 λ,但永不等于常数。

3.4 k/n 表决系统:电力系统备用容量的通用模型

k/n 表决系统指的是 n 个部件中至少有 k 个正常工作时系统才正常。这是串联和并联的推广——串联是 n/n 表决系统,并联是 1/n 表决系统。电力系统规划中典型的 k/n 结构是电网 N-1 校验准则:一个变电站有 n 台主变,规划要求任意一台故障时站内供电能力仍能满足负荷需求,这等价于系统需要至少 n-1 台主变正常工作,即 (n-1)/n 表决系统。

如果 n 个部件相同且独立,每个部件可靠度为 R(t) = e^(-λt),那么系统可靠度为:

R_s(t) = Σ(C(n, j) * R(t)ᵏ * (1 - R(t))^(n-j)),从 j = k 到 n

用三台相同变压器(λ = 0.01 次/年)组成 2/3 表决系统,任务期 1 年,R(1) = e^(-0.01) ≈ 0.9900:

系统可靠度 = C(3,2) * R² * (1-R) + C(3,3) * R³ = 3 * 0.9900² * 0.0100 + 0.9900³ ≈ 0.0294 + 0.9703 = 0.9997

对比完整三台变压器并联(1/3 表决)的可靠度 1 - 0.01³ = 0.999999,2/3 表决系统牺牲了一部分可靠性,但换取了更低的投资成本——少了一台冗余容量。这就是规划中可靠性与经济性权衡的数学基础。

3.5 用 Python 计算上述三类系统的可靠度指标

下面的代码实现了一个通用的计算函数,支持串联、并联和 k/n 表决三种结构:

import math from scipy.special import comb def reliability_series(lambdas, t): """串联系统可靠度:失效率相加,可靠度相乘""" lambda_s = sum(lambdas) R_s = math.exp(-lambda_s * t) return lambda_s, R_s def reliability_parallel(lambdas, t): """并联系统可靠度:等效失效率随时间变化""" R_list = [math.exp(-lam * t) for lam in lambdas] F_s = 1.0 for R_i in R_list: F_s *= (1 - R_i) R_p = 1 - F_s return R_p def reliability_k_out_of_n(lam, t, k, n): """k/n 表决系统可靠度:二项式求和""" R = math.exp(-lam * t) R_s = 0.0 for j in range(k, n + 1): R_s += comb(n, j) * (R ** j) * ((1 - R) ** (n - j)) return R_s # 示例计算 t = 1 # 任务期:1 年 # 串联:断路器 + 隔离开关 + 线路 + 变压器 lambda_s, R_series = reliability_series([0.002, 0.001, 0.050, 0.010], t) print(f"串联系统:λ_s = {lambda_s:.4f} 次/年,R(1) = {R_series:.4f}") # 并联:双回线路 R_parallel = reliability_parallel([0.05, 0.05], t) print(f"双回并联:R(1) = {R_parallel:.4f}") # 2/3 表决:三台主变 R_vote = reliability_k_out_of_n(0.01, t, 2, 3) print(f"2/3 表决系统:R(1) = {R_vote:.4f}")

代码中的reliability_series函数接收一个失效率列表,内部先求失效率和再计算指数幂,这与公式 e^(-(∑λᵢ)t) 完全对应。reliability_parallel函数则采用「不可靠度相乘」的方式,避免了直接处理并联系统时变失效率的复杂性。reliability_k_out_of_n使用scipy.special.comb计算组合数,遍历 j 从 k 到 n 累加概率质量。实际使用时需要确保输入参数满足 k ≤ n,且任务期 t 和失效率 λ 的单位一致——如果 λ 是次/年,t 必须用年;如果 λ 是次/小时,t 必须用小时。

4. 电力系统规划中的典型应用:从单一设备到系统的可靠性评估

4.1 输变电设备的 λ 取值参考与数据来源

电力系统可靠性计算中,失效率 λ 的取值直接决定计算结果的可信度。常见做法是从三个渠道获取:设备厂家的可靠性手册、电网公司内部的运行统计数据库、行业标准或学术文献中公开的参考值。以下是一组规划设计阶段常用的典型数据:

设备类型失效率 λ(次/年)数据来源说明
110kV 断路器0.002 ~ 0.010厂家型式试验 + 运行统计
220kV 主变压器0.005 ~ 0.020油化数据劣化会显著抬升 λ
架空线路(每 100km)0.150 ~ 0.500雷击、外力破坏是主要影响因素
电缆线路(每 100km)0.020 ~ 0.080比架空线低一个量级
GIS 间隔0.001 ~ 0.005密封性好,可靠性最高

同一型号设备在不同电网公司、不同运行环境下的 λ 可能相差数倍。规划阶段如果没有本地统计数据,优先采用行业标准的推荐值;如果本地有至少 5 年的运行台账,建议用极大似然估计方法从数据中拟合 λ。拟合方法是:λ 的估计值等于总故障次数除以总设备运行时间之和,例如 100 台变压器运行 3 年共发生 3 次故障,则 λ = 3 / (100 × 3) = 0.01 次/年。

注意:使用外部数据时,要确认失效率的定义是「每台每年」还是「每百公里每年」。线路类设备的 λ 通常和长度成正比,报告中必须写明长度基准。

4.2 基于指数分布的 N-1 校验简化计算

N-1 校验是电网规划中最基础的安全性要求:系统中任意一个元件(线路、主变、发电机组)退出运行后,系统仍能保持稳定运行且不甩负荷。传统上 N-1 校验通过潮流计算来验证,但规划早期阶段的方案筛选可以用指数分布模型做概率化的快速排序。

做法是:对候选网架方案中的每个关键元件计算「失效概率 × 失效后果」的期望值,其中失效概率由指数分布给出,失效后果用失负荷量(MW)或失负荷电量(MWh)表示。以一个双辐射供电方案为例,假设每条线路的 λ = 0.1 次/年,任务期 1 年,每条线路失效概率 F = 1 - e^(-0.1) ≈ 0.0952。如果一条线路失效时最多损失 30MW 负荷、持续 2 小时,则该线路的年期望缺供电量 = 0.0952 × 30MW × 2h ≈ 5.71 MWh。两条线路的期望损失相加,就得到这个方案的年期望缺供电量指标 EENS。

这种做法的价值在于:把「能不能满足 N-1」这种确定性校验,扩展为「满足 N-1 的同时,哪种方案的期望风险最小」的概率化比较。对于大量候选方案的初筛,概率排序可以优先淘汰那些风险明显偏高的方案,最后只对少数候选方案做完整的潮流和稳定校验。

4.3 变电站主变冗余方案的可靠度对比

变电站规划中主变台数的选择直接决定了供电可靠性水平。用上一节的 Python 函数对比三种典型方案:

t = 1 # 评估周期:1年 lam = 0.01 # 单台主变失效率 # 方案A:单台主变(1/1 表决) R_a = math.exp(-lam * t) print(f"方案A(1台主变):R = {R_a:.4f},F = {1 - R_a:.6f}") # 方案B:两台主变互为备用(1/2 表决) R_b = reliability_k_out_of_n(lam, t, 1, 2) print(f"方案B(2台主变):R = {R_b:.6f},F = {1 - R_b:.6f}") # 方案C:三台主变,N-1 后仍有冗余(2/3 表决) R_c = reliability_k_out_of_n(lam, t, 2, 3) print(f"方案C(3台主变):R = {R_c:.6f},F = {1 - R_c:.6f}")

计算结果:

方案结构年可靠度 R(1)年不可靠度 F
A1 台主变0.99000.010000
B2 台主变(1/2)0.99990.000100
C3 台主变(2/3)0.99970.000299

方案 B 的不可靠度比方案 C 低,原因是 1/2 表决允许任意两台主变中至少一台正常工作即可,而 2/3 表决要求三台中至少两台正常工作——在单台失效率相同的条件下,冗余度越高可靠度越高。但方案 C 意味着三台主变中一台检修时可以承受另一台故障的冲击,实际运维中这是满足检修工况的常用配置,所以规划不能只看可靠度数字,还要结合检修策略和负荷转供能力综合决策。

4.4 指数分布假设在系统规划中的边界条件

指数分布在电力系统规划中的适用边界需要清楚界定。在以下场景中指数分布假设是安全的:任务期较短、设备处于浴盆曲线中部的稳定运行期、设备之间相互独立、评估对象是设备级而非系统级动态过程。在以下场景中需要慎用:设备已进入磨损失效期(比如运行超过 20 年的老旧变压器)、设备存在共因失效风险(比如同塔双回线路同时遭受雷击、同一变电站内多台设备受相同环境因素影响)、评估的是秒级或分钟级的动态可靠性而非年尺度统计可靠性。

共因失效是规划中特别容易忽视的问题。两回线路虽然构成并联冗余,但如果它们同塔架设,一场飓风或一次外部施工可能同时破坏两回线路。此时并联模型的独立假设不成立,实际可靠度会显著低于计算值。处理方法要么是把「同时失效」作为一个独立事件加入模型,要么在规划阶段尽量避免同塔双回——这是设计准则层面的问题,数学模型只能提供定量的风险提示。

对于共因失效的更精细处理,可以采用 β 因子模型:把总失效率分解为独立失效部分(1-β)λ 和共因失效部分 βλ。β 的典型取值范围是 0.01 到 0.20,同塔双回取高值,不同走廊的独立回路取低值。在并联可靠度计算中,先把两组失效率分别代入独立失效路径和共因失效路径,再叠加两种路径的失效概率。

4.5 从可靠度到经济性:最小年费用法中的风险成本

可靠性计算的最终目的是服务于投资决策,而投资决策必然涉及经济性评估。规划中的常见做法是计算年费用 = 投资折算年值 + 运行维护费用 + 停电损失费用。其中停电损失费用 = 年期望缺供电量 EENS × 单位缺电成本。

单位缺电成本因用户类型而异:居民负荷约为 5~20 元/kWh,商业负荷约为 20~80 元/kWh,工业负荷可高达 50~200 元/kWh。电网规划中一般取一个区域综合缺电成本值,比如东部沿海城市可能取 50 元/kWh,而西北偏远地区取 10 元/kWh,具体数值需要根据当地国民经济发展水平和用户结构调研确定。

停电损失费用把可靠性指标和经济指标打通了。回到上面的主变方案对比,假设变电站年最大负荷为 50MW,两方案在极端情况下的失负荷量不同,方案 A 单台主变故障损失全部 50MW,年期望损失电量约为 50MW × 8760h × 0.01 ≈ 4380MWh,按 50 元/kWh 计算年停电损失高达 219 万元。方案 B 和 C 的期望损失电量要低两到三个数量级。虽然方案 B 和 C 多了一两台主变的投资,但只要年停电损失减少量超过主变投资的年折算值,加装冗余主变在经济上就是合理的。

5. 4 个必调参数与 2 个容易翻车的地方

5.1 任务期 t:不同评估目标对应不同时间尺度

任务期 t 的取值取决于评估目的。设备选型比较时 t 取设备设计寿命,比如主变通常取 30 年;系统规划方案比较时 t 取规划水平年,比如 2025、2030 年;短期安全性评估时 t 取 1 年甚至 1 天。t 的敏感性非常高——t 从 1 年增加到 10 年时,可靠度是指数衰减而不是线性衰减,λ = 0.01 的设备 R(10) = e^(-0.1) ≈ 0.9048,已经损失了接近 10 个百分点。规划报告中要明确标注 t 的取值,否则不同方案之间的可靠度对比没有意义。

5.2 失效率 λ:如何判断数据是否可信

λ 是影响计算结果最敏感的参数。一个快速检验方法:如果 λ 和时间 t 的乘积大于 0.3,即 λt > 0.3,说明评估周期内失效概率已经很大,此时继续用指数分布做精确计算的意义在下降,应该引入更详细的可靠性模型。另一个检验方法:观察设备的运行历史,如果故障记录显示失效率随运行年限增长明显,说明设备已进入耗损期,指数分布不再适用。

从数据拟合的角度看,λ 的置信区间通常很宽。一个只有 3 次故障、总运行时间 500 台年的样本,λ 的点估计是 0.006 次/年,但 95% 置信区间大约从 0.0012 到 0.0175,跨度超过一个数量级。规划方案比较时,建议对 λ 做敏感性分析——把 λ 上浮和下调 50%,看看方案排序是否反转。如果排序稳定,结论才可靠。

5.3 冗余结构 k 的选取:N-1 与全冗余之间还有中间态

很多规划人员默认冗余只有「双套」这一个选项,但实际上 k/n 表决结构中 k 和 n 的选取提供了连续的过渡方案。典型配置:1/1(无冗余)、1/2(单重冗余)、2/3(双重冗余但允许检修)、2/4(更多运行方式选择)、3/5(逐步进入高冗余设计)。选择依据不只是可靠度目标,还包括检修方式——如果电网要求主变检修时仍需满足 N-1,那么 n 台主变至少需要 n-1 台正常运行来支撑负荷,配置上就需要至少 n+1 台。这个矛盾的调和就是 2/3 表决结构普遍存在的直接原因。

5.4 可靠度指标选择:R(t) 还是 EENS

可靠度 R(t) 只给出「系统完全正常」的概率,不区分部分失效状态。比如双回线路中一回故障、另一回运行,系统还能带 50% 负荷,但 R(t) 只看有没有失效。规划决策通常更关心部分降额运行时的电量损失,这时要计算 EENS(期望缺供电量)和 LOLP(失负荷概率),这两个指标需要结合负荷水平、转供能力、修复时间一起计算,比单纯 R(t) 信息量大得多。注意区分概念:LOLP 是概率指标,表示负荷需求超过可用发电容量的概率;EENS 是能量指标,表示期望缺供电量的大小。

5.5 坑 1:把并联系统的失效率当成常数

这是使用指数分布模型时最容易出的偏差。串联系统失效率是常数,可以直接相加,这个结论不能移植到并联系统上。并联系统的等效失效率是时间的函数,手册上给出的并联系统 λ=λ²μ/... 之类的公式是在可修复系统、稳态可用度意义下推导的,不能直接套到不可修复系统的任务可靠度计算中。有效做法是用可靠度 R_p(t) 作为主要输出指标,避免试图用单一 λ 去刻画并联系统的失效过程。如果真的需要一个等效 λ 值用于后续计算,可以在给定 t 值下反向求解 λ_eq = -ln(R_p(t)) / t,但这个 λ_eq 只对同一个 t 有效,换 t 必须重新算。

5.6 坑 2:忽略检修导致的不可用时间段

指数分布模型的另一个隐含假设是设备始终处于可运行状态,只有随机失效会中断运行。但实际电网设备有计划检修停电,检修期间的设备不可用不是随机事件,不能由指数分布直接描述。规划计算中处理检修的常用做法是在模型中叠加检修停运率:λ_total = λ_random + λ_maintenance,其中 λ_maintenance = 年检修小时数 / 8760 小时。一台主变如果每年计划检修 48 小时,则 λ_maintenance = 48 / 8760 ≈ 0.0055 次/年,这个量级和随机失效率 0.01 相当,不能忽略。如果检修主要集中在负荷低谷期,可以用负荷加权方式把检修时间的暴露程度折减,得到更贴近实际的全年等效失效率。

6. 用蒙特卡洛仿真校验解析计算结果

解析法的局限在于系统的实际运行过程中有各种非理想因素——检修计划窗口、季节性的负荷变化、间歇性的新能源出力波动。验证解析结果最实用的手段是用 Python 做一个基于指数分布随机抽样的蒙特卡洛仿真:

import numpy as np import math def monte_carlo_reliability(lam_list, t, n_sim=100000, structure="series"): """模拟系统在任务期 t 内的可靠度""" success_count = 0 for _ in range(n_sim): # 对每个部件抽样失效时刻(指数分布) failure_times = [np.random.exponential(1 / lam) for lam in lam_list] failed = [ft < t for ft in failure_times] if structure == "series": # 串联:任一失效即系统失效 system_ok = not any(failed) elif structure == "parallel": # 并联:全部失效才是系统失效 system_ok = not all(failed) elif structure == "k_of_n": # 表决:失效数必须少于 n-k+1 k = 2 n = len(lam_list) failed_count = sum(failed) system_ok = failed_count <= (n - k) if system_ok: success_count += 1 return success_count / n_sim # 对比验证:2/3 表决系统 lam = 0.01 t = 1 analytic_R = reliability_k_out_of_n(lam, t, 2, 3) simulated_R = monte_carlo_reliability([lam, lam, lam], t, n_sim=200000, structure="k_of_n") print(f"解析解 R = {analytic_R:.6f}") print(f"蒙特卡洛 R = {simulated_R:.6f}") print(f"绝对误差 = {abs(analytic_R - simulated_R):.6f}")

代码的核心逻辑是:每个部件的失效时间用np.random.exponential(1/lam)抽样——注意scale参数是平均故障间隔时间 1/λ,不是 λ 本身,这是指数分布抽样中最常见的一个细节错误。然后根据系统结构判断该次模拟中系统是否正常工作,最后统计成功次数占比得到可靠度的仿真估计。蒙特卡洛方法的优点是能灵活加入各种修正——比如让某些部件之间有相关性、让 λ 随时间和季节变化、引入检修窗口。缺点是抽样次数不够时估计方差偏大,n_sim = 100000 以上才能保证千分位级别的稳定精度,对于要求高可靠度的并联系统,可能需要更高抽样次数。

在实际规划项目中,我一般会把解析结果和仿真结果同时放进报告:解析结果作为主数据,蒙特卡洛结果作为验证列。两者误差不超过 0.001 时,说明模型和实现都没有问题。如果解析和仿真的差异超过了 0.005,先查结构逻辑——表决阈值 k 是否正确、并联的失效判断是否写反,再查抽样参数——1/λ 是否写成了 λ。这种交叉验证习惯能减少很多把错误计算结果直接写进规划报告的情况。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询