📄 refframe.h
字号:
* angle : angle of rotation in 1.15 format *
* *
* Ouputs : none *
* *
* Modified: AX0, AY0, AX1, AY1, AR, AF, MX0, MX1, MY0, MY1, MR, SR, I0, I1, I6, M6, L6 *
* *
***************************************************************************************/
#define refframe_Forward_Park_angle(Input_vector, Output_vector, angle)\
ax0= angle;\
CALL Cos_;\
my0=ax1; /*my0: cos(q)*/\
CALL Sin_;\
my1=ax1; /*my1: sin(q)*/\
I1 = Output_vector;\
I0 = Input_vector;\
call refframe_Rotate_Vector_
/***************************************************************************************
* *
* Type: Macro *
* *
* Call: refframe_Reverse_Park_angle(Input_vector, Output_vector, angle); *
* *
* Full Reverse Park Transformation including computation of sine and cosine of *
* rotation angle *
* *
* Input: Input_vector : rotor reference frame vector *
* Output_vector : stationary reference frame vector *
* angle : angle of rotation in 1.15 format *
* *
* Ouputs : none *
* *
* Modified: AX0, AY0, AX1, AY1, AR, AF, MX0, MX1, MY0, MY1, MR, SR, I0, I1, I6, M6, L6 *
* *
***************************************************************************************/
#define refframe_Reverse_Park_angle(Input_vector, Output_vector, angle)\
ar = -angle;\
if AV ar = pass 0x7fff;\
ax0 = ar;\
CALL Cos_;\
my0=ax1; /* my0: cos(q)*/\
CALL Sin_;\
my1=ax1; /* my1: sin(q)*/\
I1 = Output_vector;\
I0 = Input_vector;\
call refframe_Rotate_Vector_
/***************************************************************************************
* *
* Type: Macro *
* *
* Call: refframe_Calc_SinCos(angle, SinCos_vector); *
* *
* Calculatin of Sine and Cosine of given angle *
* *
* Inputs : angle : angle of rotation in 1.15 format *
* SinCos_vector : vector where Sin(angle) and Cos(angle) are to be stored *
* *
* Ouputs : None *
* *
* Modified: AX0, AY0, Ax1, AY1, AR, AF, MY0, MX1, MY1, MR, SR, I0, I6, M6, L6 *
* *
***************************************************************************************/
#define refframe_Calc_SinCos(angle, SinCos_vector)\
ax0 = angle;\
I0 = SinCos_vector;\
CALL Sin_;\
DM(I0+=M0)=ax1;\
CALL Cos_;\
DM(I0+=M0)=ax1
/***************************************************************************************
* *
* Type: Macro *
* *
* Call: refframe_Forward_Park_SinCos(Input_vector, Output_vector, SinCos_vector); *
* *
* Forward Park Transformation with Sine and osine known *
* *
* Inputs : Input_vector : stationary reference frame vector *
* Output_vector : rotor reference frame vector *
* SinCos_vector : vector where Sin(angle) and Cos(angle) are stored *
* *
* Ouputs : None *
* *
* Modified: MX0, MX1, MY0, MY1, MR, I0, I1, I2 *
* *
***************************************************************************************/
#define refframe_Forward_Park_SinCos(Input_vector, Output_vector, SinCos_vector)\
I1 = Output_vector;\
I0 = Input_vector;\
I2 = SinCos_vector;\
my1= DM(I2+=M2);\
my0= DM(I2+=M2);\
call refframe_Rotate_Vector_
/***************************************************************************************
* *
* Type: Macro *
* *
* Call: refframe_Reverse_Park_SinCos(Input_vector, Output_vector, SinCos_vector); *
* *
* Reverse Park Transformation with Sine and Cosine known *
* *
* Inputs : Input_vector: rotor reference frame vector *
* Output_vector: stationary reference frame vector *
* SinCos_vector: vector where Sin(angle) and Cos(angle) are stored *
* *
* Ouputs : None *
* *
* Modified: AX0, AR, MX0, MX1, MY0, MY1, MR, I0, I1, I2 *
* *
***************************************************************************************/
#define refframe_Reverse_Park_SinCos(Input_vector, Output_vector, SinCos_vector)\
I1 = Output_vector;\
I0 = Input_vector;\
I2 = SinCos_vector;\
ax0= DM(I2+=M2);\
ar = -ax0;\
if AV ar = pass 0x7fff;\
my1 = ar;\
my0= DM(I2+=M2);\
call refframe_Rotate_Vector_
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -