文档介绍:电网谐波测量
(1)对容量在100kVA以上的整流装置与非线性用电设备,必须就地增设滤波装置,吸收高次谐波。
(2)具有整流元件的设备,虽是小型用电器,也要增加整流相数与脉冲数,或将电网220V的电压通过变压器降压,然后再用电阻分压(当然使用了变压器会对我们要处理的电网谐波有一定的影响)。将电压采样电路和数据采集卡连好后,我们便将电源打开,接着打开我们要运行的程序。点击程序运行按钮,系统自动弹出一个框,在这个框中,我们进行一些参数的设置,参数设置完后我们便开始数据采集,采集的数据将在左半边出现,而图形以正弦波的形式在右半边出现。采集结束后点击存盘按钮,数据将存入相应的盘中。在操作中我们发现如果使用单通道输入会有一些干扰,而使用双通道输入则可以抑制一些干扰。
4 数据处理
4.1 综述
数据处理就是对采集到的信号进行分析,分析的步骤有以下几方面:首先取两组相差为一个采样周期的两组数据,然后对数据加布莱克曼-哈里斯窗, 接着对数据作DFT变换,最后用查询方法寻找真实谱线,:
4.2 VC++调用MATLAB
4.2.1 VC调用MATLAB的三种方法
Visual C++是基于Windows平台下的一种应用程序开发环境,。,并且能够直接与系统的底层硬件交换数据。,具有容易维护、界面友好及运行速度快等许多优点。但是
, ,不易掌握。因此,
VC调用MATLAB引擎
结束
开始
查找完?
查找真实谱线
作DFT变换
加窗
取两组数据
数据处理部分流程图
环境与MATLAB进行有效连接将会使得VC程序的开发大大简化[13]。
以下是三种VC调用MATLAB的方法,它们各具特色,在应用中要结合具体需求进行选择。第一种:MCC 编译器法可以直接对MATLAB ,在MATLAB提供的C/C++函数库、图形库的支持下,能将绘制各种复杂图形的MATLAB程序高效的转化为C/C++代码,与单纯用VC编程实现相比大大减轻编程人员的工作量和编程难度;第二种:采用Matcom 编译法进行转换更加方便,且生成的C/C++代码的可读性较好,是解决图形、图像处理问题的一种理想方法;第三种:使用MATLAB计算引擎法时,由于其工作时MATLAB后台工作,只有小部分引擎通信函数库与程序相连,因此节省了资源,
提高了应用程序的整体性能和处理效率。
4.2.2 调用MATLAB引擎
MATLAB允许用户通过MATLAB引擎调用MATLAB的函数,即将MATLAB当作应用程序进行数据计算的引擎。MATLAB提供了一系列操作MATLAB引擎的API函数,通过这些API函数,用户可以充分发挥MATLAB进行矩阵计算的优势,将应用程序的计算功能交给MATLAB引擎完成,而界面部分则可以通过采用VC++来实现。这些为应用程序的实现提供了很大的灵活性。
1、API函数介绍
1)int engClose(Engine *ep);
退出MATLAB引擎。
2)int engEvalString(Engine *ep,const char *string);
使MATLAB引擎执行字符串string中的表达式。
3)mxArray *engGetVariable(Engine *ep, const char *name);
从MATLAB引擎工作空间中复制名字为name的变量。
4)int engGetVisible(Engine *ep,bool *value);
判断MATLAB引擎工作窗口是否可见。
5)Engine *engOpen(const char *startcmd);
启动一个MATLAB引擎,在Windows操作环境下startcmd参数必须为NULL。
6)Engine *eng OpenSingleUse(const char *startcmd,void *dcom,int *retstatus);
启动一个只允许用户使用的MATLAB引擎,在Windows系统中startcmd和dcom参数始终为NULL,retstatus为返回engOpenSingleUse函数的执行状态。
7)int engOutputBuffer(Engine *ep,char *p,int n);
设置MATLAB引擎的输出内存,存储engEvalString函数执行