久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9950|回復: 27
打印 上一主題 下一主題
收起左側

PID精講

  [復制鏈接]
跳轉到指定樓層
樓主
ID:475247 發表于 2019-12-24 14:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
什么是PID?
PID,就是“比例(proportional)、積分(integral)、微分(derivative)”,是一種很常見的控制算法。
PID已經有107年的歷史了。
它并不是什么很神圣的東西,大家一定都見過PID的實際應用
比如四軸飛行器,再比如平衡小車......還有汽車的定速巡航、3D打印機上的溫度控制器....
就是類似于這種:需要將某一個物理量“保持穩定”的場合(比如維持平衡,穩定溫度、轉速等),PID都會派上大用場。
那么問題來了:
比如,我想控制一個“熱得快”,讓一鍋水的溫度保持在50℃,這么簡單的任務,為啥要用到微積分的理論呢。
你一定在想:
這不是so easy嘛~ 小于50度就讓它加熱,大于50度就斷電,不就行了?幾行代碼用Arduino分分鐘寫出來。
沒錯~在要求不高的情況下,確實可以這么干~ But! 如果換一種說法,你就知道問題出在哪里了:
如果我的控制對象是一輛汽車呢?
要是希望汽車的車速保持在50km/h不動,你還敢這樣干么。
設想一下,假如汽車的定速巡航電腦在某一時間測到車速是45km/h。它立刻命令發動機:加速!
結果,發動機那邊突然來了個100%全油門,嗡的一下,汽車急加速到了60km/h。
這時電腦又發出命令:剎車!
結果,吱...............哇............(乘客吐)
所以,在大多數場合中,用“開關量”來控制一個物理量,就顯得比較簡單粗暴了。有時候,是無法保持穩定的。因為單片機、傳感器不是無限快的,采集、控制需要時間。
而且,控制對象具有慣性。比如你將一個加熱器拔掉,它的“余熱”(即熱慣性)可能還會使水溫繼續升高一小會。
這時,就需要一種『算法』:
它可以將需要控制的物理量帶到目標附近
它可以“預見”這個量的變化趨勢
它也可以消除因為散熱、阻力等因素造成的靜態誤差
....
于是,當時的數學家們發明了這一歷久不衰的算法——這就是PID。
你應該已經知道了,P,I,D是三種不同的調節作用,既可以單獨使用(P,I,D),也可以兩個兩個用(PI,PD),也可以三個一起用(PID)。
這三種作用有什么區別呢?客官別急,聽我慢慢道來
我們先只說PID控制器的三個最基本的參數:kP,kI,kD。
kP
P就是比例的意思。它的作用最明顯,原理也最簡單。我們先說這個:
需要控制的量,比如水溫,有它現在的『當前值』,也有我們期望的『目標值』。
當兩者差距不大時,就讓加熱器“輕輕地”加熱一下。
要是因為某些原因,溫度降低了很多,就讓加熱器“稍稍用力”加熱一下。
要是當前溫度比目標溫度低得多,就讓加熱器“開足馬力”加熱,盡快讓水溫到達目標附近。
這就是P的作用,跟開關控制方法相比,是不是“溫文爾雅”了很多。
實際寫程序時,就讓偏差(目標減去當前)與調節裝置的“調節力度”,建立一個一次函數的關系,就可以實現最基本的“比例”控制了~
kP越大,調節作用越激進,kP調小會讓調節作用更保守。
要是你正在制作一個平衡車,有了P的作用,你會發現,平衡車在平衡角度附近來回“狂抖”,比較難穩住。
如果已經到了這一步——恭喜你!離成功只差一小步了~
kD
D的作用更好理解一些,所以先說說D,最后說I。
剛才我們有了P的作用。你不難發現,只有P好像不能讓平衡車站起來,水溫也控制得晃晃悠悠,好像整個系統不是特別穩定,總是在“抖動”。
你心里設想一個彈簧:現在在平衡位置上。拉它一下,然后松手。這時它會震蕩起來。因為阻力很小,它可能會震蕩很長時間,才會重新停在平衡位置。
請想象一下:要是把上圖所示的系統浸沒在水里,同樣拉它一下 :這種情況下,重新停在平衡位置的時間就短得多。
我們需要一個控制作用,讓被控制的物理量的“變化速度”趨于0,即類似于“阻尼”的作用。
因為,當比較接近目標時,P的控制作用就比較小了。越接近目標,P的作用越溫柔。有很多內在的或者外部的因素,使控制量發生小范圍的擺動。
D的作用就是讓物理量的速度趨于0,只要什么時候,這個量具有了速度,D就向相反的方向用力,盡力剎住這個變化。
kD參數越大,向速度相反方向剎車的力道就越強。
如果是平衡小車,加上P和D兩種控制作用,如果參數調節合適,它應該可以站起來了~歡呼吧。
等等,PID三兄弟好像還有一位。看起來PD就可以讓物理量保持穩定,那還要I干嘛?
因為我們忽視了一種重要的情況:
kI
還是以熱水為例。假如有個人把我們的加熱裝置帶到了非常冷的地方,開始燒水了。需要燒到50℃。
在P的作用下,水溫慢慢升高。直到升高到45℃時,他發現了一個不好的事情:天氣太冷,水散熱的速度,和P控制的加熱的速度相等了。
這可怎么辦?
P兄這樣想:我和目標已經很近了,只需要輕輕加熱就可以了。
D兄這樣想:加熱和散熱相等,溫度沒有波動,我好像不用調整什么。
于是,水溫永遠地停留在45℃,永遠到不了50℃。
作為一個人,根據常識,我們知道,應該進一步增加加熱的功率。可是增加多少該如何計算呢?
前輩科學家們想到的方法是真的巧妙。
設置一個積分量。只要偏差存在,就不斷地對偏差進行積分(累加),并反應在調節力度上。
這樣一來,即使45℃和50℃相差不太大,但是隨著時間的推移,只要沒達到目標溫度,這個積分量就不斷增加。系統就會慢慢意識到:還沒有到達目標溫度,該增加功率啦!
到了目標溫度后,假設溫度沒有波動,積分值就不會再變動。這時,加熱功率仍然等于散熱功率。但是,溫度是穩穩的50℃。
kI的值越大,積分時乘的系數就越大,積分效果越明顯。
所以,I的作用就是,減小靜態情況下的誤差,讓受控物理量盡可能接近目標值。
I在使用時還有個問題:需要設定積分限制。防止在剛開始加熱時,就把積分量積得太大,難以控制。


