蒙特卡洛容差仿真器|工艺参数分析工具
这个工具解决什么问题
参数漂移早期很难察觉,靠人盯不现实。这工具把趋势判定做成可重跑的检查。
装配尺寸链的三种口径并排比:**极值法(最坏情况)/统计法(±3σ, RSS)/ 蒙特卡洛(50000 次抽样)**,算分量贡献度,并对贡献最大的分量做「公差收紧 40%」 的改善回算,直接看超差率能降到多少 PPM。
输入数据格式
数据文件 tolerance_chain.csv,列顺序为:comp、nominal_mm、tol_minus_mm、tol_plus_mm、distribution。
示例首行:基座高度,20.00,0.050,0.050,正态(±3σ)
示例输出(真实运行结果节选)
蒙特卡洛容差仿真报告 ============================================================================== 【一、输入尺寸链】 目标间隙:0.500 mm(允收 0.30 ~ 0.70 mm) 链向:零件尺寸越大 → 间隙越小(各分量对间隙的灵敏度 = -1) 零件 名义mm 下偏差 上偏差 分布 基座高度 20.00 0.050 0.050 正态 垫片A厚度 3.00 0.030 0.030 正态 衬套内径台阶 12.50 0.080 0.060 正态 压盖高度 8.20 0.040 0.040 均匀 弹簧垫厚度 1.50 0.020 0.020 正态 锁紧环厚度 4.35 0.060 0.050 均匀 【二、三种口径并排对比】 方法 间隙区间(mm) 超差率 极值法(Worst-Case) 0.250 ~ 0.780 100.00% 统计法(RSS, ±3σ) 0.344 ~ 0.656 0.0000% 蒙特卡洛(50000 次) 0.289 ~ 0.710 0.3460% 蒙特卡洛:均值 0.4998 mm,标准差 0.0702 mm,Cp = 0.95,Cpk = 0.95 口径差异解读:极值法假设所有零件同时走到最不利极限(概率极低,通常过保守); RSS 假设各偏差独立正态且取 ±3σ;蒙特卡洛不依赖分布假设,可给出真实超差概率。 本链 RSS 区间为 0.344~0.656,蒙特卡洛实测 0.289~0.710 —— 两者存在差异,主因是均匀分布分量与截尾效应。 【三、分量方差贡献度排序(改善该往哪里投)】 零件 1σ(mm) 方差
解决什么问题
图纸上每个零件都有公差,但「最坏情况」太保守(成本堆高)、「均方根 RSS」又偏乐观 (现场超差)。本工具用同一组数据把三种算法摆在一起,让「该不该收紧公差、 收紧哪一件最划算」有量化依据。
使用方法
python tolerance_mc.py # 示例数据 python tolerance_mc.py 我的.csv
允收上下限在脚本头部 LSL / USL 处修改。
输入格式(CSV,UTF-8)
· distribution:normal(正态,取 ±3σ=公差)或 uniform(均匀,全公差带等概率) · 尺寸链按代数和叠加(配间隙用正号、被包容件用负号,在 CSV 里以正负名义值体现)
输出说明
· tolerance_chain.csv:示例数据(首次运行自动生成) · tolerance_mc_report.txt:三口径对比、超差率与 PPM、分量贡献度排序、 收紧公差后的改善回算、结论
适用场景
装配间隙/干涉核算、公差分配、供应商公差谈判、DFM 评审。
注意事项
蒙特卡洛结果依赖分布假设:切削件偏正态、冲压件偏均匀,两者超差率可差数倍; uniform 是保守选择。样本量 5 万次时超差率低于 0.002% 就落在仿真分辨率之外了。
可调参数与计算口径
脚本顶部集中了主要阈值与常量:CSV_NAME="tolerance_chain.csv"、REPORT_NAME="tolerance_mc_report.txt"、N_RUNS=50000、COMPS=[。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:tolerance_chain.csv、tolerance_mc_report.txt。
脚本里的主要处理步骤
脚本内部按固定列组织数据:comp、nominal_mm、tol_minus_mm、tol_plus_mm、distribution。
normal_seq():Box-Muller 生成标准正态序列(每 2 个均匀数取 1 个)。sigma_of():把公差换算为 1σ:正态按 ±3σ 处理,均匀按半宽/√3。simulate():返回 (mean, sd, p_out)。tol_scale 可对指定分量整体缩放公差做改善回算。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 基座高度
- 垫片A厚度
- 衬套内径台阶
- 压盖高度
- 弹簧垫厚度
- 锁紧环厚度
- Box-Muller 生成标准正态序列(每 2 个均匀数取 1 个)。
- 正态(±3σ)
- 把公差换算为 1σ:正态按 ±3σ 处理,均匀按半宽/√3。
- 蒙特卡洛容差仿真报告
- 【一、输入尺寸链】
- 目标间隙:%.3f mm(允收 %.2f ~ %.2f mm)
- 链向:零件尺寸越大 → 间隙越小(各分量对间隙的灵敏度 = -1)
- 名义mm
- 【二、三种口径并排对比】
- 间隙区间(mm)
- 极值法(Worst-Case) %10.3f ~ %-9.3f %11s
- 统计法(RSS, ±3σ) %10.3f ~ %-9.3f %11s
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:tolerance_mc.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 5 列:comp、nominal_mm、tol_minus_mm、tol_plus_mm、distribution。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
跑完最该关注哪几项?
报告按 一、输入尺寸链、二、三种口径并排对比、三、分量方差贡献度排序(改善该往哪里投)、四、改善回算:把「%s」公差收紧 40%%、五、结论与建议 等部分组织,其中判定结论与建议部分直接对应下一步动作。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
同分类的其它工具
本工具归在 半导体工艺参数分析工具包,全部工具见 工具资源包下载页。





