基于AVR单片机的非接触式自学习恶劣环境温度采集器转让专利

申请号 : CN201910864756.3

文献号 : CN110634279B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张桦王海波刘全志钱晨沈帅一

申请人 : 浙江永贵电器股份有限公司

摘要 :

本发明公开了基于AVR单片机的非接触式自学习恶劣环境温度采集器。传统温度测量系统难以实现高电压、大电流环境下的温度检测。本发明将未置于被测点处的四个传感器测量的数据转换为数字电压量,并通过温度场理论求解出空间温度数据,然后将各温度数据通过双线性插值查表算法计算出被测点的温度;对预设时间段内各采集时刻的被测点温度使用快速时间序列线性拟合算法实现数据拟合,消除噪声,计算出被测点的最终测量温度;所得被测点最终测量温度通过CAN网络完成传输。本发明最终实现在密闭小空间内大电流、高电压环境下温度的精确采集。

权利要求 :

1.基于AVR单片机的非接触式自学习恶劣环境温度采集器,包括温度信号转换模块、驱动控制模块、数据处理模块、数据存储模块、通信控制模块和网络传输模块,其特征在于:所述的温度信号转换模块通过阵列排布的四个PT100温度传感器测量环境温度,PT100温度传感器将温度转换为模拟电压量,然后温度信号转换模块通过内置的模数转换器,将各模拟电压量进行采集后转换为数字电压量并通过SPI总线进行输出;所述的驱动控制模块、数据处理模块、数据存储模块和通信控制模块集成在AVR单片机内;所述的驱动控制模块通过SPI接口与温度信号转换模块的模数转换器进行通信,读取模数转换器的各数字电压量,并输入到数据处理模块中;所述的数据处理模块对各数字电压量进行温度场自学习模型融合求解出各数字电压量对应的温度数据,并将各温度数据通过双线性插值查表算法计算出被测点的温度,然后不断对预设时间间隔内各采集时刻的被测点温度使用快速时间序列线性拟合算法实现数据拟合,消除噪声,计算出被测点的最终测量温度,最后将最终测量温度数据储存在数据存储模块中,并把最终测量温度数据传给通信控制模块,通信控制模块将最终测量温度数据传输给网络传输模块,并控制网络传输模块实现组网传输;若网络传输模块组网传输失败,则通信控制模块将从数据存储模块中读取所有传输失败的最终测量温度数据,并进行再次传输;

所述的温度信号转换模块包括PT100热电阻和模数转换器;模数转换器的型号为MAX31865;PT100热电阻测量环境温度,并将环境温度转换为模拟电压量;模数转换器将模拟电压量转换为数字电压量;

每次初始化时,驱动控制模块先通过SPI总线对模数转换器的寄存器进行配置,使之进入工作模式,之后向模数转换器的读使能控制寄存器中写使能来更新RTD寄存器的值,然后读取RTD寄存器得到数字电压量;驱动控制模块每次向温度信号转换模块读取前,都向温度信号转换模块发送状态检测命令,检测到温度信号转换模块当前处于断开或超时状态时,则不再进行数据的读取,通信控制模块控制网络传输模块通过CAN通信网络向上发送异常错误码;若检测到温度信号转换模块处于正常工作状态,则驱动控制模块进行数据的读取;

所述温度场自学习模型的自学习过程如下:当进入自学习状态后,使用者向温度场自学习模型中输入通过红外温度测量仪读取的温度,温度场自学习模型结合红外温度测量仪读取的温度和自身所测量得到的数字电压量自动学习出温度计算公式,实现被测点与传感器数据之间的温度场自学习模型对应关系T’=F(U);

所述的网络传输模块通过CAN组网,从而利用CAN网络传输温度数据,同时将接收的网络接收协议信息传给通信控制模块,通信控制模块根据网络接收协议信息来修改AVR单片机的ID号,并控制驱动控制模块的采集是否进行以及采集的频率;

