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