PLANT SIMULATION 16 · LEARNING NOTE
Lab 06:批量实验并形成客户结论
本页目录
场景说明
FMS 模型已经包含多品种、替代设备、换型和 AGV。客户不再关心“模型会不会动”,而要在三个投资方案中做选择:
- 方案 A:维持 3 台 CNC、增加第 2 台 AGV;
- 方案 B:增加第 4 台 CNC、维持 1 台 AGV;
- 方案 C:3 台 CNC、2 台 AGV,并采用小批量排序和更短 MTTR。
你需要用 ExperimentManager 或等效批量方法,给出均值、不确定性、风险和推荐。
最终交付物
- 已冻结并验证的基准模型;
- 集中场景参数表;
- 至少 10 次独立重复的方案结果;
- 产量、准时率、WIP、Flow Time、设备/AGV 状态;
- 一份客户可审查的结论页;
- 所有数字能追溯到模型版本、场景、重复号和种子。
步骤 1:冻结模型版本
- 运行 Lab 04 的 100 件守恒测试。
- 运行 Lab 05 的四个运输测试。
- 确认所有测试通过。
- Save As
FMS_Validated_Baseline_v01.spp。 - 后续不得直接改动这个文件。
- 记录日期、数据版本和关键假设。
步骤 2:建立集中参数表
放置 TableFile t_Scenarios:
| ScenarioId | CNC_Count | AGV_Count | Buffer | Dispatch | Batch | OP20_MTTR_min |
|---|---|---|---|---|---|---|
| S0 | 3 | 1 | 4 | ShortestQueue | 1 | 18 |
| S1 | 3 | 2 | 4 | ShortestQueue | 1 | 18 |
| S2 | 4 | 1 | 4 | ShortestQueue | 1 | 18 |
| S3 | 3 | 2 | 8 | EarliestFinish | 5 | 10 |
初始化 Method m_ApplyScenario
只负责从本表设置对象。所有方案都通过同一入口加载,避免手工遗漏。
步骤 3:确定统计窗口
本练习采用:
- 预热期:8 小时;
- 正式统计期:20 个 8 小时班次,共 160 小时;
- 重复次数:先 10 次;
- 每次使用不同种子;
- 预热结束时清零结果计数,但不清空系统 WIP。
真实项目的预热期要用 WIP/吞吐随时间曲线判断,不能机械照搬 8 小时。
步骤 4:配置 ExperimentManager
若许可证包含 ExperimentManager:
- 从工具箱放置
ExperimentManager。 - 打开对象,创建实验研究。
- 在 Input values 中添加场景参数,或以
ScenarioId驱动m_ApplyScenario。 - 在 Output values 中添加良品数、准时率、平均 WIP、Flow Time、各资源状态等。
- 设置每个场景的观察/重复次数。
- 设置不同随机种子或随机流策略。
- 配置预热和仿真结束时间。
- 先用 2 个场景×2 次重复做冒烟测试。
- 检查输出表每行都有场景、重复号和种子。
- 再启动完整实验。

