首页 >> 新闻中心 >>行业科技 >> 基于MSP430单片机的高精度压力变送器
详细内容

基于MSP430单片机的高精度压力变送器

引言:

传感器的输出不仅受到压力的影响,还会受到其他外部非目标参数的影响,从而形成传感器交叉灵敏度问题,影响输出精度。为了解决这一问题,主要进行温度补偿,包括线性插值法、最小二乘法、神经网络算法等。BP网络方法在神经网络中是一种很好的方法,通过建立BP网络,利用其逼近任意精度的任意非线性函数的能力来进行数据拟合。MSP430是一款超低功耗、外设丰富的微控制器。利用MSP430采集传感器的压力输出和环境的温度值作为BP网络训练的输入样本进行离线训练,最大限度地修改权值和阈值,利用训练好的权值数组和阈值数组控制变送器的输出,并用C语言对其结构进行编程。达到BP网络数据融合的目的。

1系统硬件设计

1.1芯片选择

       MSP430单片机是一种集成度高、精度高的单片机系统。它采用精简的指令集,是一个16位高速处理MCU。系统运行相对稳定,处理能力强。它具有丰富的外设模块,如A/D模块、D/A模块等,在使用时减少了外设空间体积。采用MSP430系列单片机具有超低功耗、强大的数据处理能力,考虑到阵列经过BP网络训练后需要进行大量的浮点运算,而且其芯片的开关能力非常丰富,因此选用MSP430系列MSP430F247TPM微控制器。

1.2硬件电路设计

       硬件电路设计总体框图如图1所示。压力或液压作用于前端压力传感器。压力传感器将压力和温度的电压信号输入到放大器,放大器信号经过放大后输入到单片机的A/D转换通道。单片机将压力和温度的电压信号转换成数字量进行处理,通过LED显示,并通过RS485通信接口将数据传输给上位机。电源模块提供3。3v和5v电压下,整个电路实现如下所述:

(1)压力传感器选用MPM280压力传感器,MPM280检测电路形式为惠斯通电桥,采用1.5mA直流电源。

(2)电源模块设计。MSP430需要3.3V电压供电,其他外设需要5V电压供电,对输入电源进行电压互感器处理,这里用专用芯片LM317、TPS76950、TPS76933。电压通过LM317转换为+ 1v的功率输出,LM317分别为TPS7693和TPS76950芯片供电,TPS769 33和TPS76950将10V电压转换为3.3V和5V电压输出到MCU和MCU外设。

(3)信号放大电路。这里的放大器核心选用的是IN A 121, IN A 121是一款低功耗、高精度的差压放大器,它可以工作在单电源和双电源两种模式下。将压力传感器测得的压力力转换后输入电压信号到INA 12 1的引脚3和引脚2,放大器的放大倍数可根据外部电阻调节。放大后的电压信号通过引脚6 ina121送入单片机的A/D转换通道,实现放大功能。

(4) A/D转换部分。采用MSP430F247单片机的ADC12模块直接实现A/D转换,MSP430F247T PM本身具有2通道转换接口,通过ADC12模块的控制寄存器实现温度和压力2通道模拟信号的A/D转换。ADC12内置参考电源,ADC12模拟多路复用器可以对温度和压力信号进行时序转换,并具有采样和保持功能,ADC12硬件通过设置将结果自动转换到相应的寄存器。

(5) RS-485通讯电路及显示电路。RS-485通讯电路模块选用专用芯片MAX485, LED显示屏选用驱动芯片SH J74A HC373。

2 系统软件设计
       系统软件实现核心是 BP 网络训练得到的权值与阈值的连接关系,权值与阈值是以数组运算及对每层神经元输出进行tansig激励函数为主体,而神经网络的权值与阈值是 通过训练样本在MATLAB神经网络工具箱中的训练得到的。这里训练样本的采集是把压力信号和温度信号的输出电压值放大处理后输入到单片机,经过单片机A/D 转换之后得到数字量, 直接应用数字量进行离线训练,得到神经网络的权值与阈值,直接利用A/D值训练的优点是减少了电压A /D 转换的电压损失,提高了输出精度。 利用检测样本来检测训练后的神经网络, 当满足要求后将训练得到的权值与阈值的连接关系用C语言表达移植到单片机 中处理信号 ,完成控制算法的要求。

