☰
传感器实验报告指南:从选型、信号采集到拟合误差分析
2026/10/14 17:31:08 网站建设 项目流程

简介:合肥工业大学宣城校区2019级传感器实验报告可供测控、自动化及相关专业学生参考。报告依托应变式电阻传感器实验台,系统记录了半桥与全桥性能测试的完整过程,包括电桥接线、差动放大器调零、砝码加载与数据采集,并通过输出电压、灵敏度、非线性误差等指标对比了两类桥路的特性与适用场景。报告还涉及电子秤定标、差动电容式位移特性测试等内容,有助于读者掌握电阻应变效应、电桥平衡条件、误差来源分析及实验操作规范。资源为1个docx文档,压缩包共1个文件,大小9.16MB,便于下载后阅读与打印。目前已有597人学习或下载,适合合肥工业大学宣城校区学生复习实验课程,也可供其他院校开展同类传感器实验时参考。读者可从中获得完整的数据表格、计算公式、心得体会和实验步骤梳理,对提升传感器实验技能与报告撰写能力有直接帮助。

1. 传感器实验报告:一份报告背后是一条完整的测量链路

传感器实验报告,对某高校某校区2019级的学生来说,是传感器课程里最实在的一道题。它检验的不只是你会不会抄指导书,而是你从物理量到数字量的整条链路是否打通。同一个NTC热敏电阻,有的报告线性度算出来稀烂,有的能拟合到残差只有零点几毫伏,差别往往不在传感器本身,而在数据怎么录、误差怎么剔、曲线怎么拟。这篇笔记按选型、采集、误差、排查、写作五段展开,把一份能拿得出手的传感器实验报告需要做的每一步讲清楚。适合正在写实验报告、准备补数据、或者答辩前想自查一遍的同学。

2. 实验前先把传感器与信号链定下来:选型、接线与测点规划

动手接线的第一步不是找螺丝刀,而是确认你面前这颗传感器是什么原理、什么输出、什么脾气。传感器选错了,后面数据处理再漂亮也救不回来。这一章把实验台常见的四类传感器、信号链路每一级的参数、以及实验设计的步骤一次说清。

2.1 实验台上最常见的四类传感器:参数与适用场景

传感器被测物理量典型灵敏度线性度适合场景主要坑
NTC热敏电阻温度约-4%/℃的阻值变化差,强非线性窄温区、低成本测温自热效应、响应慢
PT100铂电阻温度0.385 Ω/℃好宽温区、工业级测量引线电阻需三线制补偿
光敏电阻光照阻值跨几个数量级一般光的有无判断、开关量响应慢、光谱敏感
霍尔元件磁场/位移/转速mV/mT量级较好非接触测量磁铁极性、安装间隙敏感

NTC热敏电阻的阻值随温度升高近似指数下降,在25℃附近每变化1℃阻值变化约4%,灵敏度确实高,但阻值与温度的关系严重非线性。它做体表温度、环境温度这类窄范围测量很合适,最大的坑是自热:激励电流稍大,传感器自己发热,读数整体偏高,而且你很难察觉。常见做法是把流过传感器的电流限制在1mA以内,功耗控制在毫瓦级。

PT100铂电阻在0℃时阻值100Ω,每升高1℃约增加0.385Ω。它的灵敏度不算高,但线性度和长期稳定性是四类里最好的。做PT100实验最容易翻车的是引线电阻:两线制下,导线本身几欧姆的电阻直接叠加进传感器阻值,误差能折算成好几度。实验台提供三线制或四线制接法时一定要优先用,别图省事只接两根线。

光敏电阻的暗阻能达到兆欧级,亮阻只有千欧甚至几百欧,阻值跨度太大,所以它适合做光照有无的判断,不适合精确测光强。另外它响应慢,几百毫秒级,你快速改变光照时会看到读数明显滞后,这是器件特性,不是接线问题。

霍尔元件输出的是电压信号,对磁场变化敏感,适合做位移、转速、电流等非接触测量。它的输出电压通常在mV/mT量级,必须放大后才能进采集。做霍尔实验时,磁铁极性装反、安装间隙稍微变化,输出电压就会大幅波动,所以安装支架一定要固定牢,测量过程中不要用手碰。

选型时先确认三件事:被测物理量是什么、量程是多少、精度要求多高。如果指导书已经指定了传感器,你要做的就是把它的灵敏度、量程、响应时间这些关键参数写进报告原理部分,这些参数直接决定下一节的信号链怎么设计。

2.2 信号链路:从传感器到记录数据的五个环节

传感器的物理量变化先变成电阻或电压变化,再进入采集系统。常见链路是:传感器 → 电桥或分压电路 → 仪表放大 → 低通滤波 → ADC采集。

电桥的作用是把电阻变化转换成电压变化,同时抵消掉大的直流分量。以PT100为例,0℃时100Ω,100℃时138.5Ω,如果直接串联固定电阻分压,输出信号里叠加了一个很大的直流偏置,后级放大稍微调高增益就会饱和。用惠斯通电桥可以把直流分量平衡掉,只留下电阻变化对应的差分电压。电桥激励电流仍然要限制在1mA左右,激励电压取5V时,桥臂电阻就得适当选大,防止自热。

放大环节的核心参数是增益。PT100在0到100℃阻值变化38.5Ω,电桥用1mA激励时对应电压变化约38.5mV。一块16位ADC在5V量程下的理论分辨力约0.076mV,要稳定分辨0.1℃对应的0.04mV,靠ADC自己不够稳,把增益设置在50到100倍比较合适,让满量程信号接近ADC输入范围,同时留出裕量防止过冲。

滤波环节不能省。传感器信号里最常见的噪声是50Hz工频干扰和器件本身的抖动。实验台常用一阶RC低通滤波,截止频率设置在10Hz左右,对应RC时间常数约15.9ms。截止频率太高滤不掉工频,太低则响应变慢,慢慢加热时读数会显得迟钝。

ADC采样率在静态测量里设100Hz到1kHz都行,关键不是采样率而是采样时长。一次读数建议连续采200到500个点取平均,不要读一个瞬时值就记录。这个习惯比纠结采样率参数更重要,能直接砍掉大半随机波动。

2.3 实验设计:把测什么、测几点、测几次写成可执行清单

动手前先写一页纸的测量方案,包含四件事:被测物理量的范围、标准源怎么读数、标定点数量、每组重复次数。

被测物理量按传感器量程的50%到80%取实验范围。比如PT100量程0到200℃,实验范围取0到100℃就够了,每20℃一个标定点,共6个点。每个点要等温度稳定后再读数,稳定判断标准是30秒内读数波动小于分辨力的一半。NTC这类热时间常数大的传感器,改变温度后至少等1分钟再采。

重复次数至少3次。每次从头升温或降温,各点数据单独记录。为什么要重复?单次测量无法估计随机误差,报告里的标准差、误差棒全靠重复数据算出来。有些同学一次读数抄三遍,算出来的标准差小到失真,答辩时一问过程就露馅。

记录表至少包含这些列:标准值、第1次读数、第2次读数、第3次读数、平均值、标准差。表头写明单位和测试条件,环境温度、供电电压、预热时间都记录在案,这些信息在误差分析里全是线索。

标准值 ℃读数1 mV读数2 mV读数3 mV平均值 mV标准差 mV
00.520.500.540.520.020
2020.3120.2820.3320.310.025

3. 原始数据别急着画曲线:记录规范、最小二乘拟合与分段线性化

数据采完别直接贴进报告。先检查有效数字、算平均值和标准差,然后做最小二乘拟合求灵敏度和线性度。这章给的Python代码可以直接复跑,换成你自己的数据就能用。

3.1 数据记录规范:有效数字、平均值与标准差怎么算

有效数字由仪器分辨力决定。ADC显示到0.01mV,记录就保留到0.01mV,不要为了好看写成0.000mV,那是伪造精度。最终报告里的灵敏度保留3到4位有效数字足够,因为标定标准源本身也有误差,太多位没有意义。

平均值用算术平均,标准差用样本标准差公式,也就是除以n-1而非n。3次读数20.1、20.0、20.3,平均值20.13,标准差约0.15。报告里写"20.13±0.15mV"比只写20.13信息量大得多,一眼就能看出随机波动有多大。

这里有个高频坑:如果3次读数完全相同,比如20.1、20.1、20.1,标准差算出来是0。这不代表测量完美,恰恰说明仪器分辨力不够,读数没有反映真实波动,应该换更高分辨力的挡位重新测。

3.2 用最小二乘算灵敏度与线性度:一组可复跑的Python代码

标定的核心是建立标准值x到读数y的拟合关系。一阶拟合y=ax+b中,a就是灵敏度,b是零位,线性度用最大残差绝对值除以满量程输出。

import numpy as np # x: 被测物理量的标准值,单位 ℃ # y: 传感器输出电压,单位 mV # 这里用一组PT100电桥输出的实验数据演示 x = np.array([0, 20, 40, 60, 80, 100]) y = np.array([0.52, 20.31, 40.12, 59.88, 80.05, 100.42]) # 一次多项式拟合,返回斜率a和截距b a, b = np.polyfit(x, y, 1) # 用拟合直线反算每个标定点的预测值 y_pred = a * x + b # 残差 = 实际读数 - 拟合值 residual = y - y_pred # 线性度 = 最大残差绝对值 / 满量程输出 max_dev = np.max(np.abs(residual)) full_scale = y.max() - y.min() linearity = max_dev / full_scale * 100 print(f"灵敏度 a = {a:.4f} mV/℃") print(f"零位 b = {b:.4f} mV") print(f"最大残差 = {max_dev:.4f} mV") print(f"线性度 = {linearity:.2f} %")

逻辑说明:np.polyfit(x, y, 1)做的是最小二乘一次拟合,第三个参数1表示多项式阶数,返回值依次是斜率a和截距b。残差是每个标定点实际读数与拟合直线的偏差,线性度按仪表常用的定义,是最大残差绝对值与满量程输出的百分比,数值越小越好。

参数说明:x必须是标准值,不能把传感器读数当x,否则拟合的物理意义就反了。标定点少于3个时拟合没有统计意义,建议至少5个。如果残差呈现明显的"中间凸、两头凹"曲线状,说明一次拟合不够,传感器非线性强,改用二次拟合,也就是np.polyfit(x, y, 2),会返回三个系数,分别对应二次项、一次项和常数项。

3.3 非线性传感器:分段线性化与查表法

NTC这类强非线性传感器,整个量程硬用一次拟合误差很大。常见做法是两种:分段线性化和查表法。

分段线性化是把量程分成3到5段,每段单独做一次拟合。以NTC测体温为例,35℃到42℃分成两段,35℃到38.5℃一段、38.5℃到42℃一段,每段的拟合斜率和截距分别记录。使用时先按阻值估算个大概温度,判断落在哪一段,再调用对应段的拟合公式。段内误差可以压到很小,代价是代码里要维护多组系数。

查表法更适合单片机等资源受限环境。做法是在量程内等间隔取10到50个标定点,记录每个标定点的标准温度和ADC读数,测量时查最近的两个点做线性插值。实验报告里不必列出全部标定点,给出一段示意表格和插值公式就行。查表法的精度由标定点密度决定,点越密精度越高,标定工作量也越大。

不管用哪种方法,前提都是先有一份可靠的"标准物理量—传感器读数"数据,也就是标定。标定数据的质量决定后续所有处理的上限,这一步赶时间后面全是后悔药都救不回来的。

4. 误差分析别只写"环境因素":系统误差、随机误差与标定流程

误差分析是报告里最容易被写成一句废话的部分。别笼统写"环境因素影响",而是把误差分成三类,逐类说明来源、判别方法和处理手段。这一章的代码用来剔除粗大误差,标定流程讲清楚为什么是5个点、每点测3次。

4.1 先分辨三类误差:系统误差看趋势、随机误差看散布、粗大误差看离群

系统误差的特征是方向固定、大小可复现。比如PT100用两线制,引线电阻0.5Ω折算成温度约1.3℃,每次测量都偏高,这就是系统误差。它不能靠多次平均消除,只能通过换三线制接法、加补偿电阻、查修正值来处理。报告里写"采用三线制消除引线电阻误差",就是有效的系统误差处理,比"环境因素"强太多。

随机误差的特征是围绕平均值上下波动,来源包括电源纹波、电磁干扰、读数抖动。增大样本量、取平均可以抑制。报告里用标准差表示随机误差大小。

粗大误差是明显离群的数据,来自操作失误、接线瞬断、读数抄错。它既不能平均掉,也不能补偿掉,只能剔除。剔除不能凭感觉,要用统计准则。

正确顺序是先剔粗大误差,再分析系统误差,最后估计随机误差。反过来做,离群点会把平均值和标准差全部带偏,后面所有计算都是白算。

4.2 用3σ准则剔除粗大误差:一段可复用的代码

3σ准则的做法是:先计算平均值和样本标准差,剔除偏离超过3倍标准差的点,再对剩余数据重新计算一次,通常迭代一次就够。

import numpy as np # 一组重复测量数据,单位 mV data = np.array([20.12, 20.09, 20.15, 20.11, 21.73, 20.13]) # 样本标准差,ddof=1 表示使用贝塞尔修正,除以 n-1 mean0 = np.mean(data) std0 = np.std(data, ddof=1) # 3σ 上下界 upper = mean0 + 3 * std0 lower = mean0 - 3 * std0 # 保留区间内的数据,剔除区间外的离群点 valid_mask = (data >= lower) & (data <= upper) clean = data[valid_mask] print(f"原始数据: {data}") print(f"剔除前均值 = {mean0:.4f} mV, 标准差 = {std0:.4f} mV") print(f"剔除后数据: {clean}") print(f"被剔除的离群点: {data[~valid_mask]}")

逻辑说明:std(data, ddof=1)算的是样本标准差,比总体标准差略大,工程上常用这个值。3σ准则适合数据量较大时使用,数据量小于10个时偏保守,可能筛不掉任何点,但作为实验报告里的数据质量检查手段仍然有效,至少比"看着不对就删"有依据。

参数说明:3这个阈值是经验值。如果你只有5次重复测量,3σ阈值会很宽,离群点不一定能剔除,那就把重复次数加到8到10次,让分布更接近正态。剔除数据后一定要在报告的备注里写明"按3σ准则剔除1个离群点,原始记录见附表",否则会有编造数据嫌疑。

4.3 标定流程与拟合残差:为什么标定点不少于5个、每点测3次

标定就是用更高精度的标准源给传感器输入已知物理量,记录输出。标准源本身要比被测传感器高一个精度等级,比如二等标准温度计或经过校准的恒温槽。

标定点数量至少5个,覆盖量程的0%、25%、50%、75%、100%。少于5个点时,拟合结果会被个别点严重主导,残差规律也看不出来。每个点测3次取平均,同时用3次数据算该点的标准差,作为误差棒画在图上。

标定完成后必须看拟合残差。残差符号正负交替、大小随机,说明拟合阶数合适;残差在量程两端正、中间负,说明拟合阶数不够,或者传感器非线性明显,需要提高拟合阶数或分段拟合。残差呈周期性,多半是标准源本身不稳,或者环境温度在波动。

报告里必须写清三项信息:标准源型号与精度、标定环境温度、预热时间。同一份数据,如果换了更高精度的标准源,残差分布会明显变化,这就是系统误差在做怪。

5. 传感器实验常见问题排查:五个高频翻车点与对应修法

这章是实际做实验时最容易踩坑的地方。每一条都按现象、原因、解决三部分写,遇到问题直接对照排查。

5.1 读数乱跳:先查地,再查电源,最后查滤波

