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