永磁同步电机控制算法--基于 SVM 的无磁链环 DTC

永磁同步电机无磁链环 DTC 通过控制定子磁链交轴分量来直接控制转矩,不再要求控制磁链幅值恒定,省去了传统 DTC 中的磁链环,不仅转矩响应更快,有效抑制了转矩脉动,而且提高了电机功率因数。但无磁链环 DTC 方案仍采用传统 DTC方案中的 Bang-Bang 控制策略,保留了 Bang-Bang 控制精度不高的缺点,此外,其定子磁链限幅策略要求在两套电压矢量选择表之间频繁切换,而两套电压矢量选择表的扇区分别依据转子和定子磁链位置划分,在运行过程中要同时对两个磁链的位置进行检测,系统复杂性相比传统 DTC 更高,存在改善的空间。

一、原理介绍

永磁同步电机相量图

dq轴定子磁链电流模型公式为

定子磁链幅值为

转矩表达式

由转矩表达式可求得转矩角

由上个文章可知,隐极式正弦波永磁同步电动机的转矩只与定子磁链的交轴分量有关,转矩变化则由定子电压直轴分量控制。在无磁链环DTC中,在负载转矩不变时,电机定子磁链的交轴分量也不变。而由dq轴定子磁链电流模型公式可知,定子磁链的交轴分量只与定子电流交轴分量有关,所以在相同转矩要求下,定子电流交轴分量也是不变的。这样一来定子磁链幅值就只与定子电流直轴分量有关了,在 DTC 系统正常运行时,定子磁链幅值与定子电流直轴分量成正比。

基础部分铺垫完成,接下来介绍如何推导出合适的参考电压矢量。

在直接转矩控制与空间矢量调制的结合过程中,求出一个合适的参考电压矢量是最关键的一环,在无磁链环永磁同步电机 DTC 中,这个参考矢量需要满足几个要求:

  1. 能精确地补偿转矩误差,使转能准确跟踪给定值。因为无磁链环 DTC 相比传统 DTC 的优点就在于能更准确地控制转矩,因此转矩控制精度是设计参考矢量时首

先要考虑的问题。

  1. 确保电机安全运行,定子磁链的幅值要限制在额定值之内。

3)应尽量减小定子磁链幅值与无功励磁电流,提高电机的功率因数。

传统的 SVM-DTC 中定子磁链幅值是恒定的,只需计算出满足转矩要求需要的转矩角变化量即可求出参考电压矢量,无磁链环 DTC 并不要求保持磁链幅值恒定,之前的方法并不适用。在无磁链环 DTC 理论中,转矩的变化由所施加电压矢量的交轴分量决定,从优先满足转矩要求的角度来说,参考电压矢量的交轴分量可以直接确定。

电压矢量直轴分量的作用则是控制磁链幅值,当交轴分量作用导致磁链幅值超出额定值时,直轴分量要作用在相反方向上,把定子磁链控制在额定值内。

综上所述,参考电压矢量为

结合空间矢量调制的 PMSM 无磁链环 DTC 系统框图如图所示, 转速误差经过 PI 控制器得到给定转矩,转矩误差经过限幅之后得到单周期内期望转矩变化量,根据参考电压矢量公式即可求出参考电压矢量,最终由空间矢量调制模块合成目标电压矢量作用于逆变器实现对电机的控制。

基于空间矢量调制的 PMSM 无磁链环 DTC 结构框图

二、仿真模型

在MATLAB/simulink(软件版本为2024A)里面验证所提算法。采用和实验中一致的控制周期1e-4,电机部分计算周期为5e-7。仿真模型如下所示:

2.1给定转速与实际转速

转速稳定,并准确跟踪给定转速值

2.2实际电磁转矩

转矩明显平滑度更好,并且响应速度较快

2.3给定定子磁链与实际定子磁链

磁链基本控制在了限制值附近。

总结:与传统无磁链环 DTC 方法相比,基于空间矢量调制的无磁链环直接转矩控制方法定子磁链幅值自适应变化效果更好,磁链幅值进一步降低,提高了电机的功率因数,并且在保持 DTC 动态响应快有点的同时,有效降低了转矩脉动。

相关推荐
星星火柴93619 分钟前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
艾莉丝努力练剑1 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
Moshow郑锴2 小时前
机器学习的特征工程(特征构造、特征选择、特征转换和特征提取)详解
人工智能·机器学习
C++、Java和Python的菜鸟3 小时前
第六章 统计初步
算法·机器学习·概率论
Cx330❀3 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
散1123 小时前
01数据结构-Prim算法
数据结构·算法·图论
起个昵称吧3 小时前
线程相关编程、线程间通信、互斥锁
linux·算法
myzzb4 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
旺小仔.4 小时前
双指针和codetop复习
数据结构·c++·算法
jingfeng5145 小时前
C++ STL-string类底层实现
前端·c++·算法