程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 算法模板-PID

算法模板-PID

編輯:C++入門知識

int Error[3]={0,0,0};   int Pwm;   int Kp,Ki,Kd;   int speed[2];   int base_speed;      void Mot_PID(int now_cnt, int target_cnt)   {       Error[2]=Error[1];       Error[1]=Error[0];       Error[0] = (target_cnt - now_cnt)>>3;                  Pwm = Pwm + Kp*(Error[0]-Error[1]) + Ki*Error[0] + Kd*(Error[0]-2*Error[1]+Error[2]);                      if (Pwm>0)       {           if (Error[0] > 11) Pwm=1000;           if (Pwm>1000) Pwm=1000;           PWMDTY23=Pwm;           PWMDTY45=0;          }       else       {                   Pwm = -Pwm;          // if (Error[0]<-11) Pwm=1000;   //bang-bang           PWMDTY23=0;           PWMDTY45=Pwm;       }               }      //*****************電機控制******************   void Mot_Ctrl(int center_n){       int y;              y=speed[0]*10+(speed[1]-speed[0])*center_n/4; //get target speed       Mot_PID(y);   }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved