SVPWM控制技术+Matlab/Simulink仿真详解

news2024/12/29 23:41:41

文章目录

  • 前言
  • 一、SVPWM的控制原理
  • 二、空间矢量的概念
  • 三、电压与磁链空间矢量的关系
  • 四、三相逆变器的基本电压空间矢量
  • 五、SVPWM 算法的合成原理
  • 六、SVPWM 算法推导
    • 6.1.七段式SVPWM
    • 6.2.五段式SVPWM(又称DPWM)
  • 七、SVPWM 算法实现
    • 7.1.合成矢量Uref所处扇区的判断
    • 7.2.基本电压空间矢量作用时间计算
    • 7.3.扇区矢量切换点的确定
    • 7.4.PWM信号生成
  • 八、七段式SVPWM仿真分析
    • 8.1.仿真电路分析
    • 8.2.仿真结果分析
  • 九、五段式SVPWM仿真分析
    • 9.1.仿真结果分析
  • 十、PMSM电压开环控制Matlab/Simulink仿真分析
    • 10.1.仿真电路分析
    • 10.2.仿真结果分析
  • 总结


前言

本章节首先介绍SVPWM控制技术的原理,然后详细分析SVPWM控制算法的具体实现方式,并通过Matlab/Simulink对SVPWM控制算法进行仿真分析,最后通过永磁同步电机矢量控制的实例进行算法实现。


一、SVPWM的控制原理

SPWM控制技术主要控制逆变器的输出电压尽量接近正弦波,并未顾及输出电流的波形。电流滞环跟踪控制则直接控制输出电流接近正弦波。
有关PWM控制技术请阅读:
PWM控制技术+Simulink仿真详解
交流电机需要输入三相正弦电流的最终目的是在电机空间形成圆形旋转磁场,从而产生恒定的电磁转矩。把逆变器和交流电机视为一体,以圆形旋转磁场为目标来控制逆变器的工作,这种控制方法称做“磁链跟踪控制”,磁链轨迹的控制是通过交替使用不同的电压空间矢量实现的,所以又称为“电压空间矢量PWM(Space Vector PWM,SVPWM)控制”。
实践和理论证明,与直接的 SPWM 技术相比,SVPWM 算法的主要优点有:
1、SVPWM优化谐波程度比较高,消除谐波效果要比SPWM好,容易实现,并且可以提高电压利用率,输出电压最高可提高15%左右。
2、SVPWM算法提高了电压源逆变器的直流电压利用率和电机的动态响应速度,同时减小了电机的转矩脉动等缺点。
3、SVPWM比较适合于数字化控制系统。

二、空间矢量的概念

在三相逆变器控制中,通常输入输出三相变量要分别描述,若能将三相变量用一个合成量表示,并保持信息的完整性,则三相的问题将简化为单向的问题,由此引入空间矢量的概念。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、电压与磁链空间矢量的关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、三相逆变器的基本电压空间矢量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时等效电路为:
在这里插入图片描述
由此可推出:
在这里插入图片描述
同理,可推出其他组合的电压空间矢量如下表所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、SVPWM 算法的合成原理

在这里插入图片描述
在这里插入图片描述
由上述分析三相正弦波电压在电压空间向量中合成一个等效的旋转电压矢量,其旋转速度为输入的电源角频率,该等效旋转电压矢量的运动轨迹为圆形。所以要产生三相正弦波电压,可以利用以上电压空间矢量合成的技术,在电压空间向量上,将设定的电压向量由一起始位置开始如 100,每次增加一个小增量,每个小增量设定的电压向量可以用该区中相邻的两个基本非零向量与零电压矢量予以合成,如此所得到的设定电压向量就等效为一个在电压空间向量平面上平滑旋转的电压空间矢量,从而达到电压空间矢量脉宽调制的目的。

六、SVPWM 算法推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.1.七段式SVPWM

