介紹
PID控制是一種用于控制輸出的算法,以便將某些過程保持在精確的值。下面是一些應(yīng)用實(shí)例:
(1)控制船上的方向舵位置以轉(zhuǎn)向特定航向。
(2)控制提供給加熱元件的功率以保持特定溫度。
(3)控制汽車中的發(fā)動(dòng)機(jī)油門以保持特定速度(“巡航控制”)。
(4)控制飛機(jī)上副翼的位置以保持特定的轉(zhuǎn)彎率。
(5)控制水處理廠中添加到水流中的化學(xué)品的速率。
PID有三個(gè)變量,即輸入,輸出和設(shè)定值。PID算法控制輸出,以使輸入與設(shè)定值匹配。例如,在控制船舶方向舵以轉(zhuǎn)向特定航向的場(chǎng)景中:
a.輸入是指南針或 GPS 航向。
b.設(shè)定值是所需的航向。
c.輸出是方向舵角。
輸入和設(shè)定值之間的差異稱為誤差,PID算法旨在消除這個(gè)過程中的誤差。為了理解為什么需要PID,讓我們先來了解一些更簡(jiǎn)單的過程控制方法。
Bang-Bang控制
Bang-Bang控制是一種數(shù)字控制形式,輸出要么完全打開(最大),要么完全關(guān)閉(最?。?,中間沒有任何變化。當(dāng)輸出也是數(shù)字的時(shí)候,這種控制似乎更直觀;比如一個(gè)完全打開或關(guān)閉的閥門,或者一個(gè)可以打開或關(guān)閉的空調(diào)器。以空調(diào)為例,輸入是由溫度傳感器提供的,設(shè)定值是需要保持的溫度。該算法很簡(jiǎn)單:
如果測(cè)得的溫度高于設(shè)定值,則打開空調(diào),否則將其關(guān)閉。
對(duì)于某些應(yīng)用來說,這可能工作正常。但是,對(duì)于其他應(yīng)用,可能會(huì)遇到問題:
(1)讀數(shù)快速變化問題
第一個(gè)問題是圍繞設(shè)定點(diǎn)的讀數(shù)相對(duì)快速波動(dòng)。例如,想象一下,設(shè)定點(diǎn)是20°C。根據(jù)房間周圍的氣流,或溫度傳感器的穩(wěn)定性,讀數(shù)可能在例如20.1°C和20.0°C之間波動(dòng);每次溫度讀數(shù)僅比設(shè)定值高0.1°C時(shí),空調(diào)就會(huì)再次開啟,而一旦讀數(shù)再次達(dá)到20.0°C,它就會(huì)再次關(guān)閉。這有可能發(fā)生得非???,這對(duì)房間里的人來說是很煩惱的,而且可能對(duì)空調(diào)器造成損害。. 如果同時(shí)有制冷和制熱,我們可以想象這樣的情景:溫度在19.9°C和20.1°C之間波動(dòng),空調(diào)和加熱器的開關(guān)速度相對(duì)較快--兩者互相作用,浪費(fèi)能源。
解決辦法是在設(shè)定點(diǎn)周圍添加一些延遲或緩沖,這被稱為滯后。在我們的例子中,2°C的滯后意味著一旦溫度達(dá)到20°C,空調(diào)關(guān)閉,那么直到溫度再次上升到22°C,空調(diào)才會(huì)再次開啟。如果還有暖氣,那么在溫度下降到18°C之前,暖氣不會(huì)打開(但一旦打開,在溫度上升到20°C之前不會(huì)再次關(guān)閉)。
(2)過沖問題
可能遇到的第二個(gè)問題是過沖問題。過沖是典型的情況,即在命令輸出和輸入測(cè)量輸出命令的結(jié)果之間存在延遲時(shí)。以在水處理廠向水流中添加化學(xué)物質(zhì)為例:化學(xué)物質(zhì)需要一些時(shí)間才能溶解到水中,因此我們只能測(cè)量結(jié)果,也許是pH值,在添加化學(xué)品的下游一點(diǎn)點(diǎn), 即過程中有一些延遲。
假設(shè)我們開始時(shí)的pH值有點(diǎn)太低,所以我們打開閥門向水中添加堿性,以使pH值升高一點(diǎn);這開始工作,但是當(dāng)我們?cè)?a target="_blank">傳感器上讀取pH中性并關(guān)閉閥門時(shí),上游已經(jīng)添加了大量的堿性,并且傳感器讀數(shù)遠(yuǎn)遠(yuǎn)超過中性,并且我們開始獲得非常高的pH讀數(shù);系統(tǒng)現(xiàn)在對(duì)高pH讀數(shù)做出反應(yīng),打開閥門向水中添加酸,以再次降低pH值 - 但是當(dāng)其影響到達(dá)傳感器時(shí),我們?cè)俅纬^中性,讀數(shù)再次變得太低...該過程重復(fù),輸出繼續(xù)圍繞設(shè)定點(diǎn)擺動(dòng),可能比觸發(fā)糾正反應(yīng)的原始誤差的大小更超出設(shè)定點(diǎn)。
如果我們看一下控制船舶方向舵位置或汽車發(fā)動(dòng)機(jī)油門位置的示例,那么更直觀的是,需要比Bang-Bang控制系統(tǒng)更好的控制系統(tǒng)。如果只需要在航向上進(jìn)行小幅修正,我們不想向右(右舷)或向左(左舷)全擺動(dòng);或者讓汽車加速器在踏板到金屬和完全關(guān)閉之間振蕩,我們需要介于兩者之間的東西。
比例控制
按照比例控制(PID中的P)操作,并根據(jù)輸入和設(shè)定值之間的差異(與誤差成比例)控制輸出。如果輸入和設(shè)定值之間的差異很小,那么我們只對(duì)輸出進(jìn)行小的調(diào)整,如果差異很大,那么我們對(duì)輸出進(jìn)行大的調(diào)整。如果船只是稍微偏離航線,那么我們只會(huì)稍微轉(zhuǎn)動(dòng)方向舵——我們不會(huì)把它一直轉(zhuǎn)到盡可能遠(yuǎn)。對(duì)于某些系統(tǒng),可能只需要比例控制。但是,對(duì)于其他系統(tǒng),會(huì)遇到下一類的問題。
積分控制
使用比例控制時(shí),幾乎總是存在一定程度的穩(wěn)態(tài)誤差,這意味著系統(tǒng)沒有完全達(dá)到設(shè)定值,因?yàn)樵O(shè)定點(diǎn)附近的比例控制量太小,無法克服影響系統(tǒng)的某些偏差(可能是電流或風(fēng))。在下圖中,該過程穩(wěn)定在設(shè)定值以下一點(diǎn)。

