数据采集卡从入门到精通(34):标定与校准——两点法、温度补偿与溯源体系

www.z-linear.com

规格表上的精度是"出厂潜力",标定校准才是"兑现手续"。没有标定的测量系统就像没对时的钟——再贵也只对自己的世界负责。本文讲透两点标定法的完整流程(含真实产品的标定界面实录)、温度补偿进阶、以及从工作标准到国家基准的溯源体系。全文约4000字。


一、标定的数学:一条直线的救赎

测量链的误差主体是线性误差:失调(截距b)与增益误差(斜率k)。模型:

真值 y = k × 读数x + b    (k≠1即增益误差, b≠0即失调)

两点标定法:用两个已知真值的标准源,测得两个读数,解出k和b:

点A: (x_A, y_A)   点B: (x_B, y_B), y_B≠y_A
k = (y_B - y_A)/(x_B - x_A)
b = y_A - k×x_A

之后每次测量:Y = k×x + b 实时修正——一条直线,治好整条链的线性误差(传感器的k和b、调理放大、ADC的失调增益,全部一网打尽)。

选点原则:两点分布在量程的**30%和70%**附近(跨距大→k的拟合噪声小;避开端点非线性区)。标定后用中间点(50%)验证——残差体现非线性(INL),标定治不了的弯曲(第9篇)。

二、真实产品的标定界面实录

以DABL-7606的ADC标定流程(手册实录)为例:

① 标定点A: 
   外部标准源输入3.000V(约30%×10V量程)
   → 读ADC实测电压填入A点框
   → 点击"标定A" → 卡自动回传当前ADC读数
     对应数字量并置"有效"

② 标定点B: 
   输入3.500V(70%) → 同样流程"标定B"

③ 生效条件:
   "当标定A点和标定B点同时为有效时,
    数据才按照标定模式处理,
    只要有任何1个点未有效, 按理论值输出,
    标定参数不参与计算"
   → 双点齐备才启用, 防半套系数误伤

④ 管理: 
   "读取标定参数"→回显当前系数
   "清除"→恢复出厂理论值

三个设计细节值得学习:

  • "有效"复选框:防止误输入单点就生效;
  • 双点门槛:不完整的标定不如不标;
  • 参数回读:标定可审计、可迁移——能被回读的标定才可传承。

传感器值标定的妙用(手册原话的深意):“DAC标定电压输出值是一方面,更大的作用是可以按照传感器实际输出值来进行标定,比如2V代表10mA的时候,只要用类似方式将外部传感器值标入采集卡,即可完成传感器输出的标定”——把标定从"电压对电压"升级为"工程量对读数"(y=kx+b直接输出工程单位)。

三、标定的执行纪律

标定SOP五步:

① 热机: 系统上电30分钟(温漂稳定)
② 标准源: 选择精度高于被校3~5倍的标准
   (被校0.1% → 标准0.02%级以上)
③ A点: 输入30%标准值 → 稳定(≥10s) → 采N点
   平均(N≥100) → 记录
④ B点: 70%同样流程
⑤ 验证: 50%输入, 检查|修正值-真值|
   ≤ 目标精度 → 完成; 否则排查(INL?干扰?)

两个易错点:

  • 标准源本身要稳:用低档电源当标准=用脏抹布擦玻璃——误差传递方向反了;
  • 读数取平均:标定点读数用100+点平均(压噪声),否则噪声进k和b,标定本身带伤。

四、温度补偿:标定的进阶形态

单次两点标定假设k、b恒定——现实是它们随温度漂移。进阶方案:温度补偿查找表

温箱实验(或利用现场自然温差):
  10℃: 两点标定 → (k₁, b₁)
  25℃: → (k₂, b₂)
  40℃: → (k₃, b₃)

运行时: 测环境温度T → 查表+线性插值得k(T), b(T)
  → 用当前温度的系数修正
import numpy as np
CAL = [(10, 0.9992, 0.0008),
       (25, 1.0001, 0.0001),
       (40, 1.0011, -0.0007)]  # (T, k, b)

def comp(code, T):
    ts = [c[0] for c in CAL]
    k = np.interp(T, ts, [c[1] for c in CAL])
    b = np.interp(T, ts, [c[2] for c in CAL])
    return k*code + b

# 温度来源: 板载温度传感器/环境通道/DABT卡

适用判据:现场温差>10℃且精度要求<0.1%才值得做(恒温实验室单点温度标定够用)。

五、DAC输出的标定:输出侧两点法