評分

參與人數 9黑幣 +88 收起 理由
freetoo + 21 很給力!
0o000000 + 10
小梁@113 + 5 贊一個!
huangchong + 5
JanJanPlay + 5 很給力!
gg666 + 5 很給力!
songhetai + 21 絕世好帖!
jinsheng7533967 + 8
yoxi + 8

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏50 分享淘帖 頂9 踩
回復

使用道具 舉報

來自 2#
ID:496636 發表于 2022-7-16 13:09 | 只看該作者
PID就是建立在偏差上的控制。
P是比例,如果偏差越大,P輸出越大,但當越接近設定值時,P輸出越小。P輸出是這樣計算的:先對當前值(反饋值)和設定值進行無綱量化處理,變成0-1之間的值(就是根據其在量程范圍內的位置計算而得),如是溫度計,量程是-50到150度,如果當前溫度是20度,那么就是當前值就是0.35,如果設定溫度為80度,設定值為0.65。偏差就是0.3,然后乘以比例系數,如比例系數是150%,那么就是0.45。這個0.45就是比例項的輸出值,如果輸出控制調節閥的大小,那么單比例項輸出就是45%。
閥門的總輸出是三項的和,比例項+積分項+微分項。
從這里面就能看出單比例項輸出有個弱點,存在靜態偏差沒法消除的弱點。如果水溫達到75度的時候,輸出就只有0.0375,即調節閥輸出3.75%的開度,如果此調節閥是蒸汽調節閥,在這樣的開度輸入的熱功率是一千W,而散熱功率也達到了一千W,這個時候就達到了靜態的平衡,溫度就上不去了。
如果你的操作者,為了達到80度的溫度,就會過段時間去開大一點點調節閥,使溫度慢慢地上升,這就是積分的作用。
積分項是建立在比例項基礎上的,積分項中有個參數叫積分時間,何為積分時間呢?如果設積分時間為1分鐘,它的意思是這樣的:
先前5度的偏差,我們算出來調節閥的開度是3.75%,積分時間為1分鐘的意思就是如果偏差保持5度一分鐘,就積分輸出增加3.75%
如我們是操作者,溫度不上升,過一分鐘我就把開度變成了7.5%,當然這個調節是連續進行的,如果采樣時候是1秒,就是每過1秒,增加(3.75/60)%,當然如果偏差縮小了一半,增加的量也會縮小一半。
還有微分,也是建立在比例基礎上的。微分的參數是微分時間,那徽分時間是什么意思呢?
微分的作用就是提前控制,如果反應釜溫度控制中,控制溫度120度,現在開始我滴加反應了,反應后放熱很大,但前期溫度變化不大,如過了一分鐘,溫度上升才0.5度,偏差很小,如果溫度計就是先前那個量程,那么偏差才0.0025(無綱量)如果比例系數為2000%,那也只是1.25%,控制冷卻的調節閥只開大了5%的開度。如果反應釜物料有5千升,是水系的,一分鐘上升0.5度,每秒上升0.0083度,5000*4.2*0.0083=174.3千瓦,它的放熱功率接近200千瓦,假設每1%的開度粗約可以提供5千瓦的冷量,那么起碼是要增加約35%的開度。靠比例這點增加開度是遠遠不夠的。那只能靠微分來處理這種偏差小,偏差變化速度快的應急情況了。
那微分時間啥意思?如果設為微分時間為10分鐘,就是依這溫度變化趨勢,10分鐘后能達到的偏差,通過乘以比例系數,得到的值作為微分項的輸出。如上面一分鐘上升0.5度,那么10分鐘就能上升5度,無綱量偏差是0.025,乘以比例系數20,就是45%的輸出,從而達到了對溫度急速變化立即響應的目的。
比例、積分和微分三者相加就是輸出,超過100%,輸出就是100%,小于0,就是0.
比例是隨著偏差的大小而變化,偏差越小,比例輸出越小。
積分的輸出是累加上去的,偏差越小,累加上去的速度越小,累加上去后,不會因為偏差縮小而撤銷。只會因為負偏差而減小。如果超過設定值了,就會減弱輸出。
微分不管偏差大小,只管偏差變化速度和變化方向。它的輸出會隨著偏差變化速度的大小而變化。如上面釜溫變化從每分鐘上升0.5度,變為0.1度,微分輸出就會從45%減小至9%,而這個時候溫度上來了,偏差大了,比例輸出變大了。代替了微分的輸出。如果偏差還是正,但溫度變化變為降溫,如每分鐘下降0.5度,這個時候微分輸出是-45%,它是只跟偏差變化速度相關,不與偏差相關。
回復

