Professional Documents
Culture Documents
c tnh:
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
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:
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 Beta
11/23/2006
// Input: phase-a stator variable // Input: phase-b stator variable // Output: stationary d-axis stator variable // Output: stationary q-axis stator variable
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