1 误差分析及处理
动态称重系统的误差来源包括动态因素和静态因素。动态因素主要有汽车自身的振动、称重区路面的不平整,汽车经过此区的速度及加速度。静态因素主要体现在客观环境的变化和硬件自身问题,如:当时系统所处温度、传感器是否运行良好,模/数转换的分辨率等。误差的来源决定误差的处理方式。一方面通过对检测硬件条件和检测方式的设定避免产生不必要的误差,另一方面通过良好的数据处理方法提高软件处理数据的精度,目前主要有以下几种方法:ADV法、DV法、V法、位移积分法、补偿法、专家系统、参数估计法、神经网络。在动态称重系统中滤波方法主要有:有限幅滤波、中值滤波、算术平均值、滑动平均、加权平均滤波、复合滤波等方法。本软件采用滑动加权平均滤波,即设一个数据缓冲区依顺序存放N次采样数据,每采进一个新数据,就将最先采集的数据丢掉,而后求包括新数据在内的N个数据的加权平均值,便得到该次采样的有效数据。
其中:
式中:Xn为第n次采样经滤波后的输出;Xn-i为未经滤波的第n-i次采样值;N为滑动平均项数;Ci为加权。
2 应用软件的整体设计
2.1 系统结构与主要模块
本系统基于C/S三层架构,用户接口层采用友好的GUI界面,主要是用户相关操作的实现以及数据显示;业务逻辑层进行模块化的设计,包括参数设置、数据采集、传输和处理;数据库服务器层对数据库的操作进行封装,主要完成数据的保存与维护。整个软件功能模块图如图1所示,包含了数据传输、数据处理、输入/输出、数据显示等四大模块。以信号的处理与显示为核心,信号的流向如图2所示,首先在称重区不断得到重力传感器所采集的电压信号,进行滤波、放大、A/D转换,并将所采集的数据根据上位机系统初始化形式,以串口或者网络通信的方式传输,上位机对所接收的数据进行判断后,予以滤波、运算、存储、显示,并将所得出的结果以委决书或发票回馈于车主。
2.2 类图
通过此类图完整显示本汽车动态称重系统软件的内部静态结构,如图3所示。其中,CDatabase,CDis-pose,CDisplay,CTransport,CPrint,CQuery,CMotion-Line,CStaticLine分别表示数据库连接类、数据处理类、数据显示类、通信类、报表打印类、查询类、动态曲线和静态曲线类。数据处理类对数据传输类具有依赖性。
3 软件实现
3.1 传输实现
工控系统的数据通信一般以串口为主,但由于串口通信只能用于短距离通信,网络通信也得到了一定的应用。本系统在通用性的前提下实现串口和网络通信两种方式。考虑到汽车动态称重系统对数据的实时性、可靠性要求,通过对通信类采用多线程封装,实现主动发送串口和网络监听的实时数据采集,提高实时数据传输效率。用到的线程函数有两个,一个是监听线程函数UINT ListenThread(LPVOID pParam),另一个是读数据线程UINT ReadTread(LPVOID pParam)。由于本系统对同一串口的不同时读写,所以不存在同步操作,监听线程在后台通过对WaitCommEvent事件的监听调用,读取线程完成下位机数据的接收。