現(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ū)⒆兞孔兓史湃胗嬎阒?這個量在編程中其實就是求上次的偏差和這次的偏差的差罷了.
評論