You are on page 1of 3

Nguyn Xun Lc - Nguyn nh Ho

Lp KT- KSTN- K47

Khi chuyn h to UVW Alpha, Beta


Chc nng: Chuyn cc gi tr trn h to ba pha sang h to Cc Alpha Beta U V

c tnh:

+ Kiu d liu: + File C: Files th vin cn s dng: + Chp s dng:

IQmath clarke.c, clarke.h IQmathLib.h, IQmath.lib DSP C2000 F2812

Giao din trong C: +Cu trc ca khi CLARKE c m t nh sau: typedef struct { _iq Us; // Input: phase-a stator variable _iq Vs; // Input: phase-b stator variable _iq Alpha; // Output: stationary d-axis stator variable _iq Beta; // Output: stationary q-axis stator variable } CLARKE; typedef CLARKE *CLARKE_handle; +Hm thc hin vic tnh ton chuyn i: void clarke_calc(CLARKE_handle); Tn hiu M t kiu v d liu Us: Phm vi (Hex)

Gi tr thnh phn U ca h trc UVW. 80000000-7FFFFFFF (GLOBAL_Q) u vo: Vs: Gi tr thnh phn V ca h trc UVW. 80000000-7FFFFFFF (GLOBAL_Q) Alpha: Gi tr thnh phn ngang trc trn h to 80000000-7FFFFFFF u ra: Cc Alpha- Beta. (GLOBAL_Q) Beta: Gi tr thnh phn dc trc trn h to 80000000-7FFFFFFF Cc Alpha- Beta. (GLOBAL_Q) 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
Khi chuyn i cc gi tr t h to ba pha UVW sang h to Cc Alpha-Beta. Ta thc hin vic chuyn h trc to theo phng trnh sau y:

I Alpha = I Us I Beta = (2 IVs + I Us ) / 3


Hnh v:

Pha V

iBeta

is
iWs

iVs

iAlpha = iUs
Pha U

Pha W
Vi gi tr tc thi hnh sin ca cc thnh phn trn cc pha UVW:

I Us = I sin (wt) I Vs = I sin (wt+2 /3) I = I sin (wt-2 /3) Ws


Ta c cc gi tr tc thi trn h trc Cc Alpha-Beta tng ng:

I Alpha = I sin (wt) I Beta = I sin (wt+ /2)


I Us I Vs I Ws I Alpha I Beta I Us I Vs
I Alpha

I Beta

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 MC-Pro ca TechnoSoft) CLARKE.H typedef struct { _iq Us; _iq Vs; _iq Alpha; _iq Beta; } CLARKE;

// Input: phase-a stator variable // Input: phase-b stator variable // Output: stationary d-axis stator variable // Output: stationary q-axis stator variable

typedef CLARKE *CLARKE_handle;

CLARKE.C

#include "IQmathLib.h" #include "clarke.h" void clarke_calc(CLARKE *v) { v->Alpha = v->Us; v->Beta = _IQmpy((v->Us + _IQmpy(_IQ(2),v->Vs)),_IQ(0.57735026918963)); // 1/sqrt(3) = 0.57735026918963 }

11/23/2006

Intelligent Electric Drives Dr. Nguyn Phng Quang

You might also like