以减少开关次数为目标,将基本矢量作用顺序的原则选定为:在每次开关状态转换时,只改变其中一相的开关状态。并且对零矢量在时间上进行了平均分配,以使产生的 PWM 对称,从而有效的降低 PWM 的谐波分量。例如当从 100变为 000 时只需要改变 A 相桥臂上下开关管的状态,当从 100 变为 111 则需要改变 BC 两相桥臂上下开关管的状态,这种方式增加了一倍的开关损耗。因此,要改变电压向量 100、010、001 的大小需配合零电压矢量 000,要改变110、011、101 的大小需配合零电压矢量 111。这样通过在不同区间内安排不同的开关切换顺序,就可以获得对称的输出波形,其他各扇区的开关顺序如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.五段式SVPWM(又称DPWM)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、SVPWM 算法实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.1.合成矢量Uref所处扇区的判断

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2.基本电压空间矢量作用时间计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当两个零矢量作用时间为 0 时,一个 PWM 周期内非零电压矢量的作用时间最长,此时的合成空间电压矢量幅值最大。从下图可知其最大幅值不会超过图中所示的正六边形边界,而当合成矢量落在该边界之外时,将发生过调制,逆变器输出电压波形将发生失真。在 SVPWM 调制模式下,逆变器能够输出的最大不失真圆型旋转电压矢量为下图所示虚线正六边形的内切圆,其幅值为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照上述过程,就能得到每个扇区相邻两电压空间矢量和零电压矢量的作用时间。当Uref所在的扇区和对应有效电压矢量的作用时间确定后,再根据 PWM调制原理,计算出每一相对应比较器的值。

7.3.扇区矢量切换点的确定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.4.PWM信号生成

扇区矢量切换点确定后,用一定频率的三角载波信号与各个扇区矢量切换点进行比较,从而产生逆变器所需的PWM控制信号。

八、七段式SVPWM仿真分析

在这里插入图片描述

8.1.仿真电路分析

信号输入:幅值为2,频率为50Hz的三相正弦波信号
在这里插入图片描述
在这里插入图片描述
SVPWM算法实现:载波为20KHz的三角波,三相逆变电路的直流侧电压为24V
在这里插入图片描述

function [Tcm1,Tcm2,Tcm3,sector] = SVPWM(Valpha,Vbeta,Udc,Tpwm,ARR)

%输出变量初始化
Tcm1 = 0;
Tcm2 = 0;
Tcm3 = 0;
sector = 0;


%扇区计算
%N与扇区对应的关系
%  3   1   5    4  6  2
%  I  II  III  IV  V  VI

Vref1 = Vbeta;
Vref2 = (sqrt(3)*Valpha-Vbeta)/2;
Vref3 = (-sqrt(3)*Valpha-Vbeta)/2;

if(Vref1>0)
    sector = 1;
end

if(Vref2>0)
    sector = sector+2;
end

if(Vref3>0)
    sector = sector+4;
end


%扇区内合成矢量作用时间计算
X = sqrt(3)*Vbeta*Tpwm/Udc;
Y = Tpwm/Udc*(3/2*Valpha+sqrt(3)/2*Vbeta);
Z = Tpwm/Udc*(-3/2*Valpha+sqrt(3)/2*Vbeta);

switch(sector)
    case 1
        T1 = Z;T2 = Y;
    case 2
        T1 = Y;T2 = -X;
    case 3
        T1 = -Z;T2 = X;
    case 4
        T1 = -X;T2 = Z;
    case 5
        T1 = X;T2 = -Y;
    otherwise
        T1 = -Y;T2 = -Z;
end

%过调制处理
if(T1+T2>Tpwm)
    T1 = Tpwm*T1/(T1+T2);
    T2 = Tpwm*T2/(T1+T2);
else
    T1 = T1;
    T2 = T2;
end


%扇区内合成矢量切换点时间计算
%此处为7段式,两个零矢量000 111 111插在中间,000均分插在两端
ta = (Tpwm-(T1+T2))/4;
tb = ta+T1/2;
tc = tb+T2/2;


%输出调制信号
switch(sector)
    case 1
        Tcm1 = tb;
        Tcm2 = ta;
        Tcm3 = tc;
    case 2
        Tcm1 = ta;
        Tcm2 = tc;
        Tcm3 = tb;
    case 3
        Tcm1 = ta;
        Tcm2 = tb;
        Tcm3 = tc;
    case 4
        Tcm1 = tc;
        Tcm2 = tb;
        Tcm3 = ta;
    case 5
        Tcm1 = tc;
        Tcm2 = ta;
        Tcm3 = tb;
    case 6
        Tcm1 = tb;
        Tcm2 = tc;
        Tcm3 = ta;