2.1 BP网络算法

       BP网络是目前应用最广泛的神经网络模型,它分为输入层、隐含层和输出层3层, 层与层之间多采用全互连方式, 同一 层单元之间不存在相互连接。 BP网络是由信息的正向传播和误差的反向传播组成, 正向传播的输入模式从输入层经隐层逐层处理并传向输出层,如果输出层没有得到期望的结果,则将误差信号沿原来的通路返回并修改各层的权值转为反相传播,直到误差最小,最终达到期望的目标值。

2.2 试验样本的采集及数据处理

       试验样本的采集需要 的器材 有: M PM 280 压力传感器、压力传感器信号控 制 电路板 、标 准压力 计 、压力传 感器 高低 温测试温箱 、测试 电脑 、M SP430 下载线。 将压力传 感器 连接好置于压力传感器测试温箱 内, 将压力传感器 反映温度 和压力信号的 4 根导线连接到压力传感器信 号控 制电路板上, 电路板上通讯接口与主机相连 , MSP430 下 载线一 端与单 片机 JTA G 相连 ,另一端与主机相连 在神经网络 的试验样本及检 测样本 的采集 中 ,单 片机完成的工作是上 电初始化 、温度和 压力 的 A /D 转换 ,将转 换之后 的数据通过 R S 一485 通讯发送到 主机上 显示出来 , 记录温度 和压力的 A /D 采样值 ,其 中 A /D 采 样值 选择 的参考 电压 为单 片机内部设定 电压 1. 5 V ,所测得 的数据 如表 1 所示 。

通过表 1 可以看出: 原压力传感器的零点 A/D 采样值 由-40℃ 的223漂移 到 80 ℃的185 ,满点 由 一40 ℃ 的 3 961 漂移到 80 ℃ 的 3 016 ,并且 在加 相 同的压力 下 , 不同 温度点 的 A/D采样值也是不 同的, 可以看出有很大 的温度 漂移, 所 以要进行温度补偿。

c3c1d159-692c-480a-8041-2c08db530250.png

为了检验训练后 BP 网络 的控制性 能 ,需要对 BP 网络进行样本检测 , 这时需要对经过神经 网络工 具箱仿真 之后 的数 据进行反归一化处理 , 反归一化的 目的是将神经 网络输 出的 0.05 ~0.95 之间的数映射到期望的区间值。 反归一化公式为

ea0c7e88-794c-4d4d-87f1-aca7354d2dfc.png

式 中 :P 为为神经 网络仿 真输 出值 ;P , P 为归一 化时 的训练样本中压力标 定值 中最大与最小值; P 为最终数据融合值 。

2.3 BP 网络的建立及训练

       打开MATLA B的命令窗口界面,在神经网络工具箱主界面输入nntool,建立一个4层BP网络。第一层是输入层,由2个神经元组成,是温度、压力A/D采样值归一化后的数值输入。第一隐藏层有5个神经元,第二隐藏层有4个神经元。输出层为一个神经元,表示处理后的压力输出,每层的激励函数为tansig函数。将归一化训练样本的输入值和目标值导入神经网络工具箱,训练样本选择为40℃、30℃、20℃、10℃、0℃、20 qC、30℃、20℃、60℃。在80℃下采样10个温度点的温度和压力,选择10℃的温度和压力A/D样本作为检测样本,并在MAIAB神经网络工具箱的训练选项卡上设置训练参数,点击 TR AIN 按钮进行训练, 如果训练次数达到最大仍没有使误差最小,继续训练, 当达到训练误差不再减小时停止训练 ,此时的误差为 3.225 ×10 一,训练次数达到2 899次, 为了验证神经网络对传感器温度补偿的有效性以及准确程度,把采集到的数据输入神经网络进行检测, 把输出值进行反归一化处理后得到融合值,其中训练样本和检测样本的神经网络融合值如表 2 所 示。

9a031b7f-1807-4337-a6e1-a0ae6e7168f6.png

