#include <Myproject.h>

#if (FiledWeakenCompEnable)

FieldWeakeningTypeDef xdata mcFieldWeaken;

void  FiledWeakenControl(int16 Ud, int16 Uq, uint16 Dcbusk, int16 Is)
{
    //获取Us和Udc。
    SCAT1_COS =  Ud;
    SCAT1_SIN =  Uq;
    SMDU_RunBlock(1, 5);
    mcFieldWeaken.FieldWeakenActualUS_Q15 = SCAT1_RES1;
    mcFieldWeaken.FieldWeakenActualDcbus_Q15 = Dcbusk;
    // 计算弱磁角度
    mcFieldWeaken.FieldWeakenIsTheta = HW_One_Calc(mcFieldWeaken.FieldWeakenActualDcbus_Q15 -  mcFieldWeaken.FieldWeakenActualUS_Q15);
    //获取D轴电流和Q轴电流参考值。
    SCAT1_COS = Is;
    SCAT1_THE = mcFieldWeaken.FieldWeakenIsTheta;
    SCAT1_SIN = 0;
    SMDU_RunBlock(1, 4);
    mcFieldWeaken.mcIdref = SCAT1_RES2 ;//sin的结果
    mcFieldWeaken.mcIqref = SCAT1_RES1;//cos的结果
}


#endif