基于谐波理论和Cotex-M3的数字式相位差测量系统设计

2018-05-23 01:06
计算机测量与控制 2018年5期
关键词:测量方法谐波电路

(无锡交通高等职业技术学校,江苏 无锡 214028)

0 引言

相位差测量是现代电子测量技术中基本的测量手段,在电力设备监测、同步信号测试与分析、数据处理、无线通信、自动控制应用等领域对于信号相位差测量的应用需求不断增加,特别是同频正弦信号相位差的测量在实际的工程设备设计中具有重要意义。例如在GPS导航应用中,只有测出载波信号相位差,才能实现目标的精确定位;在激光测距应用中,需要精确测量出发出与返回激光调制波的相位差才能测得较为精确的距离等。在实际应用中相位差测量的精度直接决定了设备和仪器的设计性能。相位差测量的方法很多,传统的模拟测量法相对复杂,成本高,抗干扰能力较差,测量精度也很难提高。随着嵌入式技术和电子技术的发展,数字式测量能够更好的实现测量精度、测量分辨率的提高,对系统智能化、直观化设计更为有利。因此,本文设计并实现了以Cortex-M3技术、信号谐波采样技术为基础,结合DFT非整数修正算法的数字式相位差测量系统。

1 相位差测量方法

相位差测量从方法上讲通常可分为模拟法、数字法,模拟法测量是将被测信号的波形通过变换处理成便于测量的波形直接采样数据并进行数据处理获得的相位差;数字法测量则先将被测信号处理成达到测量要求的信号,然后通过数字采样技术按照数字序列对被测信号进行多点数值采样,在程序中做算法处理获得相位差[1]。

常用的模拟测量包括波形转换法、过零法等,波形转换法是通过硬件电路将被测周期信号转换成可进行有效测量的三角波、方波、锯齿波等波形,然后通过测量变换波形的参数计算出被测信号的相位差。过零法相位差测量常采用过零时间法与过零电压比较法,过零时间法是通过测量被测周期信号产生过零点的时间来计算两信号之间的相位差;过零电压比较法是通过测量两被测信号到达过零点附近的电压值,根据其压差特性关系计算相位差。以上的两种模拟测量法在被测信号谐波成份比较复杂的情况下不太适用,同时使用时间法进行相位差测量需要高精度计时,对过零点时间的测量准确性要求很高,所以此类方法往往会出现较大的误差。

常用的数字测量法有频谱分析法、相关分析法等。相关分析法是通过采样两个同频信号相关函数零时刻的值,利用其相位差与其信号函数零时刻值成正比的关系计算出相位差,但是在实际应用中得到精确的过零时间是比较困难的,再加上空间干扰,故测量精度很难保证。频谱分析法主要根据相频特性确定两信号的相位差,通过离散傅里叶变换(DFT)将时域信号变换到频域来实现。这种方法是全数字技术测量,具有测量精度高、抗干扰能力强的优点,但在非同步采样时,信号频率的漂移对测量影响很大,通常只用在正弦或余弦信号的相位差测量。

从系统设计和实际应用的角度看,模拟测量法通常硬件电路较为复杂,需要用到专门芯片,导致设计成本高,系统更为复杂。相比之下数字测量法由于其外围电路简单,完全采用算法控制,系统通用性较强,通过改变系统程序算法便可适应不同的测量对象,而且测量精度一般高于模拟测量法,目前被广泛使用。

综合以上分析,在对周期信号初相进行分析的基础上,本系统的设计采用文献[1]提出的非整数相位差测量方法[1](NI-PDM)。这种数字式测量方法在程序上易于实现且具有以下特点:1)能够用于满足狄里赫利条件的多种复杂信号相位差的测量; 2)对频率漂移的适应性强; 3)相位差测量结果数度高;4)抗噪声和干扰能力强。

2 系统方案的设计

2.1 系统测量方法的实现

1)周期信号的初相。

根据文献[1]提出非整数相位差测量方法,周期信号的初相可表达为下式。

(1)

通过式(1)重复计算可得到新的φ,直到φi+1-φi<10-3。

2)谐波参数的测量方法。

本系统在测量相位差时首先要测出被测信号的初相,这就需要分析被测信号的谐波,算出k次谐波参数Ak、φk。通常我们基于频域理论和时域理论进行谐波分析,但这些方法都存在相应的应用缺陷。为了达到更好的测量效果,本系统采用准同步 DFT 非整数修正算法[1],此方法对于两同频信号的相位差分析包括5个步骤:

①通过ARM控制器的AD端口周期性采样X+2个有效数据,X=nN。以下计算式中:N为系统设计的被测信号周期采样点数的理论值,n是迭代运算的次数,f(i)为信号函数第i个采样点的值。

(2)

④通过计算式(3),计算出被测信号的频漂值m1。

