永磁同步电机谐波抑制算法(7)——基于自适应陷波(adaptive notch filter,ANF)的精确谐波电流抑制策略

1.前言

1.1经典谐波抑制策略存在的问题

在之前的谐波抑制专题中,主要介绍了两种谐波抑制策略——基于多同步旋转坐标系的谐波抑制策略以及基于比例积分谐振PIR调节器的谐波抑制策略,同时还介绍了这两种策略的改进办法,进而使得这两种策略在比较高的转速下也可以实现较好的谐波抑制效果。

https://zhuanlan.zhihu.com/p/691055387icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/691055387

https://zhuanlan.zhihu.com/p/699288152icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/699288152

这两种谐波抑制策略我都做过仿真以及实验了,结合一些论文,可以发现这两种谐波抑制策略是有以下这些问题的:

  1. 基于多同步旋转坐标系的谐波抑制策略需要用到低通滤波器来提取谐波,这导致谐波坐标系下的PI调节器非常难设计。低通滤波器的截止频率,会影响PI调节器谐波抑制效果及其稳定性。所以这两者的调参,是比较费时的事情。
  2. 基于比例积分谐振PIR调节器的谐波抑制策略,调参很方便。理论上R调节器在谐波频率处,可以实现无限大的增益,进而有效抑制谐波。但是实际系统是离散的,在离散系统中,R调节器的增益就不是无限大的了,因此谐波抑制效果是有限的,并不能零静差抑制谐波。

1.2基于自适应陷波的精确谐波电流抑制策略的介绍

参考文献:

基于自适应陷波的精确谐波电流抑制策略用在电机领域应该是非常少的。这篇TIE应该是第一篇吧?这篇是用来做谐波抑制。下面还有一篇TPE是用来做谐波注入的,非常新的文章,刚出炉(24.06.03接收的)。

基于自适应陷波的精确谐波电流抑制策略的谐波电流抑制效果非常好,而且这种方法刚开始用,知道的人还很少。这篇甚至应该归纳到我的《先进电机拓扑及控制算法》专栏里面的

以下内容截取上面这篇TIE:

“自适应噪声抵消技术的原理最早是在[17]中提出的,由于其良好的动态响应能力和抗扰能力,自适应陷波滤波(adaptive notch filter,ANF)在信号处理中得到了广泛的应用。文献[18]将ANF用于提高并联型有源电力滤波器系统中谐波检测的动态响应能力。此外,还对ANF进行了修改,以检测变化频率的谐波的频率、相位和幅度[19]。提出了一种新型的带ANF的速度控制器来抑制旋转伺服系统的机械振动[20]。在没有任何反馈信号的情况下,只利用速度误差来观测和抑制谐波,从而简化了系统结构。然而,在电机系统中,特别是在磁阻电机系统中,应用ANF抑制谐波电流的研究还很少。”

2.基于自适应陷波的精确谐波电流抑制策略的公式

基于LMS(最小均方)的ANF结构如图7所示,LMS算法的递推公式可表示为:

这个ANF的公式,就是一个谐波提取的算法。不同于基于多同步旋转坐标系的谐波抑制策略,自适应陷波ANF的谐波提取没有用到低通滤波器。这个ANF的公式给我感觉,更像是一种反馈矫正预测的方法。这里值得注意的是u(ANF的步长),论文中没有具体解释。实际上这个u是需要自己去调节器的,我仿真中选的u=0.005

这里我以q轴电流为例子(我的q轴电流中存在大量六次谐波,所以我用ANF来估计q轴电流的六次谐波幅值),看看u=0.005/0.001/0.015情况下,自适应陷波ANF提取谐波的效果。蓝色代表ANF输出的q轴电流,红色代表实际的q轴电流。

u=0.015情况下,ANF预测的电流与实际电流的对比
u=0.005情况下,ANF预测的电流与实际电流的对
u=0.001情况下,ANF预测的电流与实际电流的对比

