Time-of-Flight Mass Spectrometer Simulator · 独立运行版 v4.1 离线运行 GPL-3.0

飞行时间质谱模拟器 TOF Simulator

本工具模拟飞行时间质谱仪(Time-of-Flight Mass Spectrometer)的完整物理过程: 激光脉冲电离样品,离子在引出区与加速区被静电场加速,随后在无场漂移管中自由飞行, 最终按质荷比 M/q 先后抵达探测器形成谱峰。内置 NIST 354 条同位素数据, 可解析分子式、自动枚举同位素组合并计算丰度,输出谱图、峰表与分辨率指标。

354内嵌 NIST 同位素
2×10⁶最大模拟粒子数
1000谱图时间道数
0外部依赖 / 需联网

⚛ 飞行时间质谱原理 Principle of TOF-MS

① 电离与引出。脉冲激光聚焦于样品(光斑半径 ds),瞬间电离产生离子团。 离子初始位置在引出区中心附近呈高斯分布,初始速度服从温度为 T 的麦克斯韦分布, 沿电场方向速度分量的标准差为 σv = √(kBT/M)。

② 双级加速。离子先在长度为 s、电压 Vs 的引出区加速, 再经长度为 d、电压 Vd 的加速区进一步获得动能。两级加速的组合可以对 初始位置分散造成的飞行时间离散实现一阶聚焦(空间聚焦)。

③ 自由漂移。离子进入长度为 D 的无场漂移管,以恒定速度飞行; 质量越大速度越慢,因此到达探测器的时间不同。

ttotal = ts + td + tD ≈ C · √(M / q)

④ 探测与谱图。探测器记录各离子的到达时刻,经时间数字转换(TDC)或 瞬态记录仪形成强度—时间谱。由于 t ∝ √(M/q),时间轴可通过 M/q = (t/C)² 线性化为质量轴,各同位素的丰度直接反映为峰高。

分辨率来源:峰宽主要由初始空间分散(Δx)、 初始速度分散(Δv,随温度升高而增大)、激光脉冲宽度(dt)和探测器时间精度共同决定。 提高 Vs/Vd 与延长 D 可提升质量分辨率,但会增大仪器尺寸。

📐 TOF 结构示意图 Instrument Schematic

真空腔体 (10⁻⁶ ~ 10⁻⁷ mbar) s (引出区) d (加速区) D (自由漂移) V = 0 −Vs −(Vs+Vd) E = 0 激光脉冲 dt (ns) ds MCP 探测器 到达时间谱(M/q 分离) 轻 中 重 t → (t ∝ √(M/q))
离子自左向右依次穿过引出区(s, Vs)、加速区(d, Vd)与自由漂移区(D, E=0), 质量越大轨迹弯曲度越小、到达越晚。图中三条彩色轨迹分别对应轻/中/重三种离子。

🚀 三步开始使用

1

选择样品

在「模拟 Run」页从下拉菜单选择物质(如 Kr、Ar、CO₂、SF₆、UF₆),或直接输入任意分子式与电荷。

2

调节仪器参数

拖动滑块设置 s / d / D / Vs / Vd、气体温度、光斑半径与脉冲宽度,点击「开始模拟」即可实时看到谱形变化。

3

查看与导出结果

在「结果 Result」页查看峰表、分辨率雷达图与峰高柱状图,并导出 CSV 数据或 PNG 谱图用于报告。

飞行时间质谱

峰信息(Peak Statistics)

离子位置 t (µs)峰高1/e 宽度 (ns)

理论飞行时间(理想条件 t ∝ √(M/q))

离子M/q理论 t (µs)相对强度 %

📊 结果总览 Simulation Summary

🔍 结果解读 Automated Interpretation

尚无模拟结果,请先在「模拟 Run」页点击「开始模拟」。

峰高柱状图 Peak Height by Ion

质量—飞行时间散布图 t vs √(M/q)

分辨率雷达图 Resolution Fingerprint

完整峰表(含相对强度与分辨率)

离子M/q峰位 t (µs)峰高相对强度 %1/e 宽度 (ns)R = t/Δt

导出与说明 Export

