久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

PID算法原理及調(diào)整規(guī)律

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月03日   【字體:

一、PID算法簡介

在智能車競賽中,要想讓智能車根據(jù)賽道的不斷變化靈活的行進,PID算法的采用很有意義。
     首先必須明確PID算法是基于反饋的。一般情況下,這個反饋就是速度傳感器返回給單片機當前電機的轉(zhuǎn)速。簡單的說,就是用這個反饋跟預設值進行比較,如果轉(zhuǎn)速偏大,就減小電機兩端的電壓;相反,則增加電機兩端的電壓。
     顧名思義,P指是比例(Proportion),I指是積分(Integral),D指微分(Differential)。在電機調(diào)速系統(tǒng)中,輸入信號為正,要求電機正轉(zhuǎn)時,反饋信號也為正(PID算法時,誤差=輸入-反饋),同時電機轉(zhuǎn)速越高,反饋信號越大。要想搞懂PID算法的原理,首先必須先明白P,I,D各自的含義及控制規(guī)律:
² 比例P比例項部分其實就是對預設值和反饋值差值的發(fā)大倍數(shù)。舉個例子,假如原來電機兩端的電壓為U0,比例P0.2,輸入值是800,而反饋值是1000,那么輸出到電機兩端的電壓應變?yōu)?/span>U0+0.2*800-1000)。從而達到了調(diào)節(jié)速度的目的。顯然比例P越大時,電機轉(zhuǎn)速回歸到輸入值的速度將更快,及調(diào)節(jié)靈敏度就越高。從而,加大P值,可以減少從非穩(wěn)態(tài)到穩(wěn)態(tài)的時間。但是同時也可能造成電機轉(zhuǎn)速在預設值附近振蕩的情形,所以又引入積分I解決此問題。
² 積分I顧名思義,積分項部分其實就是對預設值和反饋值之間的差值在時間上進行累加。當差值不是很大時,為了不引起振蕩?梢韵茸岆姍C按原轉(zhuǎn)速繼續(xù)運行。當時要將這個差值用積分項累加。當這個和累加到一定值時,再一次性進行處理。從而避免了振蕩現(xiàn)象的發(fā)生?梢,積分項的調(diào)節(jié)存在明顯的滯后。而且I值越大,滯后效果越明顯。
² 微分D微分項部分其實就是求電機轉(zhuǎn)速的變化率。也就是前后兩次差值的差而已。也就是說,微分項是根據(jù)差值變化的速率,提前給出一個相應的調(diào)節(jié)動作。可見微分項的調(diào)節(jié)是超前的。并且D值越大,超前作用越明顯?梢栽谝欢ǔ潭壬暇彌_振蕩。比例項的作用僅是放大誤差的幅值,而目前需要增加的是微分項,它能預測誤差變化的趨勢,這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控制作用等于零,甚至為負值,從而避免了被控量的嚴重超調(diào)。
二、參數(shù)調(diào)整一般規(guī)則
由各個參數(shù)的控制規(guī)律可知,比例P使反應變快,微分D使反應提前,積分I使反應滯后。在一定范圍內(nèi),PD值越大,調(diào)節(jié)的效果越好。各個參數(shù)的調(diào)節(jié)原則如下:
PID調(diào)試一般原則


a.      在輸出不振蕩時,增大比例增益P
b.      在輸出不振蕩時,減小積分時間常數(shù)Ti。
c.      輸出不振蕩時,增大微分時間常數(shù)Td。
三、參數(shù)調(diào)整一般步驟
a.確定比例增益P
確定比例增益P 時,首先去掉PID的積分項和微分項,一般是令Ti=0、Td=0,PID純比例調(diào)節(jié)。輸入設定為系統(tǒng)允許的最大值的60%~70%,由0逐漸加大比例增益P,直至系統(tǒng)出現(xiàn)振蕩;再反過來,從此時的比例增益P逐漸減小,直至系統(tǒng)振蕩消失,記錄此時的比例增益P,設定PID的比例增益P為當前值的60%~70%。比例增益P調(diào)試完成。
 
b.確定積分時間常數(shù)Ti
比例增益P確定后,設定一個較大的積分時間常數(shù)Ti的初值,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)振蕩,之后在反過來,逐漸加大Ti,直至系統(tǒng)振蕩消失。記錄此時的Ti,設定PID的積分時間常數(shù)Ti為當前值的150%~180%。積分時間常數(shù)Ti調(diào)試完成。
 
c.確定積分時間常數(shù)Td
 
積分時間常數(shù)Td一般不用設定,為0即可。若要設定,與確定 PTi的方法相同,取不振蕩時的30%。
 
d.系統(tǒng)空載、帶載聯(lián)調(diào),再對PID參數(shù)進行微調(diào),直至滿足要求
找三個以上PID算法應用實例,結(jié)合實例明確參數(shù)調(diào)試的方法以及參數(shù)的意義,同時給小組成員做介紹
 
