本文將分析《手把手教你看懂並理解Arduino PID控制庫》中:設定值的忽然改變,如何避免輸出突變。ui
首先先看一下上述問題的圖示說明:spa
假設PID控制的輸出的限制是255,若是按照PID經典公式計算,PID控制器不知道其輸出的極限值是255,因爲設定值較大,那麼輸出會一直增加,超過255,達到300/400或者更高。此時,忽然下降設定值到一個較低的位置(比被控量更小),那麼,因爲積分項的做用,輸出會須要必定的時間纔會漸漸過分到極限值如下,而後再慢慢降到所需的設定值。從圖中看,就是綠色線條的Lag,這個 是咱們不但願看到的。.net
有多種手段能夠減少上述問題的影響。blog
最簡單的方式:告訴PID軟件輸出限制是什麼,一旦達到了限制,PID參數將再也不累加(積分),注意這裏不是「生硬」的將輸出限制在極限值,而是到達極限值後,要關閉積分項的繼續累加,不然一旦PID恢復,積分項超限部分仍會進入控制流程,影響輸出。至於微分項,在時間上僅和上一次的被控量值存在關聯,因此影響是微乎其微的。get
從圖中看出:軟件
一旦積分項控制住了,輸出值則會被限制在一個合理的範圍中,就算超限,也不會過大。而被控量在設定值降到合理範圍後,也不會存在時間上的較大滯後。im
NOTE:若有不足之處請告知‘img
下一章節將分析PID開啓和關閉對系統的影響^.^時間
NEXT解決方案
PS:轉載請註明出處:歐陽天華