锁相环滤波器性能分析
摘要
HPM电机库提供了多种滤波器,本文主要介绍电机库中提供的PLL(锁相环滤波器)的使用方法和具体的性能参数。锁相环(Phase-Locked Loop, PLL)是一种能够自动调整输出信号相位以跟踪输入信号相位变化的反馈控制系统。本文介绍TypeI型PLL滤波器和TypeII型 PLL滤波器的特点。
TypeI型PLL滤波器
PLL的组成部分
- 鉴相器
鉴相器将输入信号与VCO输出信号的相位进行比较,产生一个误差电压。误差电压反映了两个信号之间的相位差。 - 低通滤波器
低通滤波器对误差电压进行滤波,去除高频噪声,生成一个平滑的直流控制电压。这个控制电压用于调节VCO的频率。 - VCO
VCO根据控制电压调整其输出频率,使输出信号的频率逐渐接近输入信号的频率。当相位差足够小且频率一致时,PLL进入锁定状态。
PLL的传递函数
PLL的传递函数描述了系统对输入信号的响应。对于一个二阶PLL,其传递函数可以表示为:
H(s) = \frac{K_d K_v}{s (1 + sT_f)}
其中:
K_d
是鉴相器的增益。K_v
是VCO的增益。T_f
是低通滤波器的时间常数。
Simulink仿真模型
TypeII型PLL滤波器
Simulink的仿真模型如下图所示:
-
积分器1的传递函数
在连续时间域中,积分器1和2的传递函数为:
H_{\text{int1}}(s) = \frac{1}{sT_i}
在离散时间域中,使用前向欧拉方法进行离散化:
H_{\text{int1}}(z) = \frac{T_s z}{z - 1}
-
补偿滤波器的传递函数
补偿滤波器的传递函数为:
H_{\text{comp}}(z) = \frac{k_1 \times c \times (1 - az^{-1})}{1 - bz^{-1}}
其中:
k_1
为ADC增益a
为补偿器零点b
为补偿器极点c
为积分器增益
性能分析
角度对比:
- 红色和和黄色曲线为输入信号,为两个相位差为90度的弦波信号,且增加了高斯噪声,用来模拟有干扰的输入信号
- 蓝色为给定的三角函数的角度
- 绿色为typeII型的PLL的输出,紫色为typeI型PLL的输出
可以看到typeII型的角度输出和给定基本重合,而typeI型存在一定的相位差。而且对于噪声的过滤效果,可以看到typeII型明显好于typeI型。
所以typeII型具有最重要的一个特点typeII型是可以跟踪恒定速度输入而不存在固有误差。
参数设计
积分器1用于生成与速度成比例的信号,其传递函数在离散时间域中为 H_{\text{int1}}(z) = \frac{T_s z}{z - 1}
。补偿滤波器用于提供相位裕量并减小高频噪声增益,其传递函数为 H_{\text{comp}}(z) = \frac{k_1 \times c \times (1 - az^{-1})}{1 - bz^{-1}}
。通过合理设计这些传递函数,可以优化系统的性能,确保在不同分辨率下都能实现稳定的跟踪和快速的响应。在100us采样率下,仿真参数,用户可参考如下参数的范围进行调整。
参数 | 说明 | 数值 |
---|---|---|
k_1 |
增益 | adc采样最大值 |
a |
补偿器零点系数 | -0.999969482421875 |
b |
补偿器极点系数 | -0.999664306640625 |
c |
积分器增益 | 1e-4 |
接口
typedef struct {
float k1; /**< adc gain */
float a; /**< Filter Zero Coefficient */
float b; /**< Filter pole coefficient */
float c; /**< Integrator gain factor */
} mcl_filter_pll_type_ii_cfg_t;
void hpm_mcl_filter_pll_type_ii(mcl_filter_pll_type_ii_t *pll, float sin_val, float cos_val, mcl_filter_pll_output_t *output);
按照参数设计章节的描述设置上述参数即可