关于PID温度控制,在网上找了个程序,看了看有个问题弄不懂,请教各位高手,就是下面程序中的最后几行,当实际温度大于等于设定温度时,应该就关闭加热了,hightime应该等于0啊,但为...
关于PID温度控制,在网上找了个程序,看了看有个问题弄不懂,请教各位高手,就是下面程序中的最后几行,当实际温度大于等于设定温度时,应该就关闭加热了,hightime应该等于0啊,但为什么会出来如下这几行,搞不懂。请教高手。谢谢!
if(uk<0)
{
hightime=100-(-uk);
}
else
{
hightime=100-uk;
}
下面是程序:
/******************************
温度比较 PID算法
*******************************/
void pid_ys()
{
if(rltemp
{
if(settemp-rltemp>20) // 如果相差2度
{
hightime=100;//全速加热
}
else //否则运行PID算法进行平滑加热
{
e1 = settemp-rltemp;
duk=(kp*(e1-e2)+ki*e1+kd*(e1-e2*2+e3))/10;