|
COCOFLY教程 ——瘋殼無人機·系列 PID 基礎原理
圖1
一、PID 簡介
PID 控制是自動控制系統中最常用的一種控制手段,它的誕生主要是為了解決自動控制系統的快、穩、準的問題。
PID 控制中的 P 指的是 Proportion(比例),即對輸入的偏差乘以一個系數; I 指的是 Integral(積分),即對輸入偏差進行積分運算;而 D 指的是 Derivative(微分),即對輸入偏差進行微分運算。通過比例、積分、微分結合適當的反饋就可以形成一套穩定的閉環調節系統。如下圖所示為 COCOFLY 的 PID 控制器的結構圖。
圖2
其中期望角度(高度)由遙控器提供,角度環(高度環)以及角速度環(高速度環)由 PID 代碼處理,STM32 輸出四路 PWM 到無人機的電機控制端口, IMU(慣性測量單元)以及飛行姿態提供反饋值。
二、PID 控制原理
PID 控制的過程,其實是不斷糾正偏差的過程,其中的偏差=當前被控對象的反饋值-設定的期望值。
這里舉一個比較簡單又經典的 PID 控制的例子,比如需要控制一個機器人以 PID 的方式向前行走 110 步,然后停下來。此時這個 110 步則是設定的期望值。
如果按照 P 比例控制,也就是控制機器人按照一定的比例走,然后停下。比如比例系數為 108,則走一次就走了 108 步,再走一次的話就超過 110 步了,所以就不走了。從這里可得知 P 比例控制是一種最簡單的控制方式,控制器的輸出與輸入誤差信號成比例關系。但是僅有比例控制時系統輸出存在穩態誤差。比如上面的只能走到 108,或者超過 108 步,無論怎樣都走不到 110。
為了消除穩態誤差,在控制器中必須引入“積分項 I”。積分項對誤差的影響取決于時間的積分,隨著時間的增加,積分項會增大。這樣,即便誤差很小, 積分項也會隨著時間的增加而加大,它推動控制器的輸出增大,從而使穩態誤差進一步減小,直到等于 0。即在“積分項 I”控制中,控制器的輸出與輸入誤差信號成正比關系,且比例+積分(PI)控制器可以使系統在進入穩態后無穩態誤差。
也就是說,如果按照 PI(比例、積分)控制的方式,則是控制機器人按照一定的步伐走到 112 步然后回頭接著走,走到 108 步位置時,然后又回頭向 110
步位置走。在 110 位置處來回晃蕩幾次,最后停在 110 步的位置。
微分項,主要用于預判誤差變化的趨勢從而作出對應的改變。在自動控制系統在克服誤差的調節過程中可能會出現振蕩甚至失穩,原因是存在較大慣性組件(環節)或滯后組件,具有抑制誤差的作用,其變化總是落后于誤差的變化。解決的辦法是使抑制誤差作用的變化“超前”,即在誤差接近于零時,抑制誤差的作用就應該是零。這就是說,在控制器中僅引入“比例 P”項往往是不夠的, 比例項的作用僅是放大誤差的幅值,而目前需要增加的是“微分項”,它能預測誤差變化的趨勢。這樣,具有比例+微分的控制器就能夠提前使抑制誤差的控制作用等于零,甚至為負值,從而避免了被控量的嚴重超調。所以對有較大慣性或滯后的被控對象,比例 P+微分 D(PD)控制器能改善系統在調節過程中的動態特性。
也就是說,如果按照 PD 比例、微分控制的方式,則為控制機器人按照一定的步伐走到一百零幾步后,再慢慢地走向 110 步的位置靠近,如果最后能精確停
在 110 步的位置,就是無靜差控制;如果停在 110 步附近(如 109 步或 111 步位置),就是有靜差控制。由此得知在微分控制 D 中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關系。
前面說到 PID 是為了解決自動控制系統中的快、穩、準的問題的。其中那么他們之間的關系以及對應調節參數是什么呢?如下表所示。
表1
三、PID 代碼結構
在飛控系統中 PID 是極為重要的一環,在 COCOFLY 飛控系統中也多處應用到了 PID 主要集中在 AltCtrl.c、Ctrl.c 中。如下圖所示為高度環 PID 控制源碼。
圖3
如下圖所示為高度速度環 PID 控制源碼。
圖4
如下圖所示為角度環 PID 控制源碼。
圖5
如下圖所示為角速率環 PID 控制源碼。
圖6
更多完整學習資料和對應開源套件,請登陸官網:“瘋殼”
如需定制開發,請通過官網“瘋殼”網頁底部的“聯系我們”進行聯系
文件下載請點擊:
【10】PID基礎原理.pdf
(764.78 KB)
2022-7-22 10:32 上傳
點擊文件名下載附件
下載積分: 積分 -1
|
|