智能车制作

标题: 电机P控制始终调节不到指定的速度,求教 [打印本页]

作者: wulicheng    时间: 2012-3-9 17:15
标题: 电机P控制始终调节不到指定的速度,求教
speed_offset[1]=speed_offset[0];
speed_offset[0]=speed_wanted-speed;   //获得本次速度偏差值

Pre_Control_Speed = Control_Speed;
Control_Speed = Pre_Control_Speed
                    + (int)(Speed_K)*(speed_offset[0]-speed_offset[1]);//PID增量式
if(Control_Speed>600){  //限幅控制
       Control_Speed=600;
    }
    else if(Control_Speed<0){
       Control_Speed=0;
    }
   
    PWMDTY67=Control_Speed;

我用的增量式,单用P控制发现个很奇怪的问题,当我设定恒定速度50时(发现改成60,70也一样),最后调节的结果是稳定在40,调试看了一下speed_offset[0]和speed_offset[1]都是20左右,相减以后自然就没有输出,稳定在40了!我的P算式没写错吧?为什么跟踪恒定值都有误差呢?

作者: guichuqing    时间: 2012-3-9 18:30
因为单用比例控制存在着静态误差,你加个积分或者微分就OK了

作者: wbx2050    时间: 2012-3-9 21:24
(int)(Speed_K)*(speed_offset[0]-speed_offset[1]);//这个是D
(int)(Speed_K)*(speed_offset[0]);// 这个是P
作者: wulicheng    时间: 2012-3-10 00:04
我用的是增量式啊,你那是位置式
作者: etech    时间: 2012-3-19 13:00
主要是积分吧,P调好了就上I
作者: luqi    时间: 2012-3-19 13:16
I是关键,没有I的话,不可能严格达到设定速度
作者: wulicheng    时间: 2012-3-19 22:32
我知道加I以后就能精确控制,就是光加P为什么无论设什么速度最后出来都是一个定值有点不懂
作者: 齐天小晟    时间: 2012-3-29 21:13
wulicheng 发表于 2012-3-19 22:32
我知道加I以后就能精确控制,就是光加P为什么无论设什么速度最后出来都是一个定值有点不懂

只有比例环节确实会有一个恒定误差,我们上学期上自控原理书里面有讲,你可以查查自动控制原理





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2