附上一份关于PID内容的stm32程序源码:
#include "pid.h"
#include "usart.h"
PID pid; //存放PID算法所需要的数据
int PID_Calc(int Encoder,int Target) //pid计算
{
float DelEk;
float Pwm;
pid.Kp =80,pid.Ki =0.1,pid.Kd=500;
pid.Ek =Target -Encoder ; //计算偏差
pid.SEk+=pid.Ek; /历史总偏差和 即偏差积分 sek=sek+ek
DelEk=pid.Ek-pid.Ek_1; //最近两次偏差之和
Pwm=pid.Kp *pid.Ek +pid.Ki *pid.SEk +pid.Kd *DelEk;
pid.Ek_1=pid.Ek; //更新偏差
//printf(" pwm:%f\r\n", Pwm);
return Pwm;
}
全部资料下载地址:
电机PID算法.7z
(190.33 KB, 下载次数: 106)
|