基于SVPWM改进的永磁同步电机直接转矩控制二更

2023-11-18

导读:本期对基于SVPWM的永磁同步电机直接转矩控制进行全面的分析和仿真搭建。之后与传统的DTC进行比较,凸显基于SVPWM改进的DTC方法的有效性。

如果需要文中的仿真模型,关注微信公众号:浅谈电机控制,留言获取。

一、 传统直接转矩控制系统存在的问题

传统直接转矩控制系统对定子磁链和电磁转矩进行直接控制,通过滞环比较器在开关表中选择合适的电压空间矢量来控制逆变器的输出。其控制系统的优点有 :

(1)省去了复杂的坐标变换,系统结构简单。

(2)转矩能快速响应电机参数的变化。

(3)控制系统对电机的参数依赖性小,系统鲁棒性好。

但是由于滞环比较器的使用,定子磁链观测的准确性及离散的空间电压矢量等因素致使直接转矩控制系统在实际使用中存在如下问题:

(1) 低速状态下的电磁转矩脉动大;

(2) 控制系统采用滞环比较器,无法适应先进的控制理论;

(3) 稳态时,定子电流含有的谐波比重大,导致定子磁链轨迹发生畸变;

(4) 开关频率不固定,电压利用率低;

从理论上分析这些问题发生的主要原因如下:

1. 滞环控制器带来的影响

传统的直接转矩控制是通过设置滞环比较器的容差大小来控制磁链和转矩的,所以定子磁链的畸变和转矩的脉动都受到滞环比较器容差范围的影响。滞环比较器的输出只是一个“0”或“1”比较结果,而并不能以一个数值来说明大小的范围。如果滞环比较器的容差设置太大,那么必然会引起磁链畸变和转矩脉动。如果滞环控制器的容差设置太小,由于转矩和磁链的惯性,实际上磁链和转矩的偏差都会不可避免的超出容差范围,此时控制器为使偏差迅速减小,会输出相反方向的控制信号,但这种动作会带来较大的瞬时脉动。如果磁链和转矩偏差恰好处于容差之内时,滞环比较器这时并不对其控制,所以转矩或磁链值也会一直在容差范围内波动。所以,控制系统中只要使用滞环比较器,磁链的畸变和转矩的脉动就无法消除。

2. 有限的电压空间矢量带来的影响(只考虑了误差大小而没有考虑方向)

传统的直接转矩控制系统中通过查表选择空间电压矢量来控制异步电机,这种控制方法虽然简单,但是却有缺陷。由于系统中可用的空间电压矢量数量有限,两电压矢量之间的切换不连续,而要用这些离散的电压矢量对连续的磁链轨迹进行调节,这样就一定会导致磁链和转矩的脉动。直接转矩控制系统选择的电压矢量大小和方向都是固定的,只能对磁链和转矩进行大小调节,但是并没有具体的调节数值。因此,这种开关表选择原则十分粗略,不能精确地控制转矩和磁链

3. 定子磁链的观测带来的影响

直接转矩控制需要对定子磁链的幅值和磁链的相位进行实时地测定,目前由于磁链的直接观测较为复杂,根据异步电机的磁链方程,可以通过测量定子电压、定子电流以及转速等信号来间接地估计出定子磁链的大小。定子磁链的观测,需要建立磁链观测模型,在第二章中我们介绍过三种磁链观测模型,经过分析,其各有优缺点,但是都不能实现准确的磁链观测。转矩的计算和磁链扇区的判断都受磁链观测的准确性的影响,磁链观测失误,会造成电机失控。因此,定子磁链的观测是直接转矩控制的一个难点,也是影响系统性能的关键因素之一。

影响直接转矩控制性能的因素不止以上分析的这三方面,导致磁链和转矩观测不准还有逆变器的死区效应,定子电阻值的准确测定等等,这些因素都会影响系统控制的性能,在此就不一一赘述。

二、永磁同步电机直接转矩控制系统的改进

