基于ARM的时变频率测量算法设计
2021-12-30党存禄陈国国
党存禄,陈国国
(兰州理工大学 电气工程与信息工程学院,兰州 730050)
国家规范对电力系统的频率有着严格的要求,一般情况下频率的偏差值为±0.2 Hz,它反映的是系统有功功率的平衡[1]。风力发电和光伏发电的装机容量越来越大,但是在这些新型能源系统中,频率是不稳定的,是随着时间不断变化的[2]。例如:负载波动引起的有功功率不平衡,系统发生各种故障时,也会引起有功功率的不平衡。波动的频率不仅会影响到其测量的准确性,而且有可能会使低频减载装置误动作或拒动[3]。
在新能源系统中,频率的测量主要由嵌入式微机系统来实现[4]。随着科学技术的发展,新能源系统中各种自动装置对系统频率的测量精度要求日趋严格[5]。当前,离散傅里叶变换(DFT)、快速傅里叶变换(FFT)以及过零点测频算法是嵌入式装置中普遍使用的软件测频算法[6]。其中DFT 测频算法当采样点数比较少时,会发生频谱泄漏和栅栏效应[7],并且高次谐波对其影响很大,对以上的问题后期进行了各种各样的改进算法,其中加窗函数修正的DFT 测频算法[8]存在主要的问题是它的实时性达不到预计的要求;文献[9]结合插值和迭代的优点得到的DFT测频算法计算复杂,反应周期长,不利于应用到嵌入式装置中。
基于频率的变化率,本文提出了时变频率测量算法,解决了频率随时间变化时,现有的测频方法精度不高、误差大、计算复杂等问题。首先把原始的信号送入滤波器进行滤波,滤除信号中所含的高次谐波、直流分量和噪声;然后在每一段小区间内对滤波后的信号采用过零点检测算法[10]进行频率值的计算,将所得到的频率值作为最小二乘非线性曲线拟合的迭代初值,在每一段小区间内进行正弦曲线拟合;最后对拟合后的曲线以调整采样频率的方式对其进行二次采样,将所得到的二次采样数据进行动态频率测量算法计算频率,解决现有的算法计算量大、测量精度不高和占用内存大等问题。
1 频率算法的基本原理
1.1 滤波器的设计
在实际运行的电力系统中,信号波形往往不是标准的正弦曲线,其中夹杂着高次谐波、直流分量以及各种噪声的复杂曲线[11];系统正常运行时,频率在50 Hz 左右波动,其中的谐波频率也在随着工频不断变化[12],这就给频率的准确测量带来了很大的测量误差,因此需要设计滤波器。
本文采用基于巴特沃斯型带通滤波器的设计[13]来滤除原始信号中所含的噪声和谐波,文中主要设计参数:通带范围为45~55 Hz,通带上限为60 Hz,通带下限为40 Hz,通带最大衰减为2 dB,阻带最小衰减为15 dB。带通滤波器频率响应如图1所示。
图1 带通滤波器频率响应Fig.1 Frequency response of bandwidth filter
分析图1可得,当信号经过这款滤波器后,信号中的高次谐波分量和直流分量的衰减接近于0,最后只剩下50 Hz 附近的频率可以通过滤波器。从而滤除掉原始信号中掺杂的直流分量和高次谐波分量,减小其对基波信号的干扰。
信号中不仅含有以上对信号的干扰项,而且含有各种随机噪声,带通滤波器不可能把所有的干扰项全部滤除,经过滤波器滤波后的信号中仍然含有一部分噪声,这些未被滤除的噪声很容易产生频率泄漏,所以还要对信号的噪声进行处理。
1.2 基于列文伯格-马夸尔特的最小二乘非线性曲线拟合原理
滤波后的信号中仍然含有部分的噪声信号,这些噪声信号很容易造成频率的泄漏[14],这就在很大程度上影响了现有测频算法的测量精度。
本文运用基于列文伯格-马夸尔特的最小二乘非线性曲线拟合[15]方法对滤波后的信号进行正弦曲线拟合。其基本原理为在滤波后信号的每段区间Vi中把滤波后的信号拟合成标准的正弦曲线Yi,表示为
式中:Yi为第i 段的标准正弦拟合函数。
标准正弦拟合函数的各种参数,如相角、幅值和频率的最优值采用列文伯格-马夸尔特方法来获得,其中的初始值设为0.01。为了减小迭代次数,把迭代频率的初始值设为过零检测算法所得的频率值,取0~π 中的任意值作为相角θ 的值。假如得到的参数值不在合理范围值之内,重新调整θ 的值对参数进行优化估计,直至参数值在合理范围值之内。最后对拟合后的正弦曲线进行二次采样,进一步去除信号中的各种噪声,从而提高频率测量的算法精度。
1.3 频率变化率与周期的关系
首先假设被测信号的幅值是Um,频率为f,相角是φ(f,t),那么信号的表达式可以表示为
如果f 是随时间变化的,那么f 的一阶导数肯定不为零,则每一时刻的相角φ(f,t)可以表示为
式中:ω=2π f 是角频率;dω/dt 是角加速度;φ0是零时刻(t=0)的初始相角;ω0=2π f0是零时刻的初始角速度,f0为初始频率。以紧邻3 个过零点处的相位角为研究对象,如图2所示。
图2 信号波形与过零点示意图Fig.2 Signal waveform and zero crossing diagram
把过零点0 设置为起始点,则在t=0 处,相角φ0=0,频率为f0。在过零点1 处,相角为2π,过零点2 处,相角为4π。
由式(3)得:
解得:
其中:
由式(5)和式(6)可以求出频率的变化率d f/dt和过零点0 处的初始频率f0。
根据以上所求得的结果可以计算出每一时刻的频率。如图2所示,假设过零点2 为最新的过零点,采样点m 为当前时刻的采样点,过零点2 到当前时刻之间的采样值个数为m,因此当前时刻的频率为
式中:Δt 是过零点2 与采样点1 之间的时间;Ts为相邻两个采样点之间的时间,即采样时间间隔。
1.4 计算周期T
1.4.1 Δt 的计算
如图2,在采样的时候信号的过零点经常并不一定与采样点重合,要准确求出周期T,则必须首先要求出过零点与过零点后的第一个采样点之间的时间Δt。
对于信号的真正过零点是没有办法直接求解出来的,但是可以通过其他的方法近似求解,比如,可以把零点附近的波形看作是直线,然后采用相似三角行的方法来求解[16]。
为了解决相似三角形方法解得的过零点值精度不高的问题,本文采用牛顿多项式[17]f(x)来逼近:
接下来就是计算式(8)的各项系数即a0,a1,a2,a3。
如图3所示,依据式(8),从众多的采样点中取4 个采样点,分别为过零点之后的第一个采样点(tk,uk),过零点之前的三个采样点(tk-1,uk-1)、(tk-2,uk-2)、(tk-3,uk-3)。根据这4 个采样值可以建立向后差分表[18],见表1。
图3 牛顿插值多项式示意图Fig.3 Schematic diagram of Newton interpolation polynomial
表1 牛顿向后差分表Tab.1 Newton backward difference table
其中,
则,式(8)又可表示为
x 与Δt 之间的关系式为
从而求得式(8)的各项系数如下:
令f(x)=0,求解牛顿三次插值多项式过零点:
利用牛顿迭代方法求取f(x)=0 的根:
为了减少迭代的次数,首先采用相似三角形的方法求出迭代初值x0,见图4所示,由相似三角形原理可得:
图4 计算过零点时间方法示意图Fig.4 Schematic diagram of method for calculating zero crossing time
把Δt=-xTs代入式(16),可得:
所以迭代初值可以取为
当迭代精度达到所要求的精度时可以得到x 的值,最后计算出Δt=-xTs的值。
1.4.2 周期T 的计算
假设两个紧邻过零点之间的采样点数为N,那么周期T 的计算公式为
式中:Δt1和Δt2是过零点与过零点之后第一个采样点之间的时间值。
2 算法的实现过程
(1)对过零点的判断。当uk*uk-1<0 时在uk与uk-1之间必有一个零点。
(2)按式(9)、式(12)计算拟合函数f(x)的系数a0~a3。
(3)求解过零点。首先依据式(18)算出迭代初值,再根据式(8)、式(13)、式(14)计算出过零点的近似解x 的值。
(4)当前周期T 的计算。利用式(11)计算出Δt的值,再根据式(19)得到当前周期T。
(5)最后计算采样点处的频率。采用式(7)计算频率f。
3 算法的仿真
接下来分别对标准正弦波信号、含高次谐波和噪声、频率波动情况下,对本文提出的算法进行MATLAB 仿真,将仿真所得的结果与文献[19]中的DFT 算法和文献[20]中的过零点算法进行比较,以验证本算法的优越性。
3.1 标准正弦波
设标准正弦信号的数学模型为u(t)=Umsin(2π ft+φ),频率f 取45~54 之间,φ 角随机选取。测量数据如表2所示。
表2 标准正弦信号下的频率误差Tab.2 Frequency error under standard sinusoidal signal
3.2 含有噪声和谐波
设含有噪声和谐波信号的数学模型为
频率f 取45~54 之间,φ 角随机选取,ξ 为50 dB的白噪声。测量数据如表3所示。
表3 含有噪声和谐波信号下的频率误差Tab.3 Frequency error with noise and harmonic signal
3.3 频率发生波动
对发电机启动过程的频率进行模拟,取开始的频率为35 Hz,初始相角为-10°,频率变化率10,那么频率和输入电压信号模型为
式中:ω0=2π f0;ω=2π f。测量数据如表4所示。
表4 频率发生波动时的频率误差Tab.4 Frequency error in case of frequency fluctuation
4 结语
在频率发生波动的条件下,以紧邻两个过零点之间的相位为依据,推算出了每一时刻频率的数学表达式,从而提出了一种动态频率测量算法。本算法原理简单,实验仿真结果表明,本文算法在标准正弦信号下的频率测量精度达到10-6Hz 级,在含有噪声和谐波信号下的频率测量精度可达10-3Hz 级,在频率波动下的频率测量精度达到10-4Hz 级。
本文算法测量频率的精度高、测量范围广、计算速度快、能有效地抵抗噪声的干扰、在算法的准确性和稳定性方面有所提高,验证了本算法的可行性和有效性,解决了频率波动条件下,频率测量精度不高、计算量大、占用嵌入式内存大等问题。