这个程序应用在51单片机上的
/*************界说全局变量*****************/
uchar Kp,Ti,Td
int Set_speed;
/*************PID初始化函数***************/
void PID_init(void){
Serror=0;
FError=0;
Kp=30;
Ti=500;
Td=10;
}
int PID_control(int Now_speed)
{
int Error,Serror,result;
Error=Now_speed-Set_speed;
Serror=Serror+Error;
result=(Kp*Error+Kp*0.05/Ti*Serror+Kp*Td/0.05*(Error-FError));
FError=Error;
//对占空比进行限幅处理
if(result<10)
{result=0;} else
if(result>1000)
{result=1000;}
return result;
}