历史上的今天
今天是:2025年01月03日(星期五)
2020年01月03日 | 基于LabWindows的滤波分析仪的设计
2020-01-03 来源:elecfans
0 引言
虚拟仪器一般主要包括计算机、软件平台和仪器硬件等三部分。虚拟仪器的硬件形式虽有区别,但基本构成是一样的。即将仪器硬件搭载到计算机上,利用相应的软件完成控制、测试及数据处理和显示任务,从而实现以计算机为基础的数字化采集测试分析系统。
1 虚拟仪器的系统构成
图1所示是一个虚拟仪器的系统结构。由图可见,整个系统分为两个部分,其中硬件部分主要由计算机和数据采集卡以及电压电流传感器组成,数据采集卡采用研华USB4711数据采集卡,具有12位AI分辨率,采样速率高达150 kS/s,同时具有16路模拟量输入、2路模拟量输出、8路数字量输入、8路数字量输出以及1路32位计数器;软件部分采用LabWindows虚拟仪器设计平台,可实现数据采集、录波、波形显示等功能,并可分析信号的有效值、功率、谐波分量、相位角、对称分量等信息。电压电流信号通过传感器可转换成0~10 V,4~20 mA信号,然后通过数据采集卡进行AD转换后传给电脑,并在LahWindows平台下进行数据处理,以记录并显示数据波形。

2 测量原理
本系统可用于测量三相电压电流的有效值、功率、频谱、谐波、相位角、对称分量,下面介绍各个参数的计算及实现原理和方法。
2.1 有效值计算
对于连续信号,假设电压信号瞬时表达式为u(t),则有
然后再对信号进行离散化采样,以得到序列{u[k]},则电压有效值为:
2.2 频谱与谐波分析
采用FFT变换可将采样得到的数字信号中各次谐波在频域中进行分离,以求出各次谐波频率,并得到各次谐波下电压电流的幅值和相角频谱;然后,再将采样得到的数字信号利用对称分量法进行计算,即可求出基波的正序和负序分量。
离散傅立叶变换(Discrete Fourier Transform)的实质是有限长序列傅立叶变换的有限点离散采样,因此,该变换开辟了频域离散化的道路,它可使数字信号的处理在频域采用数字运算的方法进行,从而大大增加了数字信号处理的灵活性。将信号经过模/数转换后变成离散时间信号,一般可采用离散傅立叶(DFT)变换法。其长度为M的有限长序列x(n)的傅立叶变换公式为:

通常快速傅立叶变换(FFT)不是一种新的变换,而是离散傅立叶变换(DFT)的一种快速算法。它通过对DFT变换式进行一次次的分解,以使其成为若干项DFT的组合,从而减小运算量。本文采用的FFT以2为基数,它具有运算效率高,程序简单,使用方便等特点。
3 系统功能
3.1 用户界面功能
本系统的功能主要是通过软件的实现。表1所列是该虚拟仪器的软件功能列表。图2所示是其电力系统录波仪的主界面图。

3.2 数据的采集及存储
为了避免数据阻塞,减少运行过程中数据采集与用户界面的影响,本录波仪的软件部分采用多线程技术。LabWindows提供有线程池(th-readpool)和异步定时器(asynchronous TImers)两种多线程机制。本文采用线程池及机制编写。但采用多线程有可能造成数据不必要的改动甚至出错,因此,LabWindows提供了线程安全队列进行数据保护。它可将采集到的数据写入安全队列,分析数据时再从安全队列中取出。数据存储采用二进制形式,数据采集及存储的部分程序如下:

3.3 数据分析
数据分析主要是分析信号的有效值、功率、谐波分量、相位角等信息。谐波分量、相位角分析采用FFT算法,可通过极坐标的变换得到;功率谱分析也可利用FFT算法及相应算法得到。FFT可以实现时域向频域的转化,其函数原型为:

Int status=FFT(double x[],double y[],intn);
其中,参数x输出为傅立叶变换的实部,y输出为傅立叶变换的虚部。x和y既是输入,也是输出,n为x,y的长度,并且一定是2的整数次幂。实现该功能的核心代码如下:

4 结束语
试验结果显示,本文设计的录波仪不仅可以实现传统录波仪的功能,而且具有造价低,使用方便,可实现资源共享等特点。此外,本系统还可改成分布式系统,即采用嵌入式主板加数据采集卡,然后通过网络上传数据文件,而用上位机接收数据,最后进行处理并显示。
史海拾趣
|
今天晚上在qq上和一位久违的朋友聊了会儿,聊了聊他的近况和未来打算,私企工薪族,有一套贷款的房在还着,经济压力倒也不大,就是对未来有些感慨和迷茫,请我给指点迷津。我先让他描述下他对自己15年后状态的设想(不考虑任何外界因素和现实束缚, ...… 查看全部问答> |
|
我在WIN CE上想通过编程实现输入法的切换。比如我想在程序刚开始运行的时候切换到英文输入法,而当程序再运行到某个时候就 想要切换到拼音输入法,并且还可以控件全角和半角输入。 不知道这个怎么编写?… 查看全部问答> |
|
请问下面这个程序定时器定时的时间是怎么算的,这是一个用模拟交通灯变化的程序。请高手指点一下,定时器的用法。 ORG 000BH LJMP T0_INT ORG 0100H MAIN: MOV SP, #60H LCAL ...… 查看全部问答> |
|
谁有cadence allegro 16.3的安装文件。或者网站也行。发个链接什么给我一个。16.2的也可以。。万分感激 [ 本帖最后由 votex威 于 2011-10-11 21:34 编辑 ]… 查看全部问答> |
|
消息来自《先进能源材料》原文研究报告手机电池带电超过一周,每次充电只需15分钟。美国西北大学的研究人员让我们离这个梦想又 进了一步。据美国物理学家组织网11月15日(北京时间)报道,该校的工程师研制出一种针对锂离子电池的电极,允许电池保 ...… 查看全部问答> |
|
如题,某段代码需要用汇编读取一个局部变量的值,应该怎么写?例如有一个char c,怎么把c的值度到A寄存器里面?有一个uint16_t wd,怎么把wd的值读到X寄存器里面?… 查看全部问答> |




