一、原理介绍
参考下图所示论文进行复现

文中的方法可以简单介绍如下,下图所示公式(也是核心公式)为估计坐标系的ud^、uq^,当存在转子位置误差时,uq^无法达到最大值,那么通过传统无感算法估计出的角度之上增加一个较小的角度变量,看Uq是否会变大,如果uq增大了,说明调整方向是对的;如果uq减小了,那么换个方向,减小个较小的角度变量。重复上个过程,最终uq会在最大值附近波动,当然也可以在稳定过程中,减小补偿角度变量的幅值,以求减小波动。但我个人觉得这样会影响动态情况下的响应速度,看个人取舍。由于uq变化幅度较小,辨识起来容易出现误判,这里我对文章的判断方法进行了一些改动。

文章基本结构框图如下图所示,这里反电动势观测器我采用LESO,因为LESO自带低通特性必然存在一个转子位置误差,并且可以通过调节增益大小,来改变这个误差。


二、仿真模型
在MATLAB/simulink里面验证所提算法,搭建仿真。采用和实验中一致的控制周期1e-4,电机部分计算周期为1e-6。仿真模型如下所示:

仿真工况:电机空载零速启动,0s阶跃给定转速500rpm,1s阶跃给定转速1000rpm,1.5s实际满载,LESO带宽为8000rad/s。
2.1 wo=8000 LESO 无补偿 转子位置误差

上图为一个转子位置误差随转速增大的经典LESO观测器转子位置误差波动图。
2.2wo=8000 LESO 带补偿 转子位置误差(0.5s启动补偿策略)

可以看出,加入算法之后存在一个频率较低的波动,这是由于为了更加准确的判断电压变化,我将补偿算法的频率降低到了控制频率的1/50。动态过程电压在明显变化,相位补偿的作用也就不明显,稳态过程补偿算法可以有效的将误差降低到0。
2.3wo=6000 LESO 无补偿 转子位置误差

带宽下降,转子位置误差增大
2.4 wo=6000 LESO 带补偿 转子位置误差(0.5s启动补偿策略)

下面直接在2s和3s时在LESO输出的转子位置上增加一个±0.3rad的阶跃误差。
2.5 阶跃误差下的wo=8000 LESO 带补偿
转子位置误差

转速

Idiq

uduq

可以看出在施加较大阶跃误差的情况下,补偿算法依旧可以将误差减小到0。
总结,文章提出的方法简单有效,不需要额外的信号注入或复杂的计算,从而简化了实现,同时确保了良好的动态和稳态性能。