基于SVPWM改进的永磁同步电机直接转矩控制二更
导读:本期对基于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能够保持电机定子磁链幅值恒定,观测准确,磁链运动轨迹接近圆形,磁链和电磁转矩的控制平滑,能有效解决传统直接转矩控制系统存在的转矩和磁链脉动较大,开关频率不恒定等问题。
相关文章:
基于SVPWM改进的永磁同步电机直接转矩控制二更
导读:本期对基于SVPWM的永磁同步电机直接转矩控制进行全面的分析和仿真搭建。之后与传统的DTC进行比较,凸显基于SVPWM改进的DTC方法的有效性。如果需要文中的仿真模型,关注微信公众号:浅谈电机控制,留言获取。一、 传统…...
ubuntu下磁盘管理
一. ubuntu 磁盘文件 在做 Linux 嵌入式开发中,一般选择 U 盘的要求是:确保 U 盘是 FAT格式,即选用 FAT32 格式的U盘或 SD 卡。不要用 NTFS 格式的 U 盘或 SD卡,因为Linux 大多数系统都不支持 NTFS格式的,NTFS 格式的…...
Python学习-----排序问题1.0(冒泡排序、选择排序、插入排序)
目录 前言: 1.冒泡排序 2.选择排序 3.插入排序 前言: 学过C语言肯定接触过排序问题,我们最常用的也就是冒泡排序、选择排序、插入排序……等等,同样在Python中也有排序问题,这里我也会讲解Python中冒泡排序、选择排…...
LeetCode 535. TinyURL 的加密与解密
TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL http://tinyurl.com/4e9iAk 。请你设计一个类来加密与解密 TinyURL 。 加密和解密算法如何设计和运作是没有限…...
【c++】类和对象2—构造函数、析构函数、拷贝构造函数
文章目录构造函数和析构函数构造函数的分类及调用拷贝构造函数调用时机构造函数调用规则深拷贝与浅拷贝构造函数和析构函数 c利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是…...
[C++关键字] const/constexpr
文章目录const/constexpr[^1]const 与 宏const 与 类const 与 指针const 其他constexpr (C11之后)referenceconst/constexpr1 尽可能的使用constexpr对于不变的变量,尽量用const修饰 const 与 宏 const vs define的比较:define只是字符的替换…...
FPGA电源电流参数
一、FPGA里各个电源释义 VCCINT VCCINT是FPGA芯片的内核电压,是用来给FPGA内部的逻辑门和触发器上的电压。即芯片的晶体管开关是有核心电压提供。当内部逻辑工作时钟速率越高,使用逻辑资源越多,则核心电压供电电流会更大,可高达几…...
【Git】Git下载安装与使用(一)
目录 1. 前言 1.1 什么是Git 1.2 使用Git能做什么 2. Git概述 2.1 Git简介 2.2 Git下载与安装 3. Git代码托管服务 3.1 常用的Git代码托管服务 3.2 码云代码托管服务 1. 前言 1.1 什么是Git Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码…...
刷题记录:牛客NC20545[HEOI2012]采花
传送门:牛客 题目描述: 题目较长,此处暂略 输入: 5 3 5 1 2 2 3 1 1 5 1 2 2 2 2 3 3 5 输出: 2 0 0 1 0总结一下题意,就是求区间[l,r][l,r][l,r]出现次数大于1的花的种类数. 考虑使用主席树或者离线树状数组的方法来解决.由于数据加强的原因,导致主席树在本题中是不能完美通…...
每日学术速递2.21
CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models 标题:T2I-Adapter:学习Adapter,为…...
网络安全之认识挖矿木马
一、什么是挖矿木马? 比特币是以区块链技术为基础的虚拟加密货币,比特币具有匿名性和难以追踪的特点,经过十余年的发展,已成为网络黑产最爱使用的交易媒介。大多数勒索病毒在加密受害者数据后,会勒索代价高昂的比特币…...
OpenCV实战——基于分水岭算法的图像分割
OpenCV实战——基于分水岭算法的图像分割0. 前言1. 分水岭算法2. 分水岭算法直观理解3. 完整代码相关链接0. 前言 分水岭变换是一种流行的图像处理算法,用于快速将图像分割成同质区域。分水岭变换主要基于以下思想:当图像被视为拓扑浮雕时,均…...
YOLOv8模型调试记录
前言 新年伊始,ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。 值得一提的是,在博主的印象中,YOLO系…...
算法刷题打卡第97天:删除字符串两端相同字符后的最短长度
删除字符串两端相同字符后的最短长度 难度:中等 给你一个只包含字符 a,b 和 c 的字符串 s ,你可以执行下面这个操作(5 个步骤)任意次: 选择字符串 s 一个 非空 的前缀,这个前缀的所有字符都相…...
WebGPU学习(3)---使用IndexBuffer(索引缓冲区)
现在让我们将 IndexBuffer 与 VertexBuffer 一起使用。演示示例 1.准备索引数据 我们用 Uint16Array 类型来准备索引数据。我们将矩形的4个点放到 VertexBuffer 中,然后根据三角形绘制顺序,组织成 0–1–2 和 0–2–3 的结构。 const quadIndexArray …...
Java代码加密混淆工具有哪些?
在Java中,代码加密混淆工具可以帮助开发者将源代码进行加密和混淆处理,以增加代码的安全性和保护知识产权。以下是一些流行的Java代码加密混淆工具: 第一款:ProGuard:ProGuard ProGuard:ProGuard…...
华为OD机试 - 高效的任务规划(Python) | 机试题+算法思路+考点+代码解析 【2023】
高效的任务规划 题目 你有 n 台机器编号为1-n,每台都需要完成一项工作, 机器经过配置后都能独立完成一项工作。 假设第i台机器你需要花 Bi 分钟进行设置, 然后开始运行,Ji分钟后完成任务。 现在,你需要选择布置工作的顺序,使得用最短的时间完成所有工作。 注意,不能同…...
ChatGPT写程序如何?
前言ChatGPT最近挺火的,据说还能写程序,感到有些惊讶。于是在使用ChatGPT有一周左右后,分享一下用它写程序的效果如何。1、对于矩阵,把减法操作转换加法?感觉不错的,能清晰介绍原理,然后写示例程…...
编译链接实战(9)elf符号表
文章目录符号的概念符号表探索前面介绍了elf文件的两种视图,以及两种视图的各自几个组成部分:elf文件有两种视图,链接视图和执行视图。在链接视图里,elf文件被划分成了elf 头、节头表、若干的节(section)&a…...
React合成事件的原理是什么
事件介绍 什么是事件? 事件是在编程时系统内发生的动作或者发生的事情,而开发者可以某种方式对事件做出回应,而这里有几个先决条件 事件对象 给事件对象注册事件,当事件被触发后需要做什么 事件触发 举个例子 在机场等待检票…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
