Day: April 6, 2011

  • 数据采集和处理

    开学以来这段时间一直在操心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里面有所介绍: Ares仪器误差 View more presentations from Andrew Sun 其中,关于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…