網上看到的一篇關于PID通俗易懂的文檔。
很多同學都不清楚 PID 是個什么東西,因為很多不是自動化的學生。他們開口就要資料,要程序。這是明顯的學習方法不對,起碼,首先,你要理解 PID 是個什么東西。
本文以通俗的理解,以小車縱向控制舉例說明 PID 的一些理解。
首先,為什么要做 PID?由于外界原因,小車的實際速度有時不穩定,這是其一,要讓小車以最快的時間達達到既定的目標速度,這是其二。速度控制系統是閉環,才能滿足整個系統的穩定要求,必竟速度是系統參數之一,這是其三.
小車調速肯定不是線性的,外界因素那么多,沒人能證明是線性的。如果是線性的,直接用 P 就可以了。比如在 PWM=60%時,速度是2M/S,那么你要它3M/S,就把 PWM 提高到90%。因為90/60=3/2,這樣一來太完美了。完美是不可能的。
那么不是線性的,要怎么怎么控制 PWM使速度達到即定的速度呢?即要快,又要準,又要狠。(即快準狠)系統這個速度的調整過程就必須通過某個算法調整,一般 PID 就是這個所用的算法。
0.png (119.1 KB, 下載次數: 95)
下載附件
2018-6-1 03:05 上傳
為了避免教科書公式化的說明,本文用口語化和通俗的語言描述。雖然不一定恰當,但意思差不多,就是那個事。如果要徹頭徹尾地弄PID,建議多調試,寫幾個仿真程序。
PID 一般有兩種:位置式 PID 和增量式 PID。在小車里一般用增量式,為什么呢?位置式PID的輸出與過去的所有狀態有關,計算時要對e(每一次的控制誤差)進行累加,這個計算量非常大,而明沒有必要。而且小車的PID 控制器的輸出并不是絕對數值,而是一個△,代表增多少,減多少。換句話說,通過增量PID 算法,每次輸出是 PWM 要增加多少或者減小多少,而不是PWM的實際值。 下面均以增量式 PID 說明。
這里再說一下 P、I、D 三個參數的作用。P=Proportion,比例的意思,I 是Integral,積分,D是 Differential 微分。
打個比方,如果現在的輸出是1,目標輸出是100,那么 P 的作用是以最快的速度達到100,把 P 理解為一個系數即可;而 I 呢?大家學過高數的,0的積分才能是一個常數,I 就是使誤差為0而起調和作用;D 呢?大家都知道微分是求導數,導數代表切線是吧,切線的方向就是最快到至高點的方向。這樣理解,最快獲得最優解,那么微分就是加快調節過程的作用了。
公式本來需要推導的,我就不來這一套了。直接貼出來:
0.png (81.9 KB, 下載次數: 79)
下載附件
2018-6-1 03:06 上傳
來的,按這個公式,就可以簡化計算量了,因為 P I D是常數,那么 A B C 可以用一個宏表示。這樣看來,只需要求 e(k) e(k-1) e(k-2)就可以知道△Uk 的值了,按照△Uk 來調節 PWM 的大小就OK 了。PID 三個參數的確定有很多方法,不在本文討論范圍內。采樣周期也是有據可依的,不能太大,也不能太小。
........................
........................
PID 實際編程的過程的,要注意的東西還是有幾點的。PID 這東西可以做得很深。
1 PID 的診定。湊試法,臨界比例法,經驗法。
2 T 的確定,采樣周期應遠小于過程的擾動信號的周期,在小車程序中一般是 ms 級別。
3 目標速度何時賦值問題,如何更新新的目標速度?這個問題一般的人都乎略了。目標速度
肯定不是個恒定的,那么何時改變目標速度呢?
4 改變了目標速度,那么 e(k) e(k-1) e(k-2)怎么改變呢?是賦 0 還是要怎么變?
5 是不是PID 要一直開著?
6 error 為多少時就可以當速度已達到目標?
7 PID 的優先級怎么處理,如果和圖像采集有沖突怎么辦?
8 PID 的輸入是速度,輸出是 PWM,按理說 PWM 產生速度,但二者不是同一個東西,有
沒有問題?
9 PID 計算如何優化其速度?指針,匯編,移位?都可以試!
完整的pdf格式文檔51黑下載地址(共5頁,帶源程序):
PID通俗易懂.pdf
(249.29 KB, 下載次數: 43)
2018-5-31 17:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|