CN110750915B - 一种基于分段Spline拟合的测量系统在线修正方法 - Google Patents
一种基于分段Spline拟合的测量系统在线修正方法 Download PDFInfo
- Publication number
- CN110750915B CN110750915B CN201911050888.9A CN201911050888A CN110750915B CN 110750915 B CN110750915 B CN 110750915B CN 201911050888 A CN201911050888 A CN 201911050888A CN 110750915 B CN110750915 B CN 110750915B
- Authority
- CN
- China
- Prior art keywords
- fitting
- correction
- sequence
- value sequence
- spline fitting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R29/00—Arrangements for measuring or indicating electric quantities not covered by groups G01R19/00 - G01R27/00
- G01R29/24—Arrangements for measuring quantities of charge
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R35/00—Testing or calibrating of apparatus covered by the other groups of this subclass
- G01R35/005—Calibrating; Standards or reference devices, e.g. voltage or resistance standards, "golden" references
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Measurement Of Current Or Voltage (AREA)
Abstract
本发明提供了一种基于分段Spline拟合的转换曲线在线修正的方法。为对一测量系统的转换曲线进行修正,首先需进行标定,其过程为:对待修正的测量系统进行标定,根据标定结果的一阶线性拟合误差选取分段拟合区间断点,进行Spline拟合,然后将拟合所得的参数转换为二进制格式写入FPGA查找表。执行修正参数调用过程:实际测量系统工作时,判断系统测量结果所在区间,在查找表中调用相应分段区间的修正参数,通过硬件计算得到修正后的测量结果。
Description
技术领域
本公开涉及线性测量系统领域,例如高精度电荷测量,涉及一种基于分段Spline拟合的测量系统在线修正方法,尤其是基于系统转换曲线的Spline拟合结果生成修正参数,通过FPGA进行在线修正的方法。
背景技术
线性测量系统的输入量与输出量在理论上有着理想的线性关系。但在实际的测量系统中必然存在非线性。对测量系统的非线性进行修正是测量中的重要过程。
以高精度电荷测量为例,电荷测量的一种常用方法是电子学系统输入信号经过模拟成型后由ADC进行数字寻峰或求和,以ADC码值作为测量的输出结果。由于成型电路和ADC的非线性,输入电荷与测量结果之间的转换也会存在非线性。在实际测量过程中,需要对非线性进行修正。非线性修正的依据是电荷转换曲线,电荷转换曲线如图1,曲线拟合方案的选择影响修正的结果。若对测量结果进行一阶线性拟合,误差结果如图2,转换曲线在小幅度点处的误差会远大于大幅度点处,即在一阶拟合的转换曲线中,小幅度处的结果不可信,无法使用一阶拟合的结果进行修正。
测量结果的修正方法主要有离线修正与在线修正。离线修正即在获取测试数据之后,通过软件对数据进行修正。对于多通道集成的电荷测量系统的数据进行实时处理则对软件的数据处理能力要求较高。在线修正即将修正过程交由前端读出电子学中的FPGA处理,其实时性更好。硬件修正的常用方法为构造硬件查找表:既通过对给入一些已知确定电荷量的信号,对输出的电荷测量结果进行标定,将测量结果和电荷量的转换关系存储在片外EEPROM中;在实际测量中通过查询实际测量结果在查找表中所处的区间通过一阶线性插值给出修正后的电荷测量结果。显然,所构造的查找表的分段区间的细致程度直接决定了修正精度:分段越细致修正精度越高但同时所需的标定过程也越复杂。而对于多通道集成的系统,由于各通道之间存在不一致性,必须对每个通道进行单独标定并构建查找表,这将会进一步增大标定的工作量。
发明内容
(一)要解决的技术问题
为避免上述修正方案在多通道集成的高精度电荷测量系统中的不足,本发明提供了一种基于分段Spline拟合的测量系统在线修正方法,其中包括基于分段Spline拟合结果生成修正参数,并通过FPGA进行在线修正的方法。Spline拟合具有过指定断点且拟合方程斜率在断点处连续的特性,通过Spline拟合可实现利用较少的标定点数获得较高精度的修正算法;将生成的修正公式系数写入片外EEPROM或Flash并在测量时实时调用,实现对测量结果的在线实时修正。
(二)技术方案
本发明提供了一种基于分段Spline拟合结果生成修正参数,并通过FPGA进行在线修正的修正方法。步骤如下:
步骤S1:选取线性系统标定值点,得到输入值序列;
步骤S2:将输入值序列输入至线性系统,得到输出值序列;
步骤S3:对输出值序列进行处理,得到理想输出值序列,并由输出值序列和理想输出值序列得到积分非线性序列;
步骤S4:在积分非线性序列中选取Spline拟合断点;
步骤S5:确定Spline拟合参数;
步骤S6:将拟合参数写入FPGA并对拟合参数进行后处理;
步骤S7:根据测量结果调用后处理的拟合参数并进行修正。
在步骤S2中,信号源产生与每个选取的线性系统标定值点对应的输入信号,将每个输入信号分别输入线性系统,得到输出值序列。
在步骤S3中,将步骤S2中所有标定的输出值进行一阶拟合,得到拟合方程,将上述输出值序列代入标定曲线拟合方程,得到一阶拟合理想输入值序列,将步骤S1得到的输入值序列与理想输入值相减并除以步骤S1得到的输入值序列中的输入最大值得到系统的积分非线性序列。
在步骤S4中,通过将相邻线性系统标定值点对应的积分非线性序列结果取平均值,将积分非线性序列曲线进行平滑处理,再选取线性系统测量范围内的极大值、极小值、过零点作为Spline拟合的N个拟合断点,对应N+1个拟合区间。
在步骤S5中,通过对选取的Spline拟合断点以及区间的端点进行Spline拟合,得到由测量所得结果到实际输入信号的转换方程,共N+1个三阶方程,对应得到4×(N+1)个拟合参数,对拟合参数进行数值处理。
在步骤S6中,写入拟合参数对修正逻辑进行初始化:由上位机发送初始化命令,FPGA从EEPROM中读取新写入的拟合参数,并将各拟合参数赋值给对应寄存器,完成初始化后,FPGA发出初始化完成信号,表示测量系统可以开始进行测量并实时修正测量结果。
在步骤S7中,根据测量结果,判断当前的测量结果所处的修正区间,调用对应的修正系数,得到修正后的测量结果。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
基于三次样条函数实现的Spline拟合有必过指定断点且在断点处斜率连续的特性,其可以保证在最小测量幅度点和最大幅度点处的拟合误差接近0,且在附近的拟合误差较小,通过适当选取断点可保证在全部测量范围内有较高修正精度;对于多个测量系统在确定其输入输出转换曲线趋势特性一致时,为选取断点进行的标定过程只需较少的标定点数,标定过程工作量相对较少;拟合方程阶数为三阶,修正逻辑的资源消耗较少。
附图说明
图1为电荷测量转换曲线。
图2为电荷测量转换曲线1阶线性拟合误差。
图3为电荷测量转换曲线spline拟合误差。
图4为断点选取示意图,图中标出的点为选取的断点。
图5为修正过程结构图。
图6为修正流程图。
图7为修正算法硬件结构图。
图8为修正后电荷测量转换曲线。
图9为修正后1阶拟合误差。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本发明的保护范围。
本发明公开了一种基于分段Spline拟合的测量系统在线修正方法,其中包括基于分段Spline拟合结果生成修正参数,并通过FPGA进行在线修正的方法。该方法包括生成基于Spline拟合结果的修正参数和在FPGA在线调用拟合参数进行实时修正两部分,通过标定和计算得到适当的Spline拟合断点,并在修正时判断结果所处的修正区间和修正方程,实现硬件实时修正。
本实施例为高精度电荷测量,步骤如下:
步骤S1:选取线性系统标定值点,得到输入值序列。
本实施例采用模拟成形和数字寻峰的方案,电荷测量范围为480fC~64000fC,在此区域内标定能够反映电荷测量转换曲线的标定幅度点,对于非线性程度未知的系统,标定幅度点选取应尽量密集,对非线性程度已知的系统,可减少标定幅度点数,由电荷测量转换曲线标定幅度点的变化特征得到电荷序列Q[n]。
步骤S2:将输入值序列输入至线性系统,得到输出值序列。
通过信号源产生与每个选取的标定幅度点对应的输入信号,该输入信号电荷量已知。将每个输入信号分别输入电荷测量系统,得到数字寻峰的结果,以得到ADC码值序列C[n]。为消除数字寻峰和噪声等带来的误差,对于一个与标定幅度点对应的输入信号应采用多次测量结果的平均值作为标定的ADC码值,记为C/LSB。
步骤S3:对输出值序列进行处理,得到理想输出值序列,并由输出值序列和理想输出值序列得到积分非线性序列。
将步骤S2中所有标定的ADC码值进行一阶拟合,得到由ADC码值到电荷量的标定曲线拟合方程,记为Qideal(C),将上述ADC码值序列C[n]代入标定曲线拟合方程,得到一阶拟合理想电荷量序列Qideal[n]。将步骤S1得到的电荷序列与理想电荷量序列相减并除以步骤S1得到的电荷序列中的电荷量最大值得到系统的积分非线性序列INL[n],公式如下:
INL[n]=(Q[n]-Qideal[n])/Q[n]max
步骤S4:在积分非线性序列中选取Spline拟合断点
积分非线性序列的分布如图4,通过将相邻标定幅度点对应的电荷的INL结果取平均值,将INL曲线进行平滑处理,再选取电荷测量范围内的极大值、极小值、过零点作为Spline拟合断点。
在本实施例中,标定结果依照上述方法可得到7个点(A、B、C、D、E、F、G),将其电荷量和标定ADC码值作为Spline拟合断点。
步骤S5:确定Spline拟合参数
在本实施例中,通过Matlab软件对所选取的5个Spline拟合断点(B、C、D、E、F)以及区间的端点(A、G)进行Spline拟合,得到6段拟合方程,方程式如下:
y=Ax3+Bx2+Cx+D
每段拟合曲线得到A、B、C、D,4个参数。
在本实施例中,由于需要实现硬件修正,而此电荷测量系统的输出数据格式限制为12bit,因此需要将对应480fC~64000fC的电荷范围按比例转换为30~4000LSB的输出结果,相应的要对每段拟合方程再乘以0.0625LSB/fC的转换系数。
步骤S6:将拟合参数写入FPGA并对拟合参数进行后处理
在本实施例中,由于电荷测量转换曲线主体上呈线性,因此Spline拟合中三次项系数A的绝对值较小,为保证其能够以整数形式输入FPGA乘法器,在写入拟合参数前,还需将拟合参数A乘2k并取整,对应将二进制的拟合参数A左移k位并取整;k的取值决定取整后的拟合参数A的精度,从而影响修正效果。本实施例中,三次项系数A为10-8数量级,对应的227=1.34×108,因此k的最小取值为27,以保证所有三次项系数不会被记为0;常数项系数最大取值为4095,FPGA乘法器输入位宽最多为52bits,k最大取值为40,以保证所有常数项系数不会溢出;实际k的取值可根据所需拟合精度在此区间内选取。对一个通道的所有Spline拟合区间确定统一的k取值,并将该通道所有拟合参数乘2k再取整得到最终用于写入FPGA的拟合参数。
在写入拟合参数后,还需对修正逻辑进行初始化:由上位机发送初始化命令,FPGA从EEPROM中读取新写入的拟合参数,并将各参数赋值给对应寄存器。完成初始化后,FPGA发出初始化完成信号,表示电荷测量系统可以开始进行电荷测量并实时修正测量结果,硬件结构如图5所示。
步骤S7:根据测量结果调用后处理的拟合参数并进行修正
如图6所示,在数字寻峰完成后,根据通道号启动相应通道的修正逻辑。若寻峰结果小于第一个断点,则理论上,该信号电荷量小于此电荷测量系统的最小可测量电荷,但仍可使用第一段拟合方程的拟合参数将拟合曲线外延给出相应的修正结果;同样的,由于在测量最大电荷幅度对应的ADC码值未达到ADC满量程,如果寻峰结果大于最后一个断点,则理论上,该信号电荷量超出此电荷测量系统的测量范围,但也可以使用最后一段拟合方程的拟合参数将拟合曲线外延给出修正结果。
在本实施例中,电荷测量系统集成了多个电荷测量通道,数字寻峰模块输出数据中包含8bits的通道号信息和12bits的寻峰ADC码值。
在本实施例中,修正结果的计算过程由FPGA内的乘加法器实现。将Spline拟合的三阶表达式转化成如下形式:
y=((Ax+B)x+C)x+D
分别将寻峰结果的ADC码值以及对应Spline拟合区间的A、B、C、D,4个系数作为乘加法器的对应输入,通过三个乘加器的级联,得到修正后的结果,硬件结构示意图如图7。由于在上述修正过程中,对所有参数进行了左移k位的操作,因此还需将计算结果再右移k位得到符合输出数据格式要求的12bit输出结果。如果经过移位后的结果小于0或大于4095,则相应输出Overflow标志。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,包括以下步骤:
步骤S1:选取线性系统标定值点,得到输入值序列;
步骤S2:将输入值序列输入至线性系统,得到输出值序列;
步骤S3:对输出值序列进行处理,得到理想输出值序列,并由输出值序列和理想输出值序列得到积分非线性序列;
步骤S4:在积分非线性序列中选取Spline拟合断点;
步骤S5:确定Spline拟合参数;
步骤S6:将拟合参数写入FPGA并对拟合参数进行后处理;
步骤S7:根据测量结果调用后处理的拟合参数并进行修正。
2.根据权利要求1所述的一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,步骤S2中,信号源产生与每个选取的线性系统标定值点对应的输入信号,将每个输入信号分别输入线性系统,得到输出值序列。
3.根据权利要求2所述的一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,对于一个与线性系统标定值点对应的输入信号采用多次测量结果的平均值作为输出值。
4.根据权利要求1所述的一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,步骤S3中,将步骤S2中所有标定的输出值进行一阶拟合,得到拟合方程,将上述输出值序列代入标定曲线拟合方程,得到一阶拟合理想输入值序列,将步骤S1得到的输入值序列与理想输入值相减并除以步骤S1得到的输入值序列中的输入最大值得到系统的积分非线性序列。
5.根据权利要求1所述的一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,在步骤S4中,通过将相邻线性系统标定值点对应的积分非线性序列结果取平均值,将积分非线性序列曲线进行平滑处理,再选取线性系统测量范围内的极大值、极小值、过零点作为Spline拟合的N个拟合断点,对应N+1个拟合区间。
6.根据权利要求1所述的一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,步骤S5中,通过对选取的Spline拟合断点以及区间的端点进行Spline拟合,得到由测量所得结果到实际输入信号的转换方程,共N+1个三阶方程,对应得到4×(N+1)个拟合参数,对拟合参数进行数值处理。
7.根据权利要求1所述的一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,步骤S6中,写入拟合参数对修正逻辑进行初始化:由上位机发送初始化命令,FPGA从EEPROM中读取新写入的拟合参数,并将各拟合参数赋值给对应寄存器,完成初始化后,FPGA发出初始化完成信号,表示测量系统可以开始进行测量并实时修正测量结果。
8.根据权利要求1所述的一种基于分段Spline拟合的转换曲线在线修正的方法,其特征在于,步骤S7中,根据测量结果,判断当前的测量结果所处的修正区间,调用对应的修正系数,得到修正后的测量结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911050888.9A CN110750915B (zh) | 2019-10-30 | 2019-10-30 | 一种基于分段Spline拟合的测量系统在线修正方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911050888.9A CN110750915B (zh) | 2019-10-30 | 2019-10-30 | 一种基于分段Spline拟合的测量系统在线修正方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110750915A CN110750915A (zh) | 2020-02-04 |
CN110750915B true CN110750915B (zh) | 2023-03-10 |
Family
ID=69281479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911050888.9A Active CN110750915B (zh) | 2019-10-30 | 2019-10-30 | 一种基于分段Spline拟合的测量系统在线修正方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750915B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111380648A (zh) * | 2020-03-27 | 2020-07-07 | 辛成辉 | 一种自校准压力传感器及其自校准方法 |
CN113239030B (zh) * | 2021-05-20 | 2023-08-29 | 国网山东省电力公司潍坊供电公司 | 基于离散数据曲线拟合的智慧电网监控数据存储方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201344560A (zh) * | 2012-04-24 | 2013-11-01 | Askey Technology Jiangsu Ltd | 非線性量測系統之擬合線性曲線轉換公式的取得方法 |
CN105606146A (zh) * | 2016-03-10 | 2016-05-25 | 江苏泰斯特电子设备制造有限公司 | 一种非线性修正技术 |
CN110391814B (zh) * | 2019-07-29 | 2023-03-10 | 中国电子科技集团公司第二十四研究所 | 用于芯片内数模转换器的积分非线性数字校正方法 |
-
2019
- 2019-10-30 CN CN201911050888.9A patent/CN110750915B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110750915A (zh) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750915B (zh) | 一种基于分段Spline拟合的测量系统在线修正方法 | |
US9584146B2 (en) | System and method for measuring the DC-transfer characteristic of an analog-to-digital converter | |
US7142138B2 (en) | Multi-step analog/digital converter and on-line calibration method thereof | |
US9634681B1 (en) | Analog-to-digital conversion with linearity calibration | |
US7378999B1 (en) | Method and apparatus for digital calibration of an analog-to-digital converter | |
US6642871B2 (en) | Analog/digital converter with error automatic calibration function | |
KR101209352B1 (ko) | 디지털 아날로그 변환기(dac)의 사용방법 및 디바이스 | |
CA1191614A (en) | Analog to digital conversion method and apparatus | |
TWI400887B (zh) | 類比數位轉換器 | |
CN107302359B (zh) | 高精度逐次逼近结构adc的变权重子dac校正方法 | |
US7379831B1 (en) | Error correction in an oversampled ADC using few stored calibration coefficients | |
US7085663B1 (en) | Adaptive error correction in an oversampled ADC | |
US7355536B2 (en) | System and method for digital compensation of digital to analog and analog to digital converters | |
CN108228136B (zh) | 基于优化查找表法的对数函数计算的方法及装置 | |
US6975950B2 (en) | Variable resolution digital calibration | |
CN115979324A (zh) | 一种磁编码器的非线性校准方法及装置 | |
US6861967B2 (en) | Non-linearity correcting method and device for A/D conversion output data | |
US8659455B2 (en) | System and method for operating an analog to digital converter | |
EP1510007A1 (en) | Offset calibration system | |
US8223049B2 (en) | Charge injection mechanism for analog-to-digital converters | |
CN109408970B (zh) | 一种模数转换方法、装置及一种模数转换器 | |
CN114189245A (zh) | Adc校准电路及其控制方法、存储介质 | |
McNeill et al. | Lookup-table-based background linearization for VCO-based ADCs | |
KR102052728B1 (ko) | Adc 측정범위의 확장방법 및 장치 | |
US9548753B1 (en) | System and method for linearity calibration in mixed-signal devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |