提高传感器计算精度的方法、装置、设备及可读存储介质与流程

文档序号:32344685发布日期:2022-11-26 10:57阅读:46来源:国知局
提高传感器计算精度的方法、装置、设备及可读存储介质与流程

1.本发明涉及传感器数字信号滤波技术领域,具体而言,涉及提高传感器计算精度的方法、装置、设备及可读存储介质。


背景技术:

2.现有市面上的技术对传感器出厂标定测试设备分为两种:一种是只收集数据,不直接在这个收集软件中参与数据分析和解算方程,只能人工进行拟合方程或利用计算机上其他工具进行拟合方程,求解参数后再把参数写入传感器的单片机等soc内的rom或者flash,另一种是计算机收集数据,同时由计算机代码拟合方程,自动求解参数并返回写入到单片机等soc内的rom或者flash中。
3.目前市面上的这两种技术都存在一个严重的问题:那就是对rom 或者flash空间占用度较高,特别是在高精度要求的传感器设备中,精度越高需要的空间就成倍增加。因为他们都是采用两张数据表进行存储,一张数据表存储传感器adc数据(简称:rawdata),一张存储多段拟合函数的参数表。成品后的应用是通过adc读取数据后进行读rawdata数据表后去查找对应的拟合参数表。


技术实现要素:

