新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的數(shù)字PID實(shí)現(xiàn)直流電機(jī)調(diào)速(智能車)

基于單片機(jī)的數(shù)字PID實(shí)現(xiàn)直流電機(jī)調(diào)速(智能車)

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
現(xiàn)在做很多的智能車,都需要對(duì)車速進(jìn)行控制.或勻速或變速,在調(diào)速算法中,PID的經(jīng)典永垂不朽.

其實(shí),簡(jiǎn)單的51單片機(jī)尚能輕易的實(shí)現(xiàn)平滑良好的調(diào)速,更不用說性能優(yōu)良的單片機(jī).然而,要做到最好,是需要很高的專業(yè)水平和動(dòng)手能力.但是,工程上能達(dá)到我們的目標(biāo)即可.

本文引用地址:http://butianyuan.cn/article/201611/320366.htm

抱著"夠用就好"的思想,我們來開始我們的調(diào)速旅程:

所謂的PID是肯定基于一個(gè)閉環(huán)系統(tǒng)而言的,什么是閉環(huán)系統(tǒng)呢,我簡(jiǎn)單的介紹一下:

看上面的這個(gè)系統(tǒng),就不是一個(gè)閉環(huán)系統(tǒng),而是一個(gè)開環(huán)系統(tǒng).再看下面的這個(gè)就是閉環(huán)系統(tǒng):

上圖這個(gè)系統(tǒng)就是典型的閉環(huán)系統(tǒng).大家也許看出來了,"開環(huán)"系統(tǒng),就是系統(tǒng)沒有反饋,是個(gè)"打開的環(huán)",而閉環(huán)系統(tǒng),是有反饋的,是一個(gè)完整的環(huán)形.

正是這個(gè)反饋,就可以將當(dāng)前電機(jī)的轉(zhuǎn)速傳遞給系統(tǒng)控制端,如果電機(jī)轉(zhuǎn)速快了,控制器就讓它慢點(diǎn)(比如可以降低電機(jī)兩端的電壓),同樣,如果速度傳感器檢測(cè)到轉(zhuǎn)速低了,就應(yīng)該讓電機(jī)兩端的電壓提高一點(diǎn).就是在這樣的不斷矯正中,電機(jī)的速度會(huì)保持恒定.當(dāng)然,這個(gè)矯正的周期是非常短的,矯正的速度是很快的.

有人說,不就是多了就少點(diǎn),少了就多點(diǎn)嘛,干嘛使用什么玄乎的PID?

對(duì),你說對(duì)了,"多了就少點(diǎn),少了就多點(diǎn)"這本身就是PID里面的一種:P控制--只使用了P算法.

接下來我們就看看到底什么是PID,為什么要使用PID,怎么樣使用PID:

P--比例

I--積分

D--微分

我們來一條一條的講解P,I,D的含義及其意義:

P--比例部分

這個(gè)很好理解.比如說,速度傳感器發(fā)現(xiàn),當(dāng)前速度是1200(每分鐘).而我們?cè)O(shè)定的速度值為1000,那么就差別了200,這時(shí),如果我設(shè)定P為0.1,如果輸入的電壓就應(yīng)該是Uo-0.1x200.看到了沒有,這里的比例的意思就是"倍數(shù)",就是你要把這個(gè)偏差放大多少倍."放大"本身就是一個(gè)比例嘛.知道了這個(gè),你就可以寫一個(gè)PID控制里面的P控制了.很多時(shí)候,不需要I和D控制,單單一個(gè)P控制就足夠了.到了這里你就可以控制電機(jī)的速度了.

I--積分部分.

這個(gè)積分其實(shí)也很好理解.它是一個(gè)積分運(yùn)算.有的時(shí)候偏差不是很大,所以繼續(xù)運(yùn)行下去,會(huì)使系統(tǒng)存在一個(gè)偏差.但是你如果使用I運(yùn)算將這個(gè)偏差累加起來,到了一定大小的時(shí)候就進(jìn)行處理.這樣就能防止系統(tǒng)的誤差累計(jì).其實(shí),在程序中,這個(gè)過程就是對(duì)一個(gè)小偏差的連續(xù)累加罷了.

D--微分部分.

這個(gè)部分也比較好理解.所謂的微分就是對(duì)變量求導(dǎo)唄,意思就是一個(gè)量的變化率唄.所以,微分部分就是能夠?qū)⒆兞孔兓史湃胗?jì)算中.這個(gè)量在編程中其實(shí)就是求上次的偏差和這次的偏差的差罷了.



評(píng)論


技術(shù)專區(qū)

關(guān)閉