PID控制是一種算法,用于控制輸出,以便將某個過程保持在精確值。一些例子包括:
控制船上的舵的位置以便駛向特定的方向。
控制提供給加熱元件的功率,以保持特定的溫度。
控制汽車的發(fā)動機油門以保持特定的速度(“巡航控制”)。
控制飛機副翼的位置以保持特定的旋轉速度。
控制水處理廠中化學藥品加入水流的速度。
PID有三個變量,即輸入、輸出和設定值。PID算法控制輸出,以使輸入與設定值相匹配。
例如,在控制船舵以駛向特定航向的場景中:
輸入是指南針或GPS航向。
設定點是期望的航向。
輸出是舵角。
輸入和設定點之間的差異稱為誤差,PID算法旨在消除過程中的誤差。為了理解為什么需要PID,讓我們先來看看更簡單的過程控制方法。
棒棒控制
Bang-bang控制是一種數(shù)字形式的控制,輸出要么完全打開(最大值),要么完全關閉(最小值),兩者之間沒有任何東西。當輸出也是數(shù)字時,這種控制似乎更直觀;例如完全打開或關閉的閥門,或者可以打開或關閉的空調。使用空調的例子,輸入將由溫度傳感器提供,并且設定點將是要保持的期望溫度。算法很簡單:
If the measured temperature is above the setpoint then we turn the air-conditioner on, otherwise we switch it off.對于某些應用程序,這可能工作得很好。然而,對于其他人來說,可能會遇到兩個問題中的一個或兩個:
設定點附近的讀數(shù)快速變化。
第一個問題是在設定點附近相對快速波動的讀數(shù)。例如,假設設定值為20 ℃,根據(jù)房間周圍的氣流或溫度傳感器的穩(wěn)定性,讀數(shù)可能在例如20.1℃和20.0℃之間波動;每次溫度讀數(shù)僅比設定值高0.1°C時,空調就會再次打開,一旦讀數(shù)再次達到20.0°C時,空調就會再次關閉。這可能會很快發(fā)生,這既會讓房間里的人感到討厭,也可能會損壞空調。。如果制冷和制熱都可用,我們可以想象一個場景,溫度在19.9°C和20.1°C之間波動,空調和加熱器相對快速地開關——兩者互相干擾,浪費能源。
解決方案是在設定點附近增加一些延遲或緩沖,這稱為滯后。在我們的例子中,2°C的滯后意味著一旦溫度達到20°C并且空調關閉,那么空調不會再次打開,直到溫度再次上升到22°C。如果也有暖氣,那么在溫度降到18°C之前,暖氣不會打開(但是一旦打開,在溫度升到20°C之前不會再次關閉)。
過沖。
可能遇到的第二個問題是超調。指令輸出和輸入測量輸出指令結果之間存在延遲時,通常會出現(xiàn)過沖。以在水處理廠向水流中添加化學物質為例:化學物質需要一段時間才能溶解到水中,因此我們只能在添加化學物質的下游一點點處測量結果,也許是pH值,也就是說,在這個過程中會有一些延遲。比方說,我們開始時pH值有點太低,所以我們打開閥門向水中添加堿,以便使pH值升高一點;這開始起作用,但是當我們在傳感器上讀取pH中性值并關閉閥門時,大量的堿已經(jīng)被添加到上游,傳感器讀數(shù)遠遠超過中性值,我們開始獲得非常高的pH值讀數(shù);現(xiàn)在,系統(tǒng)通過打開閥門向水中添加酸來對高pH讀數(shù)做出反應,以便再次降低pH值——但當這種影響到達傳感器時,我們再次超過中性,讀數(shù)再次變得過低……該過程重復,輸出繼續(xù)在設定點附近擺動——可能比觸發(fā)糾正反應的原始誤差幅度更大。
如果我們看看控制船舵位置或汽車發(fā)動機油門位置的例子,那么同樣更直觀明顯的是,需要一個比bang-bang更好的控制系統(tǒng)——如果只需要一個小的航向修正,我們不想將船舵擺動到最右(右舷)或最左(左舷);或者讓汽車油門在踏板到金屬和完全關閉之間擺動——我們需要介于兩者之間的東西。
比例控制
比例控制(PID中的P)只做它所說的,并且控制輸出與輸入和設定點之間的差值成比例(與誤差成比例)。如果輸入和設定值之間的差異很小,那么我們僅對輸出進行小的調整,如果差異很大,那么我們對輸出進行大的調整。如果船只是稍微偏離了航向,那么我們只是稍微轉動一下方向舵——我們不會把它轉到底。對于某些系統(tǒng)來說,比例控制可能就是所需要的。然而,對于其他系統(tǒng),會遇到下一種問題:
積分
使用比例控制時,幾乎總是會有一定程度的穩(wěn)態(tài)誤差,這意味著系統(tǒng)不會完全達到設定值,因為接近設定值的比例控制量太小,不足以克服影響系統(tǒng)的某些偏差(可能是電流或風)。在下圖中,過程穩(wěn)定在設定值以下一點。
PID的積分(I)部分查看系統(tǒng)偏離設定值多長時間,并提升輸出以克服該偏差。例如,如果汽車上的巡航控制設置為60英里/小時,但僅使用比例控制時,速度停留在57英里/小時(由于空氣或其他阻力),那么PID的“積分”部分將隨著時間的推移增加發(fā)動機功率,以使速度達到60英里/小時的設置。同樣,對于某些控制器來說,PI控制可能就是全部所需。然而,在穩(wěn)定之前,PI本身傾向于在設定點附近至少有一些過沖和振蕩,特別是當設定點和輸入讀數(shù)之間存在大的初始差異時(例如在啟動時或當對設定點進行大的調整時),因為PID的積分部分將在過渡期間累積所有的誤差,并因此變大(比需要的更大),并且沒有任何其他東西來抑制它,那么將再次減小它的唯一事情將是在相反方向上的一些累積誤差。PID的D部分解決了這個問題:
導數(shù)
微分(PID中的D)元件通過根據(jù)其接近設定值的速度來緩和/抑制輸出,從而最小化或消除過沖;如果輸入讀數(shù)非常快地向設定值移動,那么PID的微分部分將促使輸出變緩,以便最小化或消除過沖。在數(shù)學中,曲線的導數(shù)是曲線在特定點的角度或梯度,即變化率,這就是這個術語的含義。在下圖中,紅線代表陡峭的梯度(這將導致PID算法中的大D校正),藍線代表淺梯度(這將導致PID算法中的小D校正)。
調諧
PID算法中的每個元素——比例元素、積分元素和微分元素——都可以調整或加權,使其在算法中產(chǎn)生更大或更小的影響,正確的值因應用而異。PID調節(jié)是一個很深的主題,其全部深度超出了本文的范圍,但是很好地理解P、I和D中每個元素的作用是一個很好的起點。選項包括為特定類型的流程、手動調整和模擬查找一些默認值。
手動調諧主要包括按順序調諧P、I和D元件:
首先,I和D權重設置為零,P權重增加,直到系統(tǒng)開始在設定點附近振蕩。然后,P權重被設置為該值的一半。
接下來,增加I權重,直到任何穩(wěn)態(tài)誤差被足夠快地校正,但是不要太多以至于系統(tǒng)變得不穩(wěn)定。
最后,增加D權重,直到任何過沖都被充分抑制,但沒有抑制到系統(tǒng)響應遲緩甚至變得不穩(wěn)定(尤其是在輸入中有一些噪聲的情況下會發(fā)生這種情況)。
帶PID的數(shù)字輸出控制
如果PID控制的輸出是數(shù)字的,例如繼電器或電磁閥,則可以使用脈寬調制等技術將數(shù)字輸出有效地轉換為模擬輸出。PWM頻率根據(jù)應用來選擇,并且取決于系統(tǒng),可以實施額外的約束,例如僅在占空比高于特定水平時才切換輸出。
這是一個使用PICCOLO微控制器的烤箱PID控制示例,在中模擬變形VSM.
審核編輯:黃飛
-
繼電器
+關注
關注
132文章
5333瀏覽量
148836 -
電磁閥
+關注
關注
14文章
509瀏覽量
31388 -
PID
+關注
關注
35文章
1472瀏覽量
85488 -
脈寬調制
+關注
關注
3文章
218瀏覽量
38306 -
PID控制
+關注
關注
10文章
460瀏覽量
40091
發(fā)布評論請先 登錄
相關推薦
評論