計算機控制設計pid智能小車_第1頁
已閱讀1頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  計算機檢測與控制技術X</p><p><b>  課程設計報告</b></p><p>  題 目: PID對智能小車的應用</p><p>  姓 名: 呂振</p><p>  班 級: 電信14-1班</p><p>  學 號: 314071

2、8181</p><p>  摘要:在智能車比賽過程中,小車需要不停的檢測前方道路信息以及自身的行駛信息,在檢測過程中會有復雜信息需要采集并多種干擾因素需要抗拒。將檢測到的道路信息與自身行駛信息相結合,以確定下一步動作,直道就加速,入彎道就減速入彎,由彎入直再加速。在工程實際中,應用最為廣泛的調節(jié)器控制規(guī)律為比例、積分、微分控制,簡稱PID控制,又稱PID調節(jié)。它以其結構簡單、穩(wěn)定性好、工作可靠、調整方便而成為工

3、業(yè)控制的主要技術之一。當被控對象的結構和參數不能完全掌握,或得不到精確的數學模型時,控制理論的其它技術難以采用時,系統(tǒng)控制器的結構和參數必須依靠經驗和現場調試來確定,這時應用PID控制技術最為方便。即當我們不完全了解一個系統(tǒng)和被控對象﹐或不能通過有效的測量手段來獲得系統(tǒng)參數時,最適合用PID控制技術。PID控制,實際中也有PI和PD控制。PID控制器就是根據系統(tǒng)的誤差,利用比例、積分、微分計算出控制量進行控制的。</p>

4、<p>  關鍵詞:智能車;PID控制;檢測;</p><p>  PID vague control and its application in smartcar</p><p>  Abstract: In a Smartcar game, there is a need for cars to detect the information of the front ro

5、ad and the car itself. There will exist so much interference during the detection which are required to be resisted. Combining the two types of information, we can decide the next action: speed up when in straight road,

6、speed down when go into a tortuous path and speed up again when it goes into the straight path. In an engineering project, the most widely used control principles are proportion, integ</p><p><b>  引言&l

7、t;/b></p><p>  本文以通俗的理解,以小車控制舉例說明PID的一些理解。</p><p>  由于外界原因,小車的實際速度有時不穩(wěn)定。其二,要讓小車以最快的時間達達到既定的目標速度(小車通過PWM波來控制小車的速度)。其三,速度控制系統(tǒng)是閉環(huán),才能滿足整個系統(tǒng)的穩(wěn)定要求,必竟速度是系統(tǒng)參數之一。PID控制,速度快,調節(jié)靈敏,能實現準確性,實時性,這樣使智能車在比賽過程中

8、速度調整上升了一個高度。也為智能車在比賽過程中獲得更好的名次做成了很大的貢獻。</p><p><b>  1 PID簡介</b></p><p><b>  1.1</b></p><p>  目前工業(yè)自動化水平已經成為衡量各行各業(yè)現代化水平的一個重要標志。同時,控制理論的發(fā)展也已經經歷了古典控制理論,現代控制理論和智能

9、控制理論三個階段。智能控制的典型實例是模糊全自動洗衣機等。自動控制系統(tǒng)可分為開環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)。一個控制系統(tǒng)包括控制器,傳感器,變送器,執(zhí)行機構,輸入輸出接口??刂破鞯妮敵隹诮涍^輸出接口,執(zhí)行機構,加到被控系統(tǒng)上;控制系統(tǒng)的被控量,經過傳感器,變送器,通過輸入接口送到控制器。</p><p>  開環(huán)控制系統(tǒng):開環(huán)控制系統(tǒng)(Open-loop control system)是指被控對象的輸出(被控制量)對

10、控制器的輸出沒有影響。在這種控制系統(tǒng)中,不依賴將被控量反送回來以形成任何閉環(huán)回路</p><p>  閉環(huán)控制系統(tǒng):(Closed-loop control system)特點是系統(tǒng)被控對象的輸出會反送回來影響控制器的輸出,形成一個或多個閉環(huán)。閉環(huán)控制有正反饋和負反饋。若反饋信號與系統(tǒng)給定值信號相反,則稱為負反饋,若極性相同,則稱為正反饋。</p><p>  階躍響應:是指一個階躍輸入加