使用道具 舉報

板凳
ID:679983 發表于 2020-1-2 20:27 | 只看該作者
做過pid,講的很不錯
回復

使用道具 舉報

地板
ID:23606 發表于 2020-1-3 09:27 | 只看該作者
講的太好了
回復

使用道具 舉報

5#
ID:508160 發表于 2020-1-17 10:27 | 只看該作者
講的太好了,小白也容易理解
回復

使用道具 舉報

6#
ID:560467 發表于 2020-3-6 16:35 | 只看該作者
pid控制真的太重要了,最近剛剛做一個pid的設計。
回復

使用道具 舉報

7#
ID:94449 發表于 2020-3-8 21:39 | 只看該作者
好的科普文章就是要像這樣通俗易懂,點贊.
回復

使用道具 舉報

8#
ID:707776 發表于 2020-3-13 16:27 | 只看該作者
太好了,如果有個程序實例就好啦。
回復

使用道具 舉報

9#
ID:696930 發表于 2020-3-27 16:26 | 只看該作者
講得很精簡,通俗易懂。
回復

使用道具 舉報

10#
ID:241242 發表于 2020-4-21 10:09 | 只看該作者
精辟!通俗易懂!
回復

使用道具 舉報

11#
ID:734188 發表于 2020-4-21 11:06 | 只看該作者
通俗易懂的文章可不常見
回復

