数学模型中,除u的输入采样要利用A/D转换接口硬件外,相乘器、滤波器和压控振荡器等可全部由程序中的算法来仿真。如果需要输出u0,还需要D/A接口电路。在柴油发电机组监控系统中,不需要输出u0,可以直接在程序中引用锁相环中的各个变量参与下一步的数据处理。
1.3 软件锁相的优越性
与传统的硬件锁相相比,软件锁相可以实现硬件锁相难以实现的要求:
(1)可以利用计算机灵活的处理能力实现优化滤波或自适应滤波。
滤波可以用数字积分的形式形成无限大的直流增益,以实现完全无差调节。若希望将相乘器产生的倍频成分滤掉,可以设计一种数字滤波算法,使其在w的倍频之处为零点,而且在信号变化时可以根据实测w的值去修正滤波算法,使其零点也跟着变化以满足测试要求。这在硬件锁相中是很难实现的。
(2)可以强行改变积分值以实现快速锁定。
硬件电路中的积分值如电容的电压、电感的电流等是不能突变的。但程序中的数据却可以根据实际需要强行赋,这样能实现一步锁定。
2 柴油发电机组监控系统中软件锁相的实现
在柴油发电机组中,频率基本为定值(50Hz),这样就可以在程序中使w初始化为接近这一频率的值。然后采用下述算法;算出θ与θ0。的实际差值,然后可以强行修改θ0,使此差值改为π/2,实现一步锁定。引入一个比u0滞后π/2的信号sinθ0,可以计算usinθ0,设它的直流分量为X,再设ucosθ0。的直流分量为r,采用式(4)同。样的方法得出:
ctg(θ0-θ)=Y/X
若X>0则0<θ0-θ<π;
若X<0则-π<θ0-θ<0;
当X=0,若Y>0则θ0-θ=0;否则θ0-θ=π。
由此,只要求出Y与X,就确定了θ与θ0的实际差值。
求X与Y时,需要对上述乘积求一段时间的平均值。若信号为单一频率,则平均时只需要消去乘积中的倍频成分,这样只需要对半个周期取平均,故最快的是采用一步锁定方式,这样需要半个周期的时间。若考虑输入信号u中可能存在谐波,则可将平均时间加长到整个周期或整数个周期。若u中有更低频成分,则情况复杂些,但平均时间越大,该成分的影响产生的误差越小。总之,使相位接近于准确锁定是不难办到的。
本系统中,由于输入频率很少变化,因此为求锁相环稳定,避免因干扰而失锁,通常让滤波器环节的时间常数尽可能大,即尽可能慢些。
从上面可以看出,锁相环中的各个中间变量均可通过简单的应用程序求解,最后求出采集信号的频率。
3 试验结果
2003年9月25日,上海铁路分局科委组织有关专业技术人员,对上海机械保温车辆段的柴油发电机组监控系统进行测试。测试报告结果如表1所示。
表1 柴油发电机组监控系统测试结果表(摘自鉴定的测试报告)
测试时间 | 9:00 | 9:20 | 9:40 | 10:00 | 10:20 | 10:40 | 11:00 | 11:20 | 11:40 |
负载(A) | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
计量仪表测试值(Hz) | 50.4 | 50.2 | 50.1 | 50.0 | 49.9 | 49.8 | 59.8 | 49.7 | 49.7 |
未采用锁相技术的测量频率(Hz) | 50.6 | 50.3 | 50.0 | 49.8 | 49.2 | 49.7 | 50.4 | 49.6 | 49.2 |
采用锁相技术的测量频率(Hz) | 50.4 | 50.3 | 50.0 | 50.0 | 49.9 | 49.9 | 49.7 | 49.6 | 49.7 |
从表中可以看出,未采用软件锁相技术的测试软件,测出的结果因谐波干扰而产生很大的波动,影响了测量的结果,会使工作者误以为柴油发电机组不符合标准。而采用软件锁相技术编制的软件测量结果和高精度计量仪表的测量结果相符,测试要好得多,在柴油发电机组进行性能测试时,它完全能替代计量仪表,符合测试的标准。