计算内核:完整移植自 fiolj/tof-simulator (Juan Fiol,GPL-3.0)的 tof.py:三段运动方程、麦克斯韦初始速度分布、 光斑空间分布(normal/uniform)、激光脉冲时间抖动、小孔径向过滤、蒙特卡洛密度直方图与抛物线峰拟合。

数据来源:NIST Atomic Weights and Isotopic Compositions(354 条同位素, 相对原子质量与同位素丰度)。

可信度:物质解析与飞行时间计算已与 Python 原版逐项比对(质量/丰度 6 位小数一致, 飞行时间 9 位小数一致);谱峰位置与理论 √(M/q) 值偏差通常 < 2 ns(受蒙特卡洛统计涨落影响)。

免责声明:本工具用于教学演示与量级估算,未包含空间电荷效应、离子—中性碰撞、 探测器饱和与死时间等真实仪器效应,不应用于精密定量分析。

一、核心概念与公式

① 动能定理(加速区)
q·U = ½·M·v²  ⟹  v = √(2qU / M)
U 为离子经历的总加速电位差,M 为离子质量(amu),q 为电荷数。
② 引出区(长度 s,电压 Vs)飞行时间
Es = Vs / (2s)   as = qEs/M
ts = C · [ −v₀ + √(v₀² + 2as(s − x₀)) ] / as
x₀ 为初始位置(小于 s),v₀ 为沿电场方向的初始速度分量; C = 1.02 为原程序中的单位换算系数。
③ 加速区(长度 d,电压 Vd)飞行时间
Ed = Vd / d
td = C · [ −vs + √(vs² + 2ad·d) ] / ad
vs = v₀ + asts 为离开引出区时的速度。
④ 自由漂移区(长度 D,无场)飞行时间
tD = C · D / vd
vd = vs + adtd,漂移区内速度恒定。
⑤ 质量—时间关系与质量分辨率
t = ts + td + tD  ,  t ∝ √(M/q)
R = m / Δm = t / (2·Δt)
Δt 常取半高宽 FWHM。本工具默认显示 1/e 宽度(≈1.65×FWHM 的关系因峰型而异)。
⑥ 初始速度分布(麦克斯韦)
σv = √(kBT / M)  ,  U₀ = 0.025·T/300 (eV)
程序以归一化单位计算:速度以 √(2eV) 为单位, v₀ ~ N(vinicial, √U₀)。温度越高,速度分散越大,峰越宽。
⑦ 空间(位置)分布
normal :  x₀ ~ N(0, (ds/2)²),若 |x₀| > s 则折算回 (−s, s)
uniform :  x₀ ∈ [−ds, +ds] 均匀分布
ds 为激光光斑半径。位置分散是峰宽的一阶来源,双级加速可将其一阶聚焦。
⑧ 小孔(Aperture)透过条件
v⊥ · textract ≤ r₀
横向速度 v⊥ 造成的偏移超过小孔半径 r₀ 的离子被滤除, r₀ 越小准直越好、灵敏度越低。
⑨ 同位素组合丰度
P = ∏i pini · ∏j (nj! / ∏k mjk!)
第二项为多重排列系数(相同同位素的组合数), 程序按 combinations_with_replacement 枚举后乘以排列数。
⑩ 峰位拟合(抛物线细化)
y = ax² + bx + c  ⟹  xpeak = −b / (2a)
对峰值附近 ±10 个采样点做最小二乘二次拟合, 得到亚采样精度的峰位与峰高。

二、操作流程

  1. 首页 Home:了解原理与仪器结构,确认概念后再进入模拟。
  2. 模拟 Run → 选择样品:从「常用物质」下拉菜单直接选择(Kr / Ar / CO₂ / SF₆ / UF₆ 等), 或在下方的「自定义分子式」输入框键入任意化学式。支持多电荷写法 Ar^2+、Xe^3+, 支持逗号分隔混合样品 Ar,Kr,CO2。
  3. 设置同位素阈值:默认 1.5%,只保留丰度高于该值的同位素碎片,避免谱图碎片过多。 阈值过高会丢失弱峰,过低会使模拟变慢。
  4. 调节仪器参数:
    • s / Vs:引出区长度与电压 —— 影响空间聚焦与整体时间尺度
    • d / Vd:加速区长度与电压 —— 提升能量分散,改善分辨率
    • D:自由漂移长度 —— 越长分辨率越高,但峰位时间也越长
    • ds / dt:光斑半径与激光脉宽 —— 直接决定峰的展宽
    • T:气体温度 —— 温度升高速度分散增大、峰变宽
  5. 点击「开始模拟」:程序执行蒙特卡洛抽样 → 计算飞行时间 → 直方图统计 → 绘制谱图。 状态栏显示粒子数、通过小孔数及耗时。
  6. 结果 Result:查看自动解读、峰高柱状图、t–√(M/q) 散布图与分辨率雷达图; 底部完整峰表含相对强度与分辨率 R。
  7. 导出:CSV(时间-信号-各离子分量)、PNG 谱图、解读图表、以及一份包含当前参数与峰表的 HTML 报告。
  8. 明暗场:右上角 🌙/☀️ 按钮可切换暗场模式,适合投影演示或暗室环境。