end


%调制信号处理,生成输入到MCU中的调制信号
Tcm1 = 2*Tcm1/Tpwm; 
Tcm2 = 2*Tcm2/Tpwm;
Tcm3 = 2*Tcm3/Tpwm;

Tcm1 = Tcm1*ARR; 
Tcm2 = Tcm2*ARR; 
Tcm3 = Tcm3*ARR;

end

PWM信号生成:载波为20KHz的三角波
在这里插入图片描述
在这里插入图片描述

硬件电路:
在这里插入图片描述

8.2.仿真结果分析

电压空间矢量的运动轨迹:
在这里插入图片描述
扇区判断结果:
在这里插入图片描述
扇区内矢量切换点,即调制波波形:
在这里插入图片描述
PWM信号:
在这里插入图片描述
三相相电压及滤波后的三相相电压波形:生成的三相正弦电压与期望的输入电压参数一致,幅值为2,频率为50Hz。
在这里插入图片描述
在这里插入图片描述
三相相电流及滤波后的三相相电流波形:
在这里插入图片描述
三相线电压及滤波后的三相线电压波形:
在这里插入图片描述
在这里插入图片描述

九、五段式SVPWM仿真分析

与上述7段式SVPWM算法的不同点就是,算法扇区切换点的时间不同,算法改动如下,其余部分同上述7段式SVPWM算法仿真。

function [Tcm1,Tcm2,Tcm3,sector] = SVPWM(Valpha,Vbeta,Udc,Tpwm,ARR)

%输出变量初始化
Tcm1 = 0;
Tcm2 = 0;
Tcm3 = 0;
sector = 0;


%扇区计算
%N与扇区对应的关系
%  3   1   5    4  6  2
%  I  II  III  IV  V  VI

Vref1 = Vbeta;
Vref2 = (sqrt(3)*Valpha-Vbeta)/2;
Vref3 = (-sqrt(3)*Valpha-Vbeta)/2;

if(Vref1>0)
    sector = 1;
end

if(Vref2>0)
    sector = sector+2;
end

if(Vref3>0)
    sector = sector+4;
end


%扇区内合成矢量作用时间计算
X = sqrt(3)*Vbeta*Tpwm/Udc;
Y = Tpwm/Udc*(3/2*Valpha+sqrt(3)/2*Vbeta);
Z = Tpwm/Udc*(-3/2*Valpha+sqrt(3)/2*Vbeta);

switch(sector)
    case 1
        T1 = Z;T2 = Y;
    case 2
        T1 = Y;T2 = -X;
    case 3
        T1 = -Z;T2 = X;
    case 4
        T1 = -X;T2 = Z;
    case 5
        T1 = X;T2 = -Y;
    otherwise
        T1 = -Y;T2 = -Z;
end

%过调制处理
if(T1+T2>Tpwm)
    T1 = Tpwm*T1/(T1+T2);
    T2 = Tpwm*T2/(T1+T2);
else
    T1 = T1;
    T2 = T2;
end


%扇区内合成矢量切换点时间计算
%此处为5段式SVPWM切换点时间计算
ta = 0;
tb = ta+T1/2;
tc = tb+T2/2;


%输出调制信号
switch(sector)
    case 1
        Tcm1 = tb;
        Tcm2 = ta;
        Tcm3 = tc;
    case 2
        Tcm1 = ta;
        Tcm2 = tc;
        Tcm3 = tb;
    case 3
        Tcm1 = ta;
        Tcm2 = tb;
        Tcm3 = tc;
    case 4
        Tcm1 = tc;
        Tcm2 = tb;
        Tcm3 = ta;
    case 5
        Tcm1 = tc;
        Tcm2 = ta;
        Tcm3 = tb;
    case 6
        Tcm1 = tb;
        Tcm2 = tc;
        Tcm3 = ta;
end


%调制信号处理,生成输入到MCU中的调制信号
Tcm1 = 2*Tcm1/Tpwm; 
Tcm2 = 2*Tcm2/Tpwm;
Tcm3 = 2*Tcm3/Tpwm;

