多路交流异步采样及DSP软件校准技术
扫描二维码
随时随地手机看文章
本文介绍了一种在DSP平台下对多路交流信号采样时采用的一种异步采样方法。
在对电力线路的电压和电流进行测量时,为使测量值具有较高的精度,一般都采用交流采样技术。目前,比较常用的交流采样方法是:在交流信号的一个周期内,等间隔采样N点数据,然后利用傅立叶变换,计算出基波及一些谐波的有效值,为衡量供电质量通常还要求计算出各信号的相位。但由于同一测量装置要同时对很多路电压和电流量进行采样,而采样所用的A/D的输入又有限,不可能对电压和电流量同时进行采样,所以,一般将所有的交流通过多路开关的切换依次送入A/D进行采样。由于采用的是异步采样,所以同一个线路中的A、B、C三相之间的相位就会产生误差,所测出的同一个交流量的电压值和电流值之间的相位也会产生误差,如果不对相位采取一定的处理措施,就不能有效的提高计算值的精度。
硬件系统
外部输入的电压电流经过电压互感器或电流互感器,经过信号调理,变换成小电压信号,把这些小电压信号经过滤波、放大处理之后送入模拟多路开关。接入多路开关的信号AIN1、AIN2、…AIN15的切换由DSP通过FPGA来控制。多路开关的输出接电压跟随器,以降低信号源的输出阻抗,保证得到较高的采集精度。经A/D转换完成后的数据由DSP芯片进行采集处理。
A/D可以选用Linear公司的16位双极性高精度模数转换器LTC1609。
如果进行N点傅立叶变换,应该在一个周期内等间隔均匀采样N个点。但如果以固定的时间间隔进行采样,当电网中交流信号频率偏离50Hz时,所采集到的N个点就不一定恰好为一个周期的数据。所以,在本系统中,DSP实时监测交流信号周期的变化,根据当前最新的周期值TAC计算出两个采集点之间的间隔时间为:
TSMP=TAC/N
DSP将TSMP送给FPGA,FPGA经过运算,产生两个信号:一个是采样命令信号SMP、另一个是启动A/D转换信号R/C,这两个信号都是低电平有效
当SMP信号到来时,表示新一轮采样的开始。SMP信号后紧跟15个R/C信号,依次负责对15路输入信号的A/D转换。所以每一轮采样可以对15路信号各采集一个点。每个点的数据经过64阶有限冲激响应滤波器滤除高次谐波之后存储在缓冲区内。
当A/D采用内部时钟模式时,先将A/D的片选/CS置为低电平,在R/C信号的下降沿,A/D将当前输入的信号转换为保持状态,开始进行A/D转换,同时A/D开始将上一次的转换结果向DSP发送。转换开始后R/C必须在1ms内跳回至高电平,以确保输出结果不会发生错误。本系统中,R/C信号的低电平持续0.5ms。两个R/C信号的下降沿之间的间隔TRC设置为12ms,以保证A/D启动下一路转换时当前的转换能够结束,以及上一次转换后的结果送入DSP。
校准
经过N个SMP信号之后,DSP就为15路信号各收集了一个周波共点的数据。对点数据进行快速傅立叶变换,得到各路信号的基波和若干次谐波所对应的频域值。从而可以求出有效值、相角等各个量。但实际上由于信号的幅度和相位经过变换、滤波、放大、采样、量化后处理时都要偏离理论值,所以,对于FFT运算的结果要进行校准处理。
可以用一个标准三相交流电源,将它的输出电压调整为电压100V、输出电流调整为5A、频率为50Hz、ABC三相各相差120度,然后将电压电流信号接入系统对应的输入端,通过上层软件向DSP发送校准命令,开始计算幅度和相位的校准参数。
幅度校准
如果有效值为100V、频率为50Hz的电压信号经过A/D转换后的数值大约在P左右,那么,我们就可以用P作为一个标度,用它来代表100V。同样,我们可以Q代表有效值为5A、频率为50Hz的电流。
在校准过程中,假定得到的m路电压的有效值的数字量为=[V1,V2,...Vm],得到的电流的数字量为=[I1,I2,...,I15-m],则我们把它们通过一个电压校正系数=diag[a1,a2,...,am]和电流校正系数=diag[b1,b2,...,b15-m]将其校正到标度上去。即有如下公式:
可求得
ai=P/Vi,b=Q/Ij 其中i=1,2,…,m;j=1,2,…,15-m
在系统正常工作时,将得到的信号的幅度有效值乘以校准系数可以得到比较精确的数值。
相位校准
交流电的相位关系是反映供电质量的比较重要的参数。相位校准从两个方面进行:一方面要补偿多个信号由于异步采样造成的相位偏差;另一方面要校准信号调理过程中造成的相位偏移。
我们主要关心交流信号相位之间的相对关系,所以,以中间第8路信号AIN8为基准,其它信号的相位都向它校准。那么第8路信号以前的信号的相位都是滞后的,而第8路以后的各信号的相位都是超前的。对于滞后的相位要加上一个校准相位,对于超前的相位要减去一个校准相位。所以,第i(i=1,2,...,15)路信号的基波需要校准的角度q为:
qi=(8-i)×(TRC/TAC)×360o
=(8-i)×g;设g=(TRC/TAC)×360o
其中,TAC是交流的正常工频周期20ms,TRC是相邻两个R/C信号的间隔时间。谐波的校准角度应该再乘以谐波次数,假设只计算到n次谐波,则可得第一组校准参数为:
其中,第i行代表第路信号的基波与各次谐波需要校准的角度。
如果利用傅氏算法求出信号的频域表示,那么对它的相位补偿角度后信号可表示.
经过上述对相位的校正,所有的信号都相当于在同一时刻被采样。然后,再对各路信号校准由于在信号调理过程中造成的相位偏移。先求出各路信号基波的相位,然后将接入A相的第1、4、7、10、13路信号基波的相位减去120度,将接入C相的第3、6、9、12、15路信号基波的相位加上120度。这样各相信号之间就消除了本身固定的120度的相位差。这时候得到的“对比相位”是由于各路信号经过的物理通道不同而产生的。仍以第8路信号为基准,将各路信号的对比相位减去第8路信号的相位之后的值作为另一组相位校准参数:
最后将两组相位校准参数相加,即为最终的相位校准参数在系统正常运行时,利用对信号进行相位校准。
仿真验证
利用Matlab工具以一路信号为例说明对幅度的校准方法。
假定有一包含有高斯白噪声的正弦信号x=sin(2pft)+0.1×randn(1,N),其中f=0.25,fs=1,N=64。randn()函数产生一个均值为1呈正态分布的随机信号。
通过对一个周期内的64点数据进行FFT运算,利用公式求得信号的幅度值为AC=1.104。其中Ar和Ai分别是第次谐波的实部和虚部,n是计算中所使用到的最高谐波次数(n≤32,这里取n=16)。如果预先通过前面所述求得校准系数a,就可以得到校准后的幅度值。在这里,根据信号x是由幅值为1的正弦波和均值为0.1的加性高斯白噪声组成的特点,由前面求校准系数的公式,我们可以假定a=1/(1+0.1)=0.909,则可得到最终校准后的幅度值为:A=AC×a=1.104×0.909=1.003。与实际的幅度值1.000相比,精度可达0.3%。
通过在实际产品中采用这种技术发现,一般情况下,精度可以控制在0.5%以内。可以满足大多数测控场合对精度的要求。
对于相位的校准,方法与此类此。