增量式 PID 算法 程序是自己编的,根据多方资料改写了一部分,为增量式PID 算法
程序采用浮点形式,如果 MCU 速度不够快,可根据需求转换定点运算
关键变量:ref——设置的参数;feb——采样反馈;根据实际情况修改这两个变量即可
相关参数:Kp、Ti、Td、T:根据各项目的控制对象不同而修改其定义值
//定义变量double ref = 0;//设置参数double feb = 0;//采样反馈 int pwm_var =0; //PID 调整量Uint16 PWM_out = 0; //PWM 输出量 double Uo = 0;double Ek = 0;double Ei = 0;double Ed = 0;#define Kp 8 //PID 调节的比例常数#define Ti 0
05 //PID 调节的积分常数#define Td 0
02 //PID 调节的微分时间常数#define T 0
02 //采样周期#define Kpp Kp * ( 1 + (T / Ti)+ (Td / T) )#define Ki (-Kp) * ( 1 + (2 *Td / T ) )#define Kd Kp* Td / T//#define Kpp 4//#define Ki 0
8//#define Kd 20//误差的阀值,小于这个数值的时候,不做PID 调整,避免误差较小时频繁调节引起震荡#define Emin 3//调整值限幅,防止积分饱和#define Umax 100#define Umin -100//输出值限幅#define Pmax 15500#define Pmin 200///////////////////////////////////////////////////////////////////////// PID 运算 //