孙妍,张淑舫,朱薛洋
弹载计算机的A/D采集误差自动校正方法研究与实现*
孙妍,张淑舫,朱薛洋
(天津津航计算技术研究所,天津 300308)
弹载计算机是导弹武器系统内的核心部件,A/D采集接口是其重要的对外接口之一。由于存在外界干扰和电路阻抗匹配性不合理等因素,将会导致采集数据存在较大误差。在对A/D采集系统特点进行分析的基础上,提出了一种基于最小二乘原理的A/D采集误差自动校正方法,并提供了系统设计架构和具体实现步骤。经实践验证该方法简便可行,能够有效地减小A/D采集误差,提高系统的稳定性和可靠性。
弹载计算机;A/D采集;最小二乘法;误差校正
弹载计算机是飞航导弹武器系统的重要电子设备,可独立存储、运算、完成指定解算任务及数据传输任务。弹载计算机是导弹控制的核心部件,决定着导弹攻击任务的成败,其作为整个导弹控制系统的“大脑”,有着较为复杂的电气功能及对外接口[1]。它与机载指挥仪、惯导系统和舵系统、无线电高度表、末制导导引头、弹上电气系统、遥测设备、地面测试系统、动静压传感器、动力系统设备等协同工作,完成对导弹的检测、测试和飞行控制等任务。
数据信号采集是弹载计算机获取信息的重要途径,是弹载计算机与外部世界连接的纽带[2]。导弹上的模拟量信号,无论是以电压、电流还是电阻的信号形式,最终都要转化为电压信号进行信号处理。而A/D转换技术是信号采集的核心,A/D转换是通过将输入的模拟信号转换为输出信号为N位二进制数字量的技术[3-4]。A/D采集接口在处理器模块的控制下,采集来自舵机系统和压力传感器等的模拟量信号,用于导弹射前检查,完成对导弹飞行姿态的控制等。
在实际使用过程中,由于各种外界干扰(如电源的波动干扰、信号的电磁干扰)、硬件电路布线不合理、输入输出阻抗匹配性差等原因,会出现较大的数据采集与处理误差,造成整个导弹系统可靠性和稳定性降低,影响导弹在发射和飞行过程中的飞行姿态、航迹、速度等控制,甚至酿成重大事故[5]。本文提出了一种面向弹载计算机的A/D采集误差自动校正方法,基于最小二乘法的原理,将A/D采集的实际值与理论值进行数据拟合,得到误差校正参数,利用校正参数自动进行采集数据的标定。此方法实现起来简单、便捷,可有效地减小采集系统误差,提高系统可靠性。
弹载计算机的A/D接口在弹上通常与舵系统相连,用于采集舵回路反馈位置传感器等模拟量信号。在弹载计算机出厂前,必须对其A/D接口的功能和性能进行测试。测试系统总体架构如图1所示。
图1 系统总体架构示意图
测试设备选用的是加固便携式工业计算机,提供CPCI总线扩展槽,内插自主研制开发的6U CPCI-DA接口板和CPCI-1553B总线接口板。D/A接口板用于模拟舵机系统,向弹载计算机的A/D模块输出模拟量信号,可提供20路﹣10~10 V的D/A输出激励信号,变化速率为5 V/μs,写入数据至输出电压建立时间最长为10 μs,单通道连续采样时间不长于10 μs[6]。CPCI-1553B总线接口板提供符合MIL-STD-1553B标准的通信接口,用于向弹载计算机发送测试命令和接收A/D采集数据。处理器模块选用Xilinx公司推出的Zynq_7000系列全可编程片上系统(SoC,System on a Chip),其是异构架构的典型代表,把专用的嵌入式ARM Cortex-A9双核处理器和通用的大规模现场可编程门阵列FPGA结合在单个芯片中,将专用处理器的串行执行和FPGA的并行执行完美结合,灵活地用于各种应用场合[7-8]。
测试流程为测试设备首先通过D/A接口板发送D/A输出信号(﹣10~10 V),再通过1553B总线接口板发送“A/D舵反馈接口测试命令”,处理器模块接收到测试命令后进行AD采样,并将A/D采样数据和命令执行状态加载到1553B的发送子地址,由测试设备进行误差判定和显示。这样可以全面地考察A/D接口的功能和性能。
A/D 采集常引入信号干扰,干扰的存在影响了采集信号的质量,降低了系统控制性能。由于实际应用中不可避免地存在电磁场耦合干扰、电气设备干扰、共模干扰等,很难从源头上消除,因而常采用切断干扰传播途径的方法对干扰进行抑制[9]。通常A/D采集模块由多路模拟开关、增益放大、A/D转换器、电压跟随器、模数转换控制、数据存储单元等部分组成[10]。A/D采集模块组成如图2所示。
在模拟信号进入A/D转换器前,需经过信号调理电路进行转换信号的调理、滤波及放大,从而达到A/D转换器的输入电平要求,以充分利用A/D转换器的满量程分辨率。模拟信号经过一级有源低通滤波器、一级运算放大器,将信号调整到±10 V范围内,之后经过一级电压跟随器至A/D转换器,采集到的信息送给数据存储单元,经FPGA可编程逻辑门阵列进行信息处理,最终送到中央处理单元进行数据采集。
设计中使用了信号放大AD8031芯片、数据采样AD7476芯片、数据隔离器ADuM5412芯片。其中,AD8031是一款单电源电压反馈性放大器,采用2.7~12 V单电源,适合于各种各样的应用[11]。AD7476是一款典型的12位逐次逼近型转换器,采集速率可达1 MSPS,单电源5 V供电,具有低功耗、低电压的特点,可用于电池电压系统的ADC数据采样[12]。ADuM5412是一款集成isoPower隔离式DC-DC转换器的四通道数字隔离器,能够调节3.15~5.25 V的稳压隔离电源,本设计中该芯片用来将模拟信号和数字信号隔开。具体电路设计如图3所示。
图2 A/D采集模块组成框图
图3 信号调理和A/D采集电路图
A/D转换电路工作过程为,处理器模块先发选通道信号,再发启动转换信号,然后读取A/D转换结果。多路单端模拟量输入经多路模拟开关,被选择通道的模拟量送到A/D转换器的模拟信号输入端,在启动转换信号的控制下,A/D转换器开始进行转换,转换时间为20~35 μs。转换数据低12位为转换结果。
在实际控制过程中,由于电源的波动干扰、信号的电磁干扰、阻抗匹配性差等因素影响,会出现较大的A/D数据采集误差,因此要获得稳定、可靠、接近真实值的数据就必须要进行误差校正。为了有效地进行误差校准,通常会采用各种软件滤波算法,比如多次采集取平均值的滤波算法、滑动平均滤波算法、卡尔曼滤波算法等。以往使用较多的是一种软件滤波的改进算法,比均值滤波算法更加有效。对每路A/D通道连续采集多次,首先将采集到的多个数据进行排序,去掉一个最大值和一个最小值,中间剩下的将是比较稳定的数据,用这部分数据再求平均值,将会得到一个误差比较小的有效值[13]。这种滤波算法通常会起到一定的误差校正作用,但是在强干扰或是阻抗匹配性较差的情况下,这种滤波算法仍然不能满足A/D采集的高精度要求。
本文提出了利用最小二乘法的原理,将各个通道的A/D采集的实际值与理论值进行数据拟合,得到误差校正参数,利用校正参数自动进行采集数据的标定,标定后的采集数值可以更加接近理论值。
由测试设备软件设计一组测试值,由于测试电压值范围为﹣10~10 V,因此测试值数组设定为ADData[10]=[﹣10,﹣8,﹣6,﹣4,﹣2,0,2,4,6,8,10](单位为V)。如果被测弹载计算机有N路A/D采集接口,则相应的测试设备需要有N路D/A输出接口与其相连接。测试设备通过CPCI-DA接口板依次输出上述电压值,由于测试线缆也会带来一定的误差,因此要用高精度数字万用表测量线缆后端(连接被测系统端)的电压值i作为输入电压的理想值,测量A/D采集模块经过A/D转换器后采集到的电压值i作为采样的实际值。用i和i两组数值经过最小二乘法数据拟合完成参数标定。
最小二乘法是一种数字优化技术。它通过使误差的平方和最小化来寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和最小[14-15]。
设(i,i),= 1,2,…,为一组测量数据,i为A/D采集模块采集到的实际电压值,i为输入电压的理想值,为数据组的个数,其近似地满足以下函数:
=a+b (1)
式(1)中:常数a和常数b为要标定的校正参数[16]。
根据最小二乘法原理,a和b的选择是根据偏差的平方
根据上述公式,利用MATLAB软件或Visual C++软件编程得到校正参数a和b。
假设弹载计算机具有个A/D采集通道,由于各个通道是相互独立的,每个通道拟合出2个校正参数,则共有2×个参数。通过工具软件得到的校正参数通常为double类型的浮点数,在Zynq-7000处理器底层软件中将每个参数通过union联合的方式转换成4个UCHAR类型的整型参数,则共有8×个整型参数,将这些参数生成一个参数配置表,写到对应产品FLASH存储器的参数配置区域。在产品每次上电后,首先从FLASH的参数配置区读取校正参数,并写入FPGA提供的参数配置寄存器中,然后对参数进行解析,将UCHAR类型的参数转换成double类型的参数,得到每个A/D通道的校正参数a和参数b存入全局数组变量中。由A/D采集模块得到的电压值,经过公式=a+b计算后,可得到更理想的电压值,通过这种方法可实现多通道A/D采集误差的自动校正。
本文采用某型导弹武器系统内两种不同类型弹载计算机(TYPE1-2)作为验证产品,实验对象既包含功能复杂度高的集成一体机,也包括功能相对简单的综合控制计算机。其中TYPE1具有4路A/D采集通道,TYPE2具有3路A/D采集通道。
按照图1所示建立验证测试系统,以某台产品的某一A/D采集通道为例,按照误差校正方法详细记录了实验数据,如表1所示。
按照上述公式求得拟合方程式=1.001 43+0.001 27,其他通道实验记录方法类似。
针对这两型弹载计算机分别选取5台不同批次产品用于实验。实验项目累计测试时间为:常温拷机试验100 h(累计测试次数50 000次)、环筛高低温试验80 h(累计测试次数40 000次)、功能振动试验3 h(累计测试次数1 500次)。实验考察的指标为每个A/D通道采集的最大误差值,由测试设备软件将各个通道CPCI-DA接口板输出的电压值与A/D采集的电压值作对比并取绝对值,计算公式为:
DA-AD
在所有实验项目结束后,对测试结果进行分析,找到每个通道的最大误差值Max。采用以往的均值滤波改进算法和最小二乘标定法在同样的试验条件下分别进行测试。
两型弹载计算机的实验结果如表2、表3和表4所示,综合实验结果可以得出以下结论:①均值滤波改进算法和最小二乘标定算法都可满足最大误差值不超过25 mV的技术指标;②基于最小二乘原理的A/D采集误差自动标定方法简单易行,将参数标定问题转换为线性拟合问题,数学概念明确,可使经过校正后的采集值更加接近真实值;③对比以往的均值滤波算法及其改进算法,用本文实现的误差自动校正方法对两型弹载计算机在不同试验环境下进行检测,其最大误差值均可有效的减小,具有更高的可靠性。
表1 单A/D通道测量数据
i1234567891011 xi(单位:V)﹣9.982﹣7.986﹣5.991﹣3.996﹣1.990﹣0.000 11.9913.9955.9927.9879.983 yi(单位:V)﹣9.995﹣7.996﹣5.997﹣3.998﹣1.99901.9993.9975.9987.9979.996
表2 常温拷机试验测试指标
Type校正前采集值均值滤波改进算法最小二乘标定法 通道DiffMax/mV通道DiffMax/mV通道DiffMax/mV 1117.319.713.3 214.227.622.2 316.939.433.9 416.148.242.1 2120.3112.917.3 219.9211.426.9 319.5312.637.5
表3 环筛高低温试验测试指标
Type校正前采集值均值滤波改进算法最小二乘标定 通道DiffMax/mV通道DiffMax/mV通道DiffMax/mV 1120.7111.415.9 217.929.525.2 319.8312.036.4 419.249.943.9 2123.7114.619.7 223.6211.826.3 323.0313.538.8
表4 功能振动测试指标
Type校正前采集值均值滤波改进算法最小二乘标定 通道DiffMax/mV通道DiffMax/mV通道DiffMax/mV 1124.9115.718.6 222.1213.628.4 324.0318.5312.9 423.7412.746.8 2132.9118.8110.1 231.4215.6210.8 332.6317.4312.3
本文提出并实现了一种面向弹载计算机的A/D采集模块误差自动校正方法,采用最小二乘法的原理拟合出校正参数,并写入被测产品的FLASH存储器中。产品上电后由处理器软件从FLASH的参数配置区读取校正参数,根据拟合公式获得最终的采集值,可完成误差的自动校正。
经实验验证,此方法简单易行,可广泛应用于弹载计算机的A/D采集模块,达到有效减小采集误差、提高系统可靠性的目的。
[1]景德胜.基于多核处理器的弹载计算机低功耗设计研究[J].微型机与应用,2016,35(10):28-29,32.
[2]梁葆华,陈欣,吕迅竑.一种支持双余度CAN总线接口的A/D采集单元设计[J].航空计算技术,2008,38(2):107-110.
[3]马海潮.超高速数据采集技术发展现状[J].测试技术学报,2003,17(4):287-292.
[4]JIN-KUI Z.Common mode interference & differential mode interference and their restraining technologies[J]. Electronics Quality,2006(5):26.
[5]原兵兵,陈欣,徐敏.一种飞行控制计算机高精度A/D采集单元设计与研究[J].电光与控制,2017,24(5):82-86.
[6]刘宪忠,孙妍,张淑舫.面向弹载计算机的ATE通用平台设计与实现[J].计算机工程,2018,44(7):60-66,73.
[7]杜金艳,叶旭鸣.基于Zynq_7000的SRIO高速数据传输设计与实现[J].电子设计工程,2017,25(24):30-33.
[8]何宾.Xilinx all programmable Zynq-7000Soc[M].北京:清华大学出版社,2013.
[9]龚征华,庞明,周冠泽,等.基于PIC单片机的A/D采集模块实现[J].微型电脑应用,2016,21(1):1-3.
[10]董建树,孙宏超,王惠,等.一种高分辨率积分输出的A/D转换电路的设计[J].导航定位与授时,2018,5(1):93-99.
[11]孟青,苏承启,任勇峰,等.基于AD8031多通道采编器的设计与实现[J].计算机测量与控制,2012,20(11):3057-3062.
[12]王连华.基于FPGA和高速串行接口AD转换器AD7476的接口应用[J].电子制作,2016(22):6.
[13]黄健,张善文,周端.基于STM32的A/D采样软件滤波改进算法研究[J].仪器技术与传感器,2016(3):83-85.
[14]刘颖.基于抗差最小二乘法的谐波状态估计方法研究[D].北京:华北电力大学,2012.
[15]何旭平,任保胜,祁玉斌.基于最小二乘法的吸咀吸收压力的研究[J].电子工业专用设备,2017(4):56-59.
[16]XU Z M,WEN X Q,ZHENG J,et al.Cooling water fouling resistance prediction of plate heat exchanger based on partial least squares regret -ssion[J].CIESC Journal,2011,62(6):1531-1536.
TP23
A
10.15913/j.cnki.kjycx.2019.19.004
2095-6835(2019)19-0012-04
孙妍(1986—),女,硕士研究生,工程师,研究方向为嵌入式计算机软件设计及测试。张淑舫(1970—),女,硕士,高级工程师,研究方向为可靠性设计。朱薛洋(1984—),男,硕士,高级工程师,研究方向为嵌入式操作系统软件设计。
中国航天科工集团公司2011年度可靠性保障工程计划(天工技〔2011〕976号,编号:B201111)
〔编辑:张思楠〕