永磁同步电机无速度算法--永磁同步电机转子位置精确估计的误差抑制方法

一、原理介绍

参考下图所示论文进行复现

文中的方法可以简单介绍如下,下图所示公式(也是核心公式)为估计坐标系的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。

总结,文章提出的方法简单有效,不需要额外的信号注入或复杂的计算,从而简化了实现,同时确保了良好的动态和稳态性能。

相关推荐
无限进步_12 小时前
【C++】只出现一次的数字 II:位运算的三种解法深度解析
数据结构·c++·ide·windows·git·算法·leetcode
Takoony12 小时前
GPU 推理并发的本质:从第一性原理到工程实践
算法·gru
哎嗨人生公众号13 小时前
手写求导公式,让轨迹优化性能飞升,150ms变成9ms
开发语言·c++·算法·机器人·自动驾驶
foundbug99913 小时前
STM32 内部温度传感器测量程序(标准库函数版)
stm32·单片机·嵌入式硬件·算法
Hello.Reader13 小时前
为什么学线性代数(一)
线性代数·算法·机器学习
_深海凉_13 小时前
LeetCode热题100-找到字符串中所有字母异位词
算法·leetcode·职场和发展
木井巳13 小时前
【递归算法】目标和
java·算法·leetcode·决策树·深度优先
旖-旎13 小时前
哈希表(字母异位次分组)(5)
数据结构·c++·算法·leetcode·哈希算法·散列表
别或许13 小时前
4、高数----一元函数微分学的计算
人工智能·算法·机器学习
_深海凉_13 小时前
LeetCode热题100-最长连续序列
算法·leetcode·职场和发展