文档(函数)
PID_Init
介绍
PID初始化函数
void PID_Init(PID_Attr *pidAttr);
参数[pidAttr];PID结构体指针
返回值:无
PID_Set_Incremental_Kp_Ki_Kd
介绍
增量型PID的Kp,Ki,Kd参数设置
void PID_Set_Incremental_Kp_Ki_Kd(PID_Attr *pidAttr, float Kp, float Ki, float Kd);
参数[pidAttr];PID结构体指针
参数[kp]:比例
参数[ki]:积分
参数[kd]:微分
返回值:无
PID_Set_Position_Kp_Ki_Kd
介绍
位置型PID的Kp,Ki,Kd参数设置
void PID_Set_Position_Kp_Ki_Kd(PID_Attr *pidAttr, float Kp, float Ki, float Kd);
参数[pidAttr]:PID结构体指针
参数[kp]:比例
参数[ki]:积分
参数[kd]:微分
返回值:无
PID_Set_Limit_ARRValue
介绍
设置输出限制值(一般为你设置的ARR的值)
void PID_Set_Limit_ARRValue(PID_Attr *pidAttr, int value);
参数[pidAttr]:PID结构体指针
参数[value]:输出限制值
返回值:无
PID_Set_ArrLimit_Open
介绍
打开输出值的限制
void PID_Set_ArrLimit_Open(PID_Attr *pidAttr);
参数[pidAttr]:PID结构体指针
返回值:无
PID_Set_ArrLimit_Close
介绍
关闭输出值的限制
void PID_Set_ArrLimit_Close(PID_Attr *pidAttr);
参数[pidAttr]:PID结构体指针
返回值:无
PID_Set_PositionUnit_Open
介绍
开启单位模式
void PID_Set_PositionUnit_Open(PID_Attr *pidAttr);
参数[pidAttr]:PID结构体指针
返回值:无
PID_Set_PositionUnit_Close
介绍
关闭单位模式
void PID_Set_PositionUnit_Close(PID_Attr *pidAttr);
参数[pidAttr]:PID结构体指针
返回值:无
PID_Set_PositionUint_Value
介绍
设置单位大小
void PID_Set_PositionUint_Value(PID_Attr *pidAttr, float value);
参数[pidAttr]:PID结构体指针
参数[value]:大小值
返回值:无
PID_Set_PositionUintmultiples_Value
介绍
设置单位倍率大小
void PID_Set_PositionUintmultiples_Value(PID_Attr *pidAttr, float value);
参数[pidAttr]:PID结构体指针
参数[value]:大小值
返回值:无
PID_Set_Incremental_AimValue
介绍
设置增量型PID目标速度
float PID_Set_Incremental_AimValue(PID_Attr *pidAttr, float changeValue, float aimValue);
参数[pidAttr]:PID结构体指针
参数[changeValue]:改变量(例如:编码器捕获的值)
参数[aimValue]:速度值
返回值:PWM值
PID_Set_Position_Value_FromChange
介绍
设置位置型PID目标位置,如果当前位置大于目标位置,则返回负数PWM值
float PID_Set_Position_Value_FromChange(PID_Attr *pidAttr, float changeValue, float nowSpeed, float aimValue, float velocity, float *getNowValue);
参数[pidAttr]:PID结构体指针
参数[changeValue]:改变量(例如:编码器捕获的值)
参数[nowSpeed]:当前速度(根据编码器转换的值)
参数[aimValue]:目标位置值
参数[Velocity]:速度值
参数[getNowValue]:指针传参,获取当前位置值(如果不获取填NULL)
返回值:PWM值
PID_Set_Position_Formula_Order
介绍
设置位置型使用的算法序号
void PID_Set_Position_Formula_Order(PID_Attr *pidAttr, char order);
参数[pidAttr]:PID结构体指针
参数[order]:算法序号
返回值:无
PID_Set_Incremental_Formula_Order
介绍
设置增量型使用的算法序号
void PID_Set_Incremental_Formula_Order(PID_Attr *pidAttr, char order);
参数[pidAttr]:PID结构体指针
参数[order]:算法序号
返回值:无
PID_Formula_Position_kp_Ki_Kd_Bias_LastBias_IntegralBias
介绍
位置型算法计算公式,(函数名很长,因为要区分不同参数个数的算法,一般作为函数内部使用)
float PID_Formula_Position_kp_Ki_Kd_Bias_LastBias_IntegralBias(char order, float Kp, float Ki, float Kd, float bias, float lastBias, float integralBias);
参数[order]:算法序号
参数[kp]:比例
参数[ki]:积分
参数[kd]:微分
参数[bias]:当前偏差值
参数[lastBias]:上一次偏差值
参数[integralBias]:总偏差值
返回值:计算结果
PID_Calc_Position_Action
介绍
计算位置型PWM值
float PID_Calc_Position_Action(PID_Attr *pidAttr, float nowValue, float changeValue, float aimValue, float velocity);
参数[pidAttr]:PID结构体指针
参数[nowValue]:当前位置值
参数[changeValue]:改变量(例如:编码器捕获的值)
参数[aimValue]:目标位置值
参数[Velocity]:速度值
返回值:PWM值
PID_Formula_Incremental_Kp_Ki_Kd_Bias_LastOneBias_LastTwoBias
介绍
位置型算法计算公式,(函数名很长,因为要区分不同参数个数的算法,一般作为函数内部使用)
float PID_Formula_Incremental_Kp_Ki_Kd_Bias_LastOneBias_LastTwoBias(char order, float Kp, float Ki, float Kd, float bias, float lastOneBias, float lastTwoBias);
参数[order]:算法序号
参数[kp]:比例
参数[ki]:积分
参数[kd]:微分
参数[bias]:当前偏差值
参数[lastOneBias]:上一次偏差值
参数[lastTwoBias]:上两次偏差值
返回值:计算结果
PID_Calc_Incremental_Action
介绍
计算PWM增量
float PID_Calc_Incremental_Action(PID_Attr *pidAttr, float changeValue, float aimValue);
参数[pidAttr]:PID结构体指针
参数[changeValue]:改变量(例如:编码器捕获的值)
参数[aimValue]:目标速度值
返回值:PWM增量值
PID_Ctrl_Position_FromChange
介绍
控制PID流程函数需要用到回调函数
float PID_Ctrl_Position_FromChange(PID_Attr *pidAttr, float changeValue, float nowSpeed, float aimValue, float Velocity, void (*callback)(float, float));
参数[pidAttr]:PID结构体指针
参数[changeValue]:改变量(例如:编码器捕获的值)
参数[nowSpeed]:当前速度(根据编码器转换的值)
参数[aimValue]:目标位置值
参数[Velocity]:速度值
参数[callback]:回调函数,设置的回调函数需要2个参数,第一个是pwm值,第二个是当前位置值(如果不使用请填NULL)
返回值:PWM值
PID_Clear_Position_TempValue
介绍
清理位置型PID的临时储存值
void PID_Clear_Position_TempValue(PID_Attr *pidAttr);
参数[pidAttr]:PID结构体指针
返回值:无
PID_Clear_Incremental_TempValue
介绍
清理增量型PID的临时储存值
void PID_Clear_Incremental_TempValue(PID_Attr *pidAttr);
参数[pidAttr]:PID结构体指针
返回值:无