MC_PID_regulators.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
  2. * File Name : MC_PID_regulators.h
  3. * Author : IMS Systems Lab
  4. * Date First Issued : 21/11/07
  5. * Description : Contains the prototypes of PI(D) related functions.
  6. *
  7. ********************************************************************************
  8. * History:
  9. * 21/11/07 v1.0
  10. * 29/05/08 v2.0
  11. ********************************************************************************
  12. * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  13. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  14. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  15. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  16. * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  17. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  18. *
  19. * THIS SOURCE CODE IS PROTECTED BY A LICENSE.
  20. * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
  21. * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
  22. *******************************************************************************/
  23. /* Define to prevent recursive inclusion -------------------------------------*/
  24. #ifndef __PI_REGULATORS__H
  25. #define __PI_REGULATORS__H
  26. /* Includes ------------------------------------------------------------------*/
  27. #include "stm32f1xx_hal.h"
  28. typedef struct
  29. {
  30. int16_t hKp_Gain; //比例系数
  31. uint16_t hKp_Divisor; //比例系数因子
  32. int16_t hKi_Gain; //积分系数
  33. uint16_t hKi_Divisor; //积分系数因子
  34. int16_t hKd_Gain; //微分系数
  35. uint16_t hKd_Divisor; //微分系数因子
  36. int32_t wPreviousError; //上次误差
  37. int32_t hLower_Limit_Output; //Lower Limit for Output limitation 总输出下限
  38. int32_t hUpper_Limit_Output; //Upper Limit for Output limitation 总输出上限
  39. int32_t wLower_Limit_Integral; //Lower Limit for Integral term limitation 积分项下限
  40. int32_t wUpper_Limit_Integral; //Upper Limit for Integral term limitation 积分项上限
  41. int32_t wIntegral; //积分累积和
  42. } PID_Struct_t;
  43. extern PID_Struct_t PID_IMax;
  44. extern PID_Struct_t PID_Weak_InitStructure;
  45. extern PID_Struct_t PID_Torque_InitStructure;
  46. extern PID_Struct_t PID_Flux_InitStructure;
  47. extern PID_Struct_t PID_MotorSpd;
  48. extern PID_Struct_t PID_ConstantPower;
  49. extern void PID_Init (uint8_t SerialNum);
  50. extern int16_t PID_Regulator(int16_t, int16_t, PID_Struct_t *);
  51. #endif
  52. /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/