新聞中心

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

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

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

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

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

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

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

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

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

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

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

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

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

P--比例

I--積分

D--微分

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

P--比例部分

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

I--積分部分.

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

D--微分部分.

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



評論


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

關(guān)閉