电机参数辨识算法(1)——基于高频注入的电感辨识策略

今天将开启参数辨识的第一期。通过复现论文来学习电机参数在线辨识的方法。我会尽可能讲述我在仿真遇到的问题以及解决办法。

1.文章内容介绍

参考文献如下:

这篇文章的复现估计要分为几个部分,电感辨识、电阻辨识、磁链辨识。

文章是以无差拍预测电流控制为基础进行参数辨识的。毕竟预测控制才会对参数比较敏感。下面就是正常的无差拍预测控制的公式。这里就不细说了,我往期大部分内容都是用无差拍预测电流控制的。

在电感方面,文章打算通过高频注入的方式来提取电感信息(紫色方框内的电流数值就是需要注入的高频电流频率与幅值):

文章中也就解释了该选取多少频率的电流以及多少幅值的电流。

我们的控制周期/载波周期一般为10kHz,那你的注入电流频率就不能太高,比如你注入正弦电流的频率为2kHz,相当于你的正弦电流经过一个周期,你只能采样五次,这样的话,采样得到的正弦电流看起来就不会像一个完整的正弦电流了。所以文章选的电流注入频率为300-350Hz。

其次,注入的高频电流幅值肯定不能太大,否则就影响你电机的正常工作了,所以文章取注入电流幅值为0.05A。

接着,文章列写了电机的高频电压方程:

 然后呢,就可以通过下面这个式子得到电感的数值了:

为什么这个式子可以得到电感呢?

首先,d-q电压里面包含高频分量和直流分量(直流d-q方程就是我们平时用的d-q方程),为什么这里不列写直流电压方程。这是因为直流的电压u与余弦量相乘就变成了交流,交流在通过低通滤波就被滤除了。其次,高频分量可以通过式子(12)去考虑,红色方框内都是正弦sin,sin与cos相乘还是交流量,所以被低通滤波器滤除,因此只剩下中间那一相了。进而就可以推出式子(19)。

 

 是不是看着非常简单?但是仿真搭建起来可没有那么简单。

2.仿真搭建

复现论文的仿真,是要一步一步来的。遇到不少人私信问我,说自己的仿真一直搭建不出来,可不可以帮忙找找原因。

仿真搭不出来是很正常的事。不过我经常遇到有的同学,就连最简单的PI控制的转速电流双闭环的永磁同步电机模型都没有搭建过,就开始照着别人的论文去搭建特别复杂的系统。。。这完全是自找苦吃。

仿真应该一步一步地搭起,按步骤一步一步走起来。

我以经有了无差拍预测电流控制的模型,那我要复现这篇高频注入电流辨识电感的模型,我的第一步应该是先把高频电流的参考模块给搭建出来。

--

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

Tspeed = 1e-4;%转速采样周期

Pn = 4;%电机极对数

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

Rs = 3;%定子电阻

flux = 0.0844;%永磁体磁链

Vdc = 311;%直流母线电压

iqmax = 25;%额定电流

--仿真参数

(1)高频电流的参考模块

首先要搭建这个模块,是不是需要一个Enable开关,在Enable==1时,系统才开始辨识呢?

为什么一定要Enable开关呢?难道不可以一直注入高频电流吗?

因为只有在稳态的时候,电压ud-uq才是直流量;在动态过程中,电压ud-uq会出现波动,对高频交流提取产生一定的干扰。

好,那我就搭建一个模块,到xx秒之后,就开始启动参数辨识。

然后呢,接下来可以写高频参考电流的产生模块了,这时候就需要考虑Enable==1的时候,该怎么写代码;Enable==0的时候,该怎么写代码。

把这里写好之后,别着急继续搭下一个模块,先验证这个高频电流参考值是否ok了。

我这里是设定t>0.3s之后开始高频注入,此时的d-q电流确实出现了高频分量,那说明这个模块已经ok了。

(2)低通滤波模块

现在高频参考电流模块已经ok了,接下来就可直接搭建式子(19)的低通滤波模块了。低通滤波器的搭建网上一搜一大把,不过注意,一定需要离散化。

先来看看式子(19)中,(u*2coswt)为经过低通滤波器之前的波形:

下面这是式子(19)中,(u*2coswt)为经过低通滤波器之后的波形。因为我是在0.3s才启动参数辨识,所以在0.3s之后,才看到很小的交流量。

低通滤波之后的波形
低通滤波之后的波形(放大图)

 

 

