/********************************** * 文件名称: speed_pid.h * 功能描述: 速度PID控制器模块头文件 * 主要内容: * 1. 定义速度PID控制器结构体 * 2. 声明速度PID控制相关变量 * 3. 声明速度PID控制相关函数 * * 注意事项: * - 包含速度PID控制器的参数定义 * - 包含速度控制相关的变量声明 **********************************/ #ifndef RTW_HEADER_speed_pid_h_ #define RTW_HEADER_speed_pid_h_ #include #ifndef speed_pid_COMMON_INCLUDES_ # define speed_pid_COMMON_INCLUDES_ #include "rtwtypes.h" #endif #include "MW_target_hardware_resources.h" #ifndef rtmGetErrorStatus # define rtmGetErrorStatus(rtm) ((rtm)->errorStatus) #endif #ifndef rtmSetErrorStatus # define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val)) #endif #define speed_pid_M (rtM) /** * @brief 速度控制相关变量 */ extern real32_T Speed_Ref; // 速度参考值(转/秒) extern real32_T Speed_Fdk; // 速度反馈值(弧度/秒) extern real32_T Speed_Pid_Out; // 速度PID输出,作为Q轴电流参考值 /** * @brief 速度PID控制器结构体 */ typedef struct { real32_T P_Gain; // 比例系数 real32_T I_Gain; // 积分系数 real32_T D_Gain; // 微分系数 real32_T B_Gain; // 反馈系数 real32_T Max_Output; // 最大输出 real32_T Min_Output; // 最小输出 real32_T I_Sum; // 积分和 }SPEED_PID_DEF; /** * @brief 速度PID控制器结构体实例 */ extern SPEED_PID_DEF Speed_Pid; /** * @brief 速度PID控制器初始化函数 * @retval 无 */ extern void speed_pid_initialize(void); /** * @brief 速度PID计算函数 * @param ref_temp 速度参考值(转/秒) * @param fdb_temp 速度反馈值(弧度/秒) * @param out_temp PID输出值(作为Q轴电流参考值) * @param current_pid_temp PID控制器结构体指针 * @retval 无 */ extern void Speed_Pid_Calc(real32_T ref_temp, real32_T fdb_temp, real32_T* out_temp, SPEED_PID_DEF* current_pid_temp); /** * @brief 速度PID控制器参数 */ extern real32_T SPEED_PI_I; // 积分系数 extern real32_T SPEED_PI_KB; // 反馈系数 extern real32_T SPEED_PI_LOW_LIMIT; // 输出下限 extern real32_T SPEED_PI_P; // 比例系数 extern real32_T SPEED_PI_UP_LIMIT; // 输出上限 #endif