39 lines
1.3 KiB
C
39 lines
1.3 KiB
C
|
#include "IQmathLib.h" // Include header for IQmath library
|
||
|
#include "abc_to_dq.h"
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
#pragma CODE_SECTION(abc_to_dq_calc,".fast_run");
|
||
|
void abc_to_dq_calc(ABC_TO_DQ *v)
|
||
|
{
|
||
|
static _iq iq_two_third_pi = _IQ(6.283185307179586476925286766559/3.0);
|
||
|
static _iq iq_two_third = _IQ(2.0/3.0);
|
||
|
|
||
|
v->Id = _IQmpy(iq_two_third,_IQmpy(v->Ia, _IQsin(v->Tetta)) + _IQmpy(v->Ib, _IQsin(v->Tetta - iq_two_third_pi)) + _IQmpy(v->Ic, _IQsin(v->Tetta + iq_two_third_pi)));
|
||
|
v->Iq = _IQmpy(iq_two_third,_IQmpy(v->Ia, _IQcos(v->Tetta)) + _IQmpy(v->Ib, _IQcos(v->Tetta - iq_two_third_pi)) + _IQmpy(v->Ic, _IQcos(v->Tetta + iq_two_third_pi)));
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma CODE_SECTION(abc_to_dq_calc_v2,".fast_run");
|
||
|
void abc_to_dq_calc_v2(ABC_TO_DQ *v)
|
||
|
{
|
||
|
static _iq iq_two_third_pi = _IQ(6.283185307179586476925286766559/3.0);
|
||
|
static _iq iq_two_third = _IQ(2.0/3.0);
|
||
|
|
||
|
v->Id = _IQmpy(iq_two_third,_IQmpy(v->Ia, _IQcos(v->Tetta)) + _IQmpy(v->Ib, _IQcos(v->Tetta - iq_two_third_pi)) + _IQmpy(v->Ic, _IQcos(v->Tetta + iq_two_third_pi)));
|
||
|
v->Iq = _IQmpy(iq_two_third,_IQmpy(-v->Ia, _IQsin(v->Tetta)) - _IQmpy(v->Ib, _IQcos(v->Tetta - iq_two_third_pi)) - _IQmpy(v->Ic, _IQcos(v->Tetta + iq_two_third_pi)));
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////
|
||
|
|
||
|
|