北美备件仓该放几个?用泊松分布算备件水位和安全库存(附 39 行 Python)| KeepRobots 工程笔记
本文由 KeepRobots 团队整理。KeepRobots 是温哥华的机器人现场服务公司,给别家生产的机器人做北美现场部署和售后。文中的故障率、单价、机队规模都是示例假设,换成你自己的数据再用。
北美 30 台配送机器人,按「在役数量的 10%」备件,算下来要压 5.6 万元的货。
用泊松分布重新算一遍:同样海运季度补,库存水位 3.6 万;贵件改空运、便宜件留海运,2.2 万。更扎心的是,10% 法备得最多的是贵件,真正缺货的反而是两百块的防撞条——它在一个补货周期里不缺货的概率只有 77%。
「机器人海外备件怎么备」,归根结底是两个数:补货周期多长、这段时间里会坏几个。下面用一段能直接跑的 Python 把这件事算清楚。

一、先把「补货周期」算对:不是运输时间
很多人只拿海运时间算:上海到温哥华门到门大约 4.5–6.5 周(Freightos、Flexport 的上海→温哥华航线公开估算,2026-10-12 查询,实际以货代报价为准),再加国内出库、清关和末端缓冲,按 8 周算。
但如果你是每季度才集中下一次补货单,一个件在月初被用掉,要等到季度末才下单,再等 8 周才到货。这个件的空窗期是:
补货周期 = 下单间隔 + 门到门运输时间
- 海运、每季度补一次:13 + 8 = 21 周
- 空运、每月补一次:4 + 2 = 6 周(空运门到门约 6–10 天,加上国内备货出库)
同一张清单,按 8 周算库存水位约 2.0 万,按 21 周算 3.6 万,多八成多。只拿运输时间算,是最常见的低估。
二、模型:补货周期内的故障数服从泊松分布
故障件是「偶尔坏一个」,各台机器独立地坏,适合用泊松分布:
- 在役数量 n = 机队台数 × 每台用量
- 补货周期内期望故障数 λ = n × 年故障率 × 补货周期(周)/ 52
- 每次下单时,把「在库 + 在途」补到 S(备件水位);取使 P(补货周期内需求 ≤ S) 达到目标(比如 95%)的最小 S
- 安全库存 SS = S − λ。比如万向轮海运季度补 λ=7.27、S=14,安全库存约 6.7 个
按期望值四舍五入备货(λ=1.21 就备 1 个)会有约 34% 的周期缺货,这就是为什么不能只看期望值。口径细节放在结果后面讲。
三、代码
只用标准库,python3 spares_poisson.py 直接跑:
import math
def poisson_cdf(k, lam):
return sum(math.exp(-lam) * lam**i / math.factorial(i) for i in range(k + 1))
def stock_for(lam, target):
"""补货周期内需求 ~ Poisson(lam),返回使周期不缺货概率 P(需求<=S)>=target 的最小 S"""
s = 0
while poisson_cdf(s, lam) < target:
s += 1
return s
# 机队 30 台配送机器人。故障率、单价全部是示例假设,换成你自己的数据
FLEET = 30
PARTS = [ # 名称, 每台用量, 年故障率, 单价(元), 目标不缺货概率
("驱动模块", 2, 0.05, 3000, 0.95),
("激光雷达", 1, 0.03, 6000, 0.95),
("主控板", 1, 0.04, 2500, 0.95),
("电池包", 1, 0.06, 3500, 0.95),
("万向轮", 4, 0.15, 120, 0.99),
("防撞条", 1, 0.20, 200, 0.99),
]
# 补货周期 = 盘点/下单间隔 + 门到门运输(周),示例
MODES = {"海运·坏一个补一个": 0 + 8, "海运·季度补": 13 + 8, "空运·月度补": 4 + 2}
for mode, weeks in MODES.items():
print(f"\n== {mode}(补货周期 {weeks} 周)==")
tot_p = tot_r = 0
for name, per, afr, price, tgt in PARTS:
n = FLEET * per
lam = n * afr * weeks / 52
s = stock_for(lam, tgt)
r10 = math.ceil(n * 0.10) # 拍脑袋:在役数量的 10%
print(f"{name:<5} 在役{n:>4} λ={lam:5.2f} 泊松备{s:>2}"
f"({poisson_cdf(s, lam):.1%}) | 10%法备{r10:>2}"
f"({poisson_cdf(r10, lam):.1%})")
tot_p += s * price
tot_r += r10 * price
print(f"库存水位金额:泊松 {tot_p:,} 元 | 10%法 {tot_r:,} 元")
四、跑出来的结果(Python 3 实测)
「坏一个补一个」那组(8 周)合计 19,640 元,下表只列季度海运和月度空运两组:
| 件 | 在役 | 海运·季度补 λ | 泊松备(不缺货概率) | 10% 法备(海运季度补下) | 空运·月度补 泊松备 |
|---|---|---|---|---|---|
| 驱动模块 | 60 | 1.21 | 3(96.5%) | 6(≈100%) | 1 |
| 激光雷达 | 30 | 0.36 | 2(99.4%) | 3(99.9%) | 1 |
| 主控板 | 30 | 0.48 | 2(98.7%) | 3(99.8%) | 1 |
| 电池包 | 30 | 0.73 | 2(96.3%) | 3(99.3%) | 1 |
| 万向轮 | 120 | 7.27 | 14(99.2%) | 12(96.5%) | 6 |
| 防撞条 | 30 | 2.42 | 7(99.6%) | 3(77.4%) | 3 |
| 库存水位金额 | 36,080 元 | 56,040 元 | 16,320 元(理论值,含电池空运) |

