PID學習記錄

2021-10-10 05:21:41 字數 2100 閱讀 4171

pid演算法是個很經典的東西,做平衡小車,飛行器都會有所涉及到,但對於剛剛開始學習pid演算法的我來說簡直是一種折磨和一道難以跨過的坎。因此我把我目前所理解到的pid來好好講解一下,也用來做一次知識鞏固

簡介:pid全名為:比例積分微分控制,是用演算法進行機械控制的一種,也是目前被廣泛應用於工業過程控制。pid的原理簡單的說,就是根據使用者給定值和實際輸出值構成控制偏差,將偏差按比例、積分和微分通過線性組合構成控制量,對被控物件進行控制。

1.控制規律:

數字式pid分為位置式pid增量式pid控制演算法。位置式pid和增量式pid的區別是輸出不同、是否有積分部件、是否有記憶功能。在小車裡一般用增量式。位置式pid的輸出與過去的所有狀態有關,計算時要對e進行累加。而且小車的pid控制器的輸出並不是絕對數值,而是乙個△,代表增多少,減多少。換句話說,通過增量pid演算法,每次輸出是pwm要增加多少或者減小多少,而不是pwm的實際值。

pid控制器是一種線性控制器,它根據給定值r(t)與實際輸出值c(t)構成偏差:e(t)=r(t)-c(t)。將偏差的比例§、積分(i)和微分(d)通過線性組合構成控制量,對受控物件進行控制。其控制規律為:

p:proportion(比例),就是輸入偏差乘以乙個常數。

i :integral(積分),就是對輸入偏差進行積分運算。

d:derivative(微分),對輸入偏差進行微分運算。

注:輸入偏差=控制物件目前的值-目標值。比如說我要把水位控制在15公尺,但是現在我刻度上讀出水位為20公尺。則這個15公尺就是」目標值「,20公尺就是「控制物件目前的值」。然後來看一下,這三個元素在pid演算法中的作用。p:如果現在的輸出是1,目標輸出是100,那麼p的作用是以最快的速度達到100,把p理解為乙個係數即可;d呢?大家都知道微分是求導數,導數代表切線,切線的方向就是最快到至高點的方向,那麼微分就是加快調節過程的作用了。而i呢?i就是使誤差為0而起調和作用,一般在實際中會有各種因數導致輸入值和輸出值不相等的情況,所以通過對所有誤差進行累計求積分,積分能在比例的基礎上消除餘差。

綜上所述,比例環節:即時成比例地反應控制系統的偏差訊號e(t),偏差一旦產生,控制器立即產生控制作用以減小誤差。當偏差e=0時,控制作用也為0。控制作用的強弱取決於比例係數,比例係數越大,控制作用越強,控制過程的靜態偏差也就越小;但是越大,也約容易產生振盪,破壞系統穩定性。所以比例係數選擇必須恰當,才能過渡時間少,靜差小而穩定的效果。因此,比例控制是基於偏差進行調節的,即有差調節。積分環節:能對誤差進行記憶,主要用於消除靜差,提高系統的無差度,積分作用的強弱取決於積分時間常數ti,ti越大,積分作用越弱,反之則越強。微分環節:阻止偏差的變化,根據偏差變化趨勢進行控制。能反映偏差訊號的變化趨勢(變化速率),並能在偏差訊號值變得太大之前,在系統中引入乙個有效的早期修正訊號,從而加快系統的動作速度,減小調節時間。

2.pid引數的設定:

增大比例係數p將加快系統的響應,它的作用於輸出值較快,但不能很好穩定在乙個理想的數值,不良的結果是雖較能有效的克服擾動的影響,但有餘差出現,過大的比例係數會使系統有比較大的超調,並產生振盪,使穩定性變壞。積分能在比例的基礎上消除餘差,它能對穩定後有累積誤差的系統進行誤差修整,減小穩態誤差。微分具有超前作用,對於具有容量滯後的控制通道,引入微分參與控制,在微分項設定得當的情況下,對於提高系統的動態效能指標,有著顯著效果,它可以使系統超調量減小,穩定性增加,動態誤差減小。在調整的時候,你所要做的任務就是在系統結構允許的情況下,在這三個引數之間權衡調整,達到最佳控制效果,實現穩快準的控制特點。

3.在**中簡單實現pid

輸出=(p*偏差)+(i*偏差和)+(d*(偏差-上偏差))

double pid()

{uchar8 ukp_coe; //比例係數

uchar8 uki_coe; //積分常數

uchar8 ukd_coe; //微分常數

static double 偏差和;

static double 上偏差;

偏差=目標值-實際值;

偏差和=偏差和+偏差;

上偏差=偏差;

return (ukp_coe*偏差)+(uki_coe*偏差和)+(ukd_coe*(偏差-上偏差));

PID(程式學習)

經過幾天對pid的學習,以及各種的查閱資料,今天自己動手寫了乙個閉環小車的pid調速程式。網上關於pid原理的資料文獻都有很多,這裡我就不多說了,直接給出自己寫的程式,希望對那些看了很多資料不敢動手寫程式的學者有一些幫助。我自己也是乙個pid的初學者,寫這篇部落格也是為了加深自己的理解,寫的不好的地...

PID學習隨筆

pid有兩種,一種是位置式的pid,一種是增量式的pid 位置式的pid適合沒有記憶功能的控制器件,如繼電器 u k kp e k ki kd e k e k 1 增量式pid適合有記憶功能的控制器件,如步進電機 u k u k u k 1 pid p比例 i積分 d微分 p的作用是放大誤差,只關注...

模糊PID學習筆記

傳統pid本質上時微分方程,p通過誤差調節訊號變化幅度,i加強p,也就是誤差在系統中的作用,以增加精度,d通過上一次的誤差差分得到訊號的變化趨勢,並抑制該趨勢,該方法對非線性系統有很好的控制效果。其公式可為 控制器輸出 以上例子為四軸飛行器串級pid,串級pid個人理解上的本質是在單級pid上加強控...