




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于malab的实时信号采集系统的设计与实现
0基于pci总线的高速模拟量输入卡随着微型计算机技术的快速发展,硬件平台的信号采集和数据处理系统得到了广泛应用。工控机通过数据采集卡对外部的信号进行采集,通过软件读取数据并完成分析处理。PCL-1713是研华公司生产的一款基于PCI总线的隔离高速模拟量输入卡。它有以下主要特点:(1)2500V(DC)隔离保护;(2)32路单端或16路差分模拟量输入,或组合输入方式;(3)12位AD转换;(4)采样速率可达100Kb/s;(5)每个输入通道均可增益编程;(6)卡上4K采样FIFO缓冲器;(7)支持软件、内部定时器触发或外部触发;(8)自动通道/增益扫描。其输入范围可分为单极性和双极性:双极性:±0.625V,±1.25V,±2.5V,±5V,±10V;单极性:0~1.25V,0~2.5V,0~5V,0~10V。1采集系统的设计1.1板卡pcl-173的安装参照安装手册,完成PCI-1713数据采集卡的安装和测试。如图1所示,安装完驱动程序后,在DeviceManager界面下,显示板卡PCL-1713已成功安装,图中的C000H是由工控机自动为PCI-1713数据采集卡分配的基地址,在每次安装时都可能不同,序号(如000,001,002)是板卡安装在工控机上的顺序,它在采集系统软件实现过程中,有着重要的作用。1.2环境开发的设计采集系统在Microsoft公司的VisualC++环境下进行开发。有两种方法可以实现VC++基础上的数据采集:DAQ控件和研华提供的动态库函数编程。下面,将对这两种方法进行探讨。1.2.1daqa.c.numhen首先安装DAQ控件,并在VC中添加DAQ-AI控件到对话框的控件栏中。把控件拖至对话框中,此时在程序中自动添加了有关DAQ控件封装的类,为控件关联一个变量m_Daqai。在研华所给的程序例程中,有一个需要选取设备的过程,即调用函数SelectDevice打开对话框来选择所需的板卡。这在实际测试流程中,使用极不方便,不能实现真正的自动检测。我们可以采用如下方法来跳过选择设备的步骤。如图2所示:右击控件,选择属性,在ALL中有一项DeviceNumber,默认情况下为-1,即为不选择任何板卡。根据图1所示板卡在工控机上的安装顺序,我们将-1改为0,此时,当变量m_Daqai调用函数时,已经默认的板卡即为PCI-1713,不需要再进行设备板卡的选择。如果在某些情况下采集系统需要有两块和更多的数据采集卡来进行数据采集,这时一般采用一个DAQ控件对应一个数据采集卡的方法,对每个控件都实行上述属性的改变,相应的参数也是由DeviceManager确定的。数据读取流程如下:m_Daqai.OpenDevice();//打开设备m_Daqai.SetOverallInputRange(4);//采集电压范围的选取。doubleAdconvert=m_daqai.RealInput(0);//读取通道0的电压信号并保存到变量中。在程序结束时,要调用CloseDevice函数,来释放所分配的内存。m_Daqai.CloseDevice();这里只调用了SetOverallInputRange函数来设定采集电压范围,其参数值可取为0~8。各数的代表电压范围如表1所示。根据需要,可以在采集系统调用控件的接口函数中进行采集参数设置,如(触发方式,数据采集方式等),详细情况请参照研华公司的DAQ用户手册。DAQ控件的使用,大大简化了编程,在一般的信号测量中,有着重要的作用。1.2.2压力和设备设置在研华公司提供的数据采集动态链接库中,封装了用于该采集卡的各类应用函数,如打开设备函数、关闭设备函数、获取设备设置函数、读取信号函数等。具体的函数调用顺序如图3所示:在系统开发过程中,可以利用这些函数来完成数据的采集工作。首先导入外部头文件和函数,将Adsapi32.lib,Driver.h直接拷贝到这个工程所在的文件夹中。具体添加的程序代码如下:staticPT_AIVoltageInptAIVoltageIn;staticPT_AIConfigptAIConfig;staticDEVFEATURESDevFeatures;staticPT_DeviceGetFeaturesptDevFeatures;这一步为定义采集函数动态链接库中结构的变量,为下一步调用各结构中的成员变量做准备。通过调用成员变量为其赋值,获取设备信息并对信息进行修改,如改变采集范围、采集通道、采集模式等。打开设备的操作是在使用设备进行数据采集等编程操作之前必须进行的,调用DRV_DeviceOpen(0,(LONGfar*)&DriverHandle)函数实现。第一个参数0是设备号,也就是在图1中查看到的序号000,用它表示所打开的是在工控机中排序第一个设备,在实际的操作中,我们要根据设备在工控机中具体的排序来确定第一个参数的值;DriverHandle:设备句柄,对每块板卡唯一标识。在以后函数调用中,想要操作哪个设备,直接调用此设备句柄就可以实现。同样,在多设备的背景下,我们需要为每一个设备都赋予一个不同的设备句柄,代表着不同的设备。接下来,就要进行获取设备设置的操作,具体代码如下,获取设备设置后将值赋予结构的变量。如果获取失败,说明此设备出现故障,将不能正确的进行信号采集,就需要报警并退出采集系统。ptDevFeatures.buffer=(LPDEVFEATURES)&DevFeatures;ptDevFeatures.size=sizeof(DEVFEATURES);if((ErrCde=DRV_DeviceGetFeatures(DriverHandle,(LPT_DeviceGetFeatures)&ptDevFeatures))!=SUCCESS){DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);MessageBox((LPCSTR)szErrMsg,“DriverMessage”,MB_OK);DRV_DeviceClose((LONGfar*)&DriverHandle);return;}在上面两步工作做好之后,我们就要对设备信息进行设定以便可以得到快速、准确的数据采集。直接赋值给结构变量ptAIConfig设定采集范围和采集通道,通过调用DRV_AIConfig函数将对设备参数进行设置。调用DRV_AIVoltageIn函数读取设置通道的信号,保存到变量中。ptAIConfig.DasGain=DevFeatures.glGainList[gwGain].usGainCde;//设定测量范围ptAIConfig.DasChan=gwChannel;DRV_AIConfig(DriverHandle,(LPT_AIConfig)&ptAIConfig);ptAIVoltageIn.chan=ptAIConfig.DasChan;//采集通道ptAIVoltageIn.gain=ptAIConfig.DasGain;ptAIVoltageIn.TrigMode=0;//软件触发ptAIVoltageIn.voltage=(FLOATfar*)&fVoltage;DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn));在程序结束时,要调用DRV_DeviceClose函数来释放为其分配的内存。DRV_DeviceClose((LONGfar*)&DriverHandle);在实际检测流程中,若是需要采集信号时都进行上述代码编写,十分不方便。可将此段代码封装到一个采集函数AdConvert(intchannel,intgwgain)中,其参数为采集通道与电压范围,并返回所采集的电压值,通过调用此采集函数就可以完成信号的采集,大大减少了代码冗余。参数gwgain为测量电压范围设定,其意义和DAQ控件采集中的取值电压范围参数设定相同。如果采集前知道信号的大体范围,就可以通过设定正确的gwgain值,获取更为精确的采集电压值。2数字干扰技术2.1响应信号的实时采集通过对以上两种信号采集方法进行实时信号采集和对比分析,检测结果基本相同。我们可以根据实际情况采取一种信号采集方法。但是,在微机化测控系统的测量通道中总难免窜入这样或那样的随机干扰,从而使A/D输入微机的数据中存在误差。就一次测量而言,这样的随机误差没有规律,不可预测。但测量次数足够多时,其总体服从统计学规律。数字滤波是为了提高检测精度而采取的软件抗干扰措施,即通过一定的计算程序,对采集的数据进行处理,消除或减弱干扰信号的影响,提高测量的可靠性和精度。通常采用的方法有中值滤波、算术平均值滤波、去极值平均滤波等多种滤波方法。在此采用算术平均值滤波法,算术平均值滤波是寻找一个y值,使该值与各采样值之间误差的平方和为最小。即如下公式所示:E=min[∑i=1ne2i]=min[∑i=1n(y−xi)2]E=min[∑i=1nei2]=min[∑i=1n(y-xi)2]由一元函数求极值原理可求得:y=1n[∑i=1nxi]y=1n[∑i=1nxi]式中:xi为第i次采样值,n为采样次数,y为n次的采样的算术平均值。在实际测量中,对每个响应信号采集20次,求其算术平均值。对+5V电压信号实时采集信号20次后所得到的数据结果如表2所示。采用算术平均值滤波法,求得y值为5.043101V。2.2采集结果分析同样采用算术平均值滤波法,对电压信号分别为-8V,-5V,-3V,-1V,0V,1V,3V,5V,8V进行采集,采集结果如下表3所示。采用非线性校证中的直线拟合法,利用最小二乘法原理,对以上数据,求一条直线最接近于这些数据点。以实测值为x点,理论值为y点建立坐标系。设最佳拟合直线方程为y=a0x+a1,根据最小二乘法原理,以MATLAB为工具,可求得回归系数a0=0.992652,a1=-0.006144。即:y=0.992652x-0.0061442.3y3.5拟合直线方程对2.5V,-2.5V电压信号采用算术平均值滤波法进行采集,结果分别为2.527460V,-2.510254V,代入拟合直线方程,拟合后的值为y2.5=2.502744V,y-2.5=-2.497953V。其误差分别0.002744V,0.002047V。实验结果满足实际测量需求。3数据采集处理实验两种信号采集方法,一个是通过定义控件变量确定控制板卡,一个通过设定仪器句柄确定控制板卡,在函数的调用和采集步骤上各有不同,但是却都与设备在工控机上所处位置相关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市某科技发展有限公司劳动合同
- 2025存量房买卖合同标准模板
- 2025网络平台网约车服务合同B类
- 2025生产车间租赁合同范本
- 篮球馆广告位租赁合同
- 种植技术员聘用合同
- 2025拎包入住房屋买卖合同范本
- 项目合作框架协议书范本
- 新房屋租赁合同该
- 2025合同区外籍合同者个人所得税申报
- 《诗经》导读学习通超星期末考试答案章节答案2024年
- 《平凡的世界》教学设计 2024-2025学年人教版高中语文选修《中国小说欣赏》
- 2024年四川省成都市“蓉漂”人才荟武候区招聘23人历年(高频重点提升专题训练)共500题附带答案详解
- 网课智慧树知道《运动技能学习与控制(牡丹江师范学院)》章节测试答案
- 7.1.1条件概率(一)课件高二下学期数学人教A版选择性
- 全国高考物理高考题说题比赛一等奖课件物理说题李焕景
- 华为MA5800配置及调试手册
- 巴金名著导读《寒夜》
- 2024年建筑业10项新技术
- 《环境建设工程概算、预算编制办法》
- 2024年上海外服招聘笔试参考题库附带答案详解
评论
0/150
提交评论