刘宁庄 龙路阳 杜光辉 段富才
(西安科技大学电气与控制工程学院 西安 710000)
超声波电源在超声波清洗、诊断、治疗、遥测、焊接等诸多领域有着广泛应用[1]。目前超声波电源存在工作不稳定、谐振频率易漂移等问题[2]。实时的频率跟踪能够有效解决以上问题,锁相环技术[3]、比例积分微分(Proportional-integralderivative,PID)控制技术[4]等是目前频率跟踪的主要方法。实现频率自动跟踪控制需要测量相位差作为控制系统的输入信号[5]。鉴相器对相位的精确测量,不仅是频率跟踪的基础,同时也决定了频率跟踪的精度。
传统超声波电源系统通常使用异或门鉴相器鉴相。异或门鉴相器要求输入的两个信号占空比必须为50%,即它们是等宽方波。为此需要设计过零比较电路,将正弦信号的电压电流转换为方波,再经过异或门进行运算,最后由AD 采样电路转换为数字量,过程复杂且模拟电路引入较多杂散信号,同时谐波容易引起零点的漂移影响鉴相精度。针对以上问题,本文采用正交解调原理并结合坐标旋转数字(Coordinate rotation digital computer,CORDIC)算法[6],设计并在现场可编程逻辑门阵列(Field programmable gate array,FPGA)上实现了一种高精度数字鉴相器,硬件部分精简了过零比较和异或门电路,仅保留AD采样电路,鉴相完全由软件实现,减少了杂散信号和谐波对鉴相的干扰,误差主要来自于AD采样。
本文相位测量采用正交解调[7]测试原理。以电压信号为例,所谓正交解调测试即是将电压信号与一组同频的正交本振信号分别进行调制,调制信号经过滤波处理将得到两个直流分量,这两个直流分量即是电压与正交本振信号的相位差所对应的正余弦值。由正余弦值得到正切值,正切值经过反正切函数计算,得到电压与正交本振信号相位差。同理采用相同的方式可得到电流与正交本振信号的相位差。由于电压电流采用相同的正交本振信号进行调制,那么由电压电流与正交本振信号的相位差,即可得到电压与电流之间的相位差。电压信号的鉴相原理如图1 所示,电流信号鉴相过程与之相同。
图1 鉴相器测试原理Fig.1 Phase detector test principle
图1中,Sa(t)表示超声波电源电压采样信号,其数学表达式为
基于CORDIC 算法设计的DDS 输出两路正交本振信号其数学表达式为
电压信号Sa(t)通过数字乘法器分别与正交本振信号S1(t)、S2(t)相乘得
相乘后的信号经过无限脉冲响应(Infinite impulse response,IIR)滤波器,滤除交流部分,可得到相位角θ1-θ0的正余弦值进而可得其正切值。由采用流水线结构实现的CORDIC 相角计算模块经过多次迭代可计算出tan(θ1-θ0)的反正切值θ1-θ0。另一路电流信号采用同样的实现方式可得θ2-θ0,θ2为电流初始相位。最后经过减法器计算即可得到电压电流相位差θ1-θ2。
数字滤波器(Digital filter)在数字信号处理中发挥着重要作用,具有高精度、高稳定性、高灵活性等特点,被广泛应用到各种工程领域中。数字滤波器系统函数可表示为
其中ai、bj是滤波器系数。IIR 滤波器的设计本质就是设计一组合适的滤波器系数。由于超声波最低频率为20 kHz,由公式(4)、公式(5)可知调制信号中的交流成分频率最低为40 kHz。使用专业滤波器设计工具设计滤波器。选择Chebyshev TypeII 函数作为IIR 滤波器传递函数,主要设计参数:信号采样频率Fs=1 MHz,通带频率Fpass=1 kHz,截止频率Fstop=35.7 kHz,通带最大衰减5 dB,阻带最小衰减50 dB,量化系数取40 位。经过仿真得到一个二阶IIR 低通滤波器,其分子系数a1=[1 -1.90103149 1],分母系数b1=[1 -1.97470855 0.97502517]。图2 为IIR 滤波器幅频响应仿真结果,从图2 中可见在信号频率大于35.7 kHz 时信号衰减大于50 dB,交流信号被滤除。
图2 IIR 滤波器的幅频响应Fig.2 Amplitude-frequency response of IIR filter
搭建仿真环境,对设计的滤波器进行仿真分析,结合理论与仿真结果修改设计参数,使滤波器对40 kHz 以上频率成分的衰减大于50 dB 即可。图3为IIR滤波器仿真模型。
图3 IIR 滤波器仿真模型Fig.3 IIR filter simulation model
给定两个幅值为1000 mV、频率为20 kHz、相位差为30◦的信号x1=1000 sin(2π20000t+π/6)、x2=1000 sin(2π20000t)来对IIR 滤波器进行仿真测试。图4(a) 为x1、x2经过乘法器相乘后得到的波形,图4(b)为经IIR滤波后的结果,其中直流分量为-250000,与由式(5)计算得到的值一致。
图4 IIR 滤波器仿真结果Fig.4 IIR filter simulation results
CORDIC 算法由JVolder 于1959 年在设计美国航空导航系统的过程中提出[8],主要用于三角函数、乘法、开方以及反三角函数等运算的实时计算问题。
CORDIC 算法按照旋转方向判决条件的不同可分为旋转模式和向量模式。旋转模式可用于计算正余弦值,向量模式可用来计算反三角函数值。本文设计DDS 模块与相角计算模块时分别采用了旋转模式和向量模式。图5 为旋转模式矢量旋转图。
图5 旋转模式矢量旋转图Fig.5 Rotation mode vector rotation diagram
图5(a)中向量OP旋转角度θ得到向量OQ,则点Q可表示为
由于cosθ不能通过数学的方式去掉,这里暂时去掉cosθ,则点Q旋转角度θ得到点R,如图5(b)伪旋转矢量图所示。伪旋转可表示如下:
通过对比两种旋转可知,旋转角度是正确的,但是伪旋转使模值增大了1/cosθ倍,在伪旋转结果上乘上cosθ即可得到真实值。将θ分解为一系列微小角度的和为方便FPGA 设计的实现,可令:
于是可得CORDIC 算法在旋转模式下迭代方程
其中,x0=1,y0=0,di表示每次旋转的旋转方向,zi为迭代剩余角度,在迭代最终结果上乘上每次迭代对应的cosθi进行修正即可得到真实值。可见只需通过简单的移位和加减运算便可实现CORDIC算法。
向量模式可用于计算反正切值,其与旋转模式的区别在于旋转方向判断条件的不同,式(12)、式(13)为向量模式下CORDIC算法数学表达式:
其中,z0=00,x0=cosθ,y0=sinθ,经过多次迭代计算可得角度值θ。
通过对CORDIC算法的深入分析可知,每次旋转都是按照一系列固定角度旋转,表1 为i从0到15对应的θ值与cosθ。
表1 i 从0 到15 对应的θ 值与cos θTable 1 The value of θ corresponding to i from 0 to 15 and cos θ
由公式θi=tan-1di2-i可知θ旋转范围。
图6 为FPGA 一路信号硬件实现结构图,其主要由基于CORDIC 算法的DDS 模块、数字乘法器、数字滤波器以及基于CORDIC 算法的相角计算模块等构成。采用XILINX 公司的XC7A35T 芯片作为FPGA 控制器。采用流水线结构实现CORDIC算法,非常适合高速、实时的信号处理,且在FPGA上只需使用移位和加减操作就可以实现。为方便程序设计,使用旋转模式和向量模式下的CORDIC算法,分别设计了DDS 模块和相角计算模块,并针对CORDIC算法迭代角度局限问题,分别设计了象限转换和正余弦转换模块,坐标转换和相位转换模块将迭代角度范围扩展至0◦∼360◦。两路信号处理电路,均采用同一个CORDIC 模块产生的正交本振信号来实现同频同相。使用IIR 滤波给两路信号带来相同的相位偏移,在最终角度计算过程中相互抵消,故可不予考虑。4 个乘法器通过调用IP 核实现。
图6 FPGA 一路硬件实现结构图Fig.6 FPGA one-way hardware implementation structure diagram
电压、电流采样数据位宽为12位。DDS数据输出位宽为12位,由表1 可知当i=15即迭代16次时cosθ已经非常接近1,CORDIC迭代16次即可满足输出数据精度。乘法器输出位宽为24 位。IIR 滤波器输出位宽定义为24 位。相角计算模块输入位宽24位,CORDIC迭代16次输出32位数据。
使用Modelsim 软件进行仿真实验,编写测试文件设置系统时钟为50 MHz,输入的电压、电流信号为20 kHz。在图7 Modelsim 功能仿真图中,i_phase、u_phase 分别表示给定的电流、电压初始相位,phase 表示鉴相器最终计算的相位差。3 个变量均采用32 位位宽对应0◦∼360◦。计算可得i_phase、u_phase初始角度分别为90◦、30◦,电压电流理论相位差为60◦。实际测试值phase 换算后为60.03◦,误差为0.03◦。
图7 Modelsim 功能仿真图Fig.7 Modelsim functional simulation diagram
在上述测试基础上,对两路输入信号加入高斯白噪声。测试在不同的输入频率、不同的信噪比、不同的相位差下鉴相器工作状况。每次测量取20 次样本,统计结果如表2所示。
表2 不同条件下测试误差Table 2 Test error under different conditions
从表2 可知在30 dB 信噪比下鉴相器最大误差为0.21◦,35 dB 信噪比下鉴相器最大误差为0.14◦,具有较高的鉴相精度。
图8(a)为超声波电源系统框图,市电经过整流、滤波、逆变电路、变压器以及匹配电路后驱动换能器。由FPGA 作为主控制器,换能器的电压信号经过换能器两端并联电容分压,电流信号通过电流互感器再分别经过AD 采集电路进入主控制器,主控制器对数据进行处理后产生脉冲宽度调制波,经过驱动电路控制逆变电路完成对整个电源系统频率的跟踪与调节。图8(b)为系统控制电路实物照片。
图8 超声波电源系统框图与控制电路Fig.8 Ultrasonic power system block diagram and control circuit
选用20 kHz 的换能器作为实验对象,通过阻抗分析仪测量得到换能器等效电路模型的各个参数分别为静态电容C0=18.206 nF、等效电阻R1=12.13 Ω、等效电感L1=61.39 mH、等效电容C1=1.0421 nF。计算可知串联谐振频率为19898 Hz,根据等效参数在专业仿真软件中建立仿真模型如图9(a)所示,图9(b)显示了在不同频率的信号驱动下,换能器两端电压、电流相位特性。
图9 测量仿真模型和相位特性Fig.9 Measure simulation models and phase characteristics
为测试数字鉴相器性能,在换能器串联谐振点附近,选取一组不同频率的信号驱动换能器,将电压、电流之间的理论相位差分别与数字鉴相器和异或门鉴相器的测量值进行对比,具体数据如表3所示。
表3 鉴相结果Table 3 Phase detection result
对表3 鉴相结果中的数据进行误差分析,如图10 所示。实验测试表明数字鉴相器最大误差绝对值为0.256◦,异或门鉴相器最大误差绝对值为1.094◦。
图10 误差对比分析Fig.10 Error comparative analysis
本文对超声波电源中数字鉴相器进行了研究。采用正交解调原理实现了一种基于FPGA 的高精度数字鉴相器设计。使用两种模式下的CORDIC算法,设计了产生正交本振信号的DDS 和相角计算模块。并采用适合高速高精度的流水线结构在FPGA上实现了算法。通过使用专业仿真软件设计并仿真验证了IIR 滤波器。使用Modelsim 软件对数字鉴相器进行了仿真测试,在理想条件下鉴相最大误差为0.03◦,在两路输入信号都添加30 dB高斯噪声的情况下鉴相器最大鉴相误差为0.21◦。最后进行了实物测试,数字鉴相器鉴相最大误差绝对值为0.256◦,异或门鉴相器鉴相最大误差绝对值为1.094◦。实验表明相对传统异或门鉴相器本文设计的数字鉴相器具有更高的测量精度。