You are on page 1of 9

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

Khi iu Ch Vector Khng Gian


Chc nng: Khi ny tnh ton t s tng ng ca thi gian cc thanh ghi CMPRx vi thanh ghi TxPR xut ra vector in p s dng thut ton iu ch vector khng gian. in p t Stator c a vo di dng (,) v k hiu l Uanpha, Ubeta. Tu Tv Tw c tnh: + Kiu d liu: + File C: Files th vin cn dng + Chp s dng: IQmath svgen_dq.c, svgen_dq.h IQmathLib.h, IQmath.lib DSP C2000 F2812

Giao din trong C: +Cu trc ca khi SVGENDQ c m t nh sau: typedef struct {_iq Ualpha; // Input: reference alpha-axis phase voltage _iq Ubeta; // Input: reference beta-axis phase voltage _iq Tu; // Output: reference phase-u switching function _iq Tv; // Output: reference phase-v switching function _iq Tw; // Output: reference phase-w switching function } SVGENDQ; typedef SVGENDQ *SVGENDQ_handle; +Hm thc hin vic iu ch, tnh cc gi tr Tu,Tv v Tw: void svgendq_calc(SVGENDQ *v) Tn hiu u vo: M t tn v kiu d liu * Ualpha: Thnh phn ngang trc ca in p stator (GLOBAL_Q) Ubeta: Thnh phn ngang dc ca in p stator (GLOBAL_Q) Tu: T s ca gi tr thanh ghi CMPR1 vi gi tr thanh ghi chu k TxPR. (GLOBAL_Q) Tv: T s ca gi tr thanh ghi CMPR2 vi gi tr thanh ghi chu k TxPR. (GLOBAL_Q) Tw: T s ca gi tr thanh ghi CMPR3 vi gi tr thanh ghi chu k TxPR. (GLOBAL_Q) Phm vi (Hex) 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF

u ra:

GLOBAL_Q nhn gi tr t 1 n 30 v c nh ngha trong header file IQmathLib.h. 11/23/2006 Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

C s l thuyt
S nguyn l ca nghch lu nui ng c XCBP vi ba cun dy pha u,v v w c minh ho trong hnh v di y. Vi x l c nhim v tnh ton v to ra cc chm xung kch iu khin cc cp van (u,u), (v,v) v (w,w) sao cho in p pha ( dng bm xung) c bin , tn s v gc pha ng nh yu cu c t ln ba cc ca ng c. Mch nghch lu c nui bi in p mt chiu trung gian UMC. Tu s dng loi van nghch lu IGBT.

u
UMC

Hinh 1: S nguyn l ca nghch lu *Mc lgich ca ba cc ca cc cun dy pha quy c nh sau: 0: Nu cc ca cun dy ni vi th nng m. 1: Nu cc ca cun dy ni vi th nng dng. Bng ba nhnh van ta c th to ra 8 trng thi lgich ng vi 8 vector in p chun u0, u1,.. u7. Trong hai vector u0- c ba cun dy ni vi cc m v u7- c ba cun dy ni vi cc dng l cc vector c mdul bng khng. V tr tng i ca cc vector chun c biu din di hnh v tip theo vi cc trc (,). Cc vector chun chia khng gian vector thnh cc gc phn su S1,.. S6 v cc gc phn t Q1,.. Q4. Ta c bng trng thi vector chun: Vector Pha u Pha v Pha w 0 0 0 U
0 pha v

S2

u3
S3
Q2 Q 2

u2
S1 Q 1 Q

U1 U2 U3 U4 U5 U6 U7

1 1 0 0 0 1 1

0 1 1 1 0 0 1

0 0 0 1 1 1 1

u4
S4
Q 33 Q

u0 u7

u1
pha u

Q4

Q4

S6

u5
pha w

S5

u6

Hinh 2: Cc vector in p chun 11/23/2006 Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

*Nguyn l iu ch: Gi s cn thc hin vector in p us nm gc phn su S1, khong gia hai vector u1 v u2. Ta thay vic thc hin mt cch trc tip us bng cch tch thnh 2 vector u p v ut l hai thnh phn in p chiu ln cc trc ca u1 v u2. Ta c nhn xt: 1. us l tng vector u p + ut 2. u p v ut c xc nh bi trng thi lgich trong khong thi gian:
* Tp = Tpuls

| up | | us |max

* ; Tt = Tpuls

| ut | | us |max

u2 ut us

* Khong thi gian cn li Tpuls Tp Tt s c dng thc

hin mt trong hai vector c mdule bng khng l: u0 v u7 Nh vy cui cng ta thc hin phng trnh sau: * Tp Tpuls (Tp + Tt ) Tt us = * u1 + * u2 + u0 (hoc u7 ) * Tpuls Tpuls Tpuls

up u1

y ta s dng thut ton iu ch s dng 3 nhnh van v c s ng b ho gia x l tn hiu v in p iu ch. rng cc thanh ghi PWM c ch lm vic i xng, tc l ta ch phi np gi tr mt ln cho mi thanh ghi v s nhn c xung hnh ch nht nh mong mun. n gin hn na ta chn T0=T7. c s ln ng ct van bn dn l t nht c th ta iu ch theo th t in p nh sau i vi vc t in p thuc S1: T w Tv Tu Pha u Pha v Pha w
T0/2 U0 Tp U1 Tt U2 T7/2 U7 T7/2 U7 Tt U2 Tp U1 T0/2 U0

Tpuls

Hinh 3:Mu xung in p thuc gc S1 Ch : Tu, Tv,Tw tng ng l cc gi tr np vo cc gi tr np vo cc thanh ghi CMPRx ca cc pha u, v, w. 11/23/2006 Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

Tng t ta c cc mu xung ca vector in p nm cc gc S2,.. S6 nh sau: a. Gc S2:

u3 us ut

up

u2

u v w

T0/2 u0

Tt u3

Tp u2

T7 u7

Tp u2

Tt u3

T0/2 u0

b. Gc S3:

u3 us u4 ut up

w v u

T0/2 u0

Tp u3

Tt u4

T7 u7

Tt u4

Tp u3

T0/2 u0

c. Gc S4:

u4 us

up

ut u5

v w u

T0/2 u0

Tt u5

Tp u4

T7 u7

Tp u4

Tt u5

T0/2 u0

d. Gc S5:

up u5
e. Gc S6:

ut u6

u w v

T0/2 u0

Tp u5

Tt u6

T7 u7

Tt u6

Tp u5

T0/2 u0

us

up u6

ut u1 us

w u v

T0/2 u0

Tt u1

Tp u6

T7 u7

Tp u6

Tt u1

T0/2 u0

Hinh 4:Mu xung in p thuc gc S2,..S6 11/23/2006

Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

*Cch tnh v xut thi gian ng ngt: Ta s dng phng php tra bng, t cc gi tr us v us tnh v xut thi gian ng ngt cc van nghch lu. Trc tin ta s tnh cc gi tr trung gian cn cho vic tnh ton sau ny nh sau: 1 1 2 | us |; | us |; | us | a =| us | + b =| us | c= 3 3 3 Phng php ny s gm c 2 giai on: + Giai on 1: D sector ca vector in p, ta s xem vector in p t u vo nm cc gc phn su (S1,.. S6) v gc phn t (Q1,..Q4) no. Thut ton tm gc nh sau: Nhp s liu us v us Sai

us <0 ? us <0 ? us <0 ?

ng Sai Q4

Sai Q1

ng Q2

ng Q3

b <0 ?
Sai S1 ng S2/Q1 ng S2/Q2

b <0 ?
Sai S3 Sai S4

b <0 ?
ng S5/Q3 ng S5/Q4

b <0 ?
Sai S6

Nh vy sau bc tnh ny ta bit c vector in p cn thc hin nm gc phn su (S1,.. S6) v gc phn t (Q1,..Q4) no, v vi s nhn bit ta c th thc hin vic tnh ton thi gian xut ra ca tng pha u, v v w. + Giai on 2: T sector tm c ta a ra cng thc tnh cc gi tr | u p | v | ut | theo bng gi tr sau:
1 | us | a =| us | + 3 1 | us |; b =| us | 3 2 | us | c = 3

| up |
S1 S2 S3 S4 S5 S6 Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 b a -b c b a -b c

| ut |
c -b a b c -b a b

Ch :

11/23/2006

Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

Khi c cc gi tr | u p | v | ut | ri th vic tnh cc thi gian Tp v Tt tr nn n gin theo cng thc gii thiu phn trn. Ta chun ho cc thi gian ny d cho vic tnh ton trong vi x l: Tp | up | T | ut | tp = * = ; tt = *t = Tpuls | us |max Tpuls | us |max Da vo cc thi gian t p v tt vi cc mu xung in p nh trong hnh 3 v hnh 4 ta c th tnh c cc gi tr Tu, Tv v Tw cho tng trng hp. rng cc gi tr Tu, Tv, Tw tng ng l t s gia gi tr cc thanh ghi CMPRu, CMPRv v CMPRw vi thanh ghi chu k PRD ca mt ln xut in p. V vy cc gi tr ny thuc khong (0, 1). Ta c cng thc tnh Tu,Tv v Tw nh sau: S1 S2 S3 S4 S5 S6 Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Tu (1-tp-tt)/2 Tv+ tt Tv+ tt Tv+ tp + tt Tw+ tp + tt Tw+ tp Tw+ tp (1-tp-tt)/2 Tv Tu+ tp (1-tp-tt)/2 (1-tp-tt)/2 (1-tp-tt)/2 Tw+ tt Tw+ tp + tt Tw+ tp + tt Tu+ tp + tt Tw Tu+ tp + tt Tv+ tp + tt Tv+ tp + tt Tv+ tp (1-tp-tt)/2 (1-tp-tt)/2 (1-tp-tt)/2 Tu+ tt

Ch : Pha c in m l cc pha c tnh gi tr thi gian np vo CMPR u tin, t tnh cc gi tr np vo cc pha cn li

11/23/2006

Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

M chng trnh trong C


(vit bng phn mm DMC-Pro ca TechnoSoft)
SVGEN_DG.H #include "LF2812_Regs.h" typedef struct { _iq Ualpha; // Input: reference alpha-axis phase voltage _iq Ubeta; // Input: reference beta-axis phase voltage _iq Tu; // Output: reference phase-a switching function _iq Tv; // Output: reference phase-b switching function _iq Tw; // Output: reference phase-c switching function } SVGENDQ; typedef SVGENDQ *SVGENDQ_handle; /*----------------------------------------------------------------------------Default initalizer for the SVGENDQ object. -----------------------------------------------------------------------------*/ #define SVGENDQ_DEFAULTS { 0,0,0,0,0, \ (void (*)(Uint32))svgendq_calc } /*-----------------------------------------------------------------------------Prototypes for the functions in SVGEN_DQ.C ------------------------------------------------------------------------------*/ void svgendq_calc(SVGENDQ_handle); SVGEN_DG.C

#include "IQmathLib.h" #include "svgen_dq.h" #include "parameter.h" void svgendq_calc(SVGENDQ *v) { _iq a,b,c,Tp,Tt; Uint32 Sector = 0;
// Caculate three base values a,b,c: a=_IQabs(v->Ualpha) + _IQmpy(_IQ(0.5773502691896),_IQabs(v->Ubeta)); b=_IQabs(v->Ualpha) - _IQmpy(_IQ(0.5773502691896),_IQabs(v->Ubeta)); c=_IQmpy(_IQ(1.15470053837925),_IQabs(v->Ubeta)); // Determine the sector of voltage vector: if (v->Ubeta < _IQ(0)) { if (v->Ualpha < _IQ(0))

11/23/2006

Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho { if (b < _IQ(0)) Sector =53; else Sector =4; } else { if (b < _IQ(0)) Sector =54; else Sector =6; } } else { if (v->Ualpha < _IQ(0)) { if (b < _IQ(0)) Sector =22; else Sector =3; } else { if (b < _IQ(0)) Sector =21; else Sector =1; } } //sector 22 //sector 3 //sector 54 //sector 6 //sector 53 //sector 4

Lp KT- KSTN- K47

//sector 21 //sector 1

// Caculate the three values Tu,Tv,Tw: if (Sector==1) // Sector 1: up=b, ut=c { Tp=_IQmpy(_IQ(invUdc),b); Tt=_IQmpy(_IQ(invUdc),c); v->Tu = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tv = v->Tu+Tp; v->Tw = v->Tv+Tt; } if (Sector==21) // Sector 21: up=a, ut=-b { Tp=_IQmpy(_IQ(invUdc),a); Tt=_IQmpy(_IQ(invUdc),-b); v->Tv = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tu = v->Tv+Tt; v->Tw = v->Tu+Tp; } if (Sector==22) // Sector 22: up=-b, ut=a { Tp=_IQmpy(_IQ(invUdc),-b); Tt=_IQmpy(_IQ(invUdc),a); v->Tv = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tu = v->Tv+Tt; v->Tw = v->Tu+Tp; 11/23/2006 Intelligent Electric Drives Dr. Nguyn Phng Quang

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

} if (Sector==3) // Sector 3: up=c, ut=b { Tp=_IQmpy(_IQ(invUdc),c); Tt=_IQmpy(_IQ(invUdc),b); v->Tv = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tw = v->Tv+Tp; v->Tu = v->Tw+Tt; } if (Sector==4) // Sector 4: up=b, ut=c { Tp=_IQmpy(_IQ(invUdc),b); Tt=_IQmpy(_IQ(invUdc),c); v->Tw = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tv = v->Tw+Tt; v->Tu = v->Tv+Tp; } if (Sector==53) // Sector 53: up=a, ut=-b { Tp=_IQmpy(_IQ(invUdc),a); Tt=_IQmpy(_IQ(invUdc),-b); v->Tw = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tu = v->Tw+Tp; v->Tv = v->Tu+Tt; } if (Sector==54) // Sector 54: up=-b, ut=a { Tp=_IQmpy(_IQ(invUdc),-b); Tt=_IQmpy(_IQ(invUdc),a); v->Tw = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tu = v->Tw+Tp; v->Tv = v->Tu+Tt; } if (Sector==6) // Sector 6: up=c, ut=b { Tp=_IQmpy(_IQ(invUdc),c); Tt=_IQmpy(_IQ(invUdc),b); v->Tu = _IQmpy(_IQ(1)-Tp-Tt,_IQ(0.5)); v->Tw = v->Tu+Tt; v->Tv = v->Tw+Tp; } } // NOTE: // + All the Tp, Tt, Tu, Tv, Tw is standarded and have the value in (0, 1). // + The range of the output value Tu,Tv,Tw is (0-->1) in IQ_GLOBAL

11/23/2006

Intelligent Electric Drives Dr. Nguyn Phng Quang

You might also like