添加 raman-oper.md

This commit is contained in:
2026-06-18 15:25:29 +08:00
Unverified
parent 9677c433bd
commit 8fdda79623
+178
View File
@@ -0,0 +1,178 @@
# 拉曼光谱仪典型操作流程
## 流程图
```mermaid
flowchart TD
Start([开始]) --> SetIT[设置积分时间<br/>例: 10ms / 20ms / ...]
SetIT --> Calibration[/校准阶段/]
subgraph CAL [校准 — 按当前积分时间]
Calibration --> DarkSetup[滤光轮移至位置6<br/>全黑挡片]
DarkSetup --> DarkAcq[采集暗光谱<br/>不开光源]
DarkAcq --> DarkSave[保存暗光谱<br/>标记积分时间]
DarkSave --> LightSetup[滤光轮移至位置5]
LightSetup --> AddWater[加入纯水作为参比]
AddWater --> LightAcq[采集明光谱]
LightAcq --> LightSave[保存明光谱<br/>标记积分时间]
end
LightSave --> MoreIT{还需校准<br/>其他积分时间?}
MoreIT -- 是 --> SetIT
MoreIT -- 否 --> Sample[/正式采集阶段/]
subgraph ACQ [样品采集]
Sample --> SelectIT[选择积分时间<br/>匹配已有校准数据]
SelectIT --> AddSample[加入样品溶液]
AddSample --> SampleAcq[采集样品光谱<br/>ODx数据]
SampleAcq --> SampleSave[保存样品光谱]
end
SampleSave --> Process[/数据处理阶段/]
subgraph PROC [数据处理]
Process --> LoadCal[加载同积分时间的<br/>暗光谱 + 明光谱]
LoadCal --> Absorbance[计算吸光度<br/>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**: 三者必须使用相同的积分时间