PID的積分(I)部分關(guān)注系統(tǒng)偏離設(shè)定值的時(shí)間,并增加輸出以克服該偏差。例如,如果汽車的巡航控制設(shè)置為60英里/小時(shí),但僅使用比例控制(由于空氣或其他阻力)將速度保持在57英里/小時(shí),那么PID的“積分”部分將隨著時(shí)間的推移提高發(fā)動(dòng)機(jī)功率以使速度提高60英里/小時(shí)設(shè)置。
同樣,對(duì)于某些控制器,PI控制可能就是所有必需的。然而,PI本身在建立之前至少容易在設(shè)定點(diǎn)周圍發(fā)生一些過沖和振蕩,特別是當(dāng)設(shè)定點(diǎn)和輸入讀數(shù)之間存在較大的初始差異時(shí)(例如在啟動(dòng)時(shí)或?qū)υO(shè)定點(diǎn)進(jìn)行較大調(diào)整時(shí)),因?yàn)镻ID的組成部分將在過渡期間累積所有誤差,從而變得很大(大于需要), 如果沒有其他任何東西可以抑制它,那么唯一會(huì)再次減少它的將是相反方向上的一些累積錯(cuò)誤。PID 中的 D 部分解決了這個(gè)問題。
微分控制
微分控制(PID中的D)通過通過緩解/阻尼輸出來最大限度地減少或消除過沖;如果輸入讀數(shù)非常快速地向設(shè)定值移動(dòng),則PID的導(dǎo)數(shù)部分將激勵(lì)輸出放松,以最小化或消除過沖。在數(shù)學(xué)中,曲線的微分是該曲線在特定點(diǎn)上的角度或梯度 - 變化率 - 這就是這個(gè)術(shù)語所指的。在下圖中,紅線表示陡峭的梯度(這將導(dǎo)致PID算法中的D校正較大),藍(lán)線表示淺梯度(這將導(dǎo)致PID算法中的D校正較?。?。

調(diào)諧
PID 算法中的每個(gè)元素(比例元素、積分元素和導(dǎo)數(shù)元素)都可以進(jìn)行調(diào)整或加權(quán),以使其在算法中具有更大或更小的效果,并且正確的值因應(yīng)用程序而異。PID調(diào)優(yōu)是一個(gè)深層次的主題,其全部深度超出了本文的范圍,但是對(duì)P,I和D中的每個(gè)元素的作用有一個(gè)很好的理解是一個(gè)很好的起點(diǎn)。選項(xiàng)包括查找特定類型進(jìn)程的一些默認(rèn)值、手動(dòng)調(diào)整和模擬。手動(dòng)調(diào)諧簡(jiǎn)要涉及按順序調(diào)整每個(gè)P,I,D元素:
首先,I和D權(quán)重被設(shè)置為零,P權(quán)重被增加,直到系統(tǒng)開始圍繞設(shè)定點(diǎn)振蕩。然后P權(quán)重被設(shè)置為該值的一半。接下來,I權(quán)重增加,直到任何穩(wěn)態(tài)誤差被迅速糾正,但不至于使系統(tǒng)變得不穩(wěn)定。最后,增加D權(quán)重,直到任何過沖被充分抑制,但不至于使系統(tǒng)變得反應(yīng)遲鈍或甚至不穩(wěn)定(特別是當(dāng)輸入中存在一些噪聲時(shí)可能發(fā)生)。
用PID進(jìn)行數(shù)字輸出控制
如果PID控制的輸出是數(shù)字的,如繼電器或電磁閥,可以使用脈寬調(diào)制等技術(shù)來有效地將數(shù)字輸出轉(zhuǎn)換成模擬輸出。關(guān)于脈寬調(diào)制的更多信息,請(qǐng)看我們的PWM文章。PWM的頻率是根據(jù)應(yīng)用來選擇的,而且根據(jù)系統(tǒng)的情況,可以實(shí)施額外的限制,比如說只有當(dāng)占空比超過一定水平時(shí)才切換輸出。
以下是使用 PICCOLO 微控制器對(duì)烤箱進(jìn)行 PID 控制的示例,在 Proteus VSM 中進(jìn)行模擬。

*本文章版權(quán)歸英國(guó)LABCENTER公司所有,由廣州風(fēng)標(biāo)電子提供翻譯,原文鏈接如下:*https://www.labcenter.com/blog/sim-pid-control/
電子發(fā)燒友App



















評(píng)論