對PID理解的一些困惑

一、認識PID

在學習PID的時候,會猛然接觸到很多概念,導致對PID認識不清。剛學習PID時會一下接觸到PID、數字PID、增量式PID和位置式PID等概念,讓人感覺到PID很複雜,但其實本質上PID的公式就只有一個,其他只是爲了不同場合應用的變式,其本質還是一樣的。

原始PID公式:
u(t)=KP(e(t)+1TIe(t)dt+TDde(t)dt) u(t)=K_P(e(t)+\frac{1}{T_I}\int{e(t)}dt+\frac{T_Dd_{e(t)}}{dt})

二、模擬PID和數字PID

模擬PID公式:
u(t)=KPe(t)+KIe(t)dt+KDde(t)dt u(t) = K_Pe(t) + K_I\int{e(t)}dt + K_D\frac{d_{e(t)}}{dt}
數字PID公式:
u(k)=KPe(k)+KIi=0ke(k)+KD(e(k)e(k1)) u(k)=K_Pe(k)+K_I\sum_{i=0}^{k}e(k)+K_D(e(k)-e(k-1))
可以用微積分的知識來理解上面兩個公式:模擬PID公式類似於求曲邊梯形的面積問題,而數字PID便是將曲邊梯形的面積劃分爲很多段矩形的面積來求和。這樣看來數字PID公式便是對模擬PID的離散化。

模擬PID公式只是在理想條件下的公式,在實際應用中我們只能採用數字PID公式進行計算。雖然有些PID的代碼實踐看似是根據模擬PID公式而來,但其實也是數字PID的應用,只不過dt用來表示時間間隔罷了。

對比上面的公式發現:模擬PID涉及到了時間,而數字PID中不涉及時間?

其實數字PID中也是包含時間的,我們平時在應用PID時都是以固定的時間間隔來計算,因此可以在化簡的過程中將時間常數算進積分系數和微分系數中。

三、增量式PID和位置式PID

網上有很多關於增量式PID和位置式PID的介紹,有一種普遍看法是對於電機應該採用增量式PID,但實際對電機的控制應用(智能小車中)中用的PID算法其實都是位置式PID。對這兩種方式一直沒有深刻的體會,具體的差別還需在實際應用中體驗吧。位置式PID基本能滿足我們的大多數需求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章