PID控制器中的PID只是一種偏差調節。注意是偏差。也就是說目標和當前實際之間的差。后面所有的都是針對這個差來進行控制。
另外需要注意三點,1,現實中啟動控制到響應控制,到達到目標,過程中所有東西都有滯后性的。2,執行機構都有最小無法執行的范圍,這個我們可以稱為死區。3,另外到達目標后所有都會過沖的。滯后和過沖的多少取決于控制的東西和執行機構。比如,溫度控制就滯后大,開了爐子半天溫度才起來。。伺服電機控制一般滯后小,要停馬上就停,要動馬上就動。
而過沖的情況是慣性造成的,比如伺服電機雖然滯后小,但是急停車,導致的產品慣性大,就一下沖出去了。
執行機構最小無法執行范圍舉個例子,一個閥門,理論上內部閥芯是沒有阻力,沒有摩擦的,哪怕上施加0.00000001n它就能動,可實際上,由于摩擦之類因素,必須施加1n才能動。這1n就是死區。
注意這三點。
下面再來說PID
pid我這里簡單稱為比例器,積分器和微分器。它們最終都要告訴cpu怎么去輸出控制量,實際上他們都是在欺騙cpu下面具體說說。
p是比例。代表偏差放大的倍數。為什么要放大呢,剛才說了任何控制器都有死區的,加上滯后和過沖。比如目標是0mm位置,死區是1mm,當前實際是一過沖到了0.2mm。。。偏差只有0.2mm。小于死區。cpu只知道偏差是0.2,它只給0.2的控制量。結果控制器動不了。這時候比例器出來了。它對cpu說,偏差不是0.2,是2。比例器把偏差放大了10倍。。這下cpu就滿意了,它按照2的偏差給控制量。實際值就回來了。。
但是,世界就沒有那么完美,一不小心,又過沖了,實際值回過頭了,一下子從0.2回到-0.01了。這下又有偏差-0.01。,這個時候哪怕比例器放大10倍(-0.1)都不夠了。怎么辦?比例器沒辦法,積分器來了,積分器一看,我來出馬,不是偏差0.1么?我每隔1秒告訴cpu偏差放大了。第一個1秒,告訴cpu偏差是0.2,第二個1秒告訴偏差是0.4,第三個1秒告訴偏差是0.9,第四個1秒告訴偏差是2.2。這樣終于大于死區1mm了。cpu開始控制。。這個1秒,就是積分時間。注意,積分告訴cpu的偏差改變不是線性的而是類似上揚曲線的。
微分呢?微分是提前剎車。就好比開車接近目標了。車速還沒降下來,他就來個剎車。但這個剎車不是勻速的,越接近剎車力越大。微分監控的就是這個偏差的變化率。