1. 基于指数分布的电子元件寿命建模
指数分布为什么适合恒定失效率元件
电子元件在偶然失效期内的失效率近似恒定,此时寿命 T 服从指数分布。其可靠度函数为 R(t)=e−λt,失效密度为 f(t)=λe−λt,平均寿命 MTTF=1/λ。只要从试验数据中估计出失效率 λ,就能得到任意时刻的可靠度。
用最大似然估计求 λ
设 n 个元件投入试验,到截止时共观察到 r 个失效,总试验时间 Ttotal 为各元件实际运行时间之和(含未失效元件的截尾时间)。指数分布下失效率的 MLE 为:
λ̂ = r / T_total
若为定数截尾(观察到第 r 个失效即停止),则 Ttotal = Σi=1..r t(i) + (n−r)·t(r),其中 t(i) 为第 i 个失效时间,t(r) 为第 r 个失效时间。
教学示例:10 只元件定时截尾试验
假设 10 只同型元件同时投入试验,在 t=500 h 时停止。期间记录到 4 只失效,失效时间分别为 120、210、350、480 h,其余 6 只在 500 h 时仍未失效。计算总试验时间:
T_total = (120+210+350+480) + 6×500
= 1160 + 3000
= 4160 h
λ̂ = r / T_total = 4 / 4160 ≈ 9.615×10⁻⁴ /h
MTTF = 1/λ̂ ≈ 1040 h
由此得到可靠度函数:R(t)=e−9.615×10⁻⁴·t。例如 t=500 h 时,R(500)=e−0.4808≈0.618;t=1000 h 时,R(1000)=e−0.9615≈0.382。
若数据为完全寿命试验(全部失效),则 Ttotal 就是所有失效时间之和,公式不变。截尾数据的关键是正确累计未失效元件的运行时间。
用 Python 完成估计与曲线绘制
import numpy as np
import matplotlib.pyplot as plt
# 失效时间与截尾时间
fail_times = np.array([120, 210, 350, 480])
n_total = 10
t_censor = 500
# 总试验时间
T_total = fail_times.sum() + (n_total - len(fail_times)) * t_censor
r = len(fail_times)
lam_hat = r / T_total
mttf = 1 / lam_hat
print(f"λ̂ = {lam_hat:.6e} /h")
print(f"MTTF = {mttf:.1f} h")
# 可靠度曲线
t = np.linspace(0, 2000, 200)
R = np.exp(-lam_hat * t)
plt.figure(figsize=(7, 4))
plt.plot(t, R, color='#3182ce', linewidth=2, label=f'R(t)=e^(−{lam_hat:.2e}t)')
plt.axhline(0.5, color='#a0aec0', linestyle='--', linewidth=0.8)
plt.axvline(mttf * np.log(2), color='#e53e3e', linestyle='--', linewidth=0.8,
label=f'中位寿命={mttf*np.log(2):.0f} h')
plt.xlabel('t / h')
plt.ylabel('R(t)')
plt.title('指数分布可靠度曲线')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
结果判读与验证
- λ̂ 量纲:1/h,表示单位时间失效概率,数值越小越可靠。
- MTTF:平均寿命,指数分布下等于特征寿命,也是 R(t)=e−1≈0.368 对应的时间。
- 中位寿命:R(t)=0.5 时 t=MTTF·ln2≈0.693·MTTF,本例约 721 h。
- 拟合检验:可将经验可靠度与理论 R(t) 对比,或用指数分布概率纸检查是否近似直线。
指数分布假设失效率恒定。若数据来自早期失效期(λ 递减)或耗损期(λ 递增),应改用威布尔分布等更灵活的模型。