三、参数含义速查

s (cm)
引出区长度,离子由光斑位置到第一个电极的距离
d (cm)
加速区长度,两级电极之间的间距
D (cm)
自由漂移区长度(无场)
Vs (V)
引出电压,作用于 2s 距离上(Es=Vs/2s)
Vd (V)
加速电压,作用于 d 距离上(Ed=Vd/d)
ds (mm)
激光光斑半径,决定初始空间分散
dt (ns)
激光脉冲持续时间,决定初始时间分散
t0 (µs)
时间轴偏移(实验延迟校正)
r0
引出后小孔半径,用于横向准直过滤
T (K)
样品气体温度,决定初始速度分布宽度

四、常见问题(FAQ)

Q1:为什么谱图上出现很多个小峰?
这是同位素峰簇。每种元素有多个稳定同位素(如 Kr 有 80/82/83/84/86), 分子的同位素组合会形成一组质量相近、时间相近的峰。降低「同位素阈值」可以看到更多弱峰, 提高阈值则只保留强峰。
Q2:为什么分辨率 R 不是固定值?
R = t/(2Δt),其中 Δt 既包含随质量增大的时间尺度(t ∝ √M), 也包含几乎不随质量变化的仪器展宽(脉冲宽度、时间精度)。因此低质量端 R 通常较高, 高质量端因 Δt 相对占比下降而略降,雷达图会呈现这种"指纹"。
Q3:如何提高质量分辨率?
增大 D(延长漂移距离)、提高 Vd(增加动能、减小相对速度分散)、 减小 ds(缩小光斑)、缩短 dt(更短激光脉冲)、降低温度 T。 真实仪器中还会采用反射式(Reflectron)或离子阱进一步提升分辨率。
Q4:模拟结果每次都不一样?
蒙特卡洛模拟每次重新抽样,峰高有统计涨落(约 1/√N 量级)。 增大粒子数可降低涨落;峰位则稳定在理论值附近,偏差通常 < 2 ns。
Q5:能否模拟多电荷离子?
可以。写法为 Ar^2+、Xe^3+。 计算时 t 按 √(M/q) 缩放,因此 Ar²⁺ 会出现在 Ar⁺ 时间的一半位置附近(更靠前)。
Q6:本工具与原 Python 程序有何差异?
计算内核逐行移植,数值一致。差异在于:随机数发生器不同(PCG/JS Math.random vs NumPy), 因此单次采样序列不同但统计分布等价;原程序的 GTK/Streamlit 界面被替换为单文件 HTML 界面。

五、参考文献与致谢

[1] Juan Fiol, tof-simulator: Time-of-flight spectrometer Simulator, v4.0, GNU GPL v3, https://github.com/fiolj/tof-simulator
[2] NIST, Atomic Weights and Isotopic Compositions with Relative Atomic Masses, https://www.nist.gov/pml/atomic-weights-and-isotopic-compositions
[3] Wiley, W. C.; McLaren, I. H. Time-of-Flight Mass Spectrometer with Improved Resolution, Rev. Sci. Instrum. 26, 1150 (1955). —— 双级加速空间聚焦的原始文献
[4] Mamyrin, B. A. et al. The mass-reflectron, a time-of-flight mass analyzer with high resolution, Sov. Phys. JETP 37, 45 (1973).

本独立版由 HTML/CSS/JS 单文件实现,无任何外部依赖,可离线运行、任意分发(遵循 GPL-3.0)。