現在做很多的智能車(chē),都需要對車(chē)速進(jìn)行控制.或勻速或變速,在調速算法中,PID的經(jīng)典永垂不朽. 其實(shí),簡(jiǎn)單的51單片機尚能輕易的實(shí)現平滑良好的調速,更不用說(shuō)性能優(yōu)良的單片機.然而,要做到最好,是需要很高的專(zhuān)業(yè)水平和動(dòng)手能力.但是,工程上能達到我們的目標即可.
本文引用地址:http://dyxdggzs.com/article/201611/320366.htm 抱著(zhù)"夠用就好"的思想,我們來(lái)開(kāi)始我們的調速旅程:
所謂的PID是肯定基于一個(gè)閉環(huán)系統而言的,什么是閉環(huán)系統呢,我簡(jiǎn)單的介紹一下:

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

上圖這個(gè)系統就是典型的閉環(huán)系統.大家也許看出來(lái)了,"開(kāi)環(huán)"系統,就是系統沒(méi)有反饋,是個(gè)"打開(kāi)的環(huán)",而閉環(huán)系統,是有反饋的,是一個(gè)完整的環(huán)形.
正是這個(gè)反饋,就可以將當前電機的轉速傳遞給系統控制端,如果電機轉速快了,控制器就讓它慢點(diǎn)(比如可以降低電機兩端的電壓),同樣,如果速度傳感器檢測到轉速低了,就應該讓電機兩端的電壓提高一點(diǎn).就是在這樣的不斷矯正中,電機的速度會(huì )保持恒定.當然,這個(gè)矯正的周期是非常短的,矯正的速度是很快的.
有人說(shuō),不就是多了就少點(diǎn),少了就多點(diǎn)嘛,干嘛使用什么玄乎的PID?
對,你說(shuō)對了,"多了就少點(diǎn),少了就多點(diǎn)"這本身就是PID里面的一種:P控制--只使用了P算法.
接下來(lái)我們就看看到底什么是PID,為什么要使用PID,怎么樣使用PID:
P--比例
I--積分
D--微分
我們來(lái)一條一條的講解P,I,D的含義及其意義:
P--比例部分
這個(gè)很好理解.比如說(shuō),速度傳感器發(fā)現,當前速度是1200(每分鐘).而我們設定的速度值為1000,那么就差別了200,這時(shí),如果我設定P為0.1,如果輸入的電壓就應該是Uo-0.1x200.看到了沒(méi)有,這里的比例的意思就是"倍數",就是你要把這個(gè)偏差放大多少倍."放大"本身就是一個(gè)比例嘛.知道了這個(gè),你就可以寫(xiě)一個(gè)PID控制里面的P控制了.很多時(shí)候,不需要I和D控制,單單一個(gè)P控制就足夠了.到了這里你就可以控制電機的速度了.
I--積分部分.
這個(gè)積分其實(shí)也很好理解.它是一個(gè)積分運算.有的時(shí)候偏差不是很大,所以繼續運行下去,會(huì )使系統存在一個(gè)偏差.但是你如果使用I運算將這個(gè)偏差累加起來(lái),到了一定大小的時(shí)候就進(jìn)行處理.這樣就能防止系統的誤差累計.其實(shí),在程序中,這個(gè)過(guò)程就是對一個(gè)小偏差的連續累加罷了.
D--微分部分.
這個(gè)部分也比較好理解.所謂的微分就是對變量求導唄,意思就是一個(gè)量的變化率唄.所以,微分部分就是能夠將變量變化率放入計算中.這個(gè)量在編程中其實(shí)就是求上次的偏差和這次的偏差的差罷了.
評論