speed_pid.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /**********************************
  2. * 文件名称: speed_pid.h
  3. * 功能描述: 速度PID控制器模块头文件
  4. * 主要内容:
  5. * 1. 定义速度PID控制器结构体
  6. * 2. 声明速度PID控制相关变量
  7. * 3. 声明速度PID控制相关函数
  8. *
  9. * 注意事项:
  10. * - 包含速度PID控制器的参数定义
  11. * - 包含速度控制相关的变量声明
  12. **********************************/
  13. #ifndef RTW_HEADER_speed_pid_h_
  14. #define RTW_HEADER_speed_pid_h_
  15. #include <stddef.h>
  16. #ifndef speed_pid_COMMON_INCLUDES_
  17. # define speed_pid_COMMON_INCLUDES_
  18. #include "rtwtypes.h"
  19. #endif
  20. #include "MW_target_hardware_resources.h"
  21. #ifndef rtmGetErrorStatus
  22. # define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
  23. #endif
  24. #ifndef rtmSetErrorStatus
  25. # define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
  26. #endif
  27. #define speed_pid_M (rtM)
  28. /**
  29. * @brief 速度控制相关变量
  30. */
  31. extern real32_T Speed_Ref; // 速度参考值(转/秒)
  32. extern real32_T Speed_Fdk; // 速度反馈值(弧度/秒)
  33. extern real32_T Speed_Pid_Out; // 速度PID输出,作为Q轴电流参考值
  34. /**
  35. * @brief 速度PID控制器结构体
  36. */
  37. typedef struct
  38. {
  39. real32_T P_Gain; // 比例系数
  40. real32_T I_Gain; // 积分系数
  41. real32_T D_Gain; // 微分系数
  42. real32_T B_Gain; // 反馈系数
  43. real32_T Max_Output; // 最大输出
  44. real32_T Min_Output; // 最小输出
  45. real32_T I_Sum; // 积分和
  46. }SPEED_PID_DEF;
  47. /**
  48. * @brief 速度PID控制器结构体实例
  49. */
  50. extern SPEED_PID_DEF Speed_Pid;
  51. /**
  52. * @brief 速度PID控制器初始化函数
  53. * @retval 无
  54. */
  55. extern void speed_pid_initialize(void);
  56. /**
  57. * @brief 速度PID计算函数
  58. * @param ref_temp 速度参考值(转/秒)
  59. * @param fdb_temp 速度反馈值(弧度/秒)
  60. * @param out_temp PID输出值(作为Q轴电流参考值)
  61. * @param current_pid_temp PID控制器结构体指针
  62. * @retval 无
  63. */
  64. extern void Speed_Pid_Calc(real32_T ref_temp, real32_T fdb_temp, real32_T* out_temp, SPEED_PID_DEF* current_pid_temp);
  65. /**
  66. * @brief 速度PID控制器参数
  67. */
  68. extern real32_T SPEED_PI_I; // 积分系数
  69. extern real32_T SPEED_PI_KB; // 反馈系数
  70. extern real32_T SPEED_PI_LOW_LIMIT; // 输出下限
  71. extern real32_T SPEED_PI_P; // 比例系数
  72. extern real32_T SPEED_PI_UP_LIMIT; // 输出上限
  73. #endif