第6.4节 架构应用实例——交流RMS测量
为了更清楚了解架构,下面就看一个设计实例。
设计要求:
输入信号频率:10-2000Hz
输入信号幅度:0.1-5V(RMS)
使用硬件:采样速率不低于100 kHz/s
用虚拟仪器技术实现对上述信号的有效值测量。
实际上可选用的板卡很多,这里使用NI USB-9215BNC。该板卡最大采样速率100 kHz/s;输入信号范围:10Vp;16位。
上图是按基本架构设计的10-2000Hz有效值测量程序框图。下面对各单元的设置给出一个简要说明。
1、DAQmx创建任务
因测量架构是基于任务的,所以用来创建一个测量任务:
新任务名称——10-2000Hz有效值测量。
错误输入——设定一个常数(没有错误发生)。
2、DAQmx创建通道(AI-电压-基本)
为创建的任务设置通道参数:
物理通道——用来定义测量使用的物理通道(输入控件)
分配名称——定义一个字符串常量,内容是:RMS测量(将会在图形显示器上看到的曲线名,见前面版图)
最大值——使用常数来确定测量通道输入信号的最大值(注意:这里指的是+峰值)
最小值——使用常数来确定测量通道输入信号的最小值(注意:这里指的是-峰值)
输入接线端配置——枚举常数,选择“默认”
3、DAQmx定时(采样时钟)
为创建的任务设置定时参数:
采样率——使用常量来确定任务的采样速率100000Hz/s,实际上输入信号的最高频率为2000Hz,假设按照采样定理选择4000Hz/s的采样速率就可以了,但是这仅仅是一个理论值,实际应用中通常选择大10倍,为40000Hz/s,如果在考虑谐波的影响,这里选择100000Hz/s
采样模式——枚举常数,选择“连续采样”
每通道采样——没有设定,系统自动配置,见右表
4、DAQmx开始任务
无须配置
5、DAQmx读取(模拟波形1通道N采样)
为创建的任务执行数据采集,因放置在循环内,所以是循环连续采集:
每通道采样数——这是一个很有意思的参数,应该在使用中请注意以下几点:
a)、在例图中,给出的是:10000,数值上比任务中的采样速率低10倍,这意味着数据(RMS数值显示控件的更新速率)显示的更新率是10次/s(指我们可以在显示控件中看到数据频繁变化,类似数据不稳定),如果它与采样速率在数值上相同,那么显示的更新率就为:1次/s。如果在While循环的“循环计数”端接入一个数值显示器,可以观察到不同的该值将导致循环的变化率的不同(也就是显示的更新率不同);
b)、如果这个参数在数值上与采样数率相同,数据分析的结果满足采样定理。但是如果不相同,这个参数相当于采样定理中的采样数率,尽管它是个数值。是否可以这样理解:若每秒采集了100000个数据,可是用于数据分析的是10000/0.1s,所以此时它也就等效于采样速率(0.1s时的采样数率)。这样就意味着真正用于数据分析的数据也必须满足采样定理,我们才可以获得满意的分析结果。
这个概念的理解是比较别扭的,也不知道谈清楚了没有?在实际应用中,的确发现了这样的情况,希望数据显示的更新尽可能的快,此时被分析的输入信号的频率上限就降低了。
6、基本平均直流-均方根
为创建的任务做测量(目的)结果分析:
重置——这里设定为真,在实际应用中,我曾发现,如果该参数为“假”,当输入信号发生阶跃变化时,比如:从1V变化到2V,分析结果变化的很慢,经过几次显示更新后才能跟上去,而当该参数设定为:“真”, 信号从1V变化到2V发生变化后,马上就得到了更新。
7、停止控制
关于这个 vi,个人主页的“vi设计”一栏中讲过,这里不再谈。
8、DAQmx清除任务
无须设置。
9、简易错误处理器
建议程序设计时加入这个vi,并选择图例中的参数。好处是:将来打包后运行时一旦出现错误可以由操作者来停止程序运行,否则,在出现错误时,会出现死机的现象(没办法停止程序运行)。
输入信号没有加入,差分输入端开路测量的是:最大正偏置电压。
简单总结:
通过一个简单的例子,进一步介绍了测量程序架构的实用方法(包括了数据分析)。很遗憾的讲,这部分内容都是过去编程时对一些问题的简单处理方法或者是当时的理解,时间长了有可能记得不太准确,这次又没有时间验证,不对的地方还要请大家给与一定的谅解!
下一单元:关于DAQ助手。