表 1 温度和压 力 A /D 采样值

       由表2可以看到 , 当环境温度在-40 ~ 80℃ 变化范围内BP网络数据融合值误差为0.08%,可知利用BP网络进行温度补偿数据融合精度很高,在MATLAB神经网络工具箱中查看BP网络的权值与阈值,得到其连接关系,通过编程实现其压力传感器的数据控制算法。查看神经网络工具箱的权值与阈值。将训练得到的各数组及温度和压力A/D采样值中最大最小值利用 c 语言编程完成算法控制。

001773fe-ba0d-478e-8bc9-ff6cb50f8baf.png


表 2 liP 网络数 据融合值

2.4 系统软件实现方式
        通过 BP 网络训练之后 , 得 到满足控 制要求训 练 的权 值 以及阈值, 将其连接关系用程序编程,移植到单片机中,完成信号处理需要。 在整个系统 中单片机完成的工作 主要 有 :上 电初 始化, 包括看门狗关闭、晶振初始化、LED 与通讯模块的初始化等;进行温度和压力的 A/D 转换, 包括采样频率的设定、参考电压的选择、对 AD C 12 模块设定、对数据进行平均值滤波等;对温度和压力的_Ai D 采样值进行归一化,归一化的温度和压力最大值和最小值和 BP 网络训练是选择的最大最小值相同;把温度和压力信号组成二维数组输入到神经网络训练的权值连接中实现信号处理 ,对 输 出值进行 反 归一化 ;将 反归一 化处 理 的信号经过 LED 显 示以及通 过 R S 一485 通讯 接 口发送 出去。 其程序设计 流程 图如图 4 所示 。

3、结束语

       神经网络是 一个大规模非线性 系统 ,具有 自适应 和 自学 习的能力 ,通过其 自身 的数据融合 消除 了压力 传感器 的交叉灵 敏度 ,进行 了温度补偿 , 提高了压力传感 器 的精 度。 实验证 明: 经过神经网络 离线 训练得到数据拟合模 型 ,处 理实时信 号能够 进行很好 的零 点补偿 特性以及 良好的抑制时漂 特性 , 利用超低 功耗单片机 M SP430 的丰富外设减 小 了压 力传 感器 的体积 ,利 用M SP430 单片机采集 到的压力和 温度 的 A/D 值进 行离线 训练 ,提高了压力传感器 的精度 。 该 设计 已做 出样 品 , 满足 0. 1% 的精度要求 。

参考文献 :

[1] 严家明,毛瑞娟 ,谢永宜. 两种数据融合算法对扩 散硅压力传感 器的温度补偿. 计算机测量与控制 ,2008 ,16 (9 ) :1363 —1365

[2] 沈建华 .杨艳琴. M SP430 系列单片机 16 位超低功耗单片机原理与实践.北 京 :北京航 空航天大学 出版社 ,2008 :1 —100 .

[3] 刘君华. 智能传感器系统. 西安 :西安 电子科技大学 出版社 ,2004 :1 —5O .

[4] 丛爽. 面 向 M A TLA B 工具箱 的神经 网络理论与应用. 合肥 :中国科技大学出版社 ,2003 :55 —85 .

[5] 何平 ,潘 国峰 ,孙以材 ,等. 压力传感器温度漂 移补偿 的 R BF 网络模型. 仪器仪表学报 ,2008 ,29 (3 ) :572 —576 .

[6] 张耀锋 ,孙以材. 基于 BP 神经网络温度补偿 的压力传感器无线数据采集系统. 传感器世界,2008 (1) :36 —39 .

[7] 王福 昌,张宝雷 ,张 同庆. 神经 网络工具 nntool 及 其应用. 计 算机与现代化 ,2003 (9 ) :84 —85.

[8] 高峰 ,董海鹰 ,胡彦奎. 基于 B P 神 经网络的传感 器交叉敏感 性抑制. 传感器技术 ,2005 ,24 (2 ) :22 —26 .作者简介 :张建军 ,(198 3一 ) ,硕士研究生 ,主要研究方 向为工业 自动化及智能控 制。 E -m ail:jianjunarm y@ 163. cor n




班宁产品汇总   



seo seo