FiledWeaken.c 839 B

123456789101112131415161718192021222324252627
  1. #include <Myproject.h>
  2. #if (FiledWeakenCompEnable)
  3. FieldWeakeningTypeDef xdata mcFieldWeaken;
  4. void FiledWeakenControl(int16 Ud, int16 Uq, uint16 Dcbusk, int16 Is)
  5. {
  6. //获取Us和Udc。
  7. SCAT1_COS = Ud;
  8. SCAT1_SIN = Uq;
  9. SMDU_RunBlock(1, 5);
  10. mcFieldWeaken.FieldWeakenActualUS_Q15 = SCAT1_RES1;
  11. mcFieldWeaken.FieldWeakenActualDcbus_Q15 = Dcbusk;
  12. // 计算弱磁角度
  13. mcFieldWeaken.FieldWeakenIsTheta = HW_One_Calc(mcFieldWeaken.FieldWeakenActualDcbus_Q15 - mcFieldWeaken.FieldWeakenActualUS_Q15);
  14. //获取D轴电流和Q轴电流参考值。
  15. SCAT1_COS = Is;
  16. SCAT1_THE = mcFieldWeaken.FieldWeakenIsTheta;
  17. SCAT1_SIN = 0;
  18. SMDU_RunBlock(1, 4);
  19. mcFieldWeaken.mcIdref = SCAT1_RES2 ;//sin的结果
  20. mcFieldWeaken.mcIqref = SCAT1_RES1;//cos的结果
  21. }
  22. #endif