现象:显示屏读数在几毫伏甚至几十毫伏范围内无规律跳动,手靠近传感器时波动加剧。

原因:最常见是接线端子松动、实验板与采集卡没有共地、电源适配器纹波太大。手靠近跳动多半是人体感应,本质还是共地不良。

解决:先把所有地线用一根导线统一接到采集卡的参考地,再逐个检查接线柱是否拧紧,最后在传感器电源端并联一个10μF电解电容和100nF瓷片电容。这三步做完,多数乱跳问题直接消失。

5.2 输出趋势与理论相反

现象:温度升高,输出电压反而下降;磁铁靠近霍尔元件,输出不升反降。

原因:差分信号极性接反。电桥输出端有两个端子,接反后正增量变成负增量。霍尔元件则可能是磁铁极性装反了。

解决:把电桥两个差分输出端对调,或者把磁铁翻转180度。改完重新采一组数据验证趋势,不要只改完就往下做全套实验。

5.3 零输入时输出不为零

现象:不施加被测物理量,输出已经有一个固定电压,而且每次开机都不一样。

原因:运放输入失调电压、电桥不平衡、传感器初始偏差,三者混在一起。它们无法靠测量消除,只能补偿。

解决:实验前先做一次零点采样,软件里把它当基线减掉。如果实验台上有电桥平衡电位器,就调电位器让零输入时输出接近0。报告里如实写"采用软件零点扣除"或"调节平衡后零位为XmV"。

5.4 重复测量数据离散大

现象:同一条件下连续测5次,结果相差很大,标准差远超仪器分辨力。

原因:采样时间太短,每次读的是瞬时值,噪声没平均掉;传感器没达到热平衡;手指碰了传感器,体温干扰读数。

解决:把单次读数改成连续采样200到500ms后取平均。每次改变被测物理量后至少等1分钟再读数。NTC这类器件热时间常数有几秒到几十秒,读数稳定前不要记录,等它自己"稳住"。

5.5 拟合曲线不过原点

现象:拟合直线截距明显不是0,比如温度0℃时拟合输出0.8mV,实测零点却接近0mV。

原因:标定量程没有覆盖零点,或零点数据有问题。当最小标准值是20℃时,拟合外推到0℃的截距被数据带偏,这不是传感器坏了,而是拟合区间不完整。

解决:把0℃作为标定点加进拟合,或者把标定范围最低点取到量程的0点附近。如果实验条件确实测不了0℃,就在报告里注明截距是外推结果,不能解释为真实零位。硬把截距写成物理零位,答辩时经不起问。

6. 把报告写成工程文档:三件套归档、图表规范与答辩自查

6.1 原始数据、处理脚本、图表三件套归档法

我整理实验报告的习惯是建一个文件夹,里面放三样东西:原始记录表、数据处理脚本、最终图表。报告里的每一个数字都能从这三件套里复现。答辩前被问"线性度怎么算的",直接打开脚本指给老师看,比现场翻计算器强太多。

6.2 曲线图与表格的规范

曲线图横轴是标准值,纵轴是读数,坐标轴必须带单位和量程。数据点用散点画出,拟合线用直线画出,两者图例分开。误差棒用3次重复的标准差画,不要画成所有点都带同一长度误差棒。表格用三线表,表头带单位,数据精度跟仪器分辨力一致。

6.3 答辩前自查的三个问题

第一问:灵敏度怎么算的,单位是什么。第二问:误差来源最主要的一项,用什么方法抑制的。第三问:如果量程扩大一倍,标定点会怎么加。前两个问题必须在报告里有对应数字支撑,第三个问题考的是你有没有真正理解标定逻辑。

报告不是交给老师就完事,是写给三个月后的自己看的。你记录的条件越完整、脚本越干净,之后复现实验、补跑数据、甚至拿同一个传感器做新实验时成本就越低。这个习惯我从第一次写传感器实验报告一直保持到现在,帮我省掉过太多重新测数据的麻烦,希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询