输出通道同样有k和b误差,同样两点法(第23篇已述流程)。输出标定的特殊价值:修正后的AO可以直接充当低成本标准源——标定过的DAC输出3.000V,精度可能优于未标定的电源。自标定闭环(卡自己标自己)的雏形:AO输出→AI读回→比对——可以监测链路漂移(虽不能替代外部标准,但能发现"变了")。

六、校准周期与溯源体系

6.1 为什么需要周期复标

所有元件都在漂:基准电压年漂ppm级、电阻老化、电容漏电变化。校准的有效期由漂移速率与精度余量决定:

精度余量 = 允差 - 年漂移
例: 允差0.1%, 年漂0.02% → 3~4年仍安全
   允差0.02%, 年漂0.01% → 1年必须复标

一般工业卡1~2年周期;计量级按规程(如JJG规范);关键应用缩短。

6.2 溯源金字塔

        国家基准(中国计量院NIM)
              ↓ 检定
        一级标准(省级计量院)
              ↓ 传递
        工作标准(企业标准室: 0.01级表)
              ↓ 校准
        测量设备(你的采集卡)
              ↓
        测量数据(最终可信)

溯源(traceability):每一次校准都要能一级一级追到国家基准,校准证书上写着不确定度链。没有溯源的"标定"只是自我安慰——出了纠纷(质量事故、贸易结算)时,可溯源的测量数据才有法律地位。

6.3 现场级核查(不能等周期时)

两次正式校准之间的自查手段:

  • 标准件核查:标准电池/标准电阻/砝码定期测,记录趋势——漂移超限即送检;
  • 通道互检:同一信号双通道测,差值突变=某通道异常;
  • 历史基线:固定工况的数据统计(均值/σ)建立基线,趋势突变预警。

七、标定的文档化

标定记录三要素(缺一不可):

标定记录单:
① 条件: 日期、温度、湿度、操作人
② 数据: A/B点标准值、读数、k、b、验证点残差
③ 溯源: 标准器编号、证书号、有效期

文档随数据走:自描述文件头里写入标定状态(第31篇的元数据字段"calibration: enabled, 2026-07-30")——三年后分析数据时,知道它带着哪套系数。

八、动手实验:完整标定演练

import numpy as np
# 实验: 给采集卡CH1做两点标定并验证
# 器件: 精密基准源(或3V/3.5V电池+电位器+万用表)

daq = connect_daq()
def read_avg(n=200):
    return np.mean(daq.read_ai(ch=1, fs=1000, n=n))

# ① 热机30分钟(此实验可缩至5分钟演示)

# ② A点: 输入3.0000V(万用表实测值!)
std_A = 3.0000; input("接3V源后回车")
x_A = read_avg()

# ③ B点: 3.5000V
std_B = 3.5000; input("接3.5V源后回车")
x_B = read_avg()

# ④ 计算
k = (std_B-std_A)/(x_B-x_A)
b = std_A - k*x_A
print(f"k={k:.5f}, b={b*1000:+.3f}mV")

# ⑤ 验证: 50%点(3.2500V)
std_V = 3.2500; input("接3.25V源后回车")
meas = k*read_avg() + b
err = (meas-std_V)/std_V*100
print(f"验证: {meas:.5f}V, 误差{err:+.4f}%")
# |err|<目标精度 → 标定成功
# err大且线性 → 还有未发现的系统误差
# err随机 → 噪声/干扰问题, 加平均或查接线

# ⑥ 上链应用: 之后所有读数乘k加b

九、常见问题FAQ

Q1:两点标定后还有误差,为什么?
剩下的主要是INL(非线性弯曲)——两点法只治直线误差。需要更高精度用多点(五点/九点)分段线性化。

Q2:标定系数存哪?
卡的FRAM/EEPROM(掉电保存,"读取标定参数"可回显)或上位机配置文件——两边都记最稳妥。

Q3:不同量程档要分别标定吗?
要。每档的调理网络不同,k和b各不相同——高档卡"每档独立标定"是精度的组成部分。

Q4:传感器换了要重新标定吗?
必须。k和b里含传感器灵敏度——换传感器=换了一条链。整套系统(传感器+卡+线缆)作为整体标定最严谨。

十、总结

标定三句话:两点法定直线(30%/70%+验证)、温度表治漂移、溯源链定身份。它是测量系统的"定期体检"——把出厂的潜力兑现成日常的可信,把"我觉得准"升级成"有据可查的准"。下一篇讲数据可信的最后一环:误差分析与不确定度。

下一篇预告:《误差分析与不确定度:给测量结果一个诚实的区间》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值