通信控制模块为网络传输模块设置传输比特率;网络传输模块接收通信控制模块的指令,并将数据以16位浮点数格式利用CAN网络进行发送;发送完毕后通信控制模块判断网络传输模块反馈的发送结果,若发送成功则表示正常继续传输下一组数据,若发送失败对AVR单片机执行重启指令进行软重启复位;

温度场自学习模型见公式(1):

公式(1)中,L为PT100温度传感器放置点与被测点的空间距离,λ为比例系数,b为线性偏差,λ和b均为自学习过程中的优化变量,U为温度信号转换模块所测量得到的数字电压量,T’为通过温度场自学习模型计算出的温度;

公式(2)作为遗传算法的适应度函数,对于不同的λ和b进行遗传选择得到使得偏差ΔT最小的最优解,形成新的温度场自学习模型;

ΔT=T'-T             (2)

公式(2)中,T为红外温度测量仪测量得到的温度。

2.根据权利要求1所述的基于AVR单片机的非接触式自学习恶劣环境温度采集器,其特征在于:所述AVR单片机采用型号为ATMEGA16的AVR单片机。

3.根据权利要求1所述的基于AVR单片机的非接触式自学习恶劣环境温度采集器,其特征在于:在测量状态时,将驱动控制模块测量得到的数字电压量输入到温度场自学习模型中,便输出温度数据。

4.根据权利要求1所述的基于AVR单片机的非接触式自学习恶劣环境温度采集器,其特征在于:所述的数据存储模块,利用AVR单片机内部的EEPROM空间,存储部分温度数据。

5.根据权利要求1所述的基于AVR单片机的非接触式自学习恶劣环境温度采集器,其特征在于:所述网络传输模块,使用SN65HVD232QD芯片作为CAN总线传输控制芯片,利用CAN组网接收命令及发送数据。

说明书 :

基于AVR单片机的非接触式自学习恶劣环境温度采集器

技术领域

[0001] 本发明涉及温度测量领域,特别是一种基于AVR单片机的非接触式自学习恶劣环境温度采集器。

背景技术

[0002] 随着科学技术的进步和环保意识的不断增强,基于电力等清洁能源设备的应用前景愈发广阔。新能源汽车尤其是电动汽车的发展迎来新的发展机遇。与传统的燃油汽车相比,电动汽车对电路系统安全有着更高的要求。作为电动汽车电路安全系统中重要的一环,电路温度检测在电动汽车安全中扮演着重要的作用。受限于电动汽车紧凑的结构和电动汽车动力电揽接口处恶劣的工作环境,传统的温度测量系统难以实现高电压、大电流环境下的温度检测,因为传统器件在极端高温情况下会造成芯片内部雪崩失效或程序部分异常,使得设备无法正常工作。如何优化设计电路结构和程序代码,保证采集器在极端条件环境正常工作和数据精确采集是研究的难点。

发明内容

[0003] 本发明的目的在于提供一种可以在大电流、高电压环境下测量-40℃到+125℃温度的微型嵌入式温度采集器,通过PT100实现温度信号采集,选用宽工作温度AVR芯片进行数据处理,采用结合查表的双线性插值的算法实现多路温度数据的解算,集成了一种快速时间序列线性拟合算法实现数据平滑输出。本发明将未置于被测点处的四个传感器测量的数据转换为数字电压量,并通过温度场理论求解出空间温度数据,然后将各温度数据通过双线性插值查表算法计算出被测点的温度;对预设时间段内各采集时刻的被测点温度使用快速时间序列线性拟合算法实现数据拟合,消除噪声,计算出被测点的最终测量温度;所得被测点最终测量温度通过CAN网络完成传输,最终实现在密闭小空间内大电流、高电压环境下温度的精确采集。
[0004] 本发明实现目的采用的技术方案为:
[0005] 本发明基于AVR单片机的非接触式自学习恶劣环境温度采集器,包括温度信号转换模块、驱动控制模块、数据处理模块、数据存储模块、通信控制模块和网络传输模块;所述的温度信号转换模块通过阵列排布的四个PT100温度传感器测量环境温度,PT100温度传感器将温度转换为模拟电压量,然后温度信号转换模块通过内置的模数转换器,将各模拟电压量进行采集后转换为数字电压量并通过SPI总线进行输出。所述的驱动控制模块、数据处理模块、数据存储模块和通信控制模块集成在AVR单片机内。所述的驱动控制模块通过SPI接口与温度信号转换模块的模数转换器进行通信,读取模数转换器的各数字电压量,并输入到数据处理模块中。由于PT100温度传感器不能直接接触被测物体进行测量,所以所述的数据处理模块需要对各数字电压量进行温度场自学习模型融合求解出各数字电压量对应的温度数据,并将各温度数据通过双线性插值查表算法计算出被测点的温度,然后不断对预设时间间隔段内各采集时刻的被测点温度使用快速时间序列线性拟合算法实现数据拟合,消除噪声,计算出被测点的最终测量温度,最后将最终测量温度数据储存在数据存储模块中,并把最终测量温度数据传给通信控制模块,通信控制模块将最终测量温度数据传输给网络传输模块,并控制网络传输模块实现组网传输。若网络传输模块组网传输失败,则通信控制模块将从数据存储模块中读取所有传输失败的最终测量温度数据,并进行再次传输。
[0006] 进一步地,所述的温度信号转换模块包括PT100热电阻和模数转换器;模数转换器的型号为MAX31865;PT100热电阻测量环境温度,并将环境温度转换为模拟电压量;模数转换器将模拟电压量转换为数字电压量。MAX31865是简单易用的ADC转换器,很适用于铂电阻温度传感器(RTD)。其外围电路中,外部电阻可以设置热敏电阻灵敏度,高精度ADC将RTD电阻与基准电阻之比转换为数字输出。MAX31865内置多个寄存器,其中数字量(ADC数据)存储在RTD电阻寄存器中,可以通过SPI总线设置相应的寄存器单元完成对MAX31865寄存器的读写。
[0007] 进一步地,所述AVR单片机采用型号为ATMEGA16的AVR单片机,能满足温度处理的要求,也能做-40℃到125℃的极端环境下正常工作,成本低且具有足够的处理能力。
[0008] 进一步地,每次初始化时,驱动控制模块先通过SPI总线对模数转换器的寄存器进行配置,使之进入工作模式,之后向模数转换器的读使能控制寄存器中写使能来更新RTD寄存器的值,然后读取RTD寄存器得到数字电压量。驱动控制模块每次向温度信号转换模块读取前,都向温度信号转换模块发送状态检测命令,检测到温度信号转换模块当前处于断开或超时状态时,则不再进行数据的读取,通信控制模块控制网络传输模块通过CAN通信网络向上发送异常错误码;若检测到温度信号转换模块处于正常工作状态,则驱动控制模块进行数据的读取。
[0009] 进一步地,所述温度场自学习模型的自学习过程如下:当进入自学习状态后,使用者向温度场自学习模型中输入通过红外温度测量仪读取的温度,温度场自学习模型结合红外温度测量仪读取的温度和自身所测量得到的数字电压量自动学习出温度计算公式,实现被测点与传感器数据之间的温度场自学习模型对应关系T’=F(U)。
[0010] 进一步地,在测量状态时,将驱动控制模块测量得到的数字电压量输入到温度场自学习模型中,便能输出温度数据。
[0011] 进一步地,所述的数据存储模块,利用AVR单片机内部的EEPROM空间,存储部分温度数据,以防止网络通信出现故障或者临时断电等情况发生时导致测量数据的部分丢失。
[0012] 进一步地,所述的网络传输模块通过CAN组网,从而利用CAN网络传输温度数据,同时将接收的网络接收协议信息传给通信控制模块,通信控制模块根据网络接收协议信息来修改AVR单片机的ID号,并控制驱动控制模块的采集是否进行以及采集的频率。
[0013] 进一步地,利用CAN网络传输数据,因此通信控制模块需要为网络传输模块设置合适的传输比特率,保证通信的可靠性。网络传输模块接收通信控制模块的指令,并将数据以16位浮点数格式利用CAN网络进行发送。发送完毕后通信控制模块判断网络传输模块反馈的发送结果,若发送成功则表示正常继续传输下一组数据,若发送失败对AVR单片机执行重启指令进行软重启复位。
[0014] 进一步地,所述网络传输模块,使用SN65HVD232QD芯片作为CAN总线传输控制芯片,利用CAN组网接收命令及发送数据,实现在极限温度条件下的数据的可靠传输。
[0015] 本发明具有的有益效果:
[0016] 1、本发明为解决高电压、大电流环境下准确进行温度测量提供了一种可行的方案,解决传感器无法触及被测物体的情况下获得物体精确温度的问题,大电流、高电压环境下,也能够实现对-40℃到125℃极限温度变化做出准确反应,对于密闭小空间、大电流、高电压等恶劣工业环境下的温度测量有着巨大推动作用。
[0017] 2、可以实现在学习模式下,更新温度场模型,从而实现测温模型校准。
[0018] 3、结合查表双线性插值法和快速时间序列线性拟合算法对数据进行处理,在有限的单片机资源下,通过查找表快速地通过温度场模型进行多点测量温度的融合。快速时间序列线性拟合算法实现数据的平滑化处理,去除过多不必要的转折点。
[0019] 4、利用CAN组网可以将多个采集器同时工作,增加工作效率,同时进行多处温度测量,且通过预设的通信协议可以传输控制指令,从而用户可以在上位机端向各模块发送采集设置命令。可以根据实际需求进行模块拓展,提供更多实用功能。
[0020] 5、体积小,能更好地适应工业需求。

附图说明

[0021] 图1为本发明的系统结构图。
[0022] 图2为本发明的系统流程图。

具体实施方式

[0023] 下面结合附图对本发明作进一步说明。
[0024] 结合图1,基于AVR单片机的非接触式自学习恶劣环境温度采集器,包括温度信号转换模块、驱动控制模块、数据处理模块、数据存储模块、通信控制模块和网络传输模块;温度信号转换模块通过阵列排布的四个PT100温度传感器测量环境温度,PT100温度传感器将温度转换为模拟电压量,然后温度信号转换模块通过内置的模数转换器,将各模拟电压量进行采集后转换为数字电压量并通过SPI总线进行输出。驱动控制模块、数据处理模块、数据存储模块和通信控制模块集成在AVR单片机内。驱动控制模块通过SPI接口与温度信号转换模块的模数转换器进行通信,读取模数转换器的各数字电压量,并输入到数据处理模块中。由于PT100温度传感器不能直接接触被测物体进行测量,所以所述的数据处理模块需要对各数字电压量进行温度场自学习模型融合求解出各数字电压量对应的温度数据,并将各温度数据通过双线性插值查表算法计算出被测点的温度,然后不断对预设时间间隔段内各采集时刻的被测点温度使用快速时间序列线性拟合算法实现数据拟合,消除噪声,计算出被测点的最终测量温度,最后将最终测量温度数据储存在数据存储模块中,并把最终测量温度数据传给通信控制模块,通信控制模块将最终测量温度数据传输给网络传输模块,并控制网络传输模块实现组网传输。若网络传输模块组网传输失败,则通信控制模块将从数据存储模块中读取所有传输失败的最终测量温度数据,并进行再次传输。
[0025] 结合图2,本发明主要工作流程如下:驱动控制模块对温度信号转换模块进行寄存器配置、状态监测和温度数据读取,读取到的数据通过数据处理模块进行处理后输入到通信控制模块和数据存储模块进行发送和存储,通信控制模块将数据发送后对网络传输模块进行故障检测与处理。
[0026] 温度的检测过程中,驱动控制模块首先对温度信号转换模块的寄存器进行配置完成初始化,设置其详细的工作方式。
[0027] 驱动控制模块对温度信号转换模块的状态监测:驱动控制模块每次向温度信号转换模块读取前,都向温度信号转换模块发送状态检测命令,检测到温度信号转换模块当前处于断开或超时状态时,则不再进行数据的读取,直接通过通信控制模块通过CAN通信网络向上发送异常错误码;若检测到温度信号转换模块处于正常工作状态,则驱动控制模块进行数据的读取。
[0028] 当通信控制模块收到上位机发送的测温指令后,将驱动温度信号转换模块进行数字电压量的读取,输入到数据处理模块中。
[0029] 数据处理模块中包含温度场自学习模型分析、双线性插值查表算法拟合和快速时间序列拟合算法。
[0030] 温度场自学习模型的构建过程如下:进入自学习状态后,通过红外温度测量仪读取被测点的准确温度,与自身根据温度场自学习模型测量出的结果进行对比,自动进行误差分析,并将误差分析结果用于误差的修正。
[0031] 温度场自学习模型见公式(1):
[0032]
[0033] 公式(1)中,L为PT100温度传感器放置点与被测点的空间距离,λ为比例系数,b为线性偏差,λ和b均为自学习过程中的优化变量,U为温度信号转换模块所测量得到的数字电压量,T’为通过温度场自学习模型计算出的温度。
[0034] 公式(2)作为遗传算法的适应度函数,对于不同的λ和b进行遗传选择得到使得偏差ΔT最小的最优解,形成新的温度场自学习模型。
[0035] ΔT=T'-T  (2)
[0036] 公式(2)中,T为红外测温仪测量得到的温度。
[0037] 例如通过红外温度测量仪测得温度为T1,T2,T3......Tn,某个PT100温度传感器反馈的电压数据值为U1,U2,U3......Un,通过温度场自学习模型计算出的温度为T’1,T’2,T’3......T’n,便可以通过温度场自学习模型拟合,建立从U至T’的映射关系F。每当进入自学习状态时,则根据新采集到的T1,T2,T3......Tn在已有的映射关系F上通过遗传算法进行校正和自我完善,建立得到新的映射关系F’并作为最新的温度场自学习模型。
[0038] 由于单片机中的RAM空间有限而ROM空间比较充足,如果直接将温度场自学习模型构建于代码中进行计算,速度将会十分慢。为了能够实现更快的测量速度,利用温度场自学习模型绘制出步长为0.1℃变化的映射数据表,当测量到各个点的温度后,直接根据数据表读取对应的温度,实现快速的温度测量。
[0039] 双线性插值算法,是指测温过程中,在测量点的周边布置四个采集点,同时测量四个采集点的温度,同时进行分析,从而最大可能性的得到精确温度。该方法要求最大程度的恒定采集点与被测点的距离,环境等。例如,在被测点(0,0)周边,放置了4个采集点(-x0,-y0)、(-x0,y0)、(x0,-y0)和(x0,y0),采集点(-x0,-y0)、(-x0,y0)、(x0,-y0)和(x0,y0)处的PT100温度传感器通过各自的温度场自学习模型得到所预测的被测点温度分别T’1、T’2、T’3和T’4,然后通过双线性插值法得到点(-x0,0)处的温度 点(x0,0)处的温度 然后再进一步计算得到点(0,0)处的温度
[0040] 快速时间序列拟合算法是指在读取了一定量的数据后,通过拟合算法,去除因为噪声抖动等产生的多余的转折点,实现温度数据的平稳化,避免过多的抖动信号。
[0041] 数据存储模块可以将数据存入EEPROM中,在组网发生故障通信失败时可以避免温度数据的丢失,保证温度数据测量的连贯性。
[0042] 通信控制模块将温度数据组包为标准的CAN协议发送到网络传输模块进行组网传输,从而实现与其他设备的对接和组网,同时接收CAN网络的命令并进行解包后执行温度测量与上报工作。
[0043] AVR单片机的EEPROM中设置有一个特有的ID号,通过CAN网络进行通信时,上位机将发送指令给特定的ID,从而实现一对多的多设备辨别和通信。