新闻中心

EEPW首页>嵌入式系统>设计应用> C51如何实现PID算法

C51如何实现PID算法

作者: 时间:2010-12-09 来源:网络 收藏


/*以下部分代码是讲所有的正数项叠加,负数项叠加*/
if(.EkFlag_Uint8[0]==0)
{
PostSum+=Temp[0];//正数和
}
else
{
NegSum+=Temp[0];//负数和
}//KP*EK0
if(.EkFlag_Uint8[1]!=0)
{
PostSum+=Temp[1];//正数和
}
else
{
NegSum+=Temp[1];//负数和
}//-kI*EK1
if(.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;
}
}

本文引用地址://m.amcfsurvey.com/article/173079.htm

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