三个结论:
- 10% 法的问题不是多备,是备错地方。 它对贵件过度保护(驱动模块备 6 个,不缺货概率 ≈100%),对便宜但坏得勤的件保护不够(防撞条 77%)。
- 补货周期比故障率更值钱。 同一张清单,从海运季度补改成空运月度补,理论上从 3.6 万降到 1.6 万。但电池很难空运(见第七节),可落地的是第五节的混搭。
- 离散分布有台阶。 激光雷达海运算出来是 2 个、不缺货概率 99.4%,因为 1 个只有 94.8%,差一点够不到 95%。94.8% 能接受,就省一个 6000 元的件。
口径说明(内行会问):
- 季度补、月度补(有下单间隔):P(需求 ≤ S) 是真正的周期服务水平(一个补货周期内不缺货的概率),不是 fill rate(需求被现货满足的比例),此时 fill rate 一般更高。
- 坏一个补一个(没有下单间隔):没有「周期」,P(需求 ≤ S) 是任一时刻没有欠货的概率;「报修那一刻正好有现货」的概率是 P(需求 ≤ S−1),更低。8 周那组和第六节返修例子属于这种,要求报修即有现货就按 S−1 算,通常多备 1 个。
- 金额口径:S 是水位上限,不是货架上的常驻数。季度补货下平均在库约 S − λ + λ_下单间隔/2(万向轮约 9 个)。表里用 S × 单价比较,口径一致但偏保守。
五、高价件和低价件分开走
| 低价高频件(轮子、防撞条、触点) | 高价低频件(驱动、雷达、主板) | |
|---|---|---|
| 目标不缺货概率 | 99%,多备几个也没多少钱 | 95% 起步,停机件可往上调 |
| 补货方式 | 海运季度补,跟大货一起走 | 空运月度补,或坏一个补一个走快递 |
按这个思路混搭:驱动、雷达、主板空运月度补(11,500 元),电池包和便宜件海运季度补(7,000 + 1,680 + 1,400 元),合计 21,580 元,比全海运少约 1.45 万,空运费只花在小而贵的件上。
六、可修件:λ 要按返修周转算
驱动、雷达、主板坏了往往寄回国内返修再回北美库存。这时决定库存的是返修周转时间(拆下 → 寄回 → 维修 → 发回),不是采购交期。
按 Palm 定理,故障按泊松到达、返修能力不受限(不排队)时,在修管道里的件数也服从泊松分布,均值 = 年故障数 × 周转时间(年),和维修时间的分布无关。代码里把补货周期换成周转时间即可;修不好报废的部分按报废率走采购交期另算。
例(示例假设):驱动模块年故障 60 × 5% = 3 次,返修周转 16 周,λ = 3 × 16/52 ≈ 0.92,按无欠货 95% 要备 3 个;周转压到 10 周,λ ≈ 0.58,备 2 个。缩短一次返修的进出口和处理时间,和改空运一样能省钱。返修要排队时,管道件数比泊松更分散,周转按旺季算。
七、什么时候改空运,什么时候考虑寄售
改空运的信号:
- 某个件 S_海运 − S_空运 ≥ 2,且单价高。粗算:省下的资金占用 × 你的年资金成本率(示例 20%)> 一年多出的空运费,就该改。资金占用用平均在库 + 在途算,直接用 S 的差值会高估省下的钱。
- 注意电池:单独运输的锂离子电池是 UN3480(IATA 包装说明 965),空运只能上货机、荷电状态不超过 30%;和设备包装在一起是 UN3481(包装说明 966),2026 版 DGR 起这一类也要求荷电不超过 30%,以货代确认为准;两类都要准备 UN38.3 测试摘要。海运同样要按第 9 类危险品(IMDG)申报订舱。所以电池包一般按海运周期算。
考虑寄售的信号:
- λ 很小(比如空运月度补下激光雷达 λ=0.10),但坏了就停机,必须在当地放 1 个。放在自己仓库,取件还要再派送一次;寄售在做现场服务的合作方那里(所有权归厂商,用一个记一个),工程师上门直接带走。
- 北美还没有实体、不想先租仓雇人。KeepRobots 在温哥华提供备件存放和现场更换,可以作为这类件的放置点之一。
八、用之前要改的四处
- 故障率:没有北美数据先用国内同型号返修率,头 6 个月每月用真实出库数据更新。数据少时别用点估计,用 λ 的上置信限(比如全机队去年该件坏了 3 次,按泊松单侧 95% 上限约 7.75 次算,再除以在役数量得到年故障率),新机早期失效期再乘一个放大系数。
- 节假日:春节、国庆前后补货周期按最长的算。
- 磨损件:万向轮、防撞条这类按寿命磨损的件比泊松更规律,用泊松算偏保守;量大了可以改按用量预测。
- 多城市:温哥华、多伦多、洛杉矶各有客户时,按城市圈分别算 λ。
参数换成你的 BOM 和故障记录,十分钟出一版北美备件清单。
延伸阅读
- 备件分级清单、补货周期、清关和寄售怎么谈:机器人海外备件怎么备?北美备件仓、寄售和补货周期实操
- KeepRobots 在温哥华的现场服务和备件存放:加拿大机器人售后与现场服务
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)