您现在所在的是:

运动控制

回帖:1个,阅读:982 [上一页] [1] [下一页]
1194
star7953
文章数:95
年度积分:50
历史总积分:1194
注册时间:2005/4/28
发站内信
发表于:2007/5/11 16:39:00
#0楼
请帮我看看这个PID算法,怎么转速一直都是增大的, 而不是按照正弦曲线变化,

谢谢  

PID()
{      


 Integrate      =Pre_Integrate+errspeed;
 Derivative     =errspeed-Pre_Errspeed;    
     
 /***********计算PID的输出*********************

   Control_Output =speedKp*errspeed+speedTi*Integrate+speedTd*Derivative;     //PWM输出


 Pre_Errspeed   =errspeed;
 Pre_Integrate  =Integrate;
}

CAL()         // 定时做PID计算
{
 
     pulse_error=prepulse-pulse;   // pulse_error为脉冲差值
                   
     prepulse=pulse;            //PULSE为旋转编码器测出的电机转速(脉冲个数),
   
   temp1=6*sin(temp);        // 模拟正弦函数曲线
   temp=temp+0.1;                  
   
   errspeed=((int)temp1-pulse_error;  // 期望值与当前值的差值, 用来作PID计算
           
      PID();      
  }


1089
ceng2004
文章数:36
年度积分:50
历史总积分:1089
注册时间:2004/6/25
发站内信
发表于:2007/5/15 14:41:00
#1楼
errspeed=((int)temp1-pulse_error;  // 期望值与当前值的差值, 用来作PID计算

改成 errspeed=((int)temp1-pulse  试一试

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003