标题:
直流电机调速 PID算法出来的的当前速度在设定速度附近震荡
[打印本页]
作者:
w1232
时间:
2018-5-7 21:48
标题:
直流电机调速 PID算法出来的的当前速度在设定速度附近震荡
PID算法出来的的当前速度在设定速度附近震荡
计算调速如下
ivoid PID()
{
p1.e2=tar_spd - speed; //比例 计算当前误差,可以粗调
p1.vpa=p1.Kp*(p1.e2-p1.e1) //增量式PID计算
+p1.Ki*p1.e2
+p1.Kd*(p1.e2+p1.e0-2*p1.e1);
p1.vpa=p1.vpa*0.1;//因为比例系数扩大了10倍,所以这里要除掉
p1.e0=p1.e1; //把上次误差给上上次误差
p1.e1=p1.e2; //当前误差给到上次
p1.pa+=p1.vpa;//调节后的量
}
/**************计算调速*****************/
void action()
{
float c;
if(p1.pa<0)
c=0;
else if(p1.pa<10)
c=p1.pa*1.67+5;
else if(p1.pa<29)
c=p1.pa*2.5-5;
else if(p1.pa<32)
c=p1.pa*2.5+2.5;
else
c=p1.pa*5-85;
PWM_val= c;
}
作者:
w1232
时间:
2018-5-9 20:52
没有人吗,有没有大神教教
作者:
shaye457470072
时间:
2018-6-6 18:11
你这个用的增量式PID,控制量其实是靠积分累加起来的,但是控制精度应该能到1%以内,应该是你的参数没有调好
作者:
shaye457470072
时间:
2018-6-6 18:13
你这个应该是参数没调好,用的什么反馈?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1