Simulink永磁同步电机控制仿真系列六:使用电压电流模型的位置估计
引言
1、电压电流模型简介
1.1.αβ坐标系下的电压方程
1.2. αβ坐标系下的磁链方程
1.3. 磁链很重要
2、建模实现
2.1、理论与现实的差异
2.2 、仿真验证而已
2.3 、误差校正
3、转子位置观测器
3.1、搭建一个真正的观测器
3.2、看看效果
引言
上一篇文章中提到了使用滑膜观测器通过估计反电动势实现转子位置解算,本质上,反电动势由转子磁链旋转而产生,直接观测转子磁链同样能够得到转子位置。本文将基于永磁同步电机的电压电流模型,直接对转子磁链进行观测,并给出simulink验证结果。
本文主要参考IEEE论文:Sensorless Control of Surface-Mount Permanent-Magnet Synchronous Motors Based on a Nonlinear Observer

1、电压电流模型简介
1.1.αβ坐标系下的电压方程
Uα = Rs * iα + p Φα
Uβ = Rs * iβ + p Φβ
式中Φα为α轴磁链,Φβ为β轴磁链。p 为微分算子

1.2. αβ坐标系下的磁链方程
对于表贴式永磁同步电机,忽略Ld,Lq差异,有
Φα = L * iα + Φf * cosθ
Φβ = L * iβ + Φf * sinθ
式中,Φf为永磁体磁链,L为相电感

1.3. 磁链很重要
暂且粗浅的把磁链解释为让电机转子旋转的力,永磁同步电机中的磁链由两部分组成,一部分是永磁体自身的磁链,转子磁链,我们用Φf表示,还有一部分是电流流过电感产生的磁链,因为电感是定子绕组的一部分,这部分磁链且称为定子磁链,用Φs表示。
上文中提到的Φα,Φβ为定子磁链和转子磁链的和在α,β轴上的分量。
显然,
Φs 在α轴上的分量Φs * cosθ = L * iα
Φs 在β轴上的分量Φs * sinθ = L * iβ

回到转子位置观测上来。
磁链方程里面的转子磁链项明显是包含有转子位置信息的,事实上反电动势就是由转子磁链的微分。
只要得到了转子磁链在αβ轴上的分量,就可以轻易获得转子位置。

观察上述方程,获取转子磁链在αβ轴上的分量也没什么大问题。
通过电压方程,有

p Φα = Uα - Rs * iα
p Φβ = Uβ - Rs * iβ

所以,可以轻易的通过电压得到Φα,Φβ的微分。
磁链的微分知道了,算个积分磁链Φα,Φβ也就有了呀。
有了Φα,Φβ,根据磁链方程

Φf * cosθ = Φα - L * iα
Φf * sinθ = Φβ - L * iβ

可以轻易的分离出带有转子位置的转子磁链项。arctan一下就是转子位置呀。

2、建模实现
2.1、理论与现实的差异
从公式来看,转子位置观测的计算并不复杂。但是想要通过上述计算获得准确的转子位置是不可能的,真实的电路系统中存在如下问题:

积分计算的时候初始值问题
电流电压采样的误差问题
首先是积分环节的问题,积分计算误差是累计的,如果电压电流采样不准,或者有偏置的话,积分结果漂移,还有转子初始位置不同,转子磁链在αβ轴的分量不同,积分的时候从哪个值开始积分?
然后是定子磁链计算时,电流采样结果抖动,得到的定子磁链也必定抖动。

2.2 、仿真验证而已
虽然说前面提到的计算方法在实际系统中是不可信的,但是通过仿真验证一下理论正不正确还是可以的。先准备一个误差可以估计的环境。

simulink的电机仿真系统,采样是几乎没有误差的,电机的转子初始位置也是可以定义的。先搭个模型试试。
在这里插入图片描述

当然,这一步中控制用的角度是编码器得到的角度,运行仿真。

在这里插入图片描述

果然,积分漂移是客观存在的,左图黄色是Φα,蓝色波形是Φβ,毫无悬念,结算出来的转子位置没法用了,右图黄色为观测器计算的转子位置,蓝色为编码器反馈的转子位置。
虽然得到的角度完全不对,但是我知道了积分漂移了多少,为了验证方法,先手动减去漂移。

在这里插入图片描述

运行仿真;

在这里插入图片描述

这次效果不错,观测值和编码器的输出比较接近了。
OK,思路是没有问题的,想要搭建一个真正能用的观测器,剩下的是构建一个误差校正环节,实现误差的自动矫正。

2.3 、误差校正
引言中提到的论文的作者给出了一种巧妙的矫正思想。
算出Φf * cosθ,Φf * sinθ后。可以知道转自磁链的估计值。
Φf ^2 = (Φf * cosθ)^2 + (Φf * sinθ)^2
结合上述公式,我们可以在完全不依赖转子位置θ的情况下计算中转子磁链。而转子磁链Φf又是一个非常容易获得的常数,对于不同的用词同步电机,有KV值,反电动势常数等多种不同的形式反应转自磁链值。
在前面的计算中,已经得到了
α轴磁链的微分p * Φα
β轴磁链的微分p * Φβ

定义状态变量
x1 = Φα
x2 = Φβ

定义转自磁链在αβ轴的分量为
η(x1) = x1 − Φrα
η(x2) = x2 − Φrβ

|η(x)|2 = |η(x1)|2 + |η(x2)|2 = ψf2

x’ += γ * η(x) * [ψf2 - |η(x)|2]

式中 γ为矫正系数,η(x)确定方向, [ψf2 - |η(x)|2]为实际转子磁链与估计转子磁链的误差大小。

当 [ψf2 - |η(x)|2]收敛后,使用atan2(η(x2),η(x1))计算转子位置。转自位置逐渐收敛。

3、转子位置观测器
3.1、搭建一个真正的观测器
到这里,搭建一个转子位置观测器最关键的一步搞明白了,接下来是时候搭建一个真正的观测器了。
把矫正部分添加到模型中去。
在这里插入图片描述

3.2、看看效果
我验证了一下观测器的效果,启动时误差较大,收敛较慢,但是在实际的电机控制系统中会有启动初始角度辨识过程,所以不是问题。虽然收敛过程比较长,但是实测能够成功启动,我就直接把观测器的输出角度接到了系统中去,使用观测到的角度进行park变换以及反park变换,仿真效果如下。

系统工况:

在这里插入图片描述

上图最上面黄色波形为速度,中间波形为转子位置,下面波形为转矩。
系统工作在速度控制模式下,在0.01s时给了一个恒转矩型负载。

在这里插入图片描述

左图黄色波形为观测器输出,蓝色波形为编码器输出。
右图为转子磁链误差。

可以看到,转子磁链误差很快矫正到0附近,但是因为初始角度误差大,角度在较长时间后才收敛到真实角度附近。

观测器输出的角度存在一定滞后。

在这里插入图片描述

上图中,黄色波形为观测器输出α轴磁链,蓝色波形为真是α磁链
可以看出,转自位置收敛时间长是因为磁链收敛时间长,除此之外,观测器的观测结果能够较好的跟随实际结果。

Simulink永磁同步电机控制仿真系列六模型
仿真模型已经上传到我的资源。搞技术也要吃饭,定价9.9元,希望大家理解