目前应用于数字化电力电子设备中的锁相环,多以MCU/DSP 为核心,以软件实现离散域的运算及控制。这种以软件为主的方案较大程度上依赖于处理器的性能。以逆变器输出锁相为例,DSP 工作频率直接制约了输出电压和锁相相位精度。可编程门阵列(FPGA)的出现使这个问题有了一种新的解决方案。目前,现场可编程门阵列(FPGA)的工作频率达几百兆赫兹,时钟延迟仅为纳秒级,工作频率的提高直接跨越了系统工作频率对输出相位、电压精度的制约。同时,FPGA 集成度可达1000 万以上,使其更胜任模块化的设计,应用在数字化电力电子设备中,将大大简化控制系统结构。再者,用硬件连线实现其软件算法,加快运算速度,还可实现真正意义上的并行计算,提高了子系统抗干扰性能。本文正是基于FPGA 的上述优点,用硬件描述语言(Verilog HDL)设计出了一种可应用于逆变器的正向过零型全数字锁相环,并在一片FPGA 芯片上予以实现。
1 理论分析
1.1 锁相环的基本原理和模型
锁相环是一个闭环相位控制系统,许多文章对各种锁相环技术作了专门研究。工程实践中使用的锁相环各种各样,但无论多么复杂的锁相环都包含鉴相器(PD)环路滤波器(LF)及压控/数控振荡器(VCO/DCO)这三个环路基本部件。其原理框图如图1 所示。
本文所设计的锁相环,仍然沿用了上述基本结构,但在环路器件具体实现上,采用了全新的控制和实现方案。即:用比例积分方法替代传统锁相系统中的环路滤波,用相位累加器实现数控振荡器(DCO)的功能。其工作原理如下:鉴相器是正向过零采样鉴相器,在输入信号正向过零点对本地跟踪信号的相位进行采样。采样值表征了此瞬间本地信号和输入信号的相位误差,经P+I 调节后(由环路滤波器实现)成为DCO 控制码组,送入DCO 中的全加器低位。本设计中的DCO 实质上是一个相位累加器。由相位误差信号经P+I 调节后构成的控制码组送入DCO,将改变相位累加器步长,从而实现了本地跟踪信号(DCO 输出码组的最高位)频率的调整,最终达到锁相的目的。
本设计各环路器件的原理和结构如下。
1.1.1 鉴相器(PD)
由于数控振荡器(DCO)采用累加器的结构,因此累加器的输出并行码就是数控振荡器输出的相位码。在输入信号正向过零瞬间获得的数控振荡器相位,就代表了输入信号和输出信号在该时刻的相位误差。数字鉴相器结构如图2 所示。
1.1.2 数字环路滤波器(DLF)
本文采用比例积分方法替代传统锁相系统中的环路滤波,其基本原理是将鉴相模块鉴别出的相位误差大小乘以一定的比例系数产生一个比例控制参数,同时在积分系数的调节下对相位误差大小进行积分,由两者的结果相加产生最终的控制信号给数控振荡器。其环路结构如图3 所示。
S 域传递函数为:
式中KP、KI 分别为比例和积分环节系数。当采样周期很短时,映射到Z 域,有:
将上式中的 按泰勒级数展开,有:
显然,在离散系统中,积分表现为累加求和。由此就不难构造工程上实用的DLF 了。
1.1.3 数控振荡器(DCO)
由文献1 可知,数控振荡器Z 域传递函数为:
为理想积分,它相当于模拟锁相环S 域传递函数1/S,Z-1 表示延迟一个采样周期。可见数控振荡器也是数字锁相环路中的一个固有积分环节。
同样将上式中 按泰勒级数展开,有:
据此,我们可以画出数控振荡器的构造图如图4 所示。
延迟环节实际上就是一个寄存器,这样,我们也就得到了工程上的数字振荡器结构如图5 所示。
由于送入DCO 的是环路滤波器输出的相位控制码组,所以DCO 实质上起到一个相位累加的作用。每来一个时钟脉冲,累加器就以相位控制码组值为步长进行相位累加,直接调整输出频率。若控制码组C(Z)值为M,累加器字长为N,累加速度为fc,显然其输出频率(DCO输出码组最高位)为:
1.1.4 环路闭环传递函数分析
由对环路各部件分析,可写出环路闭环传递函数:
式中K1 为比例环节P 系数,K2 为积分环节I 系数。其特征方程为:
根据离散系统奈奎斯特判据,环路稳定的充分必要条件是闭环传递函数的特征方程的特征根全部位于Z平面的单位圆内,解得环路稳定条件:
同时可得:
(K1+K2)2>4K2 为欠阻尼状态;
(K1+K2)2=4K2 为临界阻尼状态;
(K1+K2)2<4K2 为过阻尼状态;
2 环路部件的设计实现
本系统采用了Altera 公司的FLEX10K 系列FPGA器件,并用该公司Quartus3.0 开发平台开发和仿真。根据本文第二部分对DPLL 各部件的分析,我们完成了系统各部件的设计。
2.1 鉴相器
本设计中DCO 的结构特殊,使得鉴相器的设计比较简单,就是一个寄存器,在输入信号正向过零瞬间读出DCO 寄存器中的数据即可。
2.2 环路滤波器
由于本文采用比例积分方法替代传统锁相系统中环路滤波的全新结构,下面着重介绍环路滤波器的实现。由第二部分分析可知,在离散系统中,积分表现为求和。参照图3、4、5,环路滤波器就可用两个全加器和一个寄存器实现。其中全加器1 与寄存器共同作用实现累加,也即积分功能,全加器2 实现比例和积分结果求和,即P+I。下面给出低通滤波器积分环节全加器和寄存器的Verilog 实现代码,其余部件的Verilog 实现代码只是位长不同,在此不再赘述。
全加器1 的Verilog 实现代码:
// Module Declaration,实现积分功能
module adder1(b, c, clk, d);
// Port Declaration
input [40:20] b;//鉴相信息码,取高21 位
input [43:20] c; //延迟环节输出信息码,取高24 位
input clk; //触发时钟
output [24:1] d; //d 为积分结果
reg [24:1] d;
reg[43:20] m;
always
begin
{m}={3'b000,b}; /*将相位信息码位(b)扩展3 位,高位补零*/
end
always@(posedge clk)
begin
d<=m+c; //离散系统积分
end
endmodule
寄存器的Verilog 实现代码:
// Module Declaration,实现延迟功能
module registor(clk, D, Q);
// Port Declaration
input clk;
input [24:1] D;
output [24:1] Q;
reg[24:1] Q;
always@(negedge clk)
begin
Q<=D;
end
endmodule
全加器2 的Verilog 实现代码:
// Module Declaration,实现比例和积分结果求和
module adder(b, c, clk,e);
// Port Declaration
input [21:1] b; //比例环节输出
input [24:1] c; /*经积分环节后的鉴相信息码,取高24 位*/
input clk;
output [25:1] e;
reg [25:1] e;
reg [24:1] n;
always
{n}={3'b000,b}; //位扩展,高位补零
always@(posedge clk)
begin
e<=n+c; //实现P+I
end
endmodule
2.3 数控振荡器
数控振荡器是数字锁相环路中的一个固有积分环节,同样可用一个全加器和一个寄存器实现。下面着重分析输入比特位的配置及其工作过程。
本文中,输入信号为1000±10Hz 方波,DCO 全加器累加速度10MHz。考虑控制灵敏度和控制范围,全加器取40 位字长,低位g1~g22 输入22 位控制码,g24、g26、g27 位置1,其余位置0。其工作过程为:没有输入信号时,g1~g22 全为0,由于g24、g26、g27 位置1,g24~g40 共17 位,g26~g40共15 位,g27~g40共14 位,所以累加进位后输出频率为:(2-14+2-15+2-17)×10MHz=991.8213Hz,也即DCO 自由振荡频率为991.8213Hz;当有输入信号时,g1~g22不再全为0,但至多全为1,因此其调频范围:
即DCO 的频率变化范围为991.8213Hz~1029.9683Hz(991.8213Hz+38.147Hz)。
其控制灵敏度:
量化误差:
式中:fin 为输入信号频率,fclk 为DCO 时钟频率。
由此可见,FPGA 器件即使工作在低频状态下,也能实现高分辨率的输出频率和相位调节。
3 系统仿真与分析
依据第二部分描述的锁相环构成,实现了基于MATLAB的仿真。其设计参数如下:K1=0.9,K2=0.5,为过阻尼系统。考虑被跟踪信号相位随时间均匀变化,设定输入信号相位为斜坡信号,MATLAB 仿真波形如图6 所示。
图6 MATLAB 仿真波形
由仿真波形可以看出,系统经过五个采样周期后就能实现对输入信号的锁相。由于系统为二阶,输入斜坡信号,跟踪无静差。
基于Quartus3.0 开发平台,我们实现了FLEX10K系列FPGA 器件的后仿真。
在此需要说明的是,环路滤波器积分环节增益系数的调整,是通过寄存器输出码比特位实现的,其输出码往高位移j 位(低位补0),就在积分支路中乘以增益因子k=2-(j-1)。因此,实际系统中,环路滤波器积分环节增益系数至多取值为1,若不采用其他措施,系统只能工作在过阻尼情况下。其仿真波形如图7 所示(输入信号wave,频率1K;本地跟踪信号i[39];DCO 时钟频率10MHz)。仿真结果表明,系统逻辑功能符合要求。
图7 Quartus3.0 下的环路仿真波形
本文设计出了一种用比例积分方法替代传统锁相系统中的环路滤波,用相位累加器实现数控振荡器(DCO)功能的二阶全数字锁相环,并用Altera 公司FPGA 器件FLEX10K 予以实现。此锁相环具有输出相位连续,分辨率高等优点。应用于逆变器,将克服以MCU/DSP为核心的原有锁相系统输出精度受DSP工作频率制约的缺点。通过环路滤波器的寄存器输出码比特位的调整,可以方便地改变锁相环动态性能。改变环路部件字长,还可方便地实现锁相环控制灵敏度和控制范围等参数的调整。
利用Altera 公司FPGA 器件FLEX10K 内部丰富的资源和高集成度,采用模块化的设计方法,将此DPLL系统在一片FPGA 芯片上实现,电路简洁,可复制性好。
在实际应用的过程中,FPGA 一般不会只完成某个功能,而是将多个功能集成实现,从而使以FPGA 为核心的电力电子设备数字控制器乃至SOC 的实现成为可能。