在公眾號(hào):小白學(xué)移動(dòng)機(jī)器人,發(fā)送:速度PID,即可獲得本篇文章的STM32工程文件以及相關(guān)資料。
2.3.1 解決的問(wèn)題解決帶編碼器直流電機(jī)的速度閉環(huán)問(wèn)題。
2.3.2 PID理論將偏差的比例、積分、微分,通過(guò)線性組合構(gòu)成控制量,用控制量對(duì)被控對(duì)象進(jìn)行控制,這樣的控制器稱為PID控制器。在連續(xù)空間中,我們通常探討模擬PID的控制原理,如圖所示:
我們這里用電機(jī)速度控制為例,講解PID控制系統(tǒng)。r(t)為設(shè)定電機(jī)速度、y(t)為實(shí)際電機(jī)速度、e(t)=y(t)-r(t)為速度差值作為PID控制器的輸入、u(t)為PID控制器的輸出,作用到被控對(duì)象電機(jī)上。根據(jù)模擬PID控制器,科學(xué)家們也得出了模擬PID控制的公式,如圖所示:
其中Kp、Ti、Td,分別為控制器的比例系數(shù)、積分系數(shù)、微分系數(shù)。該理論用在控制的例子比比皆是。但是模擬PID控制系統(tǒng)是在連續(xù)空間的上描述的,無(wú)法在計(jì)算機(jī)上用代碼實(shí)現(xiàn)。于是就有數(shù)字PID控制理論,將連續(xù)空間的PID控制系統(tǒng)在離散空間上描述。積分變成了求和、微分變成了求斜率,于是就出現(xiàn)數(shù)字PID控制系統(tǒng)的理論公式,如圖所示:
其中Kp、Ti、Td和上面描述的一樣,T為采用周期,ek是本次差值,ek-1上一次的差值,直接通過(guò)模擬PID轉(zhuǎn)化的數(shù)字PID又叫做位置式PID,該方式的PID的輸出直接是控制量,非常不適合經(jīng)常出現(xiàn)異常的系統(tǒng),另外一種方式是增量式PID,每次只輸出一個(gè)正向或者反向的調(diào)節(jié)量,就算出現(xiàn)異常,也不會(huì)產(chǎn)生巨大的影響。具體數(shù)學(xué)公式如下所示:該方法較多的應(yīng)用于生產(chǎn)生活中,本文檔中電機(jī)的速度PID控制當(dāng)然也不例外。
有了上面的理論基礎(chǔ),開始代碼實(shí)現(xiàn)的介紹。首先就是明確增量式PID系統(tǒng)的輸入、輸出、控制對(duì)象。將速度的設(shè)定值和速度的測(cè)得值作為PID控制器的輸入?yún)?shù),PID的輸出參數(shù)為對(duì)PWM的調(diào)節(jié)偏差,控制對(duì)象PWM進(jìn)而驅(qū)動(dòng)電機(jī)達(dá)到設(shè)定速度。以上內(nèi)容確定之后,就是PID控制器的代碼部分了。其實(shí)仔細(xì)看看增量式PID就只有一個(gè)公式,所以使用代碼實(shí)現(xiàn)并不困難。如下所示核心代碼就這一句。
完成上面的代碼,只是完成速度PID的一部分,剩下的是尤為重要的PID參數(shù)整定。該整定方法豐富多樣,最為準(zhǔn)確的是模型計(jì)算,但是對(duì)于我們做機(jī)器人多使用試湊法。雖然需要調(diào)節(jié)一段時(shí)間,但是不需要對(duì)機(jī)器人進(jìn)行建模。試湊法一般按照P、I、D的順序進(jìn)行調(diào)節(jié)。
初始時(shí)刻將Ki和Kd都設(shè)置成0,按照經(jīng)驗(yàn)設(shè)置Kp的初始值,就這樣將系統(tǒng)投入運(yùn)行,由小到大調(diào)節(jié)Kp。求得滿意的曲線之后,若要引入積分作用,將Kp設(shè)置成之前的5/6,然后Ki由小到大開始調(diào)節(jié)。達(dá)到滿意效果之后,若要引入微分作用,將Kd按照經(jīng)驗(yàn)調(diào)節(jié)即可。經(jīng)過(guò)有規(guī)律的試湊,最終達(dá)到一個(gè)我們滿意的就行。
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |