PID控制原理講解0001_第1頁
PID控制原理講解0001_第2頁
PID控制原理講解0001_第3頁
PID控制原理講解0001_第4頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、PID 控制原理講解經(jīng)常有人問有關 PID 的用法,看一些有關單片及應用的書上都有關于 PID 的應用 原理,但是面對具體的問題就不知道如何應用了, 主要的問題是里面所用到的參 數(shù)以及計算結(jié)果需要進行什么? 經(jīng)常有人問有關 PID 的用法, 看一些有關單片及應用的書上都有關于 PID 的應用原理, 但 是面對具體的問題就不知道如何應用了, 主要的問題是里面所用到的參數(shù)以及計算結(jié)果需要進行 什么處理, 通過什么樣的換算才能具體的應用于實際, 另外在計算方法上也存在著數(shù)值計算的算 法問題,今天我在這里例舉溫度控中的 PID 部分,希望能夠把 PID 的具體應用說明白。一般書上提供的計算公式中的幾個

2、名詞:1. ? 直接計算法和增量算法,這里的所謂增量算法就是相對于標準算法的相鄰兩次運算之差,得到的 結(jié)果是增量,也就是說,在上一次的控制量的基礎上需要增加(負值意味著減少)控制量,例如 對于可控硅電機調(diào)速系統(tǒng),就是可控硅的觸發(fā)相位還需要提前(或遲后) 的量,對于溫度控制就 是需要增加 (或減少) 加熱比例, 根據(jù)具體的應用適當選擇采用哪一種算法, 但基本的控制方法、 原理是完全一樣的,直接計算得到的是當前需要的控制量,相鄰兩次控制量的差就是增量;2. ? 基本偏差 e(t), 表示當前測量值與設定目標間的差,設定目標是被減數(shù),結(jié)果可以是正或負,正 數(shù)表示還沒有達到,負數(shù)表示已經(jīng)超過了設定值。

3、這是面向比例項用的變動數(shù)據(jù)。3. ?累計偏差 藝(e)= e(t)+e(t-1)+e(t-2)+e(1),這是我們每一次測量到的偏差值的總和,這是代數(shù)和,考慮到他的正負符號的運算的,這是面向積分項用的一個變動數(shù)據(jù)。4. ? 基本偏差的相對偏差e(t)-e(t-1) ,用本次的基本偏差減去上一次的基本偏差,用于考察當前控制的對象的趨勢,作為快速反應的重要依據(jù),這是面向微分項的一個變動數(shù)據(jù)。5. ? 三個基本參數(shù): Kp, Ki , Kd. 這是做好一個控制器的關鍵常數(shù),分別稱為比例常數(shù)、積分常數(shù)和微分常數(shù), 不同的控制對象他們需要選擇不同的數(shù)值, 還需要經(jīng)過現(xiàn)場調(diào)試才能獲得較好的效果。6. ?

4、標準的直接計算法公式:Pout(t)=Kp*e(t)+Ki* 藝 e(t)+Kd*(e(t)-e(t-1);上一次的計算值:Pout(t-1)=Kp*e(t-1)+Ki* 藝 e(t-1)+Kd*(e(t-1)-e(t-2);兩式相減得到增量法計算公式:Pdlt=Kp*(e(t)-e(t-1)+Ki*藝 e(t)+Kd*(e(t)-2*e(t-1)+e(t-2);*這里我們對 藝項的表示應該是對 e(i)從1到t全部總和,但為了打字的簡便就記作藝e(t).三個基本參數(shù) Kp, Ki , Kd. 在實際控制中的作用: ?比例調(diào)節(jié)作用: 是按比例反應系統(tǒng)的偏差, 系統(tǒng)一旦出現(xiàn)了偏差, 比例調(diào)節(jié)立即

5、產(chǎn)生調(diào)節(jié)作用用 以減少偏差。比例作用大,可以加快調(diào)節(jié),減少誤差,但是過大的比例,使系統(tǒng)的穩(wěn)定性下降, 甚至造成系統(tǒng)的不穩(wěn)定。積分調(diào)節(jié)作用: 是使系統(tǒng)消除穩(wěn)態(tài)誤差, 提高無差度。 因為有誤差, 積分調(diào)節(jié)就進行, 甚至無差, 積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一常值。積分作用的強弱取決于積分時間常數(shù)Ti , Ti 越小,積分作用就越強。反之 Ti 大則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動態(tài)響應變慢。積 分作用常與另兩種調(diào)節(jié)規(guī)律結(jié)合,組成 PI 調(diào)節(jié)器或 PID 調(diào)節(jié)器。 ? 微分調(diào)節(jié)作用:微分作用反映系統(tǒng)偏差信號的變化率,具有預見性,能遇見偏差變化的趨勢,因此能產(chǎn)生超前的控制作用,在偏差還沒有形

6、成之前,已被微分調(diào)節(jié)作用消除。因此, 可以改善系統(tǒng)的動態(tài)性能。在微分時間選擇合適情況下。 可以減少超調(diào),減少調(diào)節(jié)時間。 微分作用對噪聲干 擾有放大作用,因此過強的加微分調(diào)節(jié),對系統(tǒng)抗干擾不利。此外,微分反應是變化率,而當輸入沒有變化時,微分作用輸出為零。微分作用不能單獨使用,需要與另外兩種調(diào)節(jié)規(guī)律相結(jié)合,組成PD或PID控制器。具體應用中的數(shù)值量化處理: ?上面只是控制算法的數(shù)學方法,似乎有點抽象,在具體的控制項目中怎樣對應呢?也就是 具體的量化問題。下面舉一個在溫度控制中的處理方法。對于加溫的溫度控制可以采用調(diào)節(jié)供電電壓或在一定的時間循環(huán)周期內(nèi)的供電時間比例來 調(diào)節(jié)加溫控制溫度, 一般以調(diào)節(jié)

7、加溫時間比例比較簡單,也是控制上比較常用的方法。 調(diào)壓法控制的原理是通過可控硅的處罰相位角達到對電壓的調(diào)節(jié),這個電壓是指有效電壓, 直觀上就是對一個正弦波形的前邊切掉一塊, 用不同的切割位置以保留剩余的面積。 為了敘述方便, 我們還是 采用控制時間比例的辦法: 我們設定一個標準的加溫周期, 例如 2 分鐘, 我們就在這個兩分鐘周 期內(nèi)對輸出進行控制,也就是說在這個 2 分鐘內(nèi)加溫多少時間,全速加溫就是連續(xù)整個周期( 2 分鐘) 都加溫, 當然停止加溫就是完全不輸出, 根據(jù)我們的計算可以讓加溫時間在 0-2 分鐘內(nèi)變 化,比如計算所得我們在這一個周期內(nèi)應該加溫 1 分 30 秒,經(jīng)過兩分鐘以后再

8、測量被加溫物體 的溫度,通過計算我們應該加溫 1 分 28 秒,等等等等,這里除了加溫以外的時間就是不加溫, 等等下一個周期到來, 再進行實際測量計算下一周期我們的輸出量, 周而復始, 不斷地修正我們 的輸出量,以達到對溫度有效控制。為了對應我們的程序處理上的方便,我們在程序內(nèi)部一般并不是用時分秒來計算的,通常 我們會使用系統(tǒng)的一個定時器用于系統(tǒng)全部時鐘, 例如顯示刷新、 鍵盤掃描等, 相對于計算來說, 我們的控制周期比較長, 所以我們可以對 2分鐘進行細分, 例如我們用每分鐘進行 100等分, 則 兩分鐘就是 200 等分,用于我們的溫度控制,這樣的輸出比例的變化已經(jīng)足夠了,我們可以有 20

9、0 個輸出等級了。取 200 的另一個好處是,對應于我們的 8 位單片機剛好可以在一個字節(jié)內(nèi)進 行運算,程序簡單運算速度快。當需要改變我們的定時周期時, 有些不同的加熱對象, 例如較大 熱慣性的加熱對象時,可能 2 分鐘周期太短了,我們可以通過修改基本定時常數(shù)的辦法來實現(xiàn), 而保持我們的 200 等分不變。 我們對 2 分鐘進行 200 等分, 算一下他的每一個基本單位的具體時 間?To=60*2/200=0.6s=600ms這對于單片機來說太長了,因為如果我讓我的定時器做到這么慢的定時周期就干不了別的 事了,為了顯示、鍵盤等的處理一般我們定時在 5-10ms ,所以就需要另外設定一個變量 t

10、Templ 在每一個定時中斷發(fā)生時對tTempI計數(shù)。例如我的系統(tǒng)定時器的定時常數(shù)對應于10ms,則設定tTempI在達到60的時候才確認是達到 600ms 了,才作為一個基本的輸岀時間單位。對應于總周 期的修改, 我們的 200 等分可以不用修改, 而只要修改我們的變量 tTempI 的判斷邊界就可以了, 例如對應于 2分鐘時是 60,則在 3分鐘為周期時邊界改為 90就行了,定下了我們的基本控制時 間分辨率以后, 我們的計算就可以不用改變了。 當然,根據(jù)您的具體對象也可以修改這個等分數(shù), 我這里只是作為一個舉例:例如 200 等分。溫控儀器不離開測溫器件,無論用什么測溫器件(傳感器),對于

11、控制上來說,首先需要將測到的值換算為溫度數(shù)據(jù),一般我們國內(nèi)都采用攝氏度C,工業(yè)上使用的測溫器件一般都是非線性的器件,經(jīng)過放大、 A/D 轉(zhuǎn)換所得到的電壓數(shù)據(jù)與溫度呈非線性關系,存在著微小的差異, 一般采用電壓值表的辦法獲得實際溫度, 這個表格是以每一個溫度點上的電壓值來表述的,由于我們的單片機 rom 的大小限制, 這個表格也不可能做得很細, 基本上以度作為間隔, 也就是說直 接查表只能獲得度為單位的溫度值,而實際測量的溫度可能是介于T與T+1度之間,在PID控制計算上, 這樣的分辨率是不夠的, 所以我們還需要進一步獲得具體的溫度精確數(shù)據(jù),一般采用將T與T+1之間的電壓差和 AD實際值(mv)

12、進行定分比分點的辦法(更精確的是采用二次插值計 算法)獲得溫度的精確數(shù)值,也就是獲得小數(shù)部分。如果能夠做到1/10 度的溫度分辨率精度就可以基本滿足控制運算要求了, 所以我們可以用定點數(shù)的辦法處理。不采用浮點數(shù)是因為單片機的運算速度不適合用浮點數(shù),定點數(shù)處理,就是將溫度的內(nèi)部運算單位放大 10 倍,在用于顯示 的時候再除以 10 也就是固定顯示一個小數(shù)點位置。如果想讓我們的控制做的更好,還可以再提 高溫度的內(nèi)部精度, 例如精確到 1/100 度, 這也是現(xiàn)在高級溫控儀采用的精度,但在通常情況下這個精度似乎有點過剩。PID的三個基本參數(shù) Kp , Ki , Kd, 般由試驗確定,根據(jù)我們的實際工

13、作對象去初步確定, 然后在實際運行過程中進行調(diào)節(jié), 以達到相對理想的效果, 為了達到比較好的控制效果, 這三個 參數(shù)一般不采用整數(shù), 但同時為了減輕單片機的運算量, 通常采用 2 的整倍數(shù)放大的辦法確定這 些參數(shù),在運算結(jié)果中再除以 2 的整倍數(shù),因為單片機運算中可以用移位來完成,速度比較快, 常用的是 8倍或 16 倍放大,注意這三個參數(shù)采用相同的放大比例。編程的過程中自己從頭到尾 要清楚我的參數(shù)是經(jīng)過放大了的,就不會忘記對運算結(jié)果還原。通過怎樣的運算來獲得 2-200 加溫比例數(shù)據(jù)呢?很簡單,為了說明這個問題,我們先假定 只考慮最簡單的比例控制算法, 假定我們的控制范圍是在 200 度,則

14、設定溫度與實踐溫度的差的 最大值就是200 (度),我們就用去他去輸岀,這時的參數(shù)Kp=1,當我們?yōu)榱颂岣呒訜崴俣龋故芸刂频膮^(qū)域縮小,例如只控制 50 度范圍,如目標溫度設定為230,我們控制的范圍就在180-230 范圍內(nèi), 這時的差值不夠 200,我們就把計算得到的數(shù)字乘以 4 就得到 0-200 的數(shù)據(jù)了, 假定當前實測溫度為 222,則230-222=8 再乘以 4算得 32,這就作為我們的輸岀比例數(shù)據(jù)。 當然 我們這里還沒有考慮超溫的情況, 計算產(chǎn)生了負數(shù)。 這一部分將作為我們控制輸岀的基本量, 上 面的計算是對應于 Kp=4DE,再加入微分和積分項,這時我們的Kp可以基本保持不

15、變。Kp在這里基本確立了我們的起始控制點到目標值之間的控制范圍,微分和積分項在這里只是作為附加部 分,基本不影響控制范圍。 當溫度突然下降一度時, 我們希望補上多少比例區(qū)進行下一輪的加熱 呢?這就是微分系數(shù): 早我經(jīng)過這么久的控制, 目標溫度還是低了一點, 我希望用多少的比例去 彌補這個長期欠溫呢?這就是積分常數(shù), 我想你已經(jīng)大概已經(jīng)確定了這些數(shù)據(jù)了。 一句話, 比例 常數(shù)決定我們參與在目標點以前真正控制的范圍,Kp=S本時間總周期/控制范圍。Ki,Kd是您希望的反應對策速度, 看你有沒有耐心去逐步達到穩(wěn)定點, 過激了會起反作用的, 過于膽小怕事是 達不到預期目標的。最后,在計算結(jié)果交付于輸岀

16、之前,還需要進行一些修正,例如當計算結(jié)果大于200 時按200 輸岀,計算結(jié)果小于零時按零輸岀。 ?處理上的一些常用方法為了提高測溫的 準確性, 往往需要進行多次測溫。 然后剔除測得結(jié)果中的最大值和最小值。 把剩余值的數(shù)值相加在計算平均值, 這樣比較有利于抗干擾, 或者由于其他原因引起的測量值波 動,初期的處理是很必要的。 測溫工作和 PID 計算一般安排在上一個輸岀周期的最后階段就提前 進行的最后階段就提前進行, 測溫次數(shù)一般在 7-13 次,去掉最大最下數(shù)以后保留 5-11 次用于運 算,均值運算的累加部分將安排在每一次測溫以后逐步進行,不會過多占用系統(tǒng)時間。 只有系統(tǒng)的時間允許,盡可能的

17、測多幾次,所得到的結(jié)果也會相對精確點。運算將會占用很長的時間,這是相對于我們的一個基本定時周期來講的,一個系統(tǒng)定時周 期內(nèi)我們的系統(tǒng)還要處理很多事情,例如顯示的刷新、鍵盤的掃描、鍵盤碼的處理執(zhí)行等等,如果我們的運算占用很多時間的話那么就會岀現(xiàn)一個系統(tǒng)定時周期內(nèi)完不成的情況。所以如果您的系統(tǒng)僅僅是一臺溫控儀的話, 就可以將運算部分放到主程序中進行, 而常規(guī)的刷新掃描之類的才 放在定時中斷里處理, 這樣編制的主程序就非常清晰明了, 這是比較理想的情況。 如果溫度控制 僅僅作為您的系統(tǒng)中的一部分小插曲, 那就需要認真考慮程序的布局了, 主程序有更重要的任務 要處理, 溫度控制運算部分就只能委托系統(tǒng)定

18、時器來承擔了,時間不夠用怎么辦?假定我們的定時周期是10ms,顯示刷新部分要用1ms,鍵盤掃描處理要 1ms,PID運算要2ms (假定),留給主程序的時間可能不夠了,我們就 需要對我們的 PID 運算進行任務的分割,把運算分成幾個部 分進行,每一次進入運算程序只計算其中的一小部分,經(jīng)過N次的調(diào)才完成一個完整的PID運算,這樣就不會影響整個系統(tǒng)的運作了, 這里面需要細細的推敲、 分割, 這是面對一個較大系統(tǒng)的一 般處理方法, 對其他任務也可以采用分割的辦法進行細化,例如對顯示刷新, 現(xiàn)在液晶屏用得比較多,環(huán)境的干擾,數(shù)據(jù)的變化都會引起花屏或反應遲鈍,而刷新需要占用很長的時間,我們也可以采用分片

19、刷新的辦法處理,把每次刷新所占用的時間減到最短。PID 的輸出部分可以放到系統(tǒng)定時中斷里處理,這部分占用的時間不長,可以隨帶完成。前面我們講到將時間作 200 等分記作 Tset ,這就是將一個約定時間 200 級不同的輸出時間 比例,通過我們的計算得到一個介于 0-200 之間的數(shù) Tout ,然后每次在我們的 PID 基本定時時 間中對這個 Tout 減 1,當?shù)确钟嫈?shù)器 Tset 也達到零時進行下一輪控制循環(huán), 重新計算 Tout 。這 樣我們就完成一個控制比例 Tout/200 ,這個 Tout 是計算獲得的原始數(shù)據(jù)。運算中往往出現(xiàn)數(shù)據(jù)溢出的情況,所以一般在運算中都要求對數(shù)據(jù)強制轉(zhuǎn)換成

20、 int 型,注 意需要考慮符號,另外,對有些參數(shù)如積分項的累加數(shù)過大時會起反作用,使調(diào)節(jié)失靈,或者引 起大幅震蕩,為此我們對這一項引入一個數(shù)值最大界限,當結(jié)果超出約定界限時,不再增加(或 減少) 。加溫的整個過程沒有必要全程 PID 控制,一般可以在設定目標值前一個溫度區(qū)域才進行 PID 控制,例如,設定目標溫度為 300度,則我們可以在 250 度以前全速加溫,當達到 250 以后 才開始計算 PID 并予以控制, 這樣可以加快加溫速度又不影響溫度控制。 在不產(chǎn)生過大的過沖的 情況下, 盡可能把起控點抬高, 有利于后面控制部分的進一步細化。 在進入控制之前我們的積分 項紀錄數(shù)據(jù)為零。對于用

21、調(diào)壓法控制輸出時,由于正弦波相對于延時導通的相位角輸出的電壓有效值是非線 性的, 而且三角函數(shù)計算也很費時, 所以建議用查表法處理, 同樣可以采用查表加插值獲得移向 數(shù)據(jù), 其他的計算方法和用繼電器比例輸出法是一樣的。硬件上還需要做一個比較精確的過零負脈沖電路, 讓脈沖發(fā)生于過零點以前, 這樣我們就可以在過零以前先關閉輸出, 脈沖寬度越窄越 好,至少這個脈沖寬度不能大于1ms過零脈沖的識別也需要一點小小的處理,防止假脈沖混入,防止電網(wǎng)干擾,這是軟件上的問題。參數(shù)的設定與調(diào)整這是 PID 最困難的部分,編程時只設定他們的大概數(shù)值,然后通過反復的調(diào)試才能找到相 對比較理想的參數(shù)值。 面向不同的控制

22、對象參數(shù)都不同, 所以我們無法提供參考數(shù)值, 但是我們 可以根據(jù)這些參數(shù)在整個 PID 過程中的作用原理,來討論我們的對策。1. 加溫很迅速就達到目標值,但是溫度過沖很大:1. 比例系數(shù)太大,致使在未達到設定溫度前加溫比例過高;2. 微分系數(shù)小,致使對對象反應不敏感;2. 加溫經(jīng)常達不到目標值,小于目標值的時間較多:1. 比例系數(shù)過小,加溫比例不夠;2. 積分系數(shù)過小,對恒偏差補償不足;3. 基本上能夠在控制目標上,但上下偏差偏大,經(jīng)常波動:1. 微分系數(shù)過小,對及時變化反應不夠快,反映措施不力;2. 積分系數(shù)過大,使微分反應被淹沒鈍化;4. 受工作環(huán)境影響較大,在稍有變動時就會引起溫度的波動

23、:1. 微分系數(shù)過小,對及時變化反應不夠快,不能及時反映;2. 設定的基本定時周期過長,不能及時得到修正;選擇一個合適的時間常數(shù)很重要,要根據(jù)我們的輸出單位采用什么器件來確定,如果是采 用可控硅的, 則可設定時間常數(shù)的范圍就很自由, 如果采用繼電器的則過于頻繁的開關會影響繼 電器的使用壽命,所以就不太適合采用較短周期。一般的周期設定范圍為 1-10 分鐘較為合適。為了調(diào)試方便,起碼在調(diào)試階段您必須編制一個可以對參數(shù)進行隨時修改和記憶的接口, 否則你會很辛苦,老是在現(xiàn)場與辦公室之間來回跑。關于自整定問題: 在通用儀表行業(yè)用得比較多,因為他們的工作對象是不確定的,而不同的對象所使用的參 數(shù)是千變?nèi)f化的, 所以無法為用戶設定參數(shù)。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論