(3)

⑤k次谐波的频漂值mk=km1,通过计算式(4)可计算出多次谐波参数。

(4)

计算式(4)中:

ak为k次谐波的实部;bk为k次谐波的虚部;Ak为k次谐波的幅值;φk为k次谐波的初相。

2.2 相位差测量装置的整体设计

本文设计的相位差测量仪系统原理框图见图1,包括取样电路、前端信号处理电路、ADC采样、Cotex-M3小系统、人机界面、通讯、电源与辅助功能等模块。两路被测信号,经过前端信号处理电路送入控制芯片的ADC端口进行数据采集,数据经过准同步DFT非整数修正算法程序进行处理,得出相位差结果显示在人机界面上,并可由串口将结果传输到计算机进行分析。系统主要实现对被测信号f1(t)和f2(t)的相位差参数测量,信号取样选用电流型互感器作为基础元件,通过前端信号处理电路实现采样转换,并调节电路参数对两路被测信号进行整形、滤波、放大,将采样信号处理成适合STM32芯片ADC端口测量范围的有效信号,系统采用STM32芯片自带的ADC模块及简单的外围电路配合系统算法及程序实现f1(t)和f2(t)两路信号的同步采样。

图1 相位差测量系统示意图

系统在设计中采用TI公司的Cortex-M3内核的新一代32位ARM微处理器STM32F103芯片为核心微处理器。此芯片的寄存器、存储器、数据总线为32位,具有较强的运算能力和处理性能。芯片采用具有独立的指令总线及数据总线的哈佛结构,程序执行时能够同时进行数据及地址访问,在进行大量数据处理时不再占用指令总线,具有较高的程序执行效率,非常适合本系统中进行复杂的数据处理与算法实现。STM32F103芯片集成了丰富的增强型外设,包括双通道ADC模块、32位多功能定时器、中断型I/O端口、七通道DMA、SPI、I2C、USART等多种高速通信接口。系统程序设计上采用TI公司工程应用级别的程序库和DSP算法库,可以直接调用FFT算法函数实现编程算法。

3 系统硬件电路设计

1)信号调理电路的设计。

前端信号调理电路主要为了实现信号质量改善及幅度的可调,通过程控放大控制实现,信号调理主要电路如图2所示,由高性能四运放MC33079组成两级滤波积分电路,在将信号送入ADC采样之前,先使其经过一级射极跟随电路,射极跟随器的输入电阻很大,输出电阻很小,可以更好的满足采样要求。

图2 信号调理电路

2)Cortex-M3系统设计。

在经过前端信号调理电路之后,信号就进人Cortex-M3数字测量系统。系统主控电路如图3所示,包括最小系统、信号采样、信号控制、串口通信、液晶显示等电路模块。

系统采用Cortex-M3内核的STM32F103C8T6芯片,该片工作频率为72 MHz,具有37个IO口、16个通道12 bit模拟量采样接口、2个串口通信接口,模拟量采样频率最高可达1 MHz,可以满足系统对被测信号的采样要求,系统的运行频率及硬件资料也可以达到人机界面的设计需求。系统硬件上设计了4路模拟量采样通道进行被测相位信号及相关控制信号采集,一路串行接口,一组液晶控制接口,采用5 V、3.3 V低电压供电。

为了实现本系统采用的相位差初相测量算法,要求在系统程序中能够实现FFT算法,程序编写中采用了ST公司的STM32F10x_DSP_Lib工程版程序库,库中包含了64点、256点、、1 024点的FFT算法函数,本系统程序编写通过调用256点FFT函数实现准同步DFT非整数修正算法[5]:

void cr4_fft_256_stm32(void* pssOUT, void* ps-sIN, u16 Nbin);

其中pssOUT为输出数据所在数组指针, pssIN为输入数据所在的数值指针,Nbin为输入数据个数这里取值为256.需要注意的是数据的存放格式:所有数据必须是32位的数据:虚部放在高16位,实部放在低16位[10]。

STM32F103C8T6的12位模拟量模块最高采样频率可以达到1 MHz,还可以利用过采样和求均值技术将STM32F103的片内12位ADC提升到16位分辨率进行参数测量,能够满足高精度、高速采样的系统设计需求。

4 系统机软件设计

STM32系统要负责测量参数的计算和数据显示,软件流程如图4所示,系统显示采用128*64 规格的LCD液晶模块,通过系统辅助模块中的按键切换相位差与测量信号频率的显示。系统完成被测信号相位差计算后,根据结果的数值大小自动选择并切换显示方式,判断出当前在液晶显示屏上的数据标志位,以确定是显示系统频率还是显示被测信号的相位差。系统程序处于循环扫描工作状态,不停的读取数据并进行处理与显示。

系统程序中的相位差测量过程为:

1)采用STM32的自带12位ADC模块实现同步采样,同时采样被测信号f1(t)和f2(t)的X+2个采样点数据;

图3 相位差测量系统主控电路

图4 系统程序流程图

2)利用STM32自带的FFT函数库实现准同步DFT非整数修正算法[1]计算出谐波参数A1k、φ1k和A2k、φ2k,k=1,2,…,m;

3)依据牛顿迭代算法程序计算出f1(t)和f2(t)的初相φ1、φ2;

4)根据相位差与初相的关系:计算出f1(t)和f2(t)的相位差结果。

系统初始化程序中,配置数据采样频率fs=12.8 kHz,周期采样点数N=256点、迭代运算次数n=8。

系统的相位差可根据前文中的计算方法得出,根据以上程序设计流程,只要系统数据采样科学准确,则可确保信号参数的测量正确及测量数度。系统在测量过程中理论上必须对两路被测信号实现同时采样才能得到精确的测量结果,但是STM32处理器是顺序执行程序的要做到绝对同时采样是不可能的,两路信号是在不同时刻轮流顺序采样的,存在一定的延时并且对应着固定的相位差,要消除此固定测量误差,可以按先测通道1再测通道2的顺序测量两通道的相位数据,测得的相位差为φ<+D,然后再按先测通道2再测通道1的顺序测量两通道的相位数据,测得的相位差为φ<-D,最终测得的实际相位差应该等于这2次测量结果的平均值。

5 系统测试结果

实测中,系统分别对两个被测信号的波形、频率、幅度不同情况下的特定点进行相位差测量,测量结果记录在表1中。

从上述测试结果可知,系统的设计指标基本达到预期设计要求,具有较好的实用价值。

6 结束语

本文设计了以STM32F103VCT6为核心相位差测量仪,完成了将STM32处理器应用到基于谐波理论和Cotex-M3技术的相位差测量系统中,在一定程度上提高了系统的性能和稳定性。通过对实际测量数据的分析,系统功能基本达到了预期的设计要求,具有较高精度的相位差测量数度,其相位差测量的误差控制在1%以内,达到了工程应用要求。同时本系统在实际应用中可以用在常见的正弦、余弦信号系统中进行相位差测量,也能够满足其他相对复杂波形信号的相位差测量,具有较强的频漂适应能力,在±10% 的信号频漂范围内可以保证较高的测量精度,具有较高的抗干扰能力。

表1 本系统相位差测量数据

参考文献:

[1]傅中君,王建宇,周根元,等.基于初相和谐波理论的相位差测量方法[J].电测与仪表,2015,52(23):76-80.

[2]吴 静.金海彬.高准确度的相位差测量方法[J].中国电机工程学报,2010,30(13): 41-45.

[3]姚天任.数字信号处理「M].武汉:华中理工大学出版社,1992.

[4]李德明,徐庆富,李长俊,等.高精度数字式相位差测量系统设计[J].自动化测试技术,2015. 23(6):1925-1927.

[5]杨新华,陈玉松,金兴文.基于FFT谱分析算法的高精度相位差测量方法[J].自动化与仪器仪表, 2006(6):75-77.

[6]涂亚庆,沈廷鳌,李 明,等.基于多次互相关的非整周期信号相位差测量算法[J].仪器仪表学报, 2014,35(7):1578-1585.

[7]张鸿博,蔡晓峰,鲁改凤.基于全相位FFT改进相位差法的自动准同期并列参数测量[J].电力系统保护与控制,2016(4):76-83.

[8]沈廷鳌,涂亚庆,刘翔宇,等.基于相关原理的非整周期信号相位差测量算法[J]. 仪器仪表学报, 2014,35(9):2153-2160.

[9]傅中君,王建宇,周根元,等.一种远程非同步的工频信号相位差测量方法[J].仪器仪表学报,2015,36(5):1039-1046.

[10]邱良丰,刘敬彪,于海滨.基于STM32的全相位FFT相位差测量系统[J]. 电子器件,2010,33(3):357-361.

[11]尹晓慧,陈 劲,张宝菊,等.低频数字式相位测试仪的设计与实现[J].天津师范大学学报(自然科学版),2012,32(1):39-42.

[12]沈廷鳌,涂亚庆,李 明,等.数据延拓式相关的相位差测量方法及验证[J].仪器仪表学报,2014,35(6):1331-1337.

猜你喜欢
测量方法谐波电路
基于OpenCV的车身匹配间隙测量方法
关于电力电网中产生谐波的分析探讨
电路的保护
基于波动量相关性分析的多谐波源责任划分方法
航空发动机推力测量方法
巧用立创EDA软件和Altium Designer软件设计电路
电力系统谐波检测研究现状及发展趋势
基于MATLAB模拟混沌电路
光电倍增管分压电路
电力系统谐波状态估计研究综述