一、PID算法:
比例、積分、微分控制,簡稱PID控制,又稱PID調(diào)節(jié);
二、應用環(huán)境:
當被控對象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學模型時,控制理論的其它技術難以采用時,系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗和現(xiàn)場調(diào)試來確定;(由于賽道的參數(shù)事先未知,所以只能根據(jù)實時采集到的賽道數(shù)據(jù)控制小車沿著賽道行進
三、PID算法應用實例
 
四、參數(shù)調(diào)整
 
 
PID控制器參數(shù)選擇的方法很多,例如試湊法、臨界比例度法、擴充臨界比例度法等。但是,對于PID控制而言,參數(shù)的選擇始終是一件非常煩雜的工作,需要經(jīng)過不斷的調(diào)整才能得到較為滿意的控制效果。依據(jù)經(jīng)驗,一般PID參數(shù)確定的步驟如下:
(1)確定比例系數(shù)Kp
確定比例系數(shù)Kp時,首先去掉PID的積分項和微分項,可以令Ti=0、Td=0,使之成為純比例調(diào)節(jié)。輸入設定為系統(tǒng)允許輸出最大值的60%~70%,比例系數(shù)Kp0開始逐漸增大,直至系統(tǒng)出現(xiàn)振蕩;再反過來,從此時的比例系數(shù)Kp逐漸減小,直至系統(tǒng)振蕩消失。記錄此時的比例系數(shù)Kp,設定PID的比例系數(shù)Kp為當前值的60%~70%。
(2)確定積分時間常數(shù)Ti
比例系數(shù)Kp確定之后,設定一個較大的積分時間常數(shù)Ti,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)振蕩,然后再反過來,逐漸增大Ti,直至系統(tǒng)振蕩消失。記錄此時的Ti,設定PID的積分時間常數(shù)Ti為當前值的150%~180%。
(3) 確定微分時間常數(shù)Td
微分時間常數(shù)Td一般不用設定,為0即可,此時PID調(diào)節(jié)轉(zhuǎn)換為PI調(diào)節(jié)。如果需要設定,則與確定Kp的方法相同,取不振蕩時其值的30%。
(4) 系統(tǒng)空載、帶載聯(lián)調(diào)
PID參數(shù)進行微調(diào),直到滿足性能要求。
 
PID代碼
//定義變量
float Kp;                       //PI
調(diào)節(jié)的比例常數(shù)
float Ti;                       //PI
調(diào)節(jié)的積分常數(shù)
float T;                        //
采樣周期
float Ki;
float ek;                       //
偏差e[k]
float ek1;                      //
偏差e[k-1]
float ek2;                      //
偏差e[k-2]
float uk;                       //u[k]
signed int uk1;                  //
u[k]四舍五入取整
signed int adjust;              //
調(diào)節(jié)器輸出調(diào)整量
//變量初始化
    Kp=4;
    Ti=0.005;
    T=0.001;
// Ki=KpT/Ti=0.8
,微分系數(shù)Kd=KpTd/T=0.8,Td=0.0002,根據(jù)實驗調(diào)得的結(jié)果確定這些參數(shù)
    ek=0;
    ek1=0;
    ek2=0;
    uk=0;
    uk1=0;
    adjust=0;
int piadjust(float ek)  //PI調(diào)節(jié)算法
{
    if( gabs(ek)<0.1 )
    {
       adjust=0;
    }
    else
    {    
       uk=Kp*(ek-ek1)+Ki*ek;  //
計算控制增量
       ek1=ek;
      
       uk1=(signed int)uk;
       if(uk>0)
       {
          if(uk-uk1>=0.5)
          {
             uk1=uk1+1;
          }
       }
       if(uk<0)
       {
          if(uk1-uk>=0.5)
          {
             uk1=uk1-1;
          }
       }
       adjust=uk1;   
    }       
   
   
    return adjust;
}
下面是在AD中斷程序中調(diào)用的代碼。
      
      
。。。。。。。。。。。
       else //
退出軟啟動后,PID調(diào)節(jié),20ms調(diào)節(jié)一次
           {
              EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);//
誤差較小PID調(diào)節(jié)穩(wěn)住
              if(EvaRegs.CMPR3>=890)
              {
                 EvaRegs.CMPR3=890; //
限制PWM占空比
              }       
           }
關閉窗口

相關文章

主站蜘蛛池模板: 久久久国产一区二区三区 | 欧美激情综合色综合啪啪五月 | 国产成人精品午夜视频免费 | 欧美亚洲综合久久 | 污片在线免费观看 | 99tv成人影院| 日本久久一区二区三区 | 国产午夜精品一区二区三区嫩草 | 91网站在线看 | 在线一区二区三区 | 色婷婷综合网 | 午夜影院在线观看免费 | 99久久久无码国产精品 | 久久久久久亚洲欧洲 | 亚洲精品9999| 免费一二区 | 亚洲性爰| 欧美福利网站 | 国产99免费 | 狠狠av | 亚洲一区二区三区四区五区午夜 | 国产在线视频三区 | 日韩在线播放第一页 | 久久国产精品久久久久 | 四虎影音 | 丝袜美腿一区二区三区动态图 | 亚洲精品第一 | 麻豆视频在线免费观看 | 伊人久久免费视频 | 一级片在线播放 | 91精品国产综合久久国产大片 | 久久天天躁狠狠躁夜夜躁2014 | 精品国产一区二区三区性色 | 超碰97人人人人人蜜桃 | 国产一区二区三区在线免费 | 色资源站 | 91精品久久久久久久久久小网站 | 伊人春色在线 | 九九在线精品视频 | 欧美aaaaaaaa| 国产精品国产成人国产三级 |