4.本发明的目的在于提供一种提高传感器计算精度的方法、装置、设备及可读存储介质,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
5.第一方面,本技术提供了一种提高传感器计算精度的方法,包括:
6.获取传感器中多个rawdata值;
7.根据数据滤波算法,对所述rawdata值进行处理,得到处理后的 rawdata值;
8.将多个所述处理后的rawdata值整合为数据表;
9.读取所述数据表中所述rawdata值相对应的所述传感器值;
10.根据拟合算法和所述传感器值,求解方程并输出结果。
11.优选地,所述获取传感器中多个rawdata值,之前包括:
12.采用多项式神经网络算法,利用matlab软件对所述传感器的数据进行预处理,得到预处理数据;
13.利用统计学方法剔除所述预处理数据中偶然误差点;
14.采用滑动平均滤波器对剔除后的所述预处理数据中偶然误差点进行处理,得到传感器中多个rawdata值。
15.优选地,所述得到处理后的rawdata值,之后包括:
16.选取固定间隔值;
17.根据所述固定间隔值,判断data值是否等于处理后的所述 rawdata值;若是,则求解矩阵值,并将所述data值输入至方程求解;若不是,则输出异常值。
18.优选地,所述利用统计学方法剔除所述预处理数据中偶然误差点,之后包括:
19.将剔除之后的剩余数据进行归一化处理后作为多项式神经网络的输入值,进行matlab仿真;
20.通过多次所述matlab仿真比较所述传感器的干扰量敏感性,确定出多项式神经网络隐含层最优神经元数目,得出神经网络结构;
21.根据神经网络结构,保存得出的所述最优神经元数目中的神经网络权值,确定传感器输出值;
22.将所述传感器输出值输入至数据融合模型中并存储至传感器系统。
23.第二方面,本技术还提供了一种提高传感器计算精度的装置,包括:
24.获取模块:用于获取传感器中多个rawdata值;
25.处理模块:用于根据数据滤波算法,对所述rawdata值进行处理,得到处理后的rawdata值;
26.整合模块:用于将多个所述处理后的rawdata值整合为数据表;
27.读取模块:用于读取所述数据表中所述rawdata值相对应的所述传感器值;
28.求解模块:用于根据拟合算法和所述传感器值,求解方程并输出结果。
29.第三方面,本技术还提供了一种提高传感器计算精度的设备,包括:
30.存储器,用于存储计算机程序;
31.处理器,用于执行所述计算机程序时实现所述提高传感器计算精度的方法的步骤。
32.第四方面,本技术还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于提高传感器计算精度的方法的步骤。
33.本发明的有益效果为:本案通过传感器标定设备设定固定间隔值 (例如:压力就设定加压设备按照50kpa间隔逐次增加)同时用计算机收集传感器间隔值对应的传感器adc数据(简称:rawdata),这时我们虽然获得rawdata数据但是我们并不在计算机上进行拟合方程和求解参数,而是将rawdata数据直接传入单片机等soc内的rom或 flash中,按照固定间隔值利用单片机等soc内计算能力去拟合方程求解参数。成品后的应用是通过adc读取数据后(这个值简称data) 进行查找rawdata数据表,找到data在rawdata表离它最近的rawdata 下值和上值,利用rawdata下值和上值直接拟合方程求解参数再去计算data对应的实际值;如果data等于rawdata,可以查到data在rawdata 表中的位置,通过位置直接乘以固定间隔值可以快速求出data对应的实际值;并且可以实现高精度压力数据采集,在前端传感器为0.25%到0.3%的100kpa可扩散硅传感器实现精度0.15%内的计算精度,实际测试中的值精度到达0.1%。还可以应用到其他类传感器中,比如温度、湿度、光强、压强等传感器中的标定方法都适用。
34.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
36.图1为本发明实施例中所述的提高传感器计算精度的方法流程示意图;
37.图2为本发明实施例中所述的提高传感器计算精度的装置结构示意图;
38.图3为本发明实施例中所述的提高传感器计算精度的设备结构示意图。
39.图中:701、获取模块;7011、预处理单元;7012、剔除单元;7013、处理单元;7014、仿真单元;7015、确定单元;7016、保存单元;7017、存储单元;702、处理模块;7021、选取单元;7022、判断单元;703、整合模块;704、读取模块;705、求解模块;800、提高传感器计算精度的设备;801、处理器;802、存储器;803、多媒体组件;804、 i/o接口;805、通信组件。
具体实施方式
40.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
42.实施例1:
43.本实施例提供了一种提高传感器计算精度的方法。
44.参见图1,图中示出了本方法包括步骤s100、步骤s200、步骤 s300和步骤s400。
45.s100、获取传感器中多个rawdata值;
46.可以理解的是,在本步骤中,s100之前包括s101、s102和s103,其中:
47.s101、采用多项式神经网络算法,利用matlab软件对所述传感器的数据进行预处理,得到预处理数据;
48.s102、利用统计学方法剔除所述预处理数据中偶然误差点;
49.s103、采用滑动平均滤波器对剔除后的所述预处理数据中偶然误差点进行处理,得到传感器中多个rawdata值。
50.需要说明的是,本实施例中的传感器值,为现实世界中的物理值 (如压力、压强、温度等)
51.优选地,步骤s102之后包括s103、s104、s105和s106,其中:
52.s103、将剔除之后的剩余数据进行归一化处理后作为多项式神经网络的输入值,进行matlab仿真;
53.s104、通过多次所述matlab仿真比较所述传感器的干扰量敏感性,确定出多项式神经网络隐含层最优神经元数目,得出神经网络结构;
54.s105、根据神经网络结构,保存得出的所述最优神经元数目中的神经网络权值,确定传感器输出值;
55.s106、将所述传感器输出值输入至数据融合模型中并存储至传感器系统。
56.需要说明的是,其中主传感器和辅助传感器同时使用的多传感器融合技术,主传感器测量目标量,辅助传感器测量影响主传感器测量精度的因素,通过标定实验获取主传感器和辅助传感器测量数据,将所获数据存入到计算机中,采用多项式神经网络算法,利用matlab 软件确定多项式神经网络结构以及神经网络权值,将在计算机中所获得的模型存入到多传感器测量系统微处理器中,主传感器和辅助传感器测量值作为模型的输入值,从而得出消除影响后输出值,从而达到提高传感器测量精度的目的。
57.利用统计学方法剔除偶然误差点,剩余数据作多项式神经网络处理数据,将剩余数据进行归一化处理后作为多项式神经网络的输入值,进行matlab仿真,通过多次重复性仿真,当神经元数为38时,比较得出比较优良的神经网络结构,利用多项式神经网络权值直接确定的方法,得出神经网络权值,从而得出传感器系统输出值。
58.s200、根据数据滤波算法,对所述rawdata值进行处理,得到处理后的rawdata值,将多个所述处理后的rawdata值整合为数据表;
59.可以理解的是,在s200步骤中之后包括s201和s202,其中:
60.s201、选取固定间隔值;
61.s202、根据所述固定间隔值,判断data值是否等于处理后的所述rawdata值;若是,则求解矩阵值,并将所述data值输入至方程求解;若不是,则输出异常值。
62.需要说明的是,rawdata的数据获取中采用滑动平均滤波器做数据处理
63.原型公式:
64.其中,n为滤波器长度,n=0.443*fs/fco,fs为采样频率, fco为截至频率,y(k)为输出的第k个值,x为输入的data值,其中在数据缓存中保存有k个data值。
65.改进后的公式为:
[0066][0067]
其中,y为压力值,x为测试得到的rawdata数据,改进后的公式可以节省计算时间提高效率。y(k)为本次输出值,y(k-1)为上次输出值,n为滤波器长度,x(k)本次采样值,x(k-n)是滤波器队列数组中原有的第一个值,也就是即将被队列推出去队列外的值。
[0068]
根据上的两点我们可以拟合出相关方程,可以采用下面2中的两种计算模式进行方程拟合计算
[0069]
现有可得到的计算方式:
[0070]
y=ax+b
‑‑‑‑
(1)
[0071]
在已知(x1,y1)(x2,y2)的情况下,我们可以推导出
[0072]
a=(y2-y1)/(x2-x1)
‑‑‑‑
(2)
[0073]
b=y1-a*x1
‑‑‑‑
(3)
[0074]
或者采用矩阵计算求解:(矩阵a总的1是方程式中b值前面的系数为1);y或者(y1、y2)都是对应真实世界里的物理值(如压力,压强),x或者(x1、x2)为adc传感器的rawdata
值,a和b是要求解的方程系数。
[0075][0076]
求解a的逆a-1

