MC_Clarke_Park.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
  2. * File Name : MC_Clarke_Park.h
  3. * Author : IMS Systems Lab
  4. * Date First Issued : 21/11/07
  5. * Description : This module implements the reference frame transformations
  6. * needed for vector control: Clarke, Park and Reverse Park.
  7. * It also performs the voltage circle limitation.
  8. ********************************************************************************
  9. * History:
  10. * 21/11/07 v1.0
  11. * 29/05/08 v2.0
  12. * 14/07/08 v2.0.1
  13. ********************************************************************************
  14. * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  15. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  16. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  17. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  18. * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  19. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  20. *
  21. * THIS SOURCE CODE IS PROTECTED BY A LICENSE.
  22. * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
  23. * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
  24. *******************************************************************************/
  25. /* Define to prevent recursive inclusion -------------------------------------*/
  26. #ifndef __MC_CLARKE_PARK_H
  27. #define __MC_CLARKE_PARK_H
  28. /* Includes ------------------------------------------------------------------*/
  29. #include "stm32f1xx_hal.h"
  30. #include "MC_type.h"
  31. /* Exported types ------------------------------------------------------------*/
  32. /* Exported constants --------------------------------------------------------*/
  33. #define MAX_MODULATION_95_PER_CENT // up to 14.8 kHz
  34. #ifdef MAX_MODULATION_77_PER_CENT
  35. #define MAX_MODULE 25230 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*77%
  36. #endif
  37. #ifdef MAX_MODULATION_79_PER_CENT
  38. #define MAX_MODULE 25885 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*79%
  39. #endif
  40. #ifdef MAX_MODULATION_81_PER_CENT
  41. #define MAX_MODULE 26541 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*81%
  42. #endif
  43. #ifdef MAX_MODULATION_83_PER_CENT
  44. #define MAX_MODULE 27196 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*83%
  45. #endif
  46. #ifdef MAX_MODULATION_85_PER_CENT
  47. #define MAX_MODULE 27851 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*85%
  48. #endif
  49. #ifdef MAX_MODULATION_87_PER_CENT
  50. #define MAX_MODULE 28507 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*87%
  51. #endif
  52. #ifdef MAX_MODULATION_89_PER_CENT
  53. #define MAX_MODULE 29162 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*89%
  54. #endif
  55. #ifdef MAX_MODULATION_91_PER_CENT
  56. #define MAX_MODULE 29817 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*91%
  57. #endif
  58. #ifdef MAX_MODULATION_92_PER_CENT
  59. #define MAX_MODULE 30145 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*92%
  60. #endif
  61. #ifdef MAX_MODULATION_93_PER_CENT
  62. #define MAX_MODULE 30473 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*93%
  63. #endif
  64. #ifdef MAX_MODULATION_94_PER_CENT
  65. #define MAX_MODULE 30800 //root(Vd^2+Vq^2) <= MAX_MODULE = 32767*94%
  66. #endif
  67. #ifdef MAX_MODULATION_95_PER_CENT
  68. #define MAX_MODULE 31128 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*95%
  69. #endif
  70. #ifdef MAX_MODULATION_96_PER_CENT
  71. #define MAX_MODULE 31456 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*96%
  72. #endif
  73. #ifdef MAX_MODULATION_97_PER_CENT
  74. #define MAX_MODULE 31783 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*97%
  75. #endif
  76. #ifdef MAX_MODULATION_98_PER_CENT
  77. #define MAX_MODULE 32111 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*98%
  78. #endif
  79. #ifdef MAX_MODULATION_99_PER_CENT
  80. #define MAX_MODULE 32439 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*99%
  81. #endif
  82. #ifdef MAX_MODULATION_100_PER_CENT
  83. #define MAX_MODULE 32767 // root(Vd^2+Vq^2) <= MAX_MODULE = 32767*100%
  84. #endif
  85. /* Exported variables --------------------------------------------------------*/
  86. /* Exported macro ------------------------------------------------------------*/
  87. /* Exported functions ------------------------------------------------------- */
  88. Curr_Components Clarke(Curr_Components);
  89. Curr_Components Park(Curr_Components,int16_t);
  90. void RevPark_Circle_Limitation(Volt_Components* p_Stat_Volt_q_d);
  91. Volt_Components Rev_Park(Volt_Components Volt_Input);
  92. Trig_Components Trig_Functions(int16_t hAngle);
  93. #endif //__MC_CLARKE_PARK_H
  94. /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/