11、到系統(tǒng)上時,系統(tǒng)的輸出。</p><p>  圖1 PID控制流程</p><p>  如圖所示,其中,D(S)為控制器,完成PID控制規(guī)律。</p><p><b>  比例(P)控制器</b></p><p><b>  U(t)=e(t)</b></p><p>  比

12、例+積分(PI)控制器</p><p>  U(t)= [e(t)+]</p><p>  比例+積分+微分(PID)控制器</p><p>  U(t)= [e(t)++]</p><p>  以上各式中,Kp—比例放大系數; Ti—積分時間; Td——微分時間</p><p>  1.2 PID一般有兩種:位置式P

13、ID和增量式PID</p><p><b>  圖2 位置式PID</b></p><p>  PID算法表示為 U(k)=Kpe(k)+KiKd[e(k)-e(k-1)]+Uo</p><p>  式中U(k) 第K個采樣時刻的控制</p><p>  Kp 比例放大系數</p><p> 

14、 Ki= 積分放大系數</p><p>  Kd= 微分放大系數</p><p>  Ts 采樣周期</p><p><b>  `</b></p><p>  圖3 增量PID算法</p><p>  增量式PID算法為△Uk=U(k)-U(k-1)</p><

15、p>  =Kp{e(k)-e(k-1)+}</p><p>  位置式PID的輸出與過去的所有狀態(tài)有關,計算時要對e(每一次的控制誤差)進行累加,這個計算量非常大,而明沒有必要。而且小車的PID控制器的輸出并不是絕對數值,而是一個△,代表增多少,減多少。換句話說,通過增量PID算法,每次輸出是PWM要增加多少或者減小多少,而不是PWM的實際值。因此,在小車控制中我們常用增量式PID控制。</p>

16、<p>  下面均以增量式PID說明.打個比方,如果現在的輸出是1,目標輸出是100,那么P的作用是以最快的速度達到100,把P理解為一個系數即可;關于I,通過高等數學的知識,0的積分才能是一個常數,I就是使誤差為0而起調和作用;關于D,微分是求導數,導數代表切線是吧,切線的方向就是最快到至高點的方向。這樣理解,最快獲得最優(yōu)解,那么微分就是加快調節(jié)過程的作用了。</p><p>  △Uk=A*e(

17、k)+B*e(k-1)+C*e(k-2)</p><p>  這里KP是P的值,TD是D的值,1/Ti是I的值,都是常數,哦,還有一個T,T是采樣周期,也是已知。而A,B,C是由P I D換算來的,按這個公式,就可以簡化計算量了,因為 P I D 是常數,那么A B C可以用一個宏表示。這樣看來,只需要求e(k) e(k-1) e(k-2)就可以知道△Uk的值了,按照△Uk來調節(jié)PWM的大小就OK了。</p

18、><p>  圖4 PID調節(jié)結果</p><p><b>  2 PID參數調試</b></p><p><b>  1.負反饋 </b></p><p>  自動控制理論也被稱為負反饋控制理論。首先檢查系統(tǒng)接線,確定系統(tǒng)的反饋為負反饋。例如電機調速系統(tǒng),輸入信號為正,要求電機正轉時,反饋信號也為正(

19、PID算法時,誤差=輸入-反饋),同時電機轉速越高,反饋信號越大。其余系統(tǒng)同此方法。 </p><p>  2.PID調試一般原則 </p><p>  a.在輸出不振蕩時,增大比例增益P。 </p><p>  b.在輸出不振蕩時,減小積分時間常數Ti。 </p><p>  c.在輸出不振蕩時,增大微分時間常數Td。 </p>

20、<p><b>  3.一般步驟 </b></p><p>  a.確定比例增益P </p><p>  確定比例增益P 時,首先去掉PID的積分項和微分項,一般是令Ti=0、Td=0(具體見PID的參數設定說明),使PID為純比例調節(jié)。輸入設定為系統(tǒng)允許的最大值的60%~70%,由0逐漸加大比例增益P,直至系統(tǒng)出現振蕩;再反過來,從此時的比例增益P逐漸

21、減小,直至系統(tǒng)振蕩消失,記錄此時的比例增益P,設定PID的比例增益P為當前值的60%~70%。比例增益P調試完成。 </p><p>  b.確定積分時間常數Ti </p><p>  比例增益P確定后,設定一個較大的積分時間常數Ti的初值,然后逐漸減小Ti,直至系統(tǒng)出現振蕩,之后在反過來,逐漸加大Ti,直至系統(tǒng)振蕩消失。記錄此時的Ti,設定PID的積分時間常數Ti為當前值的150%~18

22、0%。積分時間常數Ti調試完成。 </p><p>  c.確定積分時間常數Td </p><p>  積分時間常數Td一般不用設定,為0即可。若要設定,與確定 P和Ti的方法相同,取不振蕩時的30%。 </p><p>  d.系統(tǒng)空載、帶載聯調,再對PID參數進行微調,直至滿足要求</p><p>  3 PID與智能車控制的聯系<

23、/p><p>  小車調速及轉向通過輸出PWM波得占空比來控制。肯定不是線性的,外界因素那么多,沒人能證明是線性的。如果是線性的,直接用P就可以了。比如在PWM=60%時,速度是2M/S,那么你要它3M/S,就把PWM提高到90%。因為90/60=3/2,這樣一來太完美了。完美是不可能的。那么不是線性的,要怎么怎么控制PWM使速度達到即定的速度呢?即要快,又要準,又要狠。(即快準狠)系統(tǒng)這個速度的調整過程就必須通過某

24、個算法調整,一般PID就是這個所用的算法。可能你會想到,如果通過編碼器測得現在的速度是2.0m/s,要達到2.3m/s的速度,那么把PWM增大一點不就行了嗎?是的,增大PWM多少呢?必須要通過算法,因為PWM和速度是個什么關系,對于整個系統(tǒng)來說,誰也不知道。要一點一點的試,加個1%,不夠,再加1%還是不夠,那么第三次你還會加1%嗎?很有可能就加2%了。通過PID三個參數得到一個表達式:△PWM=a *△V1+b *△V2+c *△V3,

25、a b c是通過PID的那個長長的公式展開,然后約簡后的數字,△V1 ,△V2 ,△V3 此前第一次調整后的速度差 ,第二次調整后的速度差,第三次依次類推。一</p><p>  4 PID小車控制例程</p><p>  //定義PID結構體</p><p>  //*************************************************

26、****</p><p>  typedef struct PID</p><p><b>  {</b></p><p>  int SetPoint; //設定目標 Desired Value</p><p>  double Proportion; //比例常數 Proportional Const</p&g

27、t;<p>  double Integral; //積分常數 Integral Const</p><p>  double Derivative; //微分常數 Derivative Const</p><p>  int LastError; //Error[-1]</p><p>  int PrevError; //Error[-2]<

28、/p><p><b>  } PID;</b></p><p>  //*****************************************************</p><p><b>  //定義相關宏</b></p><p>  //************************

29、*****************************</p><p>  #define P_DATA 100</p><p>  #define I_DATA 0.6</p><p>  #define D_DATA 1</p><p>  #define HAVE_NEW_VELOCITY 0X01</p><p

30、>  //*****************************************************</p><p><b>  //聲明PID實體</b></p><p>  //*****************************************************</p><p>  static

31、PID sPID;</p><p>  static PID *sptr = &sPID;</p><p>  //*****************************************************</p><p>  //PID參數初始化</p><p>  //***********************

32、******************************</p><p>  void IncPIDInit(void)</p><p><b>  {</b></p><p>  sptr->LastError = 0; //Error[-1]</p><p>  sptr->PrevError = 0

33、; //Error[-2]</p><p>  sptr->Proportion = P_DATA; //比例常數 Proportional Const</p><p>  sptr->Integral = I_DATA; //積分常數Integral Const</p><p>  sptr->Derivative = D_DATA; //微分常

34、數 Derivative Const</p><p>  sptr->SetPoint =100; </p><p><b>  目標是100</b></p><p><b>  }</b></p><p>  //***************************************

35、**************</p><p>  //增量式PID控制設計</p><p>  //*****************************************************</p><p>  int IncPIDCalc(int NextPoint)</p><p><b>  {</b&g

36、t;</p><p>  int iError, iIncpid; //當前誤差</p><p>  iError = sptr->SetPoint - NextPoint; //增量計算</p><p>  iIncpid = sptr->Proportion * iError //E[k]項</p><p>  - sptr-

37、>Integral * sptr->LastError //E[k-1]項</p><p>  + sptr->Derivative * sptr->PrevError; //E[k-2]項</p><p>  sptr->PrevError = sptr->LastError; </p><p>  sptr->LastE

38、rror = iError; //存儲誤差,用于下次計算</p><p>  return(iIncpid); //返回增量值</p><p><b>  }</b></p><p>  Int g_CurrentVelocity;</p><p>  Int g_Flag;</p><p&g

39、t;  void main(void)</p><p><b>  {</b></p><p>  DisableInterrupt</p><p>  InitMCu();</p><p>  IncPIDInit();</p><p>  g_CurrentVelocity=0; //全局

40、變量也初始化</p><p>  g_Flag=0; //全局變量也初始化</p><p>  EnableInterrupt;</p><p><b>  While(1)</b></p><p><b>  {</b></p><p>  if (

41、g_Flag& HAVE_NEW_VELOCITY)</p><p><b>  {</b></p><p>  PWMOUT+= IncPIDCalc(CurrentVelocity);</p><p>  g_Flag&=~ HAVE_NEW_VELOCITY;</p><p><b>  

42、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //****************************************</p><p><b>  //采樣周期T</b></p>

43、;<p>  //****************************************</p><p>  Interrrupt TIME void</p><p><b>  {</b></p><p>  CurrentVelocity =GetCurrentVelocity;</p><p&g

44、t;  g_Flag|= HAVE_NEW_VELOCITY;</p><p><b>  }</b></p><p><b>  5結論</b></p><p>  沒有一種控制算法比PID調節(jié)規(guī)律更有效、更方便的了?,F在一些時髦點的調節(jié)器基本源自PID。甚至可以這樣說:PID調節(jié)器是其它控制調節(jié)算法的媽。 因為PID解

45、決了自動控制理論所要解決的最基本問題,既系統(tǒng)的穩(wěn)定性、快速性和準確性。調節(jié)PID的參數,可實現在系統(tǒng)穩(wěn)定的前提下,兼顧系統(tǒng)的帶載能力和抗擾能力,同時,在PID調節(jié)器中引入積分項,系統(tǒng)增加了一個零積點,使之成為一階或一階以上的系統(tǒng),這樣系統(tǒng)階躍響應的穩(wěn)態(tài)誤差就為零。由于自動控制系統(tǒng)被控對象的千差萬別,PID的參數也必須隨之變化,以滿足系統(tǒng)的性能要求。它具有原理簡單,易于實現,適用面廣,控制參數相互獨立,參數的選定比較簡單等優(yōu)點;而且在理論

46、上可以證明,對于過程控制的典型對象──“一階滯后+純滯后”與“二階滯后+純滯后”的控制對象,其調節(jié)規(guī)律是連續(xù)系統(tǒng)動態(tài)品質校正的一種有效方,是一種最優(yōu)控制。</p><p><b>  參考文獻</b></p><p>  Freescale Company.MC9S12XS Family Reference Manual, Rev. 1.09,2009.9</p

47、><p>  卓晴,黃開勝,邵貝貝.學做智能車.北京-北京航空航天大學出版社.2007</p><p>  仇慎謙.PID調節(jié)規(guī)律和過程控制南京-江蘇科學技術出版社</p><p>  4. 尹怡欣,陶永華.新型PID控制及其應用.北京-機械工業(yè)出版社.1998 </p><p><b>  2017年7月4日</b>&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論