spdflxwkn.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * @file spdflxwkn.h
  3. * @author xu, haifeng(xuhf58@midea.com)
  4. * @brief
  5. * @version 0.1
  6. * @date 2024-01-17
  7. *
  8. * @copyright Copyright (c) 2024
  9. *
  10. */
  11. #ifndef SPDFLXWKN_H
  12. #define SPDFLXWKN_H
  13. #include "typedefine.h"
  14. #include "mathtool.h"
  15. /************************************************************************
  16. Definitions & Macros
  17. ************************************************************************/
  18. #define FLUX_MODE 0
  19. #define SPDFW_CTRL_COEF_DEFAULT \
  20. { \
  21. 0, 0, 0, 0, 0 \
  22. } // Default value of SPDFW_CTRL_COEF
  23. #define SPDFW_CTRL_OUT_DEFAULT \
  24. { \
  25. 0, 0 \
  26. } // Default value of SPDFW_CTRL_OUT
  27. /************************************************************************
  28. TypeDefs & Structure Defines
  29. ************************************************************************/
  30. typedef struct
  31. {
  32. SWORD swRSpeedPu; // Q15, Motor Rated Speed Pu, Base 1400HZ
  33. SWORD swIdMinPu; // Q14, Flux Weak Min Current, Base 60A
  34. SWORD swIpeakMaxPu; // Q14, Max Phase Current, Base 60A
  35. } SPDFW_CTRL_COEFIN;
  36. typedef struct
  37. {
  38. SWORD swFlxStartSpeedPu; // Q15, Flux Weak Motor Start Speed Pu, Base 1400HZ
  39. SWORD swFlxStopSpeedPu; // Q15, Flux Weak Motor Stop Speed Pu, Base 1400HZ
  40. SWORD swIdMinPu; // Q14, Flux Weak Min Current, Base 60A
  41. SWORD swIpeakMaxPu; // Q14, Max Phase Current, Base 60A
  42. SLONG slFlxKPu; // Q14, Flux Weak Calculate K
  43. } SPDFW_CTRL_COEF;
  44. typedef struct
  45. {
  46. SWORD swSpdFbkLpfAbsPu; // Q15, Flux Weak Motor Speed In Pu, Base 1400HZ
  47. } SPDFW_CTRL_IN;
  48. typedef struct
  49. {
  50. SWORD swIqLimPu; // Q14, q-axis Current limit value used for speed loop out
  51. SWORD swIdRefPu; // Q14, d-axis Current reference value used for current loop regulation
  52. } SPDFW_CTRL_OUT;
  53. /************************************************************************
  54. Exported Variables
  55. ************************************************************************/
  56. extern SPDFW_CTRL_COEFIN spdflx_stCtrlCoefIn;
  57. extern SPDFW_CTRL_COEF spdflx_stCtrlCoef;
  58. extern SPDFW_CTRL_IN spdflx_stCtrlIn;
  59. extern SPDFW_CTRL_OUT spdflx_stCtrlOut;
  60. /************************************************************************
  61. Exported Function
  62. ************************************************************************/
  63. extern void spdflx_voInit(void);
  64. extern void spdflx_voCoef(SPDFW_CTRL_COEFIN *in, SPDFW_CTRL_COEF *out);
  65. extern void spdflx_voCtrl(SPDFW_CTRL_IN *in, SPDFW_CTRL_COEF *coef, SPDFW_CTRL_OUT *out);
  66. /***********************************************************************/
  67. #endif