前言:
一談到自動控制,立刻想到的是pid,足以說明pid在自動控制中的普適性和重要性。那到底什麼是自動控制?什麼是pid呢?
1 系統
我們在討論自動控制時,首先都要基於某個系統,比如溫度控制/水位控制/無人機系統等等,而系統之間是有區別的,大概可以從以下三個角度看系統:
一階或者高階
時變或者時不變
線性或者非線性
不同的系統採用不同的控制方法,也可以將複雜的系統簡單化,比如將高階系統進行串級、降階,非線性系統轉換為分段線性。這些都是分析系統的方法之一。
2 感性認識pid
pid使用實際值與期望值之間的誤差、誤差的積分、誤差的微分,三者的組合來控制系統的輸出量。本質上是反饋控制,p代表現在,i代表過去,d代表將來。
誤差偏離得多,就加大控制量,增加響應速度
誤差的累積越多,就加大控制量,減少穩態誤差
誤差的變化率為負,就減小控制量,防止超調
三者的係數需要根據實際除錯和經驗選取,是一種無模型的經驗歸納。
pid從現象上來看,總是在抑制誤差,誤差大,我就大,誤差小,我就小。
3 理性認識pid
任何乙個系統,給其輸入就一定會有所響應,但是由於系統本身含有積分、微分、慣性等各種環節的組合,使得輸出就不一定會和輸入一致。那如果知道了系統的準確模型,又根據期望值,其實是可以反推得到輸入量的,在理想情況下,這樣的開環控制可以實現「指哪打哪」。但問題就是準確的模型很難建立,所以就有了閉環控制,也稱反饋控制,有正反饋和負反饋兩種,pid屬於後者。
開環時:
輸入階躍、得到的是階躍的訊號的分量。從頻域的角度看,因為系統也可以看成低通濾波器,階躍訊號的高頻分量(傅利葉變換後)被截止掉,返回到時域時,再進行合成後,訊號便不再是階躍了。
那麼如何讓輸出更接近輸入呢?
當然是提高系統的截止頻率,截止頻率提高了,就可以將輸出逼近輸入,達到一致的跟隨性。
如何提高截止頻率呢?
系統的截止頻率由零極點決定、零極點由傳遞函式決定,所以需要改變系統的傳遞函式,則引入負反饋。
引入負反饋後,系統的截止頻率得到提高,使得輸出能更好的跟隨輸入,這裡更好的跟隨,體現在伯德圖中(幅值衰減、相位滯後情況)。
而pid也屬於負反饋,所以,pid的本質是改變系統的傳遞函式,以改變零極點位置,以改變截止頻率,同時保證相位不那麼滯後,以保證更多的頻率分量通過系統,達到輸出跟隨輸入的目的。
串級PID控制(多閉環PID控制)的理解
網路上很多雙閉環或者三閉環pid控制的講述,其實就是串級pid控制,之前一直沒能理解,更不知道如何應用。現在用伺服電機為例,一起理解一下pid串級控制。伺服電機一般為三個環控制,所謂三環就是3個閉環負反饋pid調節系統。最內的pid環就是電流環,此環完全在伺服驅動器內部進行,通過霍爾裝置檢測驅動器給...
對PID控制的理解
p 比例 i 積分 d 微分 比例控制使反應變快 積分控制使反應滯後 微分控制使反應超前 模糊pd方式控制舵機轉向,反饋控制 分段模糊pid方式控制電機轉速,pwm控制功率 位置型pid include include struct pidpid 專案中獲取到的引數 void pid init fl...
Pid控制演算法 增量型pid演算法的C 實現
上一節中介紹了最簡單的位置型pid的實現手段,這一節主要講解增量式pid的實現方法.實現過程仍然是分為定義變數 初始化變數 實現控制演算法函式 演算法測試四個部分,這裡直接給出 了。pid.h ifndef pid h define pid h typedef struct pidpid class...