画面显示了 ExperimentManager 的 Definition/Evaluation 区域和输出值表。视频版本为 Plant Simulation 14,版本 16 的按钮和字段可能变化,但“定义输入、定义输出、设置观察次数、运行与评价”的流程一致。来源:Siemens 官方 Using the Experiment Manager 视频。
西门子官方视频演示了 ExperimentManager 用不同随机数执行多个实验:
来源:Siemens 官方 Plant Simulation 入门视频合集。视频界面可能早于版本 16,但实验概念可对照;字段以版本 16 内置帮助为准。
步骤 5:没有 ExperimentManager 时的替代方法
用 Method 循环场景与重复:
for each ScenarioId
apply scenario
for Replication = 1..10
set seed
reset model
run warmup
reset statistics only
continue official run
collect outputs into t_Results
next
next
运行控制方法的具体 API 必须按 Plant Simulation 16 帮助实现。不要使用等待动画结束的人工点击代替批量控制。
步骤 6:定义结果字段
结果表 t_Results 至少包含:
| 字段 | 含义 |
|---|---|
| ModelVersion | 模型版本 |
| ScenarioId | 场景 |
| Replication | 重复号 |
| Seed | 随机种子 |
| Warmup_h | 预热小时 |
| RunLength_h | 正式统计小时 |
| ThroughputGood | 良品数 |
| TargetHit | 是否达标 |
| ServiceLevel_pct | 准时率 |
| AvgWIP | 平均 WIP |
| AvgFlowTime_min | 平均流动时间 |
| SetupTime_h | 换型时间 |
| AGVRequestWait_min | 请求等待 |
| Deadlocks | 死锁/未完成请求 |
可直接参考
templates/experiment_results.csv。
步骤 7:冒烟测试
完整实验前检查:
- S0×2 次、S1×2 次是否共 4 行;
- 每次 Seed 不同;
- 运行长度相同;
- 场景切换后 CNC/AGV 数量确实变化;
- 每次统计在预热后重新开始;
- 上一次运行的自定义计数没有残留;
- 没有缺失值或异常负值。
步骤 8:完成实验并计算汇总
每个场景至少计算:
- ThroughputGood 均值、标准差、最小、最大;
- 均值 95% 置信区间;
- 产量目标达成次数/重复次数;
- AvgWIP 和 AvgFlowTime;
- CNC 与 AGV 状态占比;
- 换型时间和运输等待。
95% 均值置信区间:
mean ± t(0.975, n-1) × sample_standard_deviation / sqrt(n)
若置信区间宽于客户可接受的决策误差,增加重复次数。
步骤 9:约束筛选而不是只排产量
假设客户约束:
- 良品 ≥ 420 件/班;
- 达标概率 ≥ 95%;
- AvgWIP ≤ 35;
- 无死锁;
- 关键设备 Working 不长期超过工程可接受水平。
筛选顺序:
排除死锁/逻辑失败
→ 排除产量与交期不达标
→ 排除 WIP 超限
→ 比较投资与稳健性
步骤 10:做敏感性分析
对三个最不确定输入分别测试低/中/高:
| 不确定项 | 低 | 中 | 高 |
|---|---|---|---|
| 需求 | -10% | 基准 | +10% |
| OP20 MTTR | 10 分 | 18 分 | 25 分 |
| 产品 C 比例 | 10% | 20% | 30% |
观察推荐方案是否反转。如果只在非常乐观数据下达标,必须在结论中标为高风险。
步骤 11:写客户结论页
使用以下结构:
决策:在 S0–S3 中选择 FMS 配置。
推荐:S__。
证据:平均良品 ___ 件/班(95%CI ___–___),达标概率 ___%,AvgWIP ___。
机制:改善主要来自 ___,使 ___ 状态下降 ___ 个百分点。
代价:新增 ___,投资等级 ___;Flow Time/WIP 变化 ___。
稳健性:需求 +10% 与 MTTR ___ 分钟下仍然/不再达标。
边界:未建模 ___;实施前需确认 ___。
备选:若预算受限,选择 S__,其风险为 ___。
步骤 12:准备客户演示
演示顺序建议:
- 30 秒说明研究问题和边界;
- 1 分钟展示模型流程,不进行漫长动画漫游;
- 展示单件验证和数量守恒;
- 展示基准与推荐方案 KPI;
- 用资源状态解释改善机制;
- 展示敏感性与风险;
- 给出建议动作和决策门。
Plant Simulation 16 可同时呈现 3D 模型、报告和资源状态图:

图片来源:Siemens 官方 Plant Simulation 16 发布说明。
结果截图要求
L06-01-experiment-inputs.png:实验输入与场景;L06-02-output-definition.png:输出字段;L06-03-running-status.png:批量运行状态;L06-04-scenario-comparison.png:均值与误差线;L06-05-resource-states.png:基准与推荐状态;L06-06-customer-conclusion.png:最终结论页。