版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 計(jì)算機(jī)檢測(cè)與控制技術(shù)X</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題 目: PID對(duì)智能小車(chē)的應(yīng)用</p><p> 姓 名: 呂振</p><p> 班 級(jí): 電信14-1班</p><p> 學(xué) 號(hào): 314071
2、8181</p><p> 摘要:在智能車(chē)比賽過(guò)程中,小車(chē)需要不停的檢測(cè)前方道路信息以及自身的行駛信息,在檢測(cè)過(guò)程中會(huì)有復(fù)雜信息需要采集并多種干擾因素需要抗拒。將檢測(cè)到的道路信息與自身行駛信息相結(jié)合,以確定下一步動(dòng)作,直道就加速,入彎道就減速入彎,由彎入直再加速。在工程實(shí)際中,應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律為比例、積分、微分控制,簡(jiǎn)稱(chēng)PID控制,又稱(chēng)PID調(diào)節(jié)。它以其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工
3、業(yè)控制的主要技術(shù)之一。當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),控制理論的其它技術(shù)難以采用時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來(lái)確定,這時(shí)應(yīng)用PID控制技術(shù)最為方便。即當(dāng)我們不完全了解一個(gè)系統(tǒng)和被控對(duì)象﹐或不能通過(guò)有效的測(cè)量手段來(lái)獲得系統(tǒng)參數(shù)時(shí),最適合用PID控制技術(shù)。PID控制,實(shí)際中也有PI和PD控制。PID控制器就是根據(jù)系統(tǒng)的誤差,利用比例、積分、微分計(jì)算出控制量進(jìn)行控制的。</p>
4、<p> 關(guān)鍵詞:智能車(chē);PID控制;檢測(cè);</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> 本文以通俗的理解,以小車(chē)控制舉例說(shuō)明PID的一些理解。</p><p> 由于外界原因,小車(chē)的實(shí)際速度有時(shí)不穩(wěn)定。其二,要讓小車(chē)以最快的時(shí)間達(dá)達(dá)到既定的目標(biāo)速度(小車(chē)通過(guò)PWM波來(lái)控制小車(chē)的速度)。其三,速度控制系統(tǒng)是閉環(huán),才能滿(mǎn)足整個(gè)系統(tǒng)的穩(wěn)定要求,必竟速度是系統(tǒng)參數(shù)之一。PID控制,速度快,調(diào)節(jié)靈敏,能實(shí)現(xiàn)準(zhǔn)確性,實(shí)時(shí)性,這樣使智能車(chē)在比賽過(guò)程中
8、速度調(diào)整上升了一個(gè)高度。也為智能車(chē)在比賽過(guò)程中獲得更好的名次做成了很大的貢獻(xiàn)。</p><p><b> 1 PID簡(jiǎn)介</b></p><p><b> 1.1</b></p><p> 目前工業(yè)自動(dòng)化水平已經(jīng)成為衡量各行各業(yè)現(xiàn)代化水平的一個(gè)重要標(biāo)志。同時(shí),控制理論的發(fā)展也已經(jīng)經(jīng)歷了古典控制理論,現(xiàn)代控制理論和智能
9、控制理論三個(gè)階段。智能控制的典型實(shí)例是模糊全自動(dòng)洗衣機(jī)等。自動(dòng)控制系統(tǒng)可分為開(kāi)環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)。一個(gè)控制系統(tǒng)包括控制器,傳感器,變送器,執(zhí)行機(jī)構(gòu),輸入輸出接口??刂破鞯妮敵隹诮?jīng)過(guò)輸出接口,執(zhí)行機(jī)構(gòu),加到被控系統(tǒng)上;控制系統(tǒng)的被控量,經(jīng)過(guò)傳感器,變送器,通過(guò)輸入接口送到控制器。</p><p> 開(kāi)環(huán)控制系統(tǒng):開(kāi)環(huán)控制系統(tǒng)(Open-loop control system)是指被控對(duì)象的輸出(被控制量)對(duì)
10、控制器的輸出沒(méi)有影響。在這種控制系統(tǒng)中,不依賴(lài)將被控量反送回來(lái)以形成任何閉環(huán)回路</p><p> 閉環(huán)控制系統(tǒng):(Closed-loop control system)特點(diǎn)是系統(tǒng)被控對(duì)象的輸出會(huì)反送回來(lái)影響控制器的輸出,形成一個(gè)或多個(gè)閉環(huán)。閉環(huán)控制有正反饋和負(fù)反饋。若反饋信號(hào)與系統(tǒng)給定值信號(hào)相反,則稱(chēng)為負(fù)反饋,若極性相同,則稱(chēng)為正反饋。</p><p> 階躍響應(yīng):是指一個(gè)階躍輸入加
11、到系統(tǒng)上時(shí),系統(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—比例放大系數(shù); Ti—積分時(shí)間; Td——微分時(shí)間</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個(gè)采樣時(shí)刻的控制</p><p> Kp 比例放大系數(shù)</p><p>
14、 Ki= 積分放大系數(shù)</p><p> Kd= 微分放大系數(shù)</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的輸出與過(guò)去的所有狀態(tài)有關(guān),計(jì)算時(shí)要對(duì)e(每一次的控制誤差)進(jìn)行累加,這個(gè)計(jì)算量非常大,而明沒(méi)有必要。而且小車(chē)的PID控制器的輸出并不是絕對(duì)數(shù)值,而是一個(gè)△,代表增多少,減多少。換句話(huà)說(shuō),通過(guò)增量PID算法,每次輸出是PWM要增加多少或者減小多少,而不是PWM的實(shí)際值。因此,在小車(chē)控制中我們常用增量式PID控制。</p>
16、<p> 下面均以增量式PID說(shuō)明.打個(gè)比方,如果現(xiàn)在的輸出是1,目標(biāo)輸出是100,那么P的作用是以最快的速度達(dá)到100,把P理解為一個(gè)系數(shù)即可;關(guān)于I,通過(guò)高等數(shù)學(xué)的知識(shí),0的積分才能是一個(gè)常數(shù),I就是使誤差為0而起調(diào)和作用;關(guān)于D,微分是求導(dǎo)數(shù),導(dǎo)數(shù)代表切線(xiàn)是吧,切線(xiàn)的方向就是最快到至高點(diǎn)的方向。這樣理解,最快獲得最優(yōu)解,那么微分就是加快調(diào)節(jié)過(guò)程的作用了。</p><p> △Uk=A*e(
17、k)+B*e(k-1)+C*e(k-2)</p><p> 這里KP是P的值,TD是D的值,1/Ti是I的值,都是常數(shù),哦,還有一個(gè)T,T是采樣周期,也是已知。而A,B,C是由P I D換算來(lái)的,按這個(gè)公式,就可以簡(jiǎn)化計(jì)算量了,因?yàn)?P I D 是常數(shù),那么A B C可以用一個(gè)宏表示。這樣看來(lái),只需要求e(k) e(k-1) e(k-2)就可以知道△Uk的值了,按照△Uk來(lái)調(diào)節(jié)PWM的大小就OK了。</p
18、><p> 圖4 PID調(diào)節(jié)結(jié)果</p><p><b> 2 PID參數(shù)調(diào)試</b></p><p><b> 1.負(fù)反饋 </b></p><p> 自動(dòng)控制理論也被稱(chēng)為負(fù)反饋控制理論。首先檢查系統(tǒng)接線(xiàn),確定系統(tǒng)的反饋為負(fù)反饋。例如電機(jī)調(diào)速系統(tǒng),輸入信號(hào)為正,要求電機(jī)正轉(zhuǎn)時(shí),反饋信號(hào)也為正(
19、PID算法時(shí),誤差=輸入-反饋),同時(shí)電機(jī)轉(zhuǎn)速越高,反饋信號(hào)越大。其余系統(tǒng)同此方法。 </p><p> 2.PID調(diào)試一般原則 </p><p> a.在輸出不振蕩時(shí),增大比例增益P。 </p><p> b.在輸出不振蕩時(shí),減小積分時(shí)間常數(shù)Ti。 </p><p> c.在輸出不振蕩時(shí),增大微分時(shí)間常數(shù)Td。 </p>
20、<p><b> 3.一般步驟 </b></p><p> a.確定比例增益P </p><p> 確定比例增益P 時(shí),首先去掉PID的積分項(xiàng)和微分項(xiàng),一般是令Ti=0、Td=0(具體見(jiàn)PID的參數(shù)設(shè)定說(shuō)明),使PID為純比例調(diào)節(jié)。輸入設(shè)定為系統(tǒng)允許的最大值的60%~70%,由0逐漸加大比例增益P,直至系統(tǒng)出現(xiàn)振蕩;再反過(guò)來(lái),從此時(shí)的比例增益P逐漸
21、減小,直至系統(tǒng)振蕩消失,記錄此時(shí)的比例增益P,設(shè)定PID的比例增益P為當(dāng)前值的60%~70%。比例增益P調(diào)試完成。 </p><p> b.確定積分時(shí)間常數(shù)Ti </p><p> 比例增益P確定后,設(shè)定一個(gè)較大的積分時(shí)間常數(shù)Ti的初值,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)振蕩,之后在反過(guò)來(lái),逐漸加大Ti,直至系統(tǒng)振蕩消失。記錄此時(shí)的Ti,設(shè)定PID的積分時(shí)間常數(shù)Ti為當(dāng)前值的150%~18
22、0%。積分時(shí)間常數(shù)Ti調(diào)試完成。 </p><p> c.確定積分時(shí)間常數(shù)Td </p><p> 積分時(shí)間常數(shù)Td一般不用設(shè)定,為0即可。若要設(shè)定,與確定 P和Ti的方法相同,取不振蕩時(shí)的30%。 </p><p> d.系統(tǒng)空載、帶載聯(lián)調(diào),再對(duì)PID參數(shù)進(jìn)行微調(diào),直至滿(mǎn)足要求</p><p> 3 PID與智能車(chē)控制的聯(lián)系<
23、/p><p> 小車(chē)調(diào)速及轉(zhuǎn)向通過(guò)輸出PWM波得占空比來(lái)控制??隙ú皇蔷€(xiàn)性的,外界因素那么多,沒(méi)人能證明是線(xiàn)性的。如果是線(xiàn)性的,直接用P就可以了。比如在PWM=60%時(shí),速度是2M/S,那么你要它3M/S,就把PWM提高到90%。因?yàn)?0/60=3/2,這樣一來(lái)太完美了。完美是不可能的。那么不是線(xiàn)性的,要怎么怎么控制PWM使速度達(dá)到即定的速度呢?即要快,又要準(zhǔn),又要狠。(即快準(zhǔn)狠)系統(tǒng)這個(gè)速度的調(diào)整過(guò)程就必須通過(guò)某
24、個(gè)算法調(diào)整,一般PID就是這個(gè)所用的算法。可能你會(huì)想到,如果通過(guò)編碼器測(cè)得現(xiàn)在的速度是2.0m/s,要達(dá)到2.3m/s的速度,那么把PWM增大一點(diǎn)不就行了嗎?是的,增大PWM多少呢?必須要通過(guò)算法,因?yàn)镻WM和速度是個(gè)什么關(guān)系,對(duì)于整個(gè)系統(tǒng)來(lái)說(shuō),誰(shuí)也不知道。要一點(diǎn)一點(diǎn)的試,加個(gè)1%,不夠,再加1%還是不夠,那么第三次你還會(huì)加1%嗎?很有可能就加2%了。通過(guò)PID三個(gè)參數(shù)得到一個(gè)表達(dá)式:△PWM=a *△V1+b *△V2+c *△V3,
25、a b c是通過(guò)PID的那個(gè)長(zhǎng)長(zhǎng)的公式展開(kāi),然后約簡(jiǎn)后的數(shù)字,△V1 ,△V2 ,△V3 此前第一次調(diào)整后的速度差 ,第二次調(diào)整后的速度差,第三次依次類(lèi)推。一</p><p> 4 PID小車(chē)控制例程</p><p> //定義PID結(jié)構(gòu)體</p><p> //*************************************************
26、****</p><p> typedef struct PID</p><p><b> {</b></p><p> int SetPoint; //設(shè)定目標(biāo) Desired Value</p><p> double Proportion; //比例常數(shù) Proportional Const</p&g
27、t;<p> double Integral; //積分常數(shù) Integral Const</p><p> double Derivative; //微分常數(shù) 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> //定義相關(guān)宏</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實(shí)體</b></p><p> //*****************************************************</p><p> static
31、PID sPID;</p><p> static PID *sptr = &sPID;</p><p> //*****************************************************</p><p> //PID參數(shù)初始化</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; //比例常數(shù) Proportional Const</p><p> sptr->Integral = I_DATA; //積分常數(shù)Integral Const</p><p> sptr->Derivative = D_DATA; //微分常
34、數(shù) Derivative Const</p><p> sptr->SetPoint =100; </p><p><b> 目標(biāo)是100</b></p><p><b> }</b></p><p> //***************************************
35、**************</p><p> //增量式PID控制設(shè)計(jì)</p><p> //*****************************************************</p><p> int IncPIDCalc(int NextPoint)</p><p><b> {</b&g
36、t;</p><p> int iError, iIncpid; //當(dāng)前誤差</p><p> iError = sptr->SetPoint - NextPoint; //增量計(jì)算</p><p> iIncpid = sptr->Proportion * iError //E[k]項(xiàng)</p><p> - sptr-
37、>Integral * sptr->LastError //E[k-1]項(xiàng)</p><p> + sptr->Derivative * sptr->PrevError; //E[k-2]項(xiàng)</p><p> sptr->PrevError = sptr->LastError; </p><p> sptr->LastE
38、rror = iError; //存儲(chǔ)誤差,用于下次計(jì)算</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結(jié)論</b></p><p> 沒(méi)有一種控制算法比PID調(diào)節(jié)規(guī)律更有效、更方便的了?,F(xiàn)在一些時(shí)髦點(diǎn)的調(diào)節(jié)器基本源自PID。甚至可以這樣說(shuō):PID調(diào)節(jié)器是其它控制調(diào)節(jié)算法的媽。 因?yàn)镻ID解
45、決了自動(dòng)控制理論所要解決的最基本問(wèn)題,既系統(tǒng)的穩(wěn)定性、快速性和準(zhǔn)確性。調(diào)節(jié)PID的參數(shù),可實(shí)現(xiàn)在系統(tǒng)穩(wěn)定的前提下,兼顧系統(tǒng)的帶載能力和抗擾能力,同時(shí),在PID調(diào)節(jié)器中引入積分項(xiàng),系統(tǒng)增加了一個(gè)零積點(diǎn),使之成為一階或一階以上的系統(tǒng),這樣系統(tǒng)階躍響應(yīng)的穩(wěn)態(tài)誤差就為零。由于自動(dòng)控制系統(tǒng)被控對(duì)象的千差萬(wàn)別,PID的參數(shù)也必須隨之變化,以滿(mǎn)足系統(tǒng)的性能要求。它具有原理簡(jiǎn)單,易于實(shí)現(xiàn),適用面廣,控制參數(shù)相互獨(dú)立,參數(shù)的選定比較簡(jiǎn)單等優(yōu)點(diǎn);而且在理論
46、上可以證明,對(duì)于過(guò)程控制的典型對(duì)象──“一階滯后+純滯后”與“二階滯后+純滯后”的控制對(duì)象,其調(diào)節(jié)規(guī)律是連續(xù)系統(tǒng)動(dòng)態(tài)品質(zhì)校正的一種有效方,是一種最優(yōu)控制。</p><p><b> 參考文獻(xiàn)</b></p><p> Freescale Company.MC9S12XS Family Reference Manual, Rev. 1.09,2009.9</p
47、><p> 卓晴,黃開(kāi)勝,邵貝貝.學(xué)做智能車(chē).北京-北京航空航天大學(xué)出版社.2007</p><p> 仇慎謙.PID調(diào)節(jié)規(guī)律和過(guò)程控制南京-江蘇科學(xué)技術(shù)出版社</p><p> 4. 尹怡欣,陶永華.新型PID控制及其應(yīng)用.北京-機(jī)械工業(yè)出版社.1998 </p><p><b> 2017年7月4日</b>&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)控制小車(chē)走迷宮
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)---pid控制器
- 計(jì)算機(jī)控制
- 計(jì)算機(jī)控制課程設(shè)計(jì)報(bào)告---數(shù)字pid控制系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)--pid控制算法的matlab仿真研究
- 計(jì)算機(jī)控制課程設(shè)計(jì)--pid控制算法的matlab仿真研究
- 計(jì)算機(jī)控制課程設(shè)計(jì)---pid控制算法的matlab仿真研究
- 計(jì)算機(jī)控制課程設(shè)計(jì)---pid控制算法的matlab仿真研究
- 計(jì)算機(jī)控制課程設(shè)計(jì)---達(dá)林算法計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)控制裝置
- 計(jì)算機(jī)控制答案
- 計(jì)算機(jī)控制自動(dòng)導(dǎo)向小車(chē)(AGV)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 計(jì)算機(jī)控制課程設(shè)計(jì)
- 計(jì)算機(jī)控制技術(shù)
- 計(jì)算機(jī)控制_課程設(shè)計(jì)-
- 計(jì)算機(jī)控制答案
- 計(jì)算機(jī)控制--懸浮小球設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)--雙容水箱液位的pid控制
- 計(jì)算機(jī)控制課程設(shè)計(jì)--智能路燈控制系統(tǒng)的設(shè)計(jì)
- 計(jì)算機(jī)控制試題匯總
評(píng)論
0/150
提交評(píng)論