发表于:2005-11-18 10:28:00
11楼
pid结果不能直接用,除于一个系数可以,比如结果是三位数,除于一个系数可以后,可成两位数,将末位省去
能不能讲讲这个系数怎么确定呢?我最困惑的就是这个了。
void pid_run(void)
{
static int en_1,en_2;
long l,l1,l2;
int t;
t=adcnum-piddata; //跟参考量的偏差
l=t;
l=l*pidview[0];
l1=(long)(en_1)*pidview[1];
l2=(long)(en_2)*pidview[2];
l=l+l1+l2; //PID算式
en_2=en_1;
en_1=t;
t=(int)(l);
pidtime_do+=t;
}
adcnum是现场温度值
piddata PID参考量
pidview[3] PID三个参数
pidtime 是D/A输出0~255
这是上段代码的注释
帮我看看这段代码?问题在哪里?