从这个放大图来看,0.3s之后的交流量数值只有十几,相比于未滤波前的几百的数值,已经滤除了很多。(低通滤波器频率是10Hz,尽可能滤除交流量)

式子(19)中的电压已经低通滤波好了,那么直接根据式子(19)就可以进一步计算电感数值了。

电感辨识效果

 

 

结果呢,发现电感辨识的效果也太差了吧。。。

0.3s之前设置为标准电感数值,18.5mH。0.3s之后的电感辨识数值波动也太大了。。。最大电感都到了60mH,最小的电感竟然还是负数。。。

那这可咋办????????

先看看论文的实验图,发现电感辨识的结果就是一条直线啊!根本不存在交流波动。

再看看论文中关于式子(19)的解释。红色方框中说,低通滤波器只提取直流分量。

可是一般的低通滤波器都没有办法把交流量完全抑制呢,都只能削弱一定的幅值。(这一点,在我下面这篇知乎中的参考文献中有说到)

永磁同步电机谐波抑制算法(1)——基于多同步旋转坐标系的五七次谐波电流抑制 - 知乎这段时间发现电机里面会存在五次谐波,然后学了学谐波抑制的方法。一般比较常用的是多同步旋转坐标系和PIR调节器。今天先讲一下多同步旋转坐标系。 Pony:永磁同步电机-谐波抑制这篇知乎下面有很多人在问问题,所…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/673773182

那有没有什么办法能提取直流呢?????

当然有咯,直接对低通滤波之后的电感数值求平均即可(毕竟交流量的平均值为0)。

所以这个代码里应该包括以下几个内容:

  1. Enable=0/1的内容,也就是不辨识的时候,辨识模块应该输出什么数值、怎么样进行参数初始化。
  2. 低通滤波的内容,而且还是只能在Enable==1时开启低通滤波。
  3. 平均值滤波的内容,在Enable==1且数值经过低通滤波之后再开始平均值滤波。

搭建好平均值滤波之后,来看看平均值滤波的效果吧。

可以看到,q轴电感(蓝线)经过1s的辨识之后,最终结果稳定在18.45mH,与标准值18.5mH非常接近,说明这种方法的辨识精度是非常高的d轴电感(红线)经过1s的辨识之后,最终结果稳定在17.3mH,与标准值18.5mH也比较接近,误差是在5%左右

接下来测试一下初始电感设置为18.5*2mH,看看这种方法在初始电感与标准电感不同时的辨识效果。可以看到,q轴电感(蓝线)经过2s的辨识之后,最终结果稳定在19.8mH,与标准值18.5mH比较接近,误差是在7%左右d轴电感(红线)经过2s的辨识之后,最终结果稳定在19.2mH,与标准值18.5mH也比较接近,误差是在4%左右

而且可以看到,随着时间的增加,辨识出的电感数值还是在不断靠近标准值18.5mH,说明如果仿真时间再长一些,辨识误差可以再缩小一些。

3.仿真连接

注意啊!前面的控制框图,还只是单纯的无差拍预测电流控制,电感辨识模块还没有加入到整个控制系统中,我们只是属于测试阶段。

接下来就是要把电感辨识模块加入到整个控制系统中。

加入辨识模块之后的电压方程如下:(相当于就是把电感初始值换成了电感辨识模块的电感输出数值)

 

我这里把初始电感设置为标准电感的2倍。可以看到,把这个辨识模块加入系统之后,大概经过2s的运行,辨识出的电感基本上都完全等于实际值了。

把辨识结果放大来看,2.3s的时候d轴电感辨识结果基本完全等于18.5mH;q轴电感辨识结果为19mH,辨识误差都不足3%。可见该方法效果非常好。

定子三相电流、转矩、转速波形 
参数辨识前的相电流THD
参数辨识后的相电流THD

 

 

 辨识前后,相电流THD由原来的3.51%降低到了0.5%。

 30%额定负载工况(1.5Nm,相电流3A),初始电感设定为标准值的200%,此时的谐波电流成分相对较大。

定子三相电流、转矩、转速波形
电感辨识前
电感辨识后

 

 辨识前后相电流THD降低了11%!!

现在带2.5Nm(电流5A),初始电感为标准电感的150%,看看辨识情况。

 可以看到,电感辨识的效果还是非常的好。

 

 

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

烦恼归林

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

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

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

打赏作者

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

抵扣说明:

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

余额充值