| 123456789101112131415161718192021222324252627 |
- #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
|