From 8fdda7962328e81972650d7723d3659d3f832d80 Mon Sep 17 00:00:00 2001 From: chuan Date: Thu, 18 Jun 2026 15:25:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20raman-oper.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- raman-oper.md | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 raman-oper.md diff --git a/raman-oper.md b/raman-oper.md new file mode 100644 index 0000000..7f5bf76 --- /dev/null +++ b/raman-oper.md @@ -0,0 +1,178 @@ +# 拉曼光谱仪典型操作流程 + +## 流程图 + +```mermaid +flowchart TD + Start([开始]) --> SetIT[设置积分时间
例: 10ms / 20ms / ...] + + SetIT --> Calibration[/校准阶段/] + + subgraph CAL [校准 — 按当前积分时间] + Calibration --> DarkSetup[滤光轮移至位置6
全黑挡片] + DarkSetup --> DarkAcq[采集暗光谱
不开光源] + DarkAcq --> DarkSave[保存暗光谱
标记积分时间] + + DarkSave --> LightSetup[滤光轮移至位置5] + LightSetup --> AddWater[加入纯水作为参比] + AddWater --> LightAcq[采集明光谱] + LightAcq --> LightSave[保存明光谱
标记积分时间] + end + + LightSave --> MoreIT{还需校准
其他积分时间?} + MoreIT -- 是 --> SetIT + MoreIT -- 否 --> Sample[/正式采集阶段/] + + subgraph ACQ [样品采集] + Sample --> SelectIT[选择积分时间
匹配已有校准数据] + SelectIT --> AddSample[加入样品溶液] + AddSample --> SampleAcq[采集样品光谱
ODx数据] + SampleAcq --> SampleSave[保存样品光谱] + end + + SampleSave --> Process[/数据处理阶段/] + + subgraph PROC [数据处理] + Process --> LoadCal[加载同积分时间的
暗光谱 + 明光谱] + LoadCal --> Absorbance[计算吸光度
A = -log₁₀ 样品 - 暗 / 明 - 暗] + Absorbance --> Smooth[平滑处理吸光度曲线] + Smooth --> Result[输出最终吸光度谱] + end + + Result --> End([结束]) +``` + +## 时序图 + +### 单次完整流程(含多积分时间校准) + +```mermaid +sequenceDiagram + actor 操作员 + participant FW as 电动滤光轮 + participant SPEC as 光谱仪 + participant SW as 软件 + participant FS as 本地存储 + + rect rgb(240, 248, 255) + Note over 操作员, FS: 校准阶段 — 积分时间 10ms + 操作员->>SW: 设置积分时间 = 10ms + SW->>SPEC: 配置积分时间 10ms + SW->>FW: 移至位置6(全黑挡片) + FW-->>SW: 到位确认 + SW->>SPEC: 采集暗光谱(无光源) + SPEC-->>SW: 返回暗光谱数据 + SW->>FS: 保存 dark_10ms.csv + + 操作员->>操作员: 加入纯水(参比) + SW->>FW: 移至位置5 + FW-->>SW: 到位确认 + SW->>SPEC: 采集明光谱 + SPEC-->>SW: 返回明光谱数据 + SW->>FS: 保存 ref_10ms.csv + end + + rect rgb(245, 240, 255) + Note over 操作员, FS: 校准阶段 — 积分时间 20ms + 操作员->>SW: 设置积分时间 = 20ms + SW->>SPEC: 配置积分时间 20ms + SW->>FW: 移至位置6(全黑挡片) + SW->>SPEC: 采集暗光谱 + SPEC-->>SW: 返回暗光谱数据 + SW->>FS: 保存 dark_20ms.csv + + SW->>FW: 移至位置5 + SW->>SPEC: 采集明光谱 + SPEC-->>SW: 返回明光谱数据 + SW->>FS: 保存 ref_20ms.csv + end + + rect rgb(255, 248, 240) + Note over 操作员, FS: 样品采集阶段 + 操作员->>操作员: 加入样品溶液 + 操作员->>SW: 选择积分时间 10ms,开始采集 + SW->>SPEC: 采集样品光谱(积分时间 10ms) + SPEC-->>SW: 返回样品光谱(ODx) + SW->>FS: 保存样品光谱 + end + + rect rgb(240, 255, 240) + Note over 操作员, FS: 数据处理阶段 + SW->>FS: 加载 dark_10ms + ref_10ms + FS-->>SW: 返回匹配的校准数据 + SW->>SW: A = -log₁₀((样品-暗)/(明-暗)) + SW->>SW: 平滑处理吸光度曲线 + SW-->>操作员: 显示最终吸光度谱 + end +``` + +### 复用已有校准数据(跳过校准) + +```mermaid +sequenceDiagram + actor 操作员 + participant SPEC as 光谱仪 + participant SW as 软件 + participant FS as 本地存储 + + 操作员->>SW: 选择积分时间 20ms + SW->>FS: 查询是否存在 20ms 校准数据 + FS-->>SW: 找到 dark_20ms + ref_20ms + Note over SW: 校准数据已有,无需重新标定 + + 操作员->>操作员: 加入样品溶液 + 操作员->>SW: 开始采集 + SW->>SPEC: 采集样品光谱(积分时间 20ms) + SPEC-->>SW: 返回样品光谱 + SW->>FS: 加载 dark_20ms + ref_20ms + SW->>SW: 计算吸光度 + SW->>SW: 平滑处理 + SW-->>操作员: 显示最终吸光度谱 +``` + +## 操作说明 + +| 步骤 | 滤光轮位置 | 操作 | 输出 | +|------|-----------|------|------| +| 1. 设置积分时间 | — | 选择积分时间(如 10ms、20ms) | — | +| 2. 采集暗光谱 | 位置6(全黑) | 不开光源,直接采集 | 暗光谱(Dark)+ 积分时间标记 | +| 3. 采集明光谱 | 位置5 | 加纯水后采集 | 明光谱(Reference)+ 积分时间标记 | +| 4. (可选)重复 1-3 | — | 切换其他积分时间再次校准 | 多组校准数据 | +| 5. 采集样品谱 | — | 加样品溶液,选择对应积分时间后采集 | 样品光谱(Sample) | +| 6. 计算吸光度 | — | 加载同积分时间校准数据,公式换算 | 吸光度曲线(Absorbance) | +| 7. 平滑处理 | — | 算法平滑 | 最终吸光度谱 | + +## 关键约束:积分时间一致性 + +> **暗光谱、明光谱、样品光谱三者的积分时间必须完全一致,否则吸光度计算无意义。** + +- 校准数据(暗光谱 + 明光谱)保存时**必须记录积分时间** +- 用户可在不同积分时间下分别校准并保存,形成一组校准数据库 +- 正式采集时,软件自动匹配当前积分时间对应的校准数据 +- 如果已有对应积分时间的校准数据,可**跳过校准直接采集**,无需每次重新标定 + +### 校准数据存储结构示例 + +``` +calibration/ +├── 10ms/ +│ ├── dark.csv # 暗光谱 @10ms +│ └── reference.csv # 明光谱 @10ms +├── 20ms/ +│ ├── dark.csv +│ └── reference.csv +└── 50ms/ + ├── dark.csv + └── reference.csv +``` + +### 吸光度计算公式 + +$$ +A(\lambda) = -\log_{10} \frac{I_{sample}(\lambda) - I_{dark}(\lambda)}{I_{reference}(\lambda) - I_{dark}(\lambda)} +$$ + +- **I_dark**: 暗光谱(滤光轮位置6,无光源,积分时间 = T) +- **I_reference**: 明光谱(滤光轮位置5,纯水参比,积分时间 = T) +- **I_sample**: 样品光谱(积分时间 = T) +- **T**: 三者必须使用相同的积分时间