经过对直接转矩控制系统缺陷的分析我们知道,要想改善这种缺陷就要从克服系统中滞环比较器的影响,调制出更多的空间电压矢量对磁链进行连续平滑的控制,保证开关频率固定这几方面入手。国内外许多学者从不同角度提出了许多改进方法。如美国学者Habetler 提出的无差拍控制技术,其控制思路就是在一个控制周期内根据磁链和转矩的误差计算出能使误差为零的定子电压矢量,并在下一个控制周期中使用SVPWM技术将其合成来实现控制。无差拍技术是解决直接转矩控制系统缺陷的一个很好的方案,但是需要庞大的计算量,所以难以实现。但是在借鉴无差拍技术的基础上,我们提出基于空间矢量脉宽调制(SVPWM)方法的直接转矩控制系统,基本思想就是通过上一个周期反馈的磁链和转矩与给定值进行比较,由比较结果得出下一个控制周期内所期望的电压矢量,然后利用空间矢量脉宽调制方法来合成该预期的电压矢量来进行控制。图1为基于SVPWM的异步电机直接转矩控制系统(SVPWM-DTC)的结构框图。

图1 SVPWM—DTC系统框图

在改进后的控制系统中,将滞环比较器替换为控制性能更为卓越的PI 控制器,SVPWM 模块可以根据磁链和转矩偏差的大小和方向,实时精确的调制出任意的改变磁链和转矩所需的电压空间矢量,实现磁链的平滑调节,而不受开关表中空间电压矢量数量的限制。该方案能使逆变器开关频率恒定,从而可以大大降低转矩、磁链的脉动。

该系统采用的是一种先进的脉宽调制策略,将逆变器和异步电机看做一个整体来控制,控制系统具有直流电压利用率高、算法简单、谐波损耗及噪声低等特点,将先进的控制理应用到直接转矩控制系统中,大大提高了系统的性能。

2.1 SVPWM 调制算法

(1) 期望电压ref U 的生成

下一个周期所需期望电压矢量的生成需要让定子磁链和电磁转矩在上一个周期内都能跟踪期望值,从而利用其与期望值的偏差控制下一个周期内定子磁链和电磁转矩的大小。

(2) 扇区判断

关于SVPWM的部分,可以看公众号往期关于SVPWM的文章。

(3) 仿真模型搭建

图3 基于SVPWM的永磁同步电机直接转矩控制的仿真模型

图3中仿真,最难的部分就是参考电压矢量模块的搭建,模块如下:

图4 参考电压矢量模块搭建

转矩偏差、定子磁链参考值、定子磁链所处角度、定子磁链实际值及两相静止坐标系下的定子电流为电压控制器的输入,其输出为期望电压矢量在两相静止坐标系下的两个分量。

三、仿真波形

图4 波形变化情况

四、总结

本文对传统直接转矩控制系统调速性能的缺陷和不足进行了理论分析,提出了基于空间矢量脉宽调制技术(SVPWM)的永磁同步电机直接转矩控制控制系统,并详细介绍了SVPWM 的调制原理和调制算法,其主要采用预测的思想合成系统控制所需的期望电压矢量。最后,通过simulink 仿真软件建立了SVPWM 仿真模块,并对其进行了仿真分析。

理论分析表明,基于SVPWM的永磁同步电机改进的DTC能够保持电机定子磁链幅值恒定,观测准确,磁链运动轨迹接近圆形,磁链和电磁转矩的控制平滑,能有效解决传统直接转矩控制系统存在的转矩和磁链脉动较大,开关频率不恒定等问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于SVPWM改进的永磁同步电机直接转矩控制二更 的相关文章

  • Microsoft Visual C++ 2008 和 R2007b 的 Mex 类型

    我想对 vs2008 和 matlab2007b 使用 mex 类型 我尝试了下面的代码 include
  • MATLAB:比较两个不同长度的数组

    我有两个长度不同的数组 由于采样率不同 需要比较 我想对较大的数组进行下采样以匹配较小的数组的长度 但是该因子不是整数而是小数 举个例子 a 1 1 375 1 75 2 125 2 5 2 875 3 25 b 1 2 3 有什么方法可以
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 如何加载具有可变文件名的 .mat 文件?

    select all mat files oar dir oar mat n oar name loop through files for l 1 length oar load pat oar l lt this is the mat
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • 使用 R2010b 中的符号工具箱来求解和/或 linsolve

    我前几天问了一个问题here https stackoverflow com questions 20317038 matlab linear congruence solver that supports a non prime modu
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • getappdata 在 MATLAB 中返回空矩阵

    我有一段代码 我在其中使用setappdata然后我使用以下方式调用数据getappdata即使它不为空 它也会返回一个空矩阵 我的一段简化代码如下 function edit1 Callback hObject eventdata han
  • 如何在Matlab中打印带有千位分隔符的整数?

    我想使用逗号作为千位分隔符将数字转换为字符串 就像是 x 120501231 21 str sprintf 0 0f x 但随着效果 str 120 501 231 21 如果内置fprintf sprintf做不到 我想可以使用正则表达式
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • matlab中无限while嵌套在for循环中

    我想做一个while循环 嵌套在for在 Matlab 中循环以查找数据中不同对之间的距离 我的数据具有以下形式 ID lon lat time 1 33 56 40 89 803 2 32 45 41 03 803 3 35 78 39
  • matlab中更快的插值方法

    我正在使用 interp1 来插值一些数据 temp 4 30 4 rand 365 10 depth 1 10 dz 0 5 define new depth interval bthD min depth dz max depth ne

随机推荐

  • 傻瓜式操作 之 git分支(合代码--拉代码)

    刚刚入职的我 差点把人家分支给搞坏 呜呜呜太刺激了叭 之前学到 git 的相关知识的时候 都有一种恐惧心理 所以每次往 master 上面合代码的时候都让大佬帮我操作 前几天一位好心人给我了一套 git 的流程 现在玩分支简直是如鱼得水 哈
  • 一个无敌删除的命令,所有的流氓软件及顽固程序等都可以轻松的删除

    教你一个无敌删除的命令 所有的流氓软件及顽固程序等都可以轻松的删除 方法非常的简单 桌面右键 新建 文本文档 双击桌面的这个新建的文本文档 把下面的命令复制后粘贴进去 写入下列命令 DEL F A Q 1 RD S Q 1 文件 另存为 统
  • 一次安装Python插件mysqlclient受到的启发

    首先 我也是Python的初学者 环境是ubuntu22 04 pycharm 都安装好了以后 我打开了一个原来编辑过的项目 在新环境中提示没有安装mysqlclient 于是我就pip install mysqlclient 就有了以下的
  • 线性数据结构(线性表、链表、栈、队列、散列表)

    作者 disappearedgod 文章出处 http blog csdn net disappearedgod article details 23805707 时间 2014 4 16 线性表 基本概念 线性结构是最常用 最简单的一种数
  • 人脑神经网络计算法+机器

    人工神经网络编辑 人工神经网络 Artificial Neural Networks ANN 系统是 20 世纪 40 年代后出现的 它是由众多的神经元可调的连接权值连接而成 具有大规模并行处理 分布式信息存储 良好的自组织自学习能力等特点
  • 编码问题

    编码 字符 gt 字节数组 解码 字节数组 gt 字符 编码 String str 你好 byte bus str getBytes UTF 8 解码 String str1 new String bus UTF 8 System out
  • STM32F407 USART3串口使用DMA接收不定长数据和DMA中断发送

    一 前言 使用DMA通信的好处是 不占用单片机资源 不像普通串口中断 发送一个字节触发一次中断 发送100个字节触发100次中断 接收一个字节触发一次中断 接收200个字节触发200次中断 数据接收完毕触发一次DMA中断 发送数据完毕触发一
  • 如何克服开发团队缺乏专业知识,加速交付高质量项目成品

    持续测试是一个过程 使团队能够在软件开发中建立质量 并加速交付高质量的客户体验 通过持续测试 团队使用自动化测试获得关于代码健康的即时反馈 持续测试使企业能够评估商业风险 最近的行业调查显示 用于跟踪项目进展和成功的首要指标 高测试覆盖率
  • 设计一个能够获取栈中最小值的栈。

    设计一个栈 要求 支持 push pop top 操作 并能在常数时间内检索到栈中最小元素 示例 public Stack
  • 闭包-python

    闭包的概念 在 Python 中 闭包 closure 是一个常见的编程技巧 闭包是指一个函数对象 该函数能够访问其定义域外部的非全局变量 即使这些变量在函数调用时不处于活动状态也可以被访问 def outer func x def inn
  • ScriptManager和UpdatePanel控件的使用

    ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果 其中的UpdatePanel就是设置页面中异步局部更新区域 它必须依赖于ScriptManager存在 因为ScriptManger控件提供了客户
  • DNS 基础知识及 Linux DNS 服务器操作知识

    一 DNS域名结构与域名服务器 域名系统DNS Domain Name System 是因特网使用的命名系统 用来把便于人们使用的机器名字转换成为IP地址 域名系统其实就是名字系统 为什么不叫 名字 而叫 域名 呢 这是因为在这种因特网的命
  • 调用OpenAI接口失败的原因

    谈谈我研究OpenAI的感受 Chatgpt的后台时基于OpenAI研发的 但是国内一直无法使用Chatgpt 2023年2月份研究了OpenAI接口 为了国内能体验ChatGpt 就自己搭建了网站 并集成了几十个接口到自己的网站 也有很多
  • SpringBoot项目启动报错--“xxx程序包不存在“

    问题描述 SpringBoot项目 从主分支拉了一个新的分支 运行时报错xxx程序包不存在 原因分析 因为是从master新拉的分支 里面有以前已经编译好的target 可能是拉过来的分支有些地方没编译到 导致找不到程序包 解决方案 将项目
  • Ubuntu 18.04上安装CMake的简单经验流程

    这篇博客继续第一篇和第二篇的内容 这篇相对简单 按照这里的介绍 https cmake org install 我们直接把CMake的压缩包下载下来 解压后首先运行 bootstrap 如果是在一个比较新的系统上安装 则有可能会报下面的错
  • 【githubshare】无需编写一行代码,即可自动为静态数据集生成只读 API,快速完成静态数据的加载调用

    推荐 GitHub 上一款开源的开发者工具 ROAPI 无需编写一行代码 即可自动为静态数据集生成只读 API 快速完成静态数据的加载调用 GitHub github com roapi roapi 静态数据集所支持的格式 包括 CSV J
  • 学习才是测试猿的永动力!超详细的 pytest 钩子函数 之初始钩子和引导钩子来啦

    前 言 前几篇文章介绍了 pytest 点的基本使用 学完前面几篇的内容基本上就可以满足工作中编写用例和进行自动化测试的需求 从这篇文章开始会陆续给大家介绍 pytest 中的钩子函数 插件开发等等 仔细去看过 pytest 文档的小伙伴
  • OO ALV checkbox更新的问题

    OO ALV在CHECKBOX的处理与FUNCTION ALV有稍微的不同 在调用set table for first display后需要加上以下语句才能实现点击后自动更新内表 CALL METHOD g grid gt registe
  • 【Python开发】python PIL读取图像转换为灰度图及另存为其它格式(也可批量改格式)...

    例如有一幅图 文件名为 a jpg 读取 from PIL import Image 或直接import Image im Image open a jpg 将图片转换成灰度图 im1 im convert L 所以 打开图片并转换成灰度图
  • 基于SVPWM改进的永磁同步电机直接转矩控制二更

    导读 本期对基于SVPWM的永磁同步电机直接转矩控制进行全面的分析和仿真搭建 之后与传统的DTC进行比较 凸显基于SVPWM改进的DTC方法的有效性 如果需要文中的仿真模型 关注微信公众号 浅谈电机控制 留言获取 一 传统直接转矩控制系统存