2. 工件源参数配置与到达过程验证
为什么工件源要单独验证
工件源是产线的“节拍源头”。如果工件源实际到达间隔与设定分布不一致,后续设备利用率、在制品数量、堵塞判断都会失真。指数分布常用于描述随机到达,其核心参数是均值 β(平均到达间隔),概率密度为 f(t)= (1/β)·e−t/β,理论上有:均值 = β,方差 = β²,标准差 = β。因此验证目标很明确:仿真统计出的到达间隔均值应接近 β,方差应接近 β²。
配置与验证流程
在仿真软件中,工件源模块通常需要设置:到达间隔分布类型(Exponential)、均值参数 β、随机数种子(Seed)、首个工件到达时刻。配置完成后运行仿真,记录每个工件的到达时刻,再计算相邻到达时刻之差,得到实际到达间隔样本。
下面给出一个可独立运行的 Python 验证脚本,它模拟工件源生成到达时刻,并统计实际到达间隔的均值与方差,用于验证随机数生成与分布参数设置的一致性。
import numpy as np
# ===== 工件源参数配置 =====
beta = 5.0 # 指数分布均值(平均到达间隔),单位:分钟
seed = 42 # 随机数种子,保证可复现
n = 2000 # 生成的工件数量
# ===== 生成到达间隔 =====
rng = np.random.default_rng(seed)
intervals = rng.exponential(scale=beta, size=n)
# ===== 生成到达时刻 =====
arrival_times = np.cumsum(intervals)
# ===== 统计实际到达间隔 =====
actual_intervals = np.diff(arrival_times, prepend=0.0)
mean_actual = actual_intervals.mean()
var_actual = actual_intervals.var(ddof=1)
# ===== 理论值 =====
mean_theory = beta
var_theory = beta ** 2
# ===== 输出对比 =====
print(f"样本数量: {n}")
print(f"实际均值: {mean_actual:.4f} 理论均值: {mean_theory:.4f} 偏差: {mean_actual-mean_theory:+.4f}")
print(f"实际方差: {var_actual:.4f} 理论方差: {var_theory:.4f} 偏差: {var_actual-var_theory:+.4f}")
print(f"实际标准差: {np.sqrt(var_actual):.4f} 理论标准差: {beta:.4f}")
# ===== 简单一致性判断 =====
tol_mean = 0.05 * mean_theory
tol_var = 0.10 * var_theory
ok_mean = abs(mean_actual - mean_theory) <= tol_mean
ok_var = abs(var_actual - var_theory) <= tol_var
print(f"均值一致性: {'通过' if ok_mean else '不通过'} (容差 ±{tol_mean:.3f})")
print(f"方差一致性: {'通过' if ok_var else '不通过'} (容差 ±{tol_var:.3f})")
运行脚本时,若均值偏差超过 β 的 5%、方差偏差超过 β² 的 10%,优先检查:分布类型是否选成 Exponential、scale 参数是否误填为速率 λ(λ=1/β)、随机数种子是否被重复初始化导致序列退化。
结果判读与常见偏差
指数分布是右偏分布,样本量较小时均值和方差波动较大。n=2000 时,均值的标准误约为 β/√n ≈ 0.11,因此均值偏差在 ±0.3 以内通常属于正常抽样波动。若偏差持续偏大,往往不是随机性问题,而是参数含义混淆:有的工具用“速率 λ”而非“均值 β”,此时应填 λ=1/β。
可复用的验证检查表
| 检查项 | 设定/理论值 | 通过条件 |
|---|---|---|
| 分布类型 | Exponential | 与设定一致 |
| 均值参数 β | 5.0 min | 实际均值偏差 ≤ ±5%·β |
| 方差理论值 | β² = 25.0 | 实际方差偏差 ≤ ±10%·β² |
| 随机种子 | 42 | 重复运行结果可复现 |
| 样本量 | n = 2000 | 统计量稳定,波动可接受 |
不要把“速率 λ”和“均值 β”混用。若工具要求输入速率,则 λ=1/β=0.2;若误填 5.0 作为速率,实际均值会变成 0.2,到达会密集约 25 倍,产线会严重堵塞。