位置型PID的C语言实现
首先,再次给出位置型PID离散化公式:
根据位置型PID离散化公式编写C语言代码程序:
第一步,定义PID变量结构体代码如下:
struct _pid{
float SetSpeed; //定义设定值
float ActualSpeed;//定义实际值
float err; //定义偏差值
float err_last; //定义上一个偏差值
float err_past; //定义前一个偏差值
float Kp,Ki,Kd; //定义比例、积分、微分系数
float voltage; //定义电压值(控制执行器变量)
float integral; //定义积分值
int index; // 积分分离时的变量
float umax; //积分极限
float umin;
}pid;
第二步,初始化变量:
void PID_init() //pid变量初始化
{
printf("PID_init begin \n");
pid.SetSpeed = 0.0;
pid.ActualSpeed = 0.0;
pid.err = 0.0;
pid.err_last = 0.0;