2. Dewesoft 数据采集核心对象建模

在 Dewesoft 平台中,一次可靠的数据采集并不是“接上线、点开始”这么简单。真正决定数据质量与后续分析可行性的,是采集链路上几个核心对象的程序化定义:传感器(Sensor)、放大器(Amplifier)、通道(Channel),以及绑定在通道上的采样率、量程和耦合方式。理解它们之间的层级与参数传递关系,是编写自动化配置脚本、批量生成采集工程的前提。

一、采集链路的对象层级

从物理世界到数字数据,Dewesoft 的建模遵循一条清晰的信号链:物理量 → 传感器 → 放大器/调理模块 → 采集通道 → 数字样本。其中传感器负责把被测量(力、加速度、温度、电压等)转换为电信号;放大器负责激励、放大、滤波与抗混叠;通道则是软件中承载数据流的最小逻辑单元,采样率、量程、耦合方式等参数最终都落在通道对象上。

在程序化建模时,可以把这套关系理解为“通道引用放大器,放大器引用传感器”。传感器对象保存灵敏度、单位、量程等物理属性;放大器对象保存增益、激励、滤波等电气属性;通道对象保存采样率、耦合、量程、工程单位换算等采集属性。这样分层的好处是:同一型号传感器可被多个通道复用,同一放大器配置可批量套用到多组通道,避免逐通道重复填写。

Dewesoft 采集链路对象模型与参数传递 物理量 力 / 加速度 / 温度 传感器 Sensor 灵敏度 10.2 mV/N 量程 ±500 N 单位 N 放大器 Amplifier 增益 ×100 激励 2 mA 抗混叠滤波 10 kHz 通道 Channel 采样率 20 kS/s 量程 ±5 V 耦合 AC / DC 工程单位换算 数字样本流 时间戳 + 工程值(N) 关键参数对采集结果的影响 • 采样率:决定可分析带宽,须满足 fs ≥ 2.56 × f_max(抗混叠经验系数) • 量程:决定满量程电压与分辨率,过小会削顶,过大会浪费有效位数 • 耦合方式:DC 保留直流分量,AC 隔直适合动态信号,IEPE 需恒流激励

二、传感器对象的程序化定义

传感器对象的核心是灵敏度与物理量程。以一只 IEPE 加速度传感器为例,其标称灵敏度为 100 mV/g,量程 ±50 g。在 Dewesoft 中,这个对象通常以“传感器数据库条目”的形式存在,包含名称、序列号、灵敏度、单位、量程上下限、校准日期等字段。程序化定义时,我们把这些字段写入配置结构,而不是每次手动输入。

sensor = {
  "name": "ACC_100mVg",
  "type": "IEPE",
  "sensitivity": 100.0,      # mV/g
  "unit": "g",
  "range_min": -50.0,
  "range_max": 50.0,
  "serial": "SN-2024-0187"
}

灵敏度是后续工程单位换算的基准。若灵敏度填写错误,所有幅值都会按比例失真,而波形形状却看不出异常——这是自动化配置中最隐蔽的错误来源之一,因此建议在脚本中加入灵敏度合理性校验(例如与标称值偏差超过 5% 时告警)。

三、放大器对象的定义

放大器对象描述信号调理环节。对 IEPE 传感器,放大器需要提供恒流激励(典型 2 mA 或 4 mA);对电荷型传感器,则需要电荷放大器与合适的增益。放大器的关键参数包括增益、激励电流、耦合方式、抗混叠滤波截止频率。增益的选择要与传感器灵敏度和通道量程联合计算,避免信号过小被量化噪声淹没,或过大导致饱和。

一个实用的增益估算方法是:先由传感器满量程输出估算最大电压,再让该电压落在通道量程的 60%~80% 区间。例如 100 mV/g、±50 g 的传感器,满量程输出为 ±5 V;若通道量程为 ±10 V,则增益取 1 即可,无需额外放大。

四、通道对象与采样率、量程、耦合方式

通道是最终承载数据的对象,也是自动化脚本操作最频繁的层级。每个通道需要绑定:所属放大器、采样率、量程、耦合方式、工程单位、以及是否启用。采样率的选择由分析目标决定:若关注 2 kHz 以内的振动成分,按 fs ≥ 2.56 × f_max 的经验,采样率至少取 5.12 kS/s,工程上常取 10 kS/s 或 20 kS/s 留出余量。

量程决定 ADC 的满量程电压。以 24 位 ADC、±10 V 量程为例,理论分辨率为 20 V / 2²⁴ ≈ 1.19 µV。若实际信号只有 ±0.5 V,有效位数会大幅浪费;此时应把量程改为 ±1 V,分辨率提升到约 0.119 µV。耦合方式则决定信号通路:DC 耦合保留直流与低频分量,适合静态力、温度;AC 耦合隔断直流,适合动态振动与声学信号;IEPE 耦合在 AC 基础上叠加恒流激励,专用于 IEPE 传感器。

五、批量配置示例

下面给出一个 4 通道振动采集的配置片段,展示对象之间的引用关系。示例参数为教学假设值,实际使用时应以传感器标定证书为准。

channels = [
  {"id": "CH1", "sensor": "ACC_100mVg", "amp": "IEPE_2mA",
   "fs": 20000, "range": 10.0, "coupling": "IEPE", "unit": "g"},
  {"id": "CH2", "sensor": "ACC_100mVg", "amp": "IEPE_2mA",
   "fs": 20000, "range": 10.0, "coupling": "IEPE", "unit": "g"},
  {"id": "CH3", "sensor": "MIC_50mVPa", "amp": "AC_AMP",
   "fs": 51200, "range": 5.0, "coupling": "AC", "unit": "Pa"},
  {"id": "CH4", "sensor": "LOAD_2mVN", "amp": "DC_AMP",
   "fs": 5000, "range": 5.0, "coupling": "DC", "unit": "N"}
]
配置完成后,建议先做一次“短时预采集”:给传感器一个已知激励(如用手轻敲加速度计),观察通道是否出现合理量级的时域波形。若波形平直、削顶或噪声异常,应优先检查耦合方式、激励电流与量程,而不是急于调整采样率。

六、参数一致性检查

自动化配置最容易出错的地方不是单个参数,而是参数之间的不匹配。常见的三类问题:一是采样率低于信号带宽,导致混叠;二是量程与放大器增益不匹配,导致饱和或分辨率浪费;三是耦合方式与传感器类型不符,例如把 IEPE 传感器接到 DC 耦合通道,既无激励也无正确偏置。建议在脚本中建立一张参数校验表,在写入配置前逐通道检查,把错误拦截在采集开始之前。

检查项判断条件不通过时的处理
采样率fs ≥ 2.56 × f_max提高采样率或降低分析带宽
量程预计峰值 ≤ 80% 满量程调整量程或放大器增益
耦合方式与传感器类型一致IEPE 传感器必须选 IEPE 耦合
灵敏度与标称值偏差 ≤ 5%核对标定证书并更新

把传感器、放大器、通道三层对象及其参数关系用程序化方式固化下来,采集工程就从“一次性手工搭建”变成了“可复用、可校验、可批量生成”的资产。这也是后续实现自动化测试与数据管理的基础。