[0077]
得到
[0078]
通过a-1
b可得到方程a和b的值,在实际计算应该中第一种方案的计算时间比较快,比较节省时间。y1和y2都是对应真实世界里的物理值(如压力,压强),x1和x2为adc传感器的rawdata值, x'1、x'2、n1、n2为对应a矩阵求出的逆矩阵,参与计算的中间过程。
[0079]
上面两个公式可知我们在实际应用中我们求解线性方程只要坐标系中两个点位置就可得方程参数;
[0080]
在data的数据获取中采用滑动平均滤波器做数据处理(跟上面第1点一样的数据滤波模式)
[0081]
原型公式:
[0082]
其中n为滤波器长度,n=0.443*fs/fco,fs为采样频率,fco 为截至频率,y(k)为输出的第k个值,x为输入的data值,其中在数据缓存中保存有k个data值。
[0083]
改进后的公式为:可以节省计算时间提高效率;y(k)为本次输出值,y(k-1)为上次输出值,n 为滤波器长度,x(k)本次采样值,x(k-n)是滤波器队列数组中原有的第一个值,也就是即将被队列推出去队列外的值。
[0084]
通过第3点求解处理的对应数据段的方程解,得到a和b的实际参数值,可以写出该段的方程式,如上例中的线性方程y=ax+b,(也解出a、b值,就可以在获得data值时直接带入公式工求解真实压力值y)。
[0085]
s300、读取所述数据表中所述rawdata值相对应的所述传感器值;
[0086]
可以理解的是,在本步骤中,设定固定间隔值去获取传感器的 adc数据;成品后的应用是通过adc读取数据后(这个值简称data) 进行查找rawdata数据表,找到data在rawdata表离它最近的rawdata 下值和上值,利用rawdata下值和上值直接拟合方程求解参数再去计算data对应的实际值;如果data等于rawdata,可以查到data在 rawdata表中的位置,通过位置直接乘以固定间隔值可以快速求出 data对应的实际值。
[0087]
s400、根据拟合算法和所述传感器值,求解方程并输出结果。
[0088]
具体地,在本实施例中,可以理解的技术关键为:
[0089]
第一:设定固定间隔值去获取传感器的adc数据(简称:rawdata) 并将这些rawdata数据表传入单片机等soc(片上系统或者系统级芯片)内rom(只读存储器)或者flash(闪存)。
[0090]
具体地,在本实施例中关于压力传感器标定,设定固定压强间隔 50kpa,测试压强从-50kpa,0kpa,50kpa,100kpa等,压力传感器通过数据传输(串口等方式)到计算机,存储
到一维数组中(rawdata 数组)。
[0091]
第二:成品后的应用是通过adc读取数据后(这个值简称data) 进行查找rawdata数据表,找到data在rawdata表离它最近的rawdata 下值和上值,利用rawdata下值和上值直接拟合方程求解参数再去计算data对应的实际值,具体地如下:
[0092]
rawdata数据为rawdata[]={20000,30000,40010,50000...}
[0093]
当data值是在25000时,通过查表找到25000是在20000和30000 之间,这时候rawdata的下值就是20000,上值就是30000。根据这两个值和对应的固定间隔值,重组在一起,求解方程,得出方程参数。
[0094]
第三:如果data等于rawdata,可以查到data在rawdata表中的位置,通过位置直接乘以固定间隔值可以快速求出data对应的实际值。
[0095]
具体地,当data值是在30000时,通过查表找到刚好对应 rawdata[1]=30000,这时可以放过求解方程参数,直接采用快速模式计算,固定间隔值*1(rawdata[1]的下标值)=输出值。
[0096]
固定间隔值如上面的压力传感器标定时,在标定系统中设置的固定压强间隔50kpa,测试压强从-50kpa,0kpa,50kpa,100kpa等,这时候这个值就是50kpa。
[0097]
实施例2:
[0098]
如图2所示,本实施例提供了一种提高传感器计算精度的装置,参见图2所述装置包括:
[0099]
获取模块701:用于获取传感器中多个rawdata值;
[0100]
处理模块702:用于根据数据滤波算法,对所述rawdata值进行处理,得到处理后的rawdata值;
[0101]
整合模块703:用于将多个所述处理后的rawdata值整合为数据表;
[0102]
读取模块704:用于读取所述数据表中所述rawdata值相对应的所述传感器值;
[0103]
求解模块705:用于根据拟合算法和所述传感器值,求解方程并输出结果。
[0104]
优选地,所述获取模块701,之前包括:
[0105]
预处理单元7011:用于采用多项式神经网络算法,利用matlab 软件对所述传感器的数据进行预处理,得到预处理数据;
[0106]
剔除单元7012:用于利用统计学方法剔除所述预处理数据中偶然误差点;
[0107]
处理单元7013:用于采用滑动平均滤波器对剔除后的所述预处理数据中偶然误差点进行处理,得到传感器中多个rawdata值。
[0108]
优选地,所述处理模块702,之后包括:
[0109]
选取单元7021:用于选取固定间隔值;
[0110]
判断单元7022:用于根据所述固定间隔值,判断data值是否等于处理后的所述rawdata值;若是,则求解矩阵值,并将所述data 值输入至方程求解;若不是,则输出异常值。
[0111]
优选地,所述剔除单元7012,之后包括:
[0112]
仿真单元7014:用于将剔除之后的剩余数据进行归一化处理后作为多项式神经网络的输入值,进行matlab仿真;
[0113]
确定单元7015:用于通过多次所述matlab仿真比较所述传感器的干扰量敏感性,
确定出多项式神经网络隐含层最优神经元数目,得出神经网络结构;
[0114]
保存单元7016:用于根据神经网络结构,保存得出的所述最优神经元数目中的神经网络权值,确定传感器输出值;
[0115]
存储单元7017:用于将所述传感器输出值输入至数据融合模型中并存储至传感器系统。
[0116]
需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0117]
实施例3:
[0118]
相应于上面的方法实施例,本实施例中还提供了一种提高传感器计算精度的设备,下文描述的一种提高传感器计算精度的设备与上文描述的一种提高传感器计算精度的方法可相互对应参照。
[0119]
图3是根据示例性实施例示出的一种提高传感器计算精度的设备 800的框图。如图3所示,该提高传感器计算精度的设备800可以包括:处理器801,存储器802。该提高传感器计算精度的设备800还可以包括多媒体组件803,i/o接口804,以及通信组件805中的一者或多者。
[0120]
其中,处理器801用于控制该提高传感器计算精度的设备800 的整体操作,以完成上述的提高传感器计算精度的方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该提高传感器计算精度的设备800的操作,这些数据例如可以包括用于在该提高传感器计算精度的设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static randomaccess memory,简称sram),电可擦除可编程只读存储器 (electrically erasable programmable read-only memory,简称 eeprom),可擦除可编程只读存储器(erasable programmableread-only memory,简称eprom),可编程只读存储器(programmableread-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803 可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该提高传感器计算精度的设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near fieldcommunication,简称 nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:wi-fi模块,蓝牙模块,nfc模块。
[0121]
在一示例性实施例中,提高传感器计算精度的设备800可以被一个或多个应用专用集成电路(application specific integratedcircuit,简称asic)、数字信号处理器(digitalsignal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他
电子元件实现,用于执行上述的提高传感器计算精度的方法。
[0122]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的提高传感器计算精度的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由提高传感器计算精度的设备 800的处理器801执行以完成上述的提高传感器计算精度的方法。
[0123]
实施例4:
[0124]
相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种提高传感器计算精度的方法可相互对应参照。
[0125]
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的提高传感器计算精度的方法的步骤。
[0126]
该可读存储介质具体可以为u盘、移动硬盘、只读存储器 (read-only memory,rom)、随机存取存储器(random access memory, ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
[0127]
综上所述,除以上方案外,还可以应用到其他类传感器中,比如温度、湿度、光强、压强等传感器中的标定方法都适用。
[0128]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0129]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1