文档(函数)

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结构体指针

返回值:无