Professional Documents
Culture Documents
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
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 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
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
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
*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
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
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
11/23/2006
#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
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
//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
} 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