新手上路
- 积分
- 36
- 金钱
- 36
- 注册时间
- 2016-1-1
- 在线时间
- 12 小时
|
发表于 2016-7-16 21:31:36
|
显示全部楼层
请问各位、原子哥 PID算法搞不懂呐,虽然有算法!下面的Setspeed和Actualspeed是啥意思呢?
我演示了函数结果是:
while(count<1000)
{
speed=PID_realize(200.0)
输出speed
count++;
}
最后函数输出speed 从0到200。
但是PID不是反馈吗?输出大了减小输入,输出小了增加输入,怎么是一直增加到目标值呢?这个真想不通= = 求助!!!
[mw_shl_code=c,true]float pid_realize(float speed){
float incrementSpeed=pid.Kp*(pid.err-pid.err_next)+pid.Ki*pid.err+pid.Kd*(pid.err-2*pid.err_next+pid.err_last);
pid.SetSpeed=speed;
pid.err=pid.SetSpeed-pid.ActualSpeed;
pid.ActualSpeed+=incrementSpeed;
pid.err_last=pid.err_next;
pid.err_next=pid.err;
return pid.ActualSpeed;
}[/mw_shl_code] |
|