空间电压矢量脉宽调制技术_SVPWM_在DSP中的实现步骤
- 格式:pdf
- 大小:155.39 KB
- 文档页数:8
基于DSP的空间电压矢量PWM技术研究与实现1引言近年来,在高性能全数字控制的电气传动系统中,作为电力电子逆变技术的关键,PWM 技术从最初追求电压波形正弦,到电流波形正弦,再到磁通的正弦,取得了突飞猛进的发展[1]。
在众多正弦脉宽调制技术中,空间电压矢量PWM(或称SVPWM)是一种优化的PWM 技术,能明显减小逆变器输出电流的谐波成分及电机的谐波损耗,降低脉动转矩,且其控制简单,数字化实现方便,电压利用率高,已有取代传统SPWM 的趋势。
本文对空间电压矢量PWM 的原理进行了深入分析,重点推导了每一扇区开关矢量的导通时间,并在TI 公司生产的DSP 上实现三相逆变器的控制,证明了分析的正确和可行性。
2空间电压矢量PWM 原理图1 为三相电压源逆变器示意图,Sa、Sb、Sc 为逆变器桥臂的开关,其中任一桥臂的上下开关组件在任一时刻不能同时导通。
不考虑死区时,上下桥臂开关互逆。
将桥臂输入点a、b、c 的开关状态用下面的开关函数表示:Sk=1(桥臂k,上桥臂导通,下桥臂关断);Sk=0(桥臂k,上桥臂关断,下桥臂导通)。
由a、b、c 的不同的开关组合,可以有23=8 个开关矢量(Sa Sb Sc),即V0(000)~V7(111),其中有六个有效开关矢量V1~V6 和两个零开关矢量V0 和V7。
利用V0~V78 个矢量的线性组合可以近似模拟等幅旋转向量,由磁链和电压间简单的积分关系,可知此时实际的电机气隙磁通轨迹接近圆形。
图2 为SVPWM 矢量、扇区及每个扇区开关方向图。
按图2,有表1 所示扇区号与k 的关系。
其中k 为以a 轴为起点,以π/3为单位,逆时针方向排列的序号,若θ为矢量与α轴夹角,则有SVPWM 技术的目的是通过合成与基本矢量相应的开关状态,得到参考电压Uout。
对于任意小的时间周期T,逆变器输出平均值与Uout 平均值相等,如式。
空间矢量脉宽调制技术(SVPWM)空间矢量脉宽调制技术(SVPWM)在交流变频控制系统中的应用越来越广泛,提高SVPWM模块的可复用性、可靠性、并缩短其开发周期成为重要研究课题。
现场可编程门阵列(Field Programmable Gate Arrays)具有简洁、经济、高速度、低功耗等优势,又具有全集成化、适用性强、开发周期短等优点,利用FPGA 实现SVPWM可以提高SVPWM的可复用性,有重要的现实意义。
本文给出了基于DSP和FPGA的交流变频控制系统的硬件设计方案,搭建了由DSP最小系统、FPGA最小系统、电流检测电路、转速和位置测量电路等组成的硬件平台,完成了印刷电路板的绘制,并对该系统进行了硬件调试。
文中介绍了电压空间矢量脉宽调制(SVPWM)原理,并重点研究了基于FPGA 的SVPWM的实现方法。
根据其算法将SVPWM按功能划分为扇区计算模块、基本电压矢量作用时间计算模块、过调制控制模块、SVPWM时间生成模块、调制波生成模块和脉冲生成模块等六个子功能模块。
先对各个子模块进行设计、仿真、验证,再将整个系统组合起来进行仿真、验证,最后在设计的硬件平台上测试了PWM波形。
最后以电机为控制对象进行了开环变频试验,电机能够正常运行,且电机定子电流为正弦波,表明基于FPGA的SVPWM模块功能正确,达到了预期的目标。
本文利用FPGA实现SVPWM,开发周期短,可移植性好,能够以IP核的形式嵌入到其它系统中去,具有很强的应用价值..……基于FPGA 的SVPWM实现方法研究SVPWM 从交流电机角度出发,控制开关,形成PWM 波,使电机中产生的实际磁链矢量逼近跟踪定子磁链给定的理想圆型磁链。
这样它能明显减小逆变器输出电流的谐波成分及电动机的谐波损耗、降低脉动转矩。
并且其控制简单,数字化方便,电压利用率高,已经成为现在电流调速中的主流发展方向。
目前实现SVPWM 的算法是使用电机控制专用DSP,例如TI 公司的TMS320F2812 或AD 公司的ADMC 系列,但这些控制器只能产生6 路或12 路得PWM 信号,不能满足多轴控制的需要,如果控制多轴系统需要增加DSP 的数量,是结构复杂,成本提高。
电压空间矢量脉宽调制技术的研究及其实现一、本文概述随着电力电子技术的快速发展,电压空间矢量脉宽调制技术(Space Vector Pulse Width Modulation,SVPWM)已成为电机控制领域中的一项重要技术。
该技术以其高效、稳定、易于实现等优点,在电力转换、电机驱动、新能源发电等领域得到了广泛应用。
本文旨在对电压空间矢量脉宽调制技术进行深入研究,分析其原理、特点以及实现方法,并探讨其在现代电力电子系统中的应用前景。
本文首先介绍了电压空间矢量脉宽调制技术的基本原理,包括其理论基础、空间矢量的定义与分类、以及SVPWM的实现过程。
接着,文章详细分析了SVPWM技术的特点,包括其调制范围宽、电压利用率高、谐波含量低等优势,并与其他脉宽调制技术进行了比较。
随后,本文着重探讨了电压空间矢量脉宽调制技术的实现方法,包括硬件电路设计和软件编程实现。
在硬件电路设计方面,文章介绍了基于SVPWM技术的电机驱动电路的设计原则和方法;在软件编程实现方面,文章给出了SVPWM算法的具体实现步骤和程序代码示例。
本文还探讨了电压空间矢量脉宽调制技术在现代电力电子系统中的应用前景,包括其在新能源发电、电动汽车、工业自动化等领域的应用,以及未来的发展趋势和挑战。
通过本文的研究,希望能够为电力电子领域的研究人员和工程师提供有益的参考和借鉴。
二、电压空间矢量脉宽调制技术基础电压空间矢量脉宽调制技术(Space Vector Pulse Width Modulation,简称SVPWM)是一种先进的PWM控制技术,它主要应用在三相电压源型逆变器的控制中。
SVPWM技术的核心思想是将三相逆变器的输出电压看作是一个在三维空间中旋转的电压矢量,通过控制这个电压矢量的幅值和旋转速度,来实现对输出电压和电流的精确控制。
SVPWM技术具有许多优点。
SVPWM可以提高电压利用率,使得在相同的直流电压下,输出的线电压峰值可以达到直流电压的根号三倍,提高了逆变器的输出电压能力。
电压空间矢量脉宽调制技术(SVPWM )的研究及其实现-------By maxthonzwq 2011年2月20日星期日 (1) 获得U α,U β:给定U d ,U q 经过PARK 变换得到U α,U β:cos sin sin cos d q U U U U αβϕϕϕϕ⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥−⎣⎦⎣⎦⎣⎦(2) 扇区确定:.① 先计算三个中间变量B 0,B 1,B 2:012sin 60sin 30sin 60sin 30B U B U U B U Uβαβαβ⎧=⎪=−⎨⎪=−−⎩o oo o 在使用符号函数1()0x sign x x >⎧=⎨<⎩计算扇区中间变量P 值: 2104si ()2()()P gn B sign B sign B =++P 值与扇区号之间的对应关系为:P 1 2 3 4 5 6 扇区号 2 6 1 4 3 5(3) 计算电压矢量作用时间t1,t2: 扇区1:120PWMU t T U t αβ⎡⎤⎡⎤=⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦ 扇区:2:12PWMU t T U t αβ⎡⎢⎡⎤⎡⎤⎢=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦ 扇区3:120PWMU t T U t αβ⎡⎤⎡⎤⎡⎤⎢=⎢⎥⎢⎥⎢⎣⎦⎣⎦⎢⎣ 扇区4:120PWMU t T U t αβ⎡⎤⎡⎤⎡⎤⎢=⎢⎥⎢⎥⎢⎣⎦⎣⎦⎢⎣ 扇区5:12PWMU t T U t αβ⎡⎢⎡⎤⎡⎤⎢=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦ 扇区6:120PWMU t T U t αβ⎡⎤⎡⎤=⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦同时满足120PWM T t t t =++,t 0为零矢量作用的时间,t 1,t 2分别是两个相邻电压矢量的导通时间。
如果t1+t2>T PWM,则11122212PWMPWMt Ttt tt Ttt t⎧=⎪+⎪⎨⎪=⎪+⎩;如果t1+t2<T PWM,则t1,t2保持不变。
(4) 利用t1,t2计算切换点T cm1,T cm2,Tcm3: 先计算中间变量Ta ,Tb ,Tc :1212()/4/2/2a PWM b a c b T T t t T T t T T t =−−⎧⎪=+⎨⎪=+⎩,则不同扇区内切换点T cm1,T cm2,T cm3可有下表得到: 扇区号 1 2 3 4 5 6 T cm1 T b T a T a TbT c Tc T cm2 T a T b T c T c T b T a T cm3T cT cT bT aT aT bT cm1,T cm2,T cm3是DSP 控制器中比较寄存器的值,通过与定时器计数寄存器的值进行比较来产生PWM 波, 这里采用的7段式电压空间矢量PWM 波形输出,还有5段式电压空间矢量PWM 。
SVPWM 算法的实现过程1、算法的输入与输出输入u s α、u s β 输出:三个比较寄存器的值CompA 、CompB 、CompC根据给定的二相静止坐标系中两个电压分量u s α、u s β,根据电压矢量所在的扇区选择相邻的两个的电压矢量,并计算相邻两个电压矢量的作用时间,按照7段式SVPWM 对CompA 、CompB 、CompC 进行赋值,算法的流程如下:2、扇区计算空间矢量调制的第一步是判断由u s α、u s β所决定的空间电压矢(U ref )量所处的扇区。
假定合成的电压矢量落在第 I 扇区,可知其等价条件如下:0<arctan(u s β/u s α)<60 º 以上等价条件再结合矢量图几何关系分析,可以判断出合成电压矢量。
落在第N 扇区的充分必要条件,得出下表1-1:ref s β 3u s α-u s β 、− 3u s α-u s β 三式决定,因此令:1232222U U U U U U ββαβα⎧=⎪⎪⎪=-⎨⎪⎪=--⎪⎩再定义,若U 1>0 ,则 A=1,否则 A=0; 若U 2>0 ,则 B=1,否则 B=0;若U 3>0 ,则 C=1,否则 C=0。
可以看出 A ,B ,C 之间共有八种组合,但由判断扇区的公式可知 A ,B ,C 不会同时为 1 或同时为 0,所以实际的组合是六种,A ,B ,C 组合取不同的值对 应着不同的扇区,并且是一一对应的,因此完全可以由 A ,B ,C 的组合判断所在的扇区。
为区别六种状态,令 X=4*C+2*B+A ,则可以通过下表计算参考电压 矢量 U ref 所在的扇区。
表 1-2 X 值与扇区对应关系采用上述方法,只需经过简单的加减及逻辑运算即可确定所在的扇区,对于提高系统的响应速度和进行仿真都是很有意义的。
3、扇区相邻电压矢量的作用时间计算当电压矢量位于第一扇区时,欲用 U 4、U 6、U 0 及 U 7 合成,用平均值等效可得:4466ref S U T U T U T *=*+*因为 |U 4|=|U 6|=2U dc /3 ,所以可以得到各矢量的状态保持时间为: T 6=3T s U dc u s βT 4=Ts U dc(32u s α−32u s β)当电压矢量位于其他扇区时同理可算出相邻电压的作用时间: 第二扇区:T 6=T s U dc(32u s α+32u s β) T 2=T s U dc(−32u s α+32u s β) 第三扇区:T 2= 3T sUdcu s βT 3=−T s U dc(32u s α+32u s β) 第四扇区:T 1=−3T s U dcu s β T 3=T s U dc(−32u s α+32u s β)第五扇区:T1=−T sU dc (32u sα+32u sβ)T5=T sU dc(32u sα−32u sβ)第六扇区:T5=−3T sU dc u sβT4=T sU dc(32u sα+32u sβ)令x=3T sU dc u sβ,y=T sU dc(32u sα+32u sβ),z=T sU dc(32u sα−32u sβ),则在每个扇区相邻的两电压矢量的作用时间如下表所示:4、计算比较寄存器的值通过上面的计算,已经的到了电压矢量所在的扇区以及相邻电压矢量的作用时间,接下来的问题是如何根据上面的结果来计算寄存器的值,使得DSP的ePWM模块发出正确的脉冲信号控制三相电桥。
空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤总体空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤:(1)获得SVPWM的输入信号UALFA,UBETA, UD,UQ经过IPARK变换得到输入信号UALFA,UBETA;(2)利用输入信号UALFA,UBETA确定扇区变量P,再通过扇区变量P确定扇区Sector;(3)利用输入信号UALFA,UBETA计算中间变量X,Y,Z,再根据不同扇区利用中间变量X,Y,Z计算t1,t2;(4)利用t1,t2计算中间变量Taon,Tbon,Tcon,再根据不同扇区利用中间变量Taon,Tbon,Tcon,计算Ta,Tb,Tc;(5)利用Ta,Tb,Tc计算占空比MfuncC1,MfuncC2,MfuncC3,之后再计算全比较器参数赋值CMPR1,CMPR2,CMPR3.详细空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤:(1)获得SVPWM的输入信号UALFA,UBETA;图1 PMSM矢量控制总体框图各位初学者应该首先明白空间电压矢量脉宽调制技术(SVPWM)的输入是电压量Ualfa,Ubeta。
Ualfa,Ubeta是通过IPARK变换得到的。
记住原理是原理,实践是实践,两者不同!多看看TI的例程和PDF说明文档,很有帮助!图2 SVPWM 模块框图(2)利用输入信号UALFA,UBETA 确定扇区变量P,再通过扇区变量P 确定扇区Sector ; 计算三个中间变量B 0,B 1,B 2:0011221sin 60sin 3022sin 60sin 30122B U B U B U U B U U B U U B U U ββαβαβαβαβ⎧⎪=⎧=⎪⎪⎪=−⇒=−⎨⎨⎪⎪=−−⎩⎪=−−⎪⎩o oo o o 在使用符号函数1()0x sign x x >⎧=⎨<⎩计算扇区中间变量P 值: 2104si ()2()()P gn B sign B sign B =++P 值与扇区号之间的对应关系为:P 1 2 3 4 5 6 扇区号 2 6 1 4 3 5图3 扇区变量P 与扇区SECTOR 之间关系(3)利用输入信号UALFA,UBETA计算中间变量X,Y,Z,再根据不同扇区利用中间变量X,Y,Z 计算t1,t2;计算三个中间变量X,Y,Z:122122X UY U UZ U Uβαβαβ⎧⎪=⎪⎪=+⎨⎪⎪=−+⎪⎩o根据电压矢量所在扇区确定切换时间t1,t2:扇区号 1 2 3 4 5 6 t1 -Z Z X -X -Y Y t2 X Y -Y Z -Z -X图4 T1,T2的波形(4)利用t1,t2计算中间变量Taon,Tbon,Tcon,再根据不同扇区利用中间变量Taon,Tbon,Tcon,计算Ta,Tb,Tc;1212(1)/2(0~1)aonbon acon bT t tT T tT T t=−−⎧⎪=+⎨⎪=+⎩,图5 Taon ,Tbon 的波形(5)利用Ta,Tb,Tc 计算占空比MfuncC1,MfuncC2,MfuncC3,之后再计算全比较器参数赋值CMPR1,CMPR2,CMPR3.则不同扇区内切换点T a ,T b ,T c 可有下表得到:(0.5)*2(0.5)*2(1~1)(0.5)*2a ab b cc T T T T T T =−⎧⎪=−−⎨⎪=−⎩ 范围改变EvaRegs.CMPR1 = (Uint16)(MfuncC1*Modulation*T1Period/2+T1Period/2);//A 相占空比计算,调制比Modulation =0.95EvaRegs.CMPR2 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B 相占空比计算 EvaRegs.CMPR3 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B 相占空比计算图6 Ta,Tb的波形本文主要基于TI公司C2000系列F2812例程中的说明文件svgen_dq.pdf编写而成,主要是帮助SVPWM初学者。
SVPWM调制技术的基本原理和推导流程一、引言SVPWM(Space Vector Pulse Width Modulation)是一种常用于交流电机驱动系统中的调制技术。
它通过控制电压矢量的合成方式,实现对电机电压的精确控制,从而实现对电机输出转矩和速度的控制。
本文将介绍SVPWM的基本原理和推导流程,并深入探讨其在电机驱动系统中的应用。
二、SVPWM的基本原理SVPWM是一种综合了空间矢量理论和PWM调制原理的调制技术。
其基本原理是将三相电流控制转换为三相电压控制,通过改变电压矢量的合成方式来控制电机的输出。
具体原理如下:1.将三相电流转换为空间矢量:将三相电流变换成一个空间矢量,表示为一个旋转矢量。
该空间矢量由两个独立的矢量分量组成,一个是等幅值的正序矢量,表示直流分量,另一个是相位延迟120°的负序矢量,表示交流分量。
2.合成电压矢量:通过改变正序和负序矢量的合成方式,得到与期望输出转矩和速度匹配的合成电压矢量。
合成电压矢量的方向和幅值决定了所控制的三相电机的输出状态。
3.PWM调制:根据合成电压矢量,使用PWM技术对电机供电进行调制。
将合成电压矢量转换为适合驱动三相电机的高频脉冲信号,控制电机的输出转矩和速度。
三、SVPWM的推导流程下面将以三相三线制逆变器为例,推导SVPWM的具体流程:1. 定义输入信号假设三相三线制逆变器的输入信号为:正向序列的期望电流 (I_{ref}) 和方向(θ_{ref}),负向序列的相位(θ_{ref}-120°) 和(θ_{ref}-240°)。
2. 转换为空间矢量根据输入信号,将正向序列的电流 (I_{ref}) 和相位(θ_{ref}) 转换为空间矢量表示。
正向序列的空间矢量为:[V_{ref_α} = I_{ref} cos(θ_{ref})] [V_{ref_β} = I_{ref} sin(θ_{ref})]负向序列的空间矢量为:[V_{ref_{-β}} = I_{ref} sin(θ_{ref}-120°)] [V_{ref_{-α}} = I_{ref} cos(θ_{ref}-120°)]3. 合成电压矢量将正向序列的空间矢量(V_{ref_α}) 和(V_{ref_β}) 与负向序列的空间矢量(V_{ref_{-β}}) 和 (V_{ref_{-α}}) 进行合成,得到合成电压矢量(V_{ref_1})、(V_{ref_2}) 和 (V_{ref_0}):[V_{ref_1} = V_{ref_α} + V_{ref_{-β}}] [V_{ref_2} = V_{ref_β} +V_{ref_{-α}}] [V_{ref_0} = - V_{ref_1} - V_{ref_2}]4. 对合成电压矢量进行坐标变换将合成电压矢量的α、β 坐标系转换为直角坐标系,得到合成电压矢量的(V_{ref_x}) 和 (V_{ref_y}):[V_{ref_x} = V_{ref_2}] [V_{ref_y} = V_{ref_1} - V_{ref_0}]5. 计算电压矢量的幅值和角度根据合成电压矢量的 (V_{ref_x}) 和 (V_{ref_y}),计算合成电压矢量的幅值(V_{ref}) 和相位角(θ_{ref}):[V_{ref} = ] [θ_{ref} = ()]6. 计算每个扇区的占空比根据合成电压矢量的相位角(θ_{ref}),判断它在哪个扇区内,并计算该扇区的占空比:•扇区1:(0° θ_{ref} < 60°)占空比:–T1:(d = )–T2:(0)–T0:(1 - d)•扇区2:(60° θ_{ref} < 120°)占空比:–T1:(-d = -)–T2:(d + 1)–T0:(0)•扇区3:(120° θ_{ref} < 180°)占空比:–T1:(d = )–T2:(1)–T0:(d + 1)•扇区4:(180° θ_{ref} < 240°)占空比:–T1:$-d = -$–T2:(0)–T0:(1)•扇区5:(240° θ_{ref} < 300°)占空比:–T1:(d = )–T2:(0)–T0:(1 - d)•扇区6:(300° θ_{ref} < 360°)占空比:–T1:(-d = -)–T2:(d + 1)–T0:(0)7. 实现PWM调制根据每个扇区的占空比,使用PWM技术对电机供电进行调制,生成适合电机驱动的高频脉冲信号。
基于DSP的空间矢量脉宽调制(SVPWM)的开环实现
卢刚;冯溢;王文娟
【期刊名称】《仪器仪表用户》
【年(卷),期】2005(012)004
【摘要】空间矢量脉宽调制(SVPWM)技术是一种新型的脉宽调制技术,在异步电机和同步电机的控制应用场合中,已成为用于控制三相电压源逆变器非常流行的PWM技术.本文采用高速度的DSP控制器TMS320F243对空间矢量脉宽调制(SVPWM)进行开环控制,成功实现了对伺服系统的转速和位置的精确控制.
【总页数】2页(P98-99)
【作者】卢刚;冯溢;王文娟
【作者单位】济南94534部队,山东,济南,250023;济南94534部队,山东,济南,250023;山东诸城市国税局,山东,诸城,252200
【正文语种】中文
【中图分类】TN915.05
【相关文献】
1.基于DSP控制器的电压空间矢量脉宽调制信号的实现 [J], 杨凤山;李正熙;孙德辉
2.电压空间矢量脉宽调制(SVPWM)算法仿真实现及分析 [J], 田亚菲;何继爱;黄智武
3.基于TMS320F240型DSP空间矢量PWM调制(SVPWM)的编程实现 [J], 崔鹏;王楠;刘少克;张文雅
4.电压空间矢量脉宽调制SVPWM数字化算法及实现 [J], 许军;董江波;方丹;汪越
5.基于DSP的空间矢量脉宽调制(SVPWM)的实现 [J], 孔维涛;张庆范;张承慧因版权原因,仅展示原文概要,查看原文内容请购买。
采用空间矢量脉宽调制(SVPWM )的开环VVVF 调速系统的综合实训一、实验目的1、理解电压空间矢量脉宽调制(SVPWM )控制的基本原理。
2、熟悉MCKV 电机控制系统的CPU 模块、IPM 模块和机组各部分硬件模块,并确认工作正常。
3、了解SVPWM 变频器运行参数和特性。
二、实验内容:1、熟悉CCS 编程环境,并在CCS 下编译、下载、运行DSP 软件工程。
2、观察并记录定子磁链周期和频率,并分析他们之间的关系。
3、观测并记录启动时电机定子电流和电机速度波形)(t f i v =与)(t f n =;三、实验预习要求1、阅读并掌握三相交流异步电机VVVF 调速系统工作原理。
2、了解电压空间矢量脉宽调制(SVPWM )控制的基本原理。
3、阅读本次实验指导书和实验程序,写好实验预习报告。
4、在MATLAB/Simulinlk 环境中搭好仿真模型,结合本程序LEVEL1功能框图,完成电流速度双闭环系统交流异步电机矢量控制仿真。
四、实验原理当用三相平衡的正弦电压向交流电动机供电时,电动机的定子磁链空间矢量幅值恒定,并以恒速旋转,磁链矢量的运动轨迹形成圆形的空间旋转矢量(磁链圆)。
SVPWM 就是着眼于使形成的磁链轨迹跟踪由理想三相平衡正弦波电压源供电时所形成的基准磁链圆,使逆变电路能向交流电动机提供可变频电源,实现交流电动机的变频调速。
现在以实验系统中用的电压源型逆变器为例说明SVPWM 的工作原理。
三相逆变器由直流电源和6个开关元件( MOSFET) 组成。
图1是电压源型逆变器的示意图。
图1 电压源型逆变器示意图对于每个桥臂而言,它的上下开关元件不能同时打开,否则会因短路而烧毁元器件。
其中A 、B 、C 代表3 个桥臂的开关状态,当上桥臂开关元件为开而下桥臂开关元件为关时定义其状态为1 ,当下桥臂开关元件为开而上桥臂开关元件为关时定义其状态为0。
这样A 、B 、C 有000 、001 、010 、011 、100 、101 、110 、111共 8种状态。
两种基于DSP的SVPWM波形实现方法李瑾;吕树清;陈显彪【摘要】空间矢量脉宽调制(Space Vector Pulse Width Modulation,SVPWM)是控制交流异步电动机的一种常用控制方式.与脉宽调制(Pulse Width Modulation,PWM)技术相比,SVPWM技术用于交流调速系统不仅能提高电压利用率,而且具有转矩脉动小、噪声低等优点.本文在分析SVPWM基本原理的基础上,对基于TMS320LF2407A型DSP(Digital Signal Processor)产生SVPWM波形的硬件和软件实现方法进行比较,并用Matlab/Simulink软件对SVPWM调制波形进行了仿真实验,仿真结果验证了本文所提算法的正确性和有效性.【期刊名称】《湖北工程学院学报》【年(卷),期】2014(034)003【总页数】5页(P16-20)【关键词】空间矢量;脉宽调制;DSP;交流调速【作者】李瑾;吕树清;陈显彪【作者单位】南昌工程学院机械与电气工程学院,江西南昌330099;南昌工程学院继续教育学院,江西南昌330029;南昌工程学院机械与电气工程学院,江西南昌330099【正文语种】中文【中图分类】TM343随着电力电子技术和计算机控制技术的飞速发展,正弦脉宽调制已经广泛应用在交流调速系统中。
经典的正弦脉宽调制 (Sinusoidal Pulse Width Modulation,SPWM)控制着眼于使电压变频器的输出电压尽可能逼近正弦波,但并未考虑输出电流的波形,因而容易产生高次谐波分量,引起电动机发热,转矩脉动甚至可能导致系统振荡。
而空间电压矢量脉冲宽度调制(Space Vector Pulse Width Modulation,SVPWM)方法将三相变流器的理想输出电压在复平面上合成为空间电压矢量,并通过组合不同的开关状态所形成的电压空间矢量去逼近理想电压空间矢量,相对于传统的SPWM方法,其功率器件的开关次数可减少1/3,直流电压利用率可提高15%,具有转矩脉动小、噪声低、谐波抑制效果好、易于数字化实现等优点[1]。
空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤总体空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤:(1)获得SVPWM的输入信号UALFA,UBETA, UD,UQ经过IPARK变换得到输入信号UALFA,UBETA;(2)利用输入信号UALFA,UBETA确定扇区变量P,再通过扇区变量P确定扇区Sector;(3)利用输入信号UALFA,UBETA计算中间变量X,Y,Z,再根据不同扇区利用中间变量X,Y,Z计算t1,t2;(4)利用t1,t2计算中间变量Taon,Tbon,Tcon,再根据不同扇区利用中间变量Taon,Tbon,Tcon,计算Ta,Tb,Tc;(5)利用Ta,Tb,Tc计算占空比MfuncC1,MfuncC2,MfuncC3,之后再计算全比较器参数赋值CMPR1,CMPR2,CMPR3.详细空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤:(1)获得SVPWM的输入信号UALFA,UBETA;图1 PMSM矢量控制总体框图各位初学者应该首先明白空间电压矢量脉宽调制技术(SVPWM)的输入是电压量Ualfa,Ubeta。
Ualfa,Ubeta是通过IPARK变换得到的。
记住原理是原理,实践是实践,两者不同!多看看TI的例程和PDF说明文档,很有帮助!图2 SVPWM 模块框图(2)利用输入信号UALFA,UBETA 确定扇区变量P,再通过扇区变量P 确定扇区Sector ; 计算三个中间变量B 0,B 1,B 2:0011221sin 60sin 3022sin 60sin 30122B U B U B U U B U U B U U B U U ββαβαβαβαβ⎧⎪=⎧=⎪⎪⎪=−⇒=−⎨⎨⎪⎪=−−⎩⎪=−−⎪⎩o oo o o 在使用符号函数1()0x sign x x >⎧=⎨<⎩计算扇区中间变量P 值: 2104si ()2()()P gn B sign B sign B =++P 值与扇区号之间的对应关系为:P 1 2 3 4 5 6 扇区号 2 6 1 4 3 5图3 扇区变量P 与扇区SECTOR 之间关系(3)利用输入信号UALFA,UBETA计算中间变量X,Y,Z,再根据不同扇区利用中间变量X,Y,Z 计算t1,t2;计算三个中间变量X,Y,Z:122122X UY U UZ U Uβαβαβ⎧⎪=⎪⎪=+⎨⎪⎪=−+⎪⎩o根据电压矢量所在扇区确定切换时间t1,t2:扇区号 1 2 3 4 5 6 t1 -Z Z X -X -Y Y t2 X Y -Y Z -Z -X图4 T1,T2的波形(4)利用t1,t2计算中间变量Taon,Tbon,Tcon,再根据不同扇区利用中间变量Taon,Tbon,Tcon,计算Ta,Tb,Tc;1212(1)/2(0~1)aonbon acon bT t tT T tT T t=−−⎧⎪=+⎨⎪=+⎩,图5 Taon ,Tbon 的波形(5)利用Ta,Tb,Tc 计算占空比MfuncC1,MfuncC2,MfuncC3,之后再计算全比较器参数赋值CMPR1,CMPR2,CMPR3.则不同扇区内切换点T a ,T b ,T c 可有下表得到:(0.5)*2(0.5)*2(1~1)(0.5)*2a ab b cc T T T T T T =−⎧⎪=−−⎨⎪=−⎩ 范围改变EvaRegs.CMPR1 = (Uint16)(MfuncC1*Modulation*T1Period/2+T1Period/2);//A 相占空比计算,调制比Modulation =0.95EvaRegs.CMPR2 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B 相占空比计算 EvaRegs.CMPR3 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B 相占空比计算图6 Ta,Tb的波形本文主要基于TI公司C2000系列F2812例程中的说明文件svgen_dq.pdf编写而成,主要是帮助SVPWM初学者。
如有错误或者修改的地方,或者疑问,请联系QQ:546847771主要讲解技术,非诚勿扰!具体程序如下://=============================================================================== //计算Sine,Cosine,用于IPARK变换//=============================================================================== i++;i=0;if(i>256)Sine = sin(6.2831853*i/256);Cosine = cos(6.2831853*i/256);//=============================================================================== //IPARK变换:UD,UQ==>UALFA,UBETA//=============================================================================== UALFA=Cosine*UD-Sine*UQ;UBETA=Sine*UD+Cosine*UQ;//=============================================================================== //SVPWM算法实现,首先通过UALFA,UBETA确定扇区变量P//=============================================================================== B0=UBETA;B1=0.8660254*UALFA-0.5*UBETA;B2=-0.8660254*UALFA-0.5*UBETA;if(B0>0)P0=1;P0=0;elseP1=1;if(B1>0)elseP1=0;P2=1;if(B2>0)P2=0;elseP=P0+2*P1+4*P2;//==============================================================================//通过扇区变量P确定扇区Sector//============================================================================== Sector=2;if(P==1)else if(P==2) Sector=6;else if(P==3) Sector=1;else if(P==4) Sector=4;else if(P==5) Sector=3;else if(P==6) Sector=5;//=============================================================================== //根据扇区Sector计算Ta,Tb,Tc//===============================================================================X=UBETA;Y=0.8660254*UALFA+0.5*UBETA;Z=-0.8660254*UALFA+0.5*UBETA;if(Sector==1){t1=-Z;t2=X;Taon=(1-t1-t2)/2;Tbon=Taon+t1;Tcon=Tbon+t2;Ta=Taon;Tb=Tbon;Tc=Tcon;}if(Sector==2)else{t1=Z;t2=Y;Taon=(1-t1-t2)/2;Tbon=Taon+t1;Tcon=Tbon+t2;Ta=Tbon;Tb=Taon;Tc=Tcon;}elseif(Sector==3){t1=X;t2=-Y;Taon=(1-t1-t2)/2;Tbon=Taon+t1;Tcon=Tbon+t2;Ta=Tcon;Tb=Taon;Tc=Tbon;}if(Sector==4)else{t1=-X;t2=Z;Taon=(1-t1-t2)/2;Tbon=Taon+t1;Tcon=Tbon+t2;Ta=Tcon;Tb=Tbon;Tc=Taon;}else if(Sector==5){t1=-Y;t2=-Z;Taon=(1-t1-t2)/2;Tbon=Taon+t1; Tcon=Tbon+t2; Ta=Tbon;Tb=Tcon;Tc=Taon;}else if(Sector==6){t1=Y;t2=-X;Taon=(1-t1-t2)/2;Tbon=Taon+t1;Tcon=Tbon+t2;Ta=Taon;Tb=Tcon;Tc=Tbon;}MfuncC1=(Ta-0.5)*2;MfuncC2=(Tb-0.5)*2;MfuncC3=(Tc-0.5)*2;//===========================================================================//全比较器参数赋值,调制比M=0.95//=========================================================================== EvaRegs.CMPR1 = (Uint16)(MfuncC1*Modulation*T1Period/2+T1Period/2);//A相占空比计算EvaRegs.CMPR2 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B相占空比计算EvaRegs.CMPR3 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B相占空比计算。