数据采集和处理

开学以来这段时间一直在操心ARES流变仪模拟信号的数据采集问题,碰了些壁。现在还没完全实现,先记点笔记,等完全实验了,我就要把整个过程整理出来,放在英语个人主页上。

目的

从ARES仪器背板取模拟信息的目的是进行更加自由的实验数据处理。具体地说,ARES随机软件TA Orchestrator 7.2.1软件包的主程序Orchestrator内置的动态测试方式都不能显示每个数据的原始波形情况,数据点的采集时间和采集区间也不能自由设定。如果使用Arbitrary Waveform Test,每个区间(zone)的数据点数是有限的,对于振荡频率较高的实验就无法获得完整波形。以上限制是我考虑自己采集ARES模拟信号的主要原因,但是建立了采集平台之后能做的事就不仅限于此了。

ARES模拟输出信号特征

关于这方面信息我之前已经贴过了,由于方便所以不妨再贴(豆丁网有些图片转换不正常):

数据采集设备

从上面的ppt里也看到,我选择了NI USB-9215A。安装了附送的LabView SignalExpress软件之后,可以很方便的看到信号和调整采样率(上面的ppt有例子)。

实时数据处理

数据处理这一步分两个方面,一数学方面,用什么公式从原始数据提取频率、振幅、相位等信号;另一方面就是软件实现。

关于数学方面,有两个方法,一个是离散Fourier变换,另一个是互相关(cross correlation)。这两种方法在以下ppt里面有所介绍:

其中,关于Windows Correlation技术,我还要认真看一下,思考能不能也用类似的技术从非线性数据里获取高次谐波。

然后,关于软件方面。起初我只是从LabView SignalExpress里,把时间序列数据存到txt文件里。然后在OriginPro里打开,去头去尾,FFT,作图,用取值软件取出峰值和峰位,然后记录下来,每花这一番功夫其实只获得一个数据。实际应用的时候肯定不能这样搞,而是要利用计算机的处理速度,实时地给出最终的流变数据。目前有几种可能的途径。首先,LabView SignalExpress可能支持某种实时的频域分析,甚至支持自定义函数。如果这个有戏的话,应该是最优先采用的方法。这方面让许国智师弟回去看help去了。

其次就是使用TA Orchestrator软件包附带的RheoCorr软件。这个软件是属于Fast Data Sampling Option的一部分,在安装TA Orchestrator要勾上此项才会有。TA的Fast Data Sampling Option是ARES的一个附件。它包括一个NI DAQPad-6020E,以及使用TA Orchestrator软件包中相关附件的一个License Key。其中DAQPad-6020E从流变仪获取模拟信号,转换后可由RheoCorr软件读取并自动进行处理。RheoCorr跟Orchestrator有个接口。因此使用Orchestrator控制流变仪的同时就可以调用RheoCorr从而调用DAQPad-6020E。因此整个workflow也很integrated,听起来是个很不错的选择。

理论上说,使用其他NI公司的DAQ产品,也可以配合RheoCorr。我就寻思着现在购买的NI USB-9215A是不是也可以这么用。先问TA公司的客户要了一个License Key(友情免费)。但是发现,RheoCorr软件不支持新的DAQmx软件包的动态链接库,由于这是RheoCorr软件设计时固有的特点,没办法,只能迁就RheoCorr软件,卸载掉DAQmx,改装Traditional NI-DAQ。这东西原来还不支持64-bit Windows,于是把Windows也卸载了,改装一个32-bit版本的。到最后,最致命的问题出现了,我的NI 9215A产品太新了,不支持Traditional NI-DAQ!所以,想让NI USB-9215A跟RheoCorr软件“亲密接触”的可能性基本上不存在了。

不过,RheoCorr软件也并没有什么特别的技术。既然迁就不了它,那就自己写一个得了。

所以第三个方式就是使用Matlab来处理数据。这就需要Matlab和数据采集卡的驱动程序之间有一个数据接口。MATLAB自带的Data Acquicition Toolbox就支持NI DAQmx。可是我在我机子上的MATLAB上找了半天就是找不到Data Acquisition Toolbox,上google折腾了半天,才搞清楚原来Data Acquisition Toolbox不支持64-bit Windows,因此64-bit的MATLAB是不含这个toolbox的。Easy,把我原有的MATLAB卸了,重装了个32-bit版本的,就见到了这个toolbox了。关于Data Acquisition Toolbox的应用,最简单地范例就是以电脑自带的声卡作为硬件,拿mic录声音。但是要拿外接的NI USB-9215A作为硬件,可能就不那么顺利了。这个要等回实验室之后插上数据卡来试。这里有一个针对NI DAQmx范例文件。

除了MATLAB自带的Data Acquisition Toolbox之外,NI自己也做了一个DAQmx Tools。到底哪个好,也要通过常试比较一下。

最终,利用这些Toolbox,我还要自己写一个完整的程序,以形成一个比较整合的自动化的流变测试实验流程。真是任重而道远啊。

6 thoughts on “数据采集和处理

  1. 孙尉翔 Post author

    我们都想到一块儿去了,我上个回复只差没多说。taobao上淘确实很多。不过我的实验对时延要求比较高,不想用那种multiplex的,最好每个channel独立一个A/D变换模块。上淘宝店买,那些卖家好像不知道什么叫multiplex,产品说明更没有清楚写明。财务上也确实不好处理,关键是我不是专家又不差钱,买个NI的就省事了。

    我买啥都买领导品牌。因为凡是仪器都必然会坏。买大牌子主要是售后好说话些。NI那边还一直要过来亲自教我使用(当然,主要是推销他们的LabView)。

    我们GTalk上都加了,有事没事Gtalk上聊吧。

  2. Peter

    可以去taobao淘个旧卡,可能就是财务上不好处理。我们这里有个老师taobao买个GPIB卡才800,我们在NI代理那里买成3000多……

  3. 孙尉翔 Post author

    是RS232,理论上确实应该走到指令集这一步。不过说明书没有介绍指令。我估计这不是仪器商打算允许用户做的事情。如果我是TA公司的工程师,那我可获得的资料当然就大不相同了。

    现在支持由TA Orchestrator软件触发运行的就只有现成的RheoCorr软件。这条路现在唯一的障碍就是老的Traditional NI-DAQ驱动程序支持不了我手头上的新采集卡。当初买采集卡的时候不知道有RheoCorr,打定主意用MATLAB的。其实弄这套家伙目的只是完成一些很特殊的流变测试。基本测试用Orchestrator完全足够的,所以就不较真了。

    说起来我导师也挺支持我的了,我都马上走人了,还花钱让我整这个,整完了只有我懂用的东西……

  4. Peter

    唔 那确实没什么好办法了。流变仪是RS232接口吗,说明书会不会有相关RS232的指令供开发呢。

  5. 孙尉翔 Post author

    谢谢啊。LabView是指最大套的那个玩意吧。没错,用那个可以自己设计作业流程,把整个测量任务都纳入在一个软件内做。但前提是我除了数据采集之外还能控制流变仪。现实是我的流变仪不接受外部控制,只接受它自带软件Orchestrator的控制。因此作业流程就只限于Orchestrator提供的各种测试方法或者它们的组合了。Orchestrator是躲不开的,现在是希望编程的时候能够尽量利用信号特征触发,使用户无须Orchestrator和Matlab两头同时控制开始和结束。

    当然了选择MATLAB主要是自己熟悉。

Comments are closed.