欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: PID算法演示 [打印本頁]

作者: Marauder    時間: 2018-9-9 23:02
標題: PID算法演示
** ===================================================================
** SpeedPID
   輸入:speedCount采集車速,AmSpeed 目標車速  ;  
   輸出 :SpeedPWMOUT  計算車速 ;
** ===================================================================
*/
int16 SpeedControl(int16 speedCount,int16 AmSpeed,uint8 speedKP,uint8 speedKI,uint8 speedKD)
{
  
  
  
  *******************************************************************************************
    //speedCount      檢測值
    //AmSpeed         目標值
    //speedKP          P
    //speedKI          I
    //speedKD           D
   
   
   static float Speed1_Err,SumErrSpeed;  //靜態變量存儲中間變量
   float Speed2_Err,Speed_EC;
   float Speed_P_Value,Speed_D_Value ;
  
   static int16  SpeedPWMOUT;
  
   Speed2_Err = Speed1_Err ;                //將上一次的偏差保存(上一次的偏差值為0)
  
   Speed1_Err = AmSpeed - speedCount  ;      //  計算新的偏差值(目標值-傳感器檢測值)
        
        
  
   Speed_EC = Speed1_Err - Speed2_Err;      //  計算新的偏差變化值 (上次的偏差值-上上次的偏差值)
        
        
Speed_P_Value =  Speed1_Err * speedKP/10.0 ;   //  增量式PID控制計算P調節量
  
   SumErrSpeed  +=  Speed1_Err * speedKI ;    //增量式PID控制計算I調節量
   Speed_D_Value =  Speed_EC   *  speedKD/100.0 ;     //  增量式PID控制計算D調節量
        

SpeedPWMOUT += (int16)(Speed_P_Value + SumErrSpeed + Speed_D_Value);
        
        
   
        
        
//88888888888888888888888888888888   限幅        7777777777777777777777777777777
   if(SpeedPWMOUT < SPEED_PWM_MIN )
   {
     SpeedPWMOUT = SPEED_PWM_MIN ;
   }        
   else if(SpeedPWMOUT > SPEED_PWM_MAX)
   {
     SpeedPWMOUT = SPEED_PWM_MAX ;
         
   }   
   if(SpeedPWMOUT<=0)SpeedPWMOUT=0;
        
//888888888888888888888888888888888     限幅       77777777777777676666777777777
         
    return  SpeedPWMOUT ;  
}







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1