產品目錄 / Products
在工程中,如果我們要用單片機做一個溫控系統,其系統組成一般如下:一個采集溫度的ADC,一個輸出溫度的加熱頭以及一個用于運行控制算法的單片機,如果我們要維持溫度為100度,在不加任何控制算法的情況下,我們可以通過簡單的閾值判斷法來控制溫度,一個if判斷語句,當采集到的溫度大于100時,單片機控制加熱頭關閉,當采集的溫度小于100度時,單片機則控制加熱頭開啟,簡單粗暴。但這樣的控制方法,最終所展示出來的溫度曲線是極其不穩定的,他會由于控制器件的靈敏程度、加熱頭的性能等等原因,導致最終的溫度曲線會在目標周圍震蕩,達不到理想的控制效果。
那如何才能維持實際曲線與目標曲線貼合,達到一個穩定的控制效果呢?
這里就引入了PID控制算法的概念,PID是 Proportion Integration Differentiation 的縮寫,實際上他就是一個公式,由比例項(Proportion ),積分項(Integration ),微分項(Differentiation) 三個部分組成,具體形式就是下面的公式:
其中err(t)就是當前值和目標值的誤差,PID的公式就是對這個誤差分別進行比例、積分、微分處理后疊加輸出,因為比例計算、積分計算、微分計算在數學公式上的計算定義不同,所以對應的項的輸出特性和輸入特性也有著不同,具體解釋如下:
比例控制系數,實際上就是先簡單的定義輸入與輸出的線性關系,假如我們輸出控制量的值得范圍在 100-1000,輸入的err誤差范圍卻在0.001-0.1;當誤差為0.1的時候輸出量需要到達到1000,這時我們就需要通過比例系數來構建輸入與輸出的線性關系
上一點我們分析了比例系數的含義,有小伙伴可能會好奇,比例系數加上后的效果其實和閾值判斷原理沒什么區別,確實是這樣,只用上比例系數的效果和閾值判斷沒什么區別,但別忘了,PID后面還有I和D兩項,其中I項的理解我們可以從積分的含義來理解,積分可以理解為在坐標平面上,由曲線、直線以及軸圍成的曲形的面積值,這個曲線就是err(t)的函數,這個積分面積值就是代表過去一段時間的誤差累計值,我們把這個累計值乘以系數進行變換后,疊加到輸出上,就可以一定程度上消除歷史誤差對當前實際曲線的影響,提高系統的穩定性。
微分的數學理解可以理解為當前誤差曲線的斜率,他可以用來預測當前曲線的未來走勢,對微分項的值進行處理后疊加,就可以預測當前值的未來趨勢,提高系統對未來變化反應能力。