本帖最后由 wangrunpeng 于 2016-4-11 20:50 编辑
void pid_init()
{
pid.ActualSpeed=0.0;
pid.err=0.0;
pid.err_last=0.0;
pid.err_next=0.0;
pid.SetSpeed=0.0;
pid.Kp=0.2;
pid.Ki=0.0;
pid.Kd=0.0;
pid.integral=0.0;
pid.voltage=0.0;
}
double PID_realize(double Speed)
{
pid.SetSpeed=Speed;
pid.err=pid.SetSpeed-pid.ActualSpeed;
pid.voltage=pid.Kp*pid.err;
pid.ActualSpeed+=pid.voltage;
return pid.ActualSpeed;
}
int main()
{
pid_init();
while(count<1500)
{
Speed=PID_realize(200.0);
printf("%lf ",Speed);
count++;
}
return 0;
}
哪位大神帮我运行一下这个pid程序,我不理解他的第一个输出值是怎么来的,以后一起交流pid算法,电机控制
一周热门 更多>