从这里可以发现,其实这个自适应陷波ANF的谐波提取不适用于电流变化过快的情况。所以我后面的仿真其实是在电机进入稳态之后,才开始执行自适应陷波ANF。

在u=0.005情况下,ANF预测的电流与实际电流的对比(放大图)如下。可以看到,ANF预测的电流与实际电流基本一致(这一点用于表明,ANF提取到的六次谐波电流幅值是准确的)

接下来我们就看看ANF提取到的六次谐波电流正交分量的幅值。这里解释以下,为什么需要提取六次谐波电流正交分量的幅值。我们已经知道谐波电流是六次谐波了,想要确定一个交流量,那我们还需要它的幅值和相位而如果我们知道一对正交分量的幅值的话,就可以把它们合成一个幅值和相位都已知的交流量

这个问题就类似于,我们知道了电机d-q电流的幅值,实际上就知道了电机A相电流的幅值和相位。

q轴六次谐波的正交分量的幅值

得到谐波电流正交分量的幅值之后,就按照Fig.10的结果去抑制谐波电流。如果大家不知道这是什么意思,可以多翻看上面两篇论文,多看两遍就明白了。

 这里再注意一个问题。两篇文章都用ANF去控制dq电流中的直流分量以及交流分量。但是,论文中的电机惯量都非常大,电流变化很慢很慢(如下图所示,电机升高700RPM,需要的时间超过了3s)

 

而我的仿真电机的电流变化太快,速度变化也很快(转速升高3000RPM,仅需要0.1s)。从上面的仿真中也可以看到,ANF并不适合电流变化太快的电机。所以我只是把这种策略用在dq电流中的交流分量中,dq电流中的直流分量还是用传统的PI来控制。

因为q轴电流的直流分量决定了电机的转矩,我还是用传统PI来保证q轴电流的快速响应能力,以保证我电机有足够快的转速响应速度。

3.基于自适应陷波的精确谐波电流抑制策略的仿真对比

为了充分验证基于自适应陷波的精确谐波电流抑制策略优越性,我这里采用改进多同步旋转坐标系和相位补偿PIR进行对比。

仿真参数:

Tpwm = 1e-4;%开关周期

Tsample = Tpwm/1;%电流采样周期

Tspeed = Tsample;%转速采样周期

Ts = 5e-7;%仿真步长

Pn = 4;%电机极对数

Ls = 8.5e-3;%定子电感,采用隐极的,Ld=Lq=Ls

Ld = Ls;

Lq = Ls;

Rs = 2;%定子电阻

flux = 0.0844;%永磁体磁链

B = 0.0005;

J = 0.0013;

%控制器中的电感、电阻参数(影响PI)

Ld1 = Ld*1;

Lq1 = Lq*1;

Rs1 = Rs;

%电流环PI带宽

fc = 500;

%谐波反电势参数

theta5 = 0;

theta7 = 0;

Flux5 = flux*0.01;

Flux7 = flux*0.01;

%0.01表示谐波磁链占比为基波磁链的1%

%1%的谐波磁链,会造成x%的谐波反电势(x代表谐波次数)

%比如五次谐波磁链1%,那么五次谐波反电势就是5%

Vdc = 400;%直流母线电压

iqmax = 20;%额定电流

因为,基于自适应陷波的精确谐波电流抑制策略和采用改进多同步旋转坐标系都需要一定时间提取谐波电流,所以这两种方法都在0.2s开始进行谐波电流抑制

所有的方法都用于抑制dq电流的六次谐波,即相电流的五七次谐波电流