Tcm1 = Tcm1*ARR; 
Tcm2 = Tcm2*ARR; 
Tcm3 = Tcm3*ARR;

end

9.1.仿真结果分析

电压空间矢量的运动轨迹:
在这里插入图片描述
扇区判断结果:
在这里插入图片描述
扇区内矢量切换点,即调制波波形:
在这里插入图片描述
PWM信号:
在这里插入图片描述
三相相电压及滤波后的三相相电压波形:生成的三相正弦电压与期望的输入电压参数一致,幅值为2,频率为50Hz。
在这里插入图片描述
在这里插入图片描述
三相相电流及滤波后的三相相电流波形:
在这里插入图片描述
三相线电压及滤波后的三相线电压波形:
在这里插入图片描述
在这里插入图片描述

十、PMSM电压开环控制Matlab/Simulink仿真分析

有关永磁同步电机电压开环控制的原理请阅读:
永磁同步电机(PMSM)磁场定向控制(FOC)及Matlab/Simulink仿真分析
在这里插入图片描述

10.1.仿真电路分析

在这里插入图片描述
直接给定同步旋转坐标系下Vd,Vq的电压值实现永磁同步电机磁场定向的电压开环控制。
在这里插入图片描述
7段式SVPWM算法
在这里插入图片描述
PWM控制信号生成
在这里插入图片描述
三相逆变电路及永磁同步电机,电机参数如下:
在这里插入图片描述

10.2.仿真结果分析

电压空间矢量的运动轨迹:
在这里插入图片描述
扇区内矢量切换点,即调制波波形:
在这里插入图片描述
PWM信号:
在这里插入图片描述
电机转速:
在这里插入图片描述
定子电流未滤波和滤波后的电流:
在这里插入图片描述
同步旋转坐标系下的定子电流Id、Iq,未滤波和滤波后的电流:
在这里插入图片描述
同步旋转坐标系下的定子电压Vd、Vq,未滤波和滤波后的电压:
在这里插入图片描述
电磁转矩:
在这里插入图片描述


总结

本章节首先介绍了SVPWM控制技术的原理,然后详细分析了SVPWM控制算法的具体实现方式,并通过Matlab/Simulink对SVPWM控制算法进行了仿真分析,最后通过永磁同步电机矢量控制的实例进行了算法实现,为后续章节的分析奠定基础。

模型及代码工程获取:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【手写 Promise 源码】第十篇 - Promise.prototype.catch 和 Promise.prototype.finally 的实现

theme: fancy 一,前言 上篇,主要实现了 Promise 的两个静态 API(类方法):Promise.resolve 和 Promise.reject,主要涉及以下几个点: Promise.resolve 创建并返回一个成功的 promise&#xff1…

WebDAV之葫芦儿·派盘+纯纯写作

纯纯写作 支持WebDAV方式连接葫芦儿派盘。 推荐一款简单的纯文本编辑软件,纯粹、有安全感、随时、绝对不丢失内容、具备良好的写作体验。界面非常简洁,且功能齐全,旨在给用户们提供贴心、舒适的写作服务。纯纯写作可以实现在Windows桌面PC, Android设备上同步的移动办公软件…

梦熊杯-十二月月赛-钻石组-B.卷王

B. Problem B.卷王(study.cpp) 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述: 在某个群里,有一个卷王,他很关心群友的学习成绩。 他扬言…

Web API请求查询字符串超长问题

调用Web API时返回“HTTP Error 404.15 - Not Found”的错误提示,如下截图: 经检查,传递的查询参数字符长度超过IIS默认最大查询字符串长度的设置,IIS服务器的 maxQueryString(单位:字节) 设置&…

一杯白酒搅动的资本江湖

王家卫的电影《东邪西毒》中有句经典台词:酒越喝越暖,水越喝越寒。江湖刀光剑影,唯有酒让武林人士在奔波途中心中一暖。然而,在白酒搅动的资本江湖中,酒企已经很久没有感受到上市的“暖意”了。自2016年金徽酒挂牌上交…

网络基础2--HTTP协议详解

