C51如何实现PID算法

嵌入式系统 时间:2010-12-09来源:网络


/*以下部分代码是讲所有的正数项叠加,负数项叠加*/
if(PID.EkFlag_Uint8[0]==0)
{
PostSum+=Temp[0];//正数和
}
else
{
NegSum+=Temp[0];//负数和
}//KP*EK0
if(PID.EkFlag_Uint8[1]!=0)
{
PostSum+=Temp[1];//正数和
}
else
{
NegSum+=Temp[1];//负数和
}//-kI*EK1
if(PID.EkFlag_Uint8[2]==0)
{
PostSum+=Temp[2];//正数和
}
else
{
NegSum+=Temp[2];//负数和
}//KD*EK2
PostSum+=(uint32)PID.Uk_Uint16;//
if(PostSum>NegSum)//是否控制量为正数
{
Temp[0]=PostSum-NegSum;
if(Temp[0](uint32)ADPool.Value_Uint16[UMAXADCH])//小于限幅值则为计算值输出
{
PID.Uk_Uint16=(uint16)Temp[0];
}
else
{
PID.Uk_Uint16=ADPool.Value_Uint16[UMAXADCH];//否则为限幅值输出
}
}
else//控制量输出为负数,则输出0
{
PID.Uk_Uint16=0;
}
}

1 2

关键词: 算法 PID 实现 如何 C51

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版