使用道具 舉報

12#
ID:517998 發表于 2020-4-24 07:23 | 只看該作者
請收下我的
回復

使用道具 舉報

13#
ID:639290 發表于 2020-4-27 16:05 | 只看該作者
講的挺細的
回復

使用道具 舉報

14#
ID:475207 發表于 2020-4-27 17:54 | 只看該作者
這些比喻
真的是通俗易懂,
回復

使用道具 舉報

15#
ID:748312 發表于 2020-5-10 15:49 | 只看該作者
通俗易懂,十分感謝
回復

使用道具 舉報

16#
ID:928589 發表于 2021-6-30 13:42 | 只看該作者
通俗易懂
回復

使用道具 舉報

17#
ID:731329 發表于 2021-7-20 15:15 | 只看該作者
講的不錯
回復

使用道具 舉報

18#
ID:677615 發表于 2021-9-1 14:06 | 只看該作者
講得不錯   容易理解
回復

使用道具 舉報

19#
ID:59300 發表于 2021-9-5 23:32 | 只看該作者
非常實用的講解,值得點贊
回復

使用道具 舉報

20#
ID:678280 發表于 2021-12-18 11:49 | 只看該作者
樓主真是好人,要是舉個簡單的例子就完好了。
回復

使用道具 舉報

21#
ID:364721 發表于 2022-3-9 10:31 | 只看該作者
感謝樓主的分享,好人一生平安!!!
回復

使用道具 舉報

22#
ID:378605 發表于 2022-6-10 20:15 | 只看該作者
謝謝,非常詳細易懂
回復

使用道具 舉報

23#
ID:38662 發表于 2022-6-23 18:26 | 只看該作者
講的太好了,通俗易懂,如果有程序配合說明那更好。
回復

使用道具 舉報

24#
ID:114701 發表于 2022-7-14 11:46 | 只看該作者
想的太好,謝謝。
回復

使用道具 舉報

25#
ID:496636 發表于 2022-7-16 13:12 | 只看該作者
對于反應釜等大容量的熱體系,比例系數是非常大的,比例系數為20,不要見怪。
回復

使用道具 舉報

26#
ID:614295 發表于 2022-8-13 15:36 來自手機 | 只看該作者
本帖最后由 peavey 于 2022-8-21 06:01 編輯

pid算法真的好神奇.. 記號
回復

使用道具 舉報

27#
ID:1145864 發表于 2025-3-20 08:51 | 只看該作者
正在研究PID,這篇貼子對我很有幫助!
回復

使用道具 舉報

28#
ID:1112603 發表于 2025-3-21 08:35 | 只看該作者
真的講得很通俗易懂
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线国产精品一区 | 欧美a级成人淫片免费看 | 香蕉一区| 欧美色专区 | 国产一级电影在线 | 人人人干 | 亚洲 自拍 另类 欧美 丝袜 | 国产精品色av| 国内久久 | 婷婷国产一区二区三区 | 亚洲网站在线观看 | 91久久伊人 | 尹人av| 成人老司机 | 国产精品欧美一区二区 | 欧美 日韩 中文 | 日操操 | 成人国产精品免费观看 | 日韩精品在线观看一区二区 | 亚洲精品第一国产综合野 | 青青草久久| 久久久久久高潮国产精品视 | 日韩精品专区在线影院重磅 | 日韩一区二区三区视频 | 奇米影视在线 | 欧美aⅴ | 亚州成人 | 久久久久久亚洲国产精品 | 国产偷自视频区视频 | 国产免费一级片 | 色综合久 | 欧美二区在线 | 欧美日韩久久久 | 国产精品久久久久久久岛一牛影视 | 欧美日韩亚洲视频 | 午夜精品一区二区三区在线观看 | 中文字幕精 | 午夜电影日韩 | 91porn国产成人福利 | 久久大| 精品久久久久久亚洲精品 |