实例介绍
TI关于SVPWM变频调速的官方代码的详细解释与相应实现过程 学习变频器原理的可以下载地看看
5、跟SPWM调制相比, SVPWM调制具有谐波少、电压利用率高的优点 由a、B轴分量组成 0+ DC +C=F 3 Ueo0011) lbeta 60° Alfa U,(001) Figure 30. Projection of the Reference Voltage Vector SVPWM把每一个扇区分成若干个对应于开关周期的小区间,在每个小区间,用所在扇区 的有效电压矢量U、和零电压矢量(0或者)的线性组合来合成参考电压矢量F。 SVPM流程: 1、确定劇区 2、计算X、Y、Z,进而计算4、厶2; 3、确定an、lon、 1、把、t、t赋给Z、Z、D; 5、进而、Z、7赋给 CMPRX。 1、扇区判断: 通过逆 Clarke变换,把(a、UB变换成三相对称系统下: Un+U×√3 Ua-×√3 2 例如,当U= sin at,D= COS Ot时,有: cOS Ot os(t-120° e3=cos(1+120 可以看出,上述变换中,U定位在β轴,该变换比常规的 Clarke逆变换超前90° 实际上,当U=sino,OB=cOSQ1时,常规的 Clarke逆变换为 U=sin ot C/=sin(4-1209) (4) C=sin(t+120°) 可以通过bm、Dm2、Om的极性来判断m所处扇区,令 0 b 0,1≤0 0,ma2≤0 上述三个判断式实际上是以3条轴线为分界进行的判断: 判断电压 0 Urefl S1、S2、S3 S、S5、S6 Uref2 S2、S3、S4 Uref3 S3、S4、S5 Sl、S2、S6 定义M=a+2*b+4*C,则N与扇区的对应关系如下: 4 5 6 6 2、时间计算 以上图为例,在第扇区中,Um可由C和U来表示: 7=7+3+7 U+l 7和3分别为C0和C6作用的时间,可由下式求得: (60 U6o cos(60%) 电压幅值进行归一化处理:线电压最大值为ll,以相电压最大值—为基值,则有: J证e,其标幺值为—根据式(3)可得: =(√3U0-CB) 73=花 时间进行归一化处理:以载波周期T为基值,则有: 同理,在第二扇区中,UD可由L120和0来表示,则有: 71(3U+Up) (10) 7 (√3U+ 其中,G是U120作用的时间。 F=(√3+UB) (11) z=3(-√3+U) 这样一来,在第一扇区中,4=-2,12=H,41-U,2-U6;在第二扇区中, 1=,2=V,1-D120,12-Cm。其它扇区中,如下表所示: Table 70. t and t2 Definitions for different sectors in Terms of xy and z Variables Sector 0060 0, U120 U120. 0180 U180, U240 U u 2400300 t1 X t2 X Y X 扇区 4 5 t1对应欠量 1201201240240 UO t2对应矢量U60 U60 L180 L180 L300 L300 采用七段式SWPW调制,每个载波片期中依次有:1个开关导通-2个开关导通3个开关 导通2个开关导通1个开关导通 3、确定ln con 1-41-l2 t+ (12) 4、把ln、lm、lm赋给石、、7,进而7、7、赋给 CMPRX: 确定了、t、后,应根据输出电压矢量所处扇区来给DSP赋值,这种对应关系 如卜表 Table 71. Assigning the Right Duty Cycle to the Right Motor Phase Sector 0:60 10U120,U180U10:U240u240,U30U30oU0 Ta fan ton tcon tcon the taon Ib ton taon taon toon icon tcon Ic tcon tcon toon tann taon ton 一程序部分-C++版 File name: SVGEN DQ C (IQ version) Originator: Digital Control Systcms Group Texas Instruments Description: Space-vector PWM generation based on d-q components History: 04-15-2005 Version 3.20 #include"IQmathLib h // Include header for IQ math library l Don't forget to set a proper gloBaL Q in"IQmath Lib. h "file #include doctype. h" #include svgen dg. h void svgendq calC(SVGENDQ v) iq Va,Vb, Vc,tI, t2 Uint32 Sector =0 // Sector is treated as Q0-independently with global Q // Inverse clarke transformation Va=v->Beta Vb=IQmpy( IQ(0.5), v->Beta)t IQmpy( iQ(0. 8660254) V->Alpha); //sqrt(3)/2 Vc= IQmpy( IQ(-05), v->Beta)-IQmpy( IQ(0.8660254)V-Ualpha); //sarl(3)/2 1/60 degree Sector determination if (Va> IQ(0) if(Vb> IQ(0)) Sector= Sector + 2 if(Vc> IQ(o)) Sector Sector +4 //X,Y,Z(Va,Vb, Vc) calculations Va=ⅴ-> beta: ∥X=Va Vb= IQmpy( IQ(0.5), v->Ubeta)+ IQmpy( IQ(0.8660254)v->Alpha); /Y=Vb Vc=IQmpy(IQ(0.5), v->Ubeta)-IQmpy( IQ(0.8660254), V->Alpha); //Z=Vc 6 if (Sector0)/ Sector 0: this is special case for (Alpha, Ubeta)=(0, 0) V->Ta=lQ(0.5) V->Tb= IQ(0.5) Tc=1Q(0.5); if(Sector-1)/Sector I: tI=Z and t2=Y(abc --- Tb, Ta, Tc), 60-120 tI=Vc t2=vb V->Tb=IQmpy( IQ(0.5),(iQ(1)-t1-t2)) ∥tbon=(1-t1-t2)/2 ⅴ->Ta=V->Tb+t1: ∥/taon=tbon+t y icon= laon+u else if(sector==2)//Sector 2: tl=Y and t2=-X(abc --->Ta, Tc, Tb), 300-360 t1=vb V->Ta=lmpy(IQ(0.5),1Q(1)-1-t2) ∥taon=(1-t1-12)/2 V->Tc=v->Ta+tl l tcon= taon+tI v->Tb=v->TC+2 //lbon=icon+2 else if (sector=3)/ Sector 3: tI--Z and t2=X(abc --- Ta, Tb, Tc), 0-60 L1=二V V->Ta=IQmpy( IQ(0.5),(IQ(1)-tl-t2)) taon=(1-t1-t2)/2 v->Tb=v->Ta+t1 // ton= taon+t1 v->Tc=v->Tb i t2 ∥/tcon=tbon+t2 else if Sector-4)//Sector 4: t1--X and t2-Z (abc --- Tc, Tb, Ta), 180-240 tl=-Va: V->Tc= IQmpy(IQ(0.5),1Q(1)-1-t2); //tcon=(1-t1-t2)/2 Y->Tb=v->Tc+tl // ton- tcon+t1 v->Ta=v->Tb+t2 ∥/taon=tbon+t2 else if (Sector==5)/Sector 5: tl=X and t2=-Y(abc ---> Tb, Tc, Ta),120-180 tl= Va 7->Tb=IQmpy( IQ(0.5),(IQ(1)-t1-t2)) ∥tbon=(1-t1-t2)2 V->Tc=v->Tb+t1 // tcon= ton +t1 v->Ta=v->Tclt2 l taon= tcon I t2 clsc if (Sector=6)//Sector 6: t1=-Y and t2=-Z(abc --->Tc, Ta, Tb), 240-300 tl=-Vb t2=-Vc V->Tc= LUmpy(IQ(0.5),C1Q(1)-1-(2); ∥con=(1-11-12)/2 7 taon- tcon+tl V->Tb=->1a+t2 // ton taon+t2 l Converl the unsigned GLOBAL Q format (ranged(0. 1))-> Signed GLOBAL Q format (ranged Ta=IQmpy( IQ(2.0), (v->Ta-IQ(0.5)) V->Tb= IQmpy( IQ(2.0), (v-2>Tb-IQ(0.5))) V-2Tc=IQmpy( IQ(2.0),(v-Tc-IQ(0.5)) 把石、、T赋给CMPR 在把T赋给 CMPRX之前先进行T=2*(T0.5)处理,赋值时再进行CMPR=(T2+2)*TIPR 处理,实际上T=2*(T-0.5)2+0.5=T,变换前后没有变化,但这样便于采用赋值函数直接进行 赋值。 分析一:第一扇区,设dx=0.3,dy=0.5,dz=0.2为例 处理前:Ta=0.1,Tb=0.4,Te=0.9 终T=2*(T05)处理后:Ta=-0.8,Tb=-0.2,Tc=0.8 赋值时再进行CMPR-T/2+T1PR2处理后:Ta=0.1,Tb-0.4,Tc=0.9; tcon thon taon PWMI PWM3 PWM5 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论