目录 一、自定制协议 二、TCP粘包问题 2.1. 定长结构体和非定长结构体在发送时的区别 2.2. 那么为什么内存不连续的结构体不能直接使用send发送呢? 2.2. 那我们怎样去接收不定长的数据呢? 2.3. 我们怎样去接收不连续的内存呢? 2.4序列化和…

shiro权限框架介绍以及springboot整合shiro

What is Apache Shiro? Apache Shiro is a powerful and flexible open-source security framework that cleanly handles authentication, authorization, enterprise session management and cryptography. Apache Shiro’s first and foremost goal is to be easy to use…

LDO的dropout voltage

目录从一个设计错误谈起Dropout压降从芯片内部电路结构理解dropout压降MOS管 > 低dropout压降的LDO进一步降低dropout压降的方法在系统设计中,电源管理是不可或缺的,而LDO(线性稳压器)是电源管理器件中及其重要的一类器件。其应…

【JUC系列】线程变量ThreadLocal详解

ThreadLocal简介 ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访…

Java-基础-2.常用类

一:object 他是java中最基础,最核心的类。在java类中,为申明extends,默认 extends Object。方法。 3.1 toString方法 public String toString()方法,其返回值是 String 类型,描 述当前对象的有关信息。 3.…

Java中的多态及应用示例

Java中的多态及实现示例简介实现示例instance of(待补)补入Java多态 简介 【预留(业务逻辑)接口的抽象类】对象 new 【实现了该 预留(业务逻辑)接口】的【预留业务逻辑接口的抽象类的子类】的 对象&…

Java_Git:5. 在IntelliJ IDEA中使用git

目录 1 在Idea中配置git 2 将工程添加至git 2.1 创建工程 2.2 创建本地仓库 2.3 将工程添加至本地仓库 2.4 推送到远程 3 从远程仓库克隆 4 从服务端拉取代码 1 在Idea中配置git 安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找…

C语言学习笔记-数据类型

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。 C数据可以从两方面宽泛的看:一、变量和常量;二、数据类型 从定义出发,变…

打造数字时代的“诺亚方舟”

玛雅人关于2012世界末日的预言除了提供给好莱坞灵感,拍摄了令人震撼的灾难片《2012》之外,似乎没有留下什么,人们已经渐渐淡忘了世界末日的说法。 但现实世界中却接二连三地在发生着重大灾难:2018年巴西国家博物馆大火&#xff0c…

(考研湖科大教书匠计算机网络)第三章数据链路层-第四节:可靠传输

专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:可靠传输基本概念(1)不可靠传输与可靠传输(2)分组丢失、分组失序和分组重复(3)可靠传输注意二&#xff1…

如何快速掌握Mybatis-Plus

目录 1. 什么是mybatis-plus 2. 初体验 3. 日志 4. 主键生成策略 6. 自动填充 7. 乐观锁 8. 条件查询 9. 分页查询 10. 逻辑删除 11. Wrapper 12. 在Mybatis-plus中使用xml配置 1. 什么是mybatis-plus MyBatis-Plus (opens new window)(简称 MP&#xff…

细说Linux虚拟化KVM-Qemu之virtio驱动

说明: KVM版本:5.9.1QEMU版本:5.0.0工具:Source Insight 3.5, Visio 1. 概述 前篇文章讲完了Qemu中如何来创建Virtio Device,本文将围绕Guest OS中的Virtio Driver来展开; 看一下Guest OS&…

发布自己的依赖(代码)到maven仓库2023

如果不想看文字可以看下面的视频 发布自己代码到maven中央仓库!第一步去sonatype注册登录,并发布issue https://issues.sonatype.org/secure/Dashboard.jspa > 去这个网站注册登录,用户名和密码会在后面发布jar包到中央仓库上用的到。 …

力扣刷题记录——748. 最短补全词、744. 寻找比目标字母大的最小字母、747. 至少是其他数字两倍的最大数

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——748. 最短补全词、744. 寻找比目标字母…

LinuxC—网络套接字

网络套接字socket 1 跨主机传输需要注意的问题 1.1 字节序问题 大端存储与小端存储 大端:低地址处方高字节小端:低地址处方低字节 主机字节序和网络字节序 若两个主机的字节序存储方式不同,直接传输的数据被对方接收后会就会使完全错误的&a…