SVPWM总结
空间矢量算法 是以逆变器和电机作为一个整体来研究的。目标是产生电机定子的圆形磁场
模态选择, 上管导通 状态为1
下管导通 状态为0
那么状态为000 001 010 011 100 101 110 111
分别计算合成矢量的幅值
状态001
以为基准点进行计算
状态001 AO= BO= CO=
蓝色的箭头是黄色和绿色的箭头合成的,合成以后,状态001对应的矢量为
与水平夹角为-120度 模值为Ud
状态010
AO= BO= CO=
合成以后。对应010的矢量如下图
状态011
AO=,BO=,CO=
合成以后,状态011 的矢量
状态100
AO= BO= CO=
合成以后 状态 100 对应的矢量 如下 模值为Ud ,与水平的夹角为Ud
状态101
AO= BO= CO=
合成的向量为 与水平线的夹角为-60度,
状态110
AO= BO= CO=
状态110合成的空间矢量是 模值为 Ud
状态111 状态000 合成的矢量的模值都是0
将上面的6种状态列写成表格
状态001 |
与水平线夹角120度 模值为 |
|
状态010 |
与水平线的夹角为120度 模值为 |
|
状态011 |
与水平线的夹角为0度 模值为 |
|
状态100 |
与水平线的夹角为0度 模值为Ud |
|
状态101 |
与水平线的夹角为-60度, 模值为Ud |
|
状态110 |
与水平线的夹角为60度 模值为Ud |
综上这些电压适量 构成一个六边形
先记住一个结论:电压空间矢量所形成的正六边形的轨迹可以看作是异步电动机定子磁链
矢量端点的运动轨迹。
于是产生下面的图
从上面的图可以知道
再有一个结论:在任何时刻所产生磁链增量的方向取决于所施加的电压矢量,(共有8个,如上表所示,),磁链增量的幅值 正比于施加电压矢量的时间。
写到这里总结如下:
- 电压矢量的幅值为Ud
- 磁链增量的方向由施加电压矢量的决定。不同的对用不同的角度,例如与水平线的夹角为0度
例如与水平线的夹角为60度
例如与水平线的夹角为120度
例如与水平线的夹角为180度
例如与水平线的夹角为240度
例如与水平线的夹角为300度
- 理论上,通过三相板桥的拓扑,通过选择不同的电压矢量,以及控制矢量的作用时间,就可以使电机的电子产生圆形的旋转磁场。
7段法计算
现在我先要做出扇形图
先绘制出来合成的电压空间矢量的图
U2(状态010电压矢量 红色箭头) U6(状态110电压矢量 绿色箭头)
U3(状态011电压矢量 紫色箭头) U4(状态100电压矢量 黄色箭头)
U1(状态为001电压矢量 粉红色箭头) U5(状态为101的电压矢量 蓝色箭头)
现在推导在各扇区的的作用时间,在 , 坐标系列下进行变换。
首先要明确一点: 在 xyz 坐标系下 6个基本矢量的幅值是
从三相坐标系到两相静止坐标系进行等幅值变换 6个基本矢量的幅度为
扇区1: 由两个基本矢量U4和U6线性组合
(1)式
(2)式
在 坐标系下 等幅度变换 等于 等于
(3)式
(4)式
令 m称为SVPWM调制系数
由(3)式和(4)式 知道
(5)式
(6)式
由(5)(6)可以看出来:如果知道了空间矢量与轴的角度值,便可以求出基础向量和基础向量的作用时间。缺点:在进行程序 运算的时候求不是很直接。
现在我想用U1和U2和U3的来表示某个扇区内,基本矢量的作用时间
于是:
令
由(1)(2)式得到
整理:
(7)式
(8)式
由(8)式 得到 (9)式
将(9) 式带入(7)式
综上
最后:
扇区2 U2 U6
Uref
(1)式
(2)式
(1)式
(3)式
(2)式-(3)式
(2)式+(3)式
扇区3 U2 beta轴
Uref
U3 alpha轴
化简:
(1)式
(2)式
因为:在第三扇区 所以
所以
- 式和(2)式可化简为:
(3)式
(4)式
将(4)式带入(3)式子
扇区4
U3向量
U1向量
(1)式
(2)式
因为第四扇区 所以
所以
- 式和(2)式可以化简为:
进一步化简:
综上
扇区5
Uref向量
U1向量 U5向量
(1)式
(2)式
因为 所以 因为 所以
化简: (3)式
(4) 式
(3)式乘以
(5)式
(4)式与(5)式相加
(5)式减(4)式
扇区六
U4向量
Uref向量
U5向量
(1)式
(2)式
因为在第6扇区 所以 ,因为,所以
- 式与(2)式化简为
(3)式
(4)式
(3)式乘以 有 (5)式
(5)式减去(4)式
把上面的六个扇区计算得到的作用时间列写成表格,注意当旋转磁场旋转到定子圆周的某一任意位置,此时的 ,是确定的,因为 ,, 是, 的线性组合,
所以作用时间就可以精确的计算出来。
扇区位置 |
作用时间 |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
三相电压给定所合成的电压向量旋转的角速度为,是三相输入电源的角频率
假设开关频率为,那么频率比为, 可以认为我程序把电压旋转平面分割成了个
小增量。
那么电压向量每次增量的角度为:
以第一扇区为例。假设在某一个开关周期时间间隔内,注意是一个开关周期时间间隔
内, 图中电压向量所出现的时间次序为,,,,,,,,
则PWM 的开关状态如下图所示:
在下一个Ts时间段内,合成的电压矢量增加一个角度,但是依然在第一扇区内,
可以利用公式重新计算,,,的值, 然后继续得到如下图的开关波形,只不过此时的,, 在水平的位置都与上一次有所不同
这样每一次载波周期都会合成一个新的电压矢量,随着的逐渐增大,电压矢量
将依次进入第一扇区,第二扇区,第三扇区,第四扇区,第五扇区,第六扇区。
综上 假设开关频率是6kHz,输出的频率是50Hz ,那么可以认为每个扇区有20个合成的电压矢量,也就是说 在第一扇区 有20个不同的 ,,组合。
所在的位置与开关切换顺序对照表
扇区一:
扇区2
扇区三:
扇区4
扇区5
扇区六
扇区 所在位置的判断方法:
扇区 |
落在此扇区的必要条件 |
进一步推导 |
1 |
,,且 |
|
2 |
,且 |
或者 两边同乘,因为 所以 |
3 |
, 且 |
|
4 |
,,且 |
|
5 |
,且 |
或者 |
6 |
,且 |
若进一步分析上面的条件
令
制定以下规则,若,则A=1 否则 A=0
若,则B=1 否则B=0
若,则C=1 否则C=0
扇区1 |
A=1 B=1 C=0 |
N=3 |
|
扇区2 |
或者 |
则A=1 B=0 C=0 则A=1 B=0 C=0 |
N=1 |
扇区3 |
则A=1 B=0 C=1 |
N=5 |
|
扇区4 |
则A=0 B=0 C=1 |
N=4 |
|
扇区5 |
或者 |
A=0 B=1 C=1 |
N=6 |
扇区六 |
A=0 B=1 C=0 |
N=2 |
综上 N值与扇区的对应关系
N |
3 |
1 |
5 |
4 |
6 |
2 |
扇区号 |
第一扇区 |
第二扇区 |
第三扇区 |
第四扇区 |
第五扇区 |
第六扇区 |
通过上面的方法只是通过简单的加减法则即可确定所在扇区的位置,这对于提高系统的响应速度很有意义。
SVPWM总结的更多相关文章
- Matlab 仿真实现TI Instaspin 的Foc 逆Clarke变换和SVPWM
一直没搞明白TI 的Instaspin的SVPWM实现原理,最后只能在Matlab里仿真看看输出波形是不是和普通的SVPWM实现输出的波形一样,用M文件实现,下面是代码: clear all; the ...
- 基于stm32f427实现SVPWM控制永磁同步开环转动
1.SVPWM原理简介 PWM(Pulse Width Modulation)脉宽调整,这是一种利用面积等效原理实现的控制技术.SVPWM(Space Vector PWM)空间矢量PWM控制,因为控 ...
- STM32 使用IQmath实现SVPWM
IQMATH TI的片子很香,做的也很好,但是成本相对ST会更高,电机控制方面,TI无疑是做的最好的方案之一,另外TI针对没有浮点运算器的定点DSP推出了IQMATH库,在使用Q格式对数据进行分析和处 ...
- SVPWM实现概述
SVPWM是FOC的基础,其实现流程大致如下所示: 1. 判断合成矢量所在扇区 2. 计算相邻矢量作用时间 3. 计算各桥臂导通时间 4. 得到各相PWM占空比 5. 更新相应寄存器值 SVPWM目 ...
- stm32定时器时钟以及中间对齐模式
在永磁同步电机的控制中,需要对电机的三相定子施加一定的电压,才能控制电机转动.现在用的较多的是SVPWM(SVPWM的具体原理会在后面另写一篇博客说明),要想产生SVPWM波形,需要控制的三相电压呈如 ...
- 【STM32系列汇总】小白博主的STM32实战快速进阶之路(持续更新)
我把之前在学习和工作中使用STM32进行嵌入式开发的经验和教程等相关整理到这里,方便查阅学习,如果能帮助到您,请帮忙点个赞: 本文的宗旨 STM32 只是一个硬件平台,同样地他可以换成MSP430,N ...
- FOC 算法基础之欧拉公式
文章目录 欧拉公式 几何意义 复数平面 动态过程 加法 FOC电压矢量的推导 总结 参考 FOC中电压矢量合成的推导,对于欧拉公式的几何意义做了一个全面的回顾. 欧拉公式 欧拉是一个天才,欧拉公式甚至 ...
- FOC 转子初始位置检测(图文详解)
本文介绍了PMSM的转子初始位置的各种情况: 文章目录 1 什么是转子的初始位置? 2 如何让转子运行到初始位置? 3 iq=IDC;id=0;θ=0i_{q}=I_{DC} ;i_{d}=0;\th ...
- FOC 电流采样方案对比(单电阻/双电阻/三电阻)
如果本文帮到了你,帮忙点个赞: 如果本文帮到了你,帮忙点个赞: 如果本文帮到了你,帮忙点个赞: 创作不易 谢谢支持 文章目录 1 电流采样的作用 2 硬件架构 3 采样关键 4 采样方案 5 三电阻采 ...
随机推荐
- task20160125
http://task.zbj.com/2034844/n15o1.html 百度开放平台--首页>帮助文档首页>Frontia>Android开发指南>个人数据存储 http ...
- 正确使用 Android 的 Theme 和 Style
原文:http://www.tuicool.com/articles/ZjEZFj Android 5.0 可以给一个 View 单独设置一个 theme 了,其主要用途就是用在 ToolBar 上, ...
- alert \ confirm \ prompt
alert() : 会将()中的内容弹出,返回的是()中的内容值,也就是字符串值 confirm :需要用户点击 "确定" 或 "取消" ,若用户点击 ”确定“ ...
- 学习:Android框架
引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建a ...
- 洛谷 P6046 [CTSC2000]快乐的蜜月
先讲解一下如何处理这道题的毒瘤输入.\(m\) 和 \(d\) 之间的"/"和" TO "都可以用 getchar() 强行吃掉,日期的转换可以用公式 \(s_ ...
- 【快学springboot】5.全局异常捕获,异常流处理业务逻辑
前言 上一篇文章说到,参数校验,往往需要和全局的异常拦截器来配套使用,使得返回的数据结构永远是保持一致的.参数异常springboot默认的返回结构: { "timestamp": ...
- Docker 基础入门
Docker是一个开放的平台,将应用和基础设施分隔开来, 方便快速的交付软件.利用docker的提供的方法可以快速的测试和部署代码,显著的减少写代码和部署直接的延迟. Docker 平台(The Do ...
- 【剑指Offer面试编程题】题目1522:包含min函数的栈--九度OJ
题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(1<=n&l ...
- Spring mvc mybatis 查询结果缺少字段 解决方法
参考:https://blog.csdn.net/xiaofeifei8421/article/details/43231815
- java并发LockSupport
java并发LockSupport LockSupport是阻塞和唤醒线程的重要类. park()方法使得当前线程阻塞 unpark(Thread thread)唤醒线程 例子 可以把注释取消再执行, ...