基于自适应陷波的精确谐波电流抑制策略的定子三相电流、转矩、转速波形
基于改进多同步旋转坐标系谐波电流抑制策略的定子三相电流、转矩、转速波形
基于相位补偿PIR谐波电流抑制策略的定子三相电流、转矩、转速波形
基于自适应陷波的精确谐波电流抑制策略的相电流FFT分析
基于改进多同步旋转坐标系谐波电流抑制策略的相电流FFT分析
基于相位补偿PIR谐波电流抑制策略的相电流FFT分析
基于自适应陷波的精确谐波电流抑制策略的谐波抑制速度展示(0.2s开始抑制)
基于改进多同步旋转坐标系谐波电流抑制策略的谐波抑制速度展示(0.2s开始抑制)

从上面的仿真来看:

  1. 在THD方面,基于自适应陷波的精确谐波电流抑制策略的具有最低的THD,THD为1.36%。
  2. 在五七次谐波电流方面,基于自适应陷波的精确谐波电流抑制策略和基于改进多同步旋转坐标系谐波电流抑制策略由于都采用了PI调节器,因此都实现了五七次谐波电流的无静差抑制。这两种方法的五次谐波电流都在0.1%以下。而基于相位补偿PIR谐波电流抑制策略还具有明显更高的七次谐波电流。
  3. 在谐波抑制速度方面,虽然基于自适应陷波的精确谐波电流抑制策略和基于改进多同步旋转坐标系谐波电流抑制策略的谐波抑制效果差距不大,但是基于自适应陷波的精确谐波电流抑制策略的谐波抑制速度明显更快,在0.4s之前就已经抑制了大部分谐波电流(对应的转矩脉动也就大幅减小了)。尽管基于改进多同步旋转坐标系谐波电流抑制策略可以增大低通滤波器的截止频率和增大PI调节器参数来加快谐波抑制速度,但是这也容易让系统失去稳定。

综上所述,个人认为,基于自适应陷波的精确谐波电流抑制策略具有相对更优异的性能。

 

 

LMS 算法是一种自适应滤波算法,常用于陷波器的实现。陷波器是一种信号处理器件,用于消除信号中的频率成分。在信号处理领域中,噪声比较常见,因此需要进行噪音滤波。LMS 算法就是一种可以进行自适应陷波,也就是自动调整陷波器参数的算法。 LMS 算法实现自适应陷波器的步骤如下: 1. 初始化陷波器参数:包括陷波器系数和输入信号缓存数组。 2. 对于每个输入样本,在输入信号缓存数组中加入新的样本,并调整陷波器系数。 3. 在陷波器系数调整时,需要进行误差计算和更新。误差计算是输出样本和期望结果之间的差值,用于衡量陷波器的表现。更新陷波器系数时,通过乘以步长和误差进行调整。 4. 不断重复过程,直到达到预设的收敛要求。 在 C 语言中,LMS 算法实现自适应陷波器的代码如下: ``` #include <stdio.h> #define NUM_SAMPLES 100 #define FILTER_LENGTH 10 #define MU 0.1 int main() { int input_signal[NUM_SAMPLES]; int output_signal[NUM_SAMPLES]; int filter_coef[FILTER_LENGTH] = {[0 ... FILTER_LENGTH - 1] = 1}; int filter_input[FILTER_LENGTH]; int error_signal; for (int i = 0; i < NUM_SAMPLES; i++) { int input_sample = get_input_sample(); // 获取输入样本 input_signal[i] = input_sample; error_signal = input_sample; // 初始误差为输入样本 for (int j = 0; j < FILTER_LENGTH; j++) { filter_input[j] = input_signal[i - j]; // 更新输入缓存 } int output_sample = filter_coefficient(filter_input, filter_coef, FILTER_LENGTH); // 计算输出样本 output_signal[i] = output_sample; error_signal -= output_sample; // 计算误差 for (int j = 0; j < FILTER_LENGTH; j++) { filter_coef[j] += MU * error_signal * filter_input[j]; // 更新陷波器系数 } } return 0; } ``` 以上代码简单地说明了 LMS 算法实现自适应陷波器的流程,但是实际情况下,需要根据实际应用场景进行具体的参数调整和性能优化。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烦恼归林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值