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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2779|回復(fù): 20
收起左側(cè)

請(qǐng)教什么是PID控制?有最簡(jiǎn)單的例程嗎?能理解的那種

  [復(fù)制鏈接]
ID:891876 發(fā)表于 2024-3-19 09:36 | 顯示全部樓層 |閱讀模式
請(qǐng)教如題,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:69038 發(fā)表于 2024-3-19 14:06 | 顯示全部樓層
有一個(gè)很好理解的“例程”。。。
你有沒(méi)有過(guò)背上發(fā)癢,自己抓不到,請(qǐng)別人幫忙抓癢的經(jīng)歷?
“左邊。”
“再左一點(diǎn)!
“過(guò)了過(guò)了,返回去一點(diǎn)!
“再返回去一小點(diǎn)!
“對(duì)對(duì)對(duì),就是這,使勁抓。!
回復(fù)

使用道具 舉報(bào)

ID:1112840 發(fā)表于 2024-3-19 14:26 來(lái)自觸屏版 | 顯示全部樓層
PID控制是一種常見(jiàn)的反饋控制算法,它通過(guò)比例(Proportional)、積分(Integral)、微分(Derivative)三個(gè)環(huán)節(jié)來(lái)調(diào)整控制器輸出,以便讓系統(tǒng)輸出盡可能接近期望值。簡(jiǎn)單來(lái)說(shuō),PID控制就是一個(gè)調(diào)節(jié)過(guò)程,它可以根據(jù)當(dāng)前值與目標(biāo)值之間的差異(偏差),動(dòng)態(tài)地調(diào)整輸出,以達(dá)到控制目標(biāo)。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-3-19 15:05 | 顯示全部樓層
zhuls 發(fā)表于 2024-3-19 14:06
有一個(gè)很好理解的“例程”。。。
你有沒(méi)有過(guò)背上發(fā)癢,自己抓不到,請(qǐng)別人幫忙抓癢的經(jīng)歷?
“左邊!

PID就是中間有大的時(shí)間延遲環(huán)節(jié)的控制方法,從發(fā)出命令到實(shí)際執(zhí)行有很長(zhǎng)時(shí)間的不響應(yīng),其目的就是為了防止你說(shuō)的“過(guò)了過(guò)了,返回去一點(diǎn)。”這種事情的發(fā)生。如果允許“過(guò)了”,完全沒(méi)必要用PID,直接反饋多簡(jiǎn)單!
回復(fù)

使用道具 舉報(bào)

ID:69038 發(fā)表于 2024-3-19 15:19 | 顯示全部樓層
Hephaestus 發(fā)表于 2024-3-19 15:05
PID就是中間有大的時(shí)間延遲環(huán)節(jié)的控制方法,從發(fā)出命令到實(shí)際執(zhí)行有很長(zhǎng)時(shí)間的不響應(yīng),其目的就是為了防 ...

某些執(zhí)行有慣量存在,一下子調(diào)整過(guò)頭是很正常的。
而如果一味的延遲,又似乎達(dá)不到快速控制的目的。
所以,調(diào)節(jié)量在目標(biāo)值附近往返拉鋸、飄忽不定,也算是正常的。
記得做過(guò)一款U段射頻產(chǎn)品,是PLL+VCO方式 ,PLL輸出就是一個(gè)類(lèi)似三角波疊加一個(gè)直流成分的波形。當(dāng)然,這個(gè)三角波有幅度很小。

回復(fù)

使用道具 舉報(bào)

ID:961114 發(fā)表于 2024-3-19 16:55 | 顯示全部樓層
四軸飛控里 都有PID的應(yīng)用 四軸飛控-STC32G12K128-LQFP48.zip (219.1 KB, 下載次數(shù): 26)
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2024-3-20 07:40 | 顯示全部樓層
PID 在車(chē)輛行駛中的應(yīng)用: 定速巡航功能, 當(dāng)車(chē)行駛途中有上坡時(shí)候, 單片機(jī)自動(dòng)加油門(mén); 下坡時(shí)候, 單片機(jī)自動(dòng)減油門(mén), 這樣時(shí)鐘保持速度恒定. 80km時(shí)速設(shè)定100km時(shí)速, 單片機(jī)會(huì)自動(dòng)加油門(mén)加速到100km的時(shí)速后,維持100km速度保持恒速.
回復(fù)

使用道具 舉報(bào)

ID:420836 發(fā)表于 2024-3-20 08:24 | 顯示全部樓層
這個(gè)論壇里有很多PID控制的例子。 可以搜索一些最好的并從中學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

ID:458247 發(fā)表于 2024-3-20 08:41 | 顯示全部樓層
rayin 發(fā)表于 2024-3-20 07:40
PID 在車(chē)輛行駛中的應(yīng)用: 定速巡航功能, 當(dāng)車(chē)行駛途中有上坡時(shí)候, 單片機(jī)自動(dòng)加油門(mén); 下坡時(shí)候, 單片機(jī)自動(dòng) ...

自適應(yīng)巡航不是用的pid,是另一種算法;定速巡航不太清楚
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2024-3-20 12:48 | 顯示全部樓層
首先,你要把PID里的微積分之類(lèi)的排除,雖然它是這么叫的,但它本質(zhì)上只有加法和簡(jiǎn)潔,除法
以溫度為例子
P就是比例,假設(shè)你設(shè)定的P為10,設(shè)定溫度為100度,當(dāng)前溫度為50
那么,這個(gè)時(shí)候,P項(xiàng)的輸出為: (100 - 50) * 10 = 500,這個(gè)500可能換算成PWM的占空比,或者是加熱功率,這其中的換算過(guò)程,可以認(rèn)為是在調(diào)試PID的過(guò)程
I就是積分項(xiàng),就是把誤差不斷的累加,累加的結(jié)果可能是正數(shù),也可能是負(fù)數(shù),再*I,加上P項(xiàng),就是一個(gè)PI輸出的結(jié)果了
這就是PI控制,這里面沒(méi)有說(shuō)到D項(xiàng),因?yàn)镻I控制能解決大多的問(wèn)題,一旦你理解了PI控制,自然就能理解PID控制了
回復(fù)

使用道具 舉報(bào)

ID:1110945 發(fā)表于 2024-3-20 13:32 | 顯示全部樓層
以前在網(wǎng)上抄的一段,記不清在哪兒抄的了。

pid算法詳細(xì)介紹
  一、PID算法簡(jiǎn)介
  在智能車(chē)競(jìng)賽中,要想讓智能車(chē)根據(jù)賽道的不斷變化靈活的行進(jìn),PID算法的采用很有意義。
  首先必須明確PID算法是基于反饋的。一般情況下,這個(gè)反饋就是速度傳感器返回給單片機(jī)當(dāng)前電機(jī)的轉(zhuǎn)速。簡(jiǎn)單的說(shuō),就是用這個(gè)反饋跟預(yù)設(shè)值進(jìn)行比較,如果轉(zhuǎn)速偏大,就減小電機(jī)兩端的電壓;相反,則增加電機(jī)兩端的電壓。
  顧名思義,P指是比例(Proportion),I指是積分(Integral),D指微分(Differential)。在電機(jī)調(diào)速系統(tǒng)中,輸入信號(hào)為正,要求電機(jī)正轉(zhuǎn)時(shí),反饋信號(hào)也為正(PID算法時(shí),誤差=輸入-反饋),同時(shí)電機(jī)轉(zhuǎn)速越高,反饋信號(hào)越大。要想搞懂PID算法的原理,首先必須先明白P,I,D各自的含義及控制規(guī)律:
  比例P:比例項(xiàng)部分其實(shí)就是對(duì)預(yù)設(shè)值和反饋值差值的發(fā)大倍數(shù)。舉個(gè)例子,假如原來(lái)電機(jī)兩端的電壓為U0,比例P為0.2,輸入值是800,而反饋值是1000,那么輸出到電機(jī)兩端的電壓應(yīng)變?yōu)閁0+0.2*(800-1000)。從而達(dá)到了調(diào)節(jié)速度的目的。顯然比例P越大時(shí),電機(jī)轉(zhuǎn)速回歸到輸入值的速度將更快,及調(diào)節(jié)靈敏度就越高。從而,加大P值,可以減少?gòu)姆欠(wěn)態(tài)到穩(wěn)態(tài)的時(shí)間。但是同時(shí)也可能造成電機(jī)轉(zhuǎn)速在預(yù)設(shè)值附近振蕩的情形,所以又引入積分I解決此問(wèn)題。
  積分I:顧名思義,積分項(xiàng)部分其實(shí)就是對(duì)預(yù)設(shè)值和反饋值之間的差值在時(shí)間上進(jìn)行累加。當(dāng)差值不是很大時(shí),為了不引起振蕩?梢韵茸岆姍C(jī)按原轉(zhuǎn)速繼續(xù)運(yùn)行。當(dāng)時(shí)要將這個(gè)差值用積分項(xiàng)累加。當(dāng)這個(gè)和累加到一定值時(shí),再一次性進(jìn)行處理。從而避免了振蕩現(xiàn)象的發(fā)生。可見(jiàn),積分項(xiàng)的調(diào)節(jié)存在明顯的滯后。而且I值越大,滯后效果越明顯。
  微分D:微分項(xiàng)部分其實(shí)就是求電機(jī)轉(zhuǎn)速的變化率。也就是前后兩次差值的差而已。也就是說(shuō),微分項(xiàng)是根據(jù)差值變化的速率,提前給出一個(gè)相應(yīng)的調(diào)節(jié)動(dòng)作。可見(jiàn)微分項(xiàng)的調(diào)節(jié)是超前的。并且D值越大,超前作用越明顯?梢栽谝欢ǔ潭壬暇彌_振蕩。比例項(xiàng)的作用僅是放大誤差的幅值,而目前需要增加的是“微分項(xiàng)”,它能預(yù)測(cè)誤差變化的趨勢(shì),這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控制作用等于零,甚至為負(fù)值,從而避免了被控量的嚴(yán)重超調(diào)。
  由各個(gè)參數(shù)的控制規(guī)律可知,比例P使反應(yīng)變快,微分D使反應(yīng)提前,積分I使反應(yīng)滯后。在一定范圍內(nèi),P,D值越大,調(diào)節(jié)的效果越好。
  二、PID調(diào)試一般原則
  a. 在輸出不振蕩時(shí),增大比例增益P。
  b. 在輸出不振蕩時(shí),減小積分時(shí)間常數(shù)Ti。
  c. 輸出不振蕩時(shí),增大微分時(shí)間常數(shù)Td。
  三、pid算法參數(shù)調(diào)整一般步驟
  a.確定比例增益P
  確定比例增益P 時(shí),首先去掉PID的積分項(xiàng)和微分項(xiàng),一般是令Ti=0、Td=0,PID為純比例調(diào)節(jié)。輸入設(shè)定為系統(tǒng)允許的最大值的60%~70%,由0逐漸加大比例增益P,直至系統(tǒng)出現(xiàn)振蕩;再反過(guò)來(lái),從此時(shí)的比例增益P逐漸減小,直至系統(tǒng)振蕩消失,記錄此時(shí)的比例增益P,設(shè)定PID的比例增益P為當(dāng)前值的60%~70%。比例增益P調(diào)試完成。
  b.確定積分時(shí)間常數(shù)Ti
  比例增益P確定后,設(shè)定一個(gè)較大的積分時(shí)間常數(shù)Ti的初值,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)振蕩,之后在反過(guò)來(lái),逐漸加大Ti,直至系統(tǒng)振蕩消失。記錄此時(shí)的Ti,設(shè)定PID的積分時(shí)間常數(shù)Ti為當(dāng)前值的150%~180%。積分時(shí)間常數(shù)Ti調(diào)試完成。
  c.確定積分時(shí)間常數(shù)Td
  積分時(shí)間常數(shù)Td一般不用設(shè)定,為0即可。若要設(shè)定,與確定 P和Ti的方法相同,取不振蕩時(shí)的30%。
  d.系統(tǒng)空載、帶載聯(lián)調(diào),再對(duì)PID參數(shù)進(jìn)行微調(diào),直至滿足要求
  找三個(gè)以上PID算法應(yīng)用實(shí)例,結(jié)合實(shí)例明確參數(shù)調(diào)試的方法以及參數(shù)的意義,同時(shí)給小組成員做介紹
  四、pid算法應(yīng)用環(huán)境
  當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),控制理論的其它技術(shù)難以采用時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來(lái)確定;(由于賽道的參數(shù)事先未知,所以只能根據(jù)實(shí)時(shí)采集到的賽道數(shù)據(jù)控制小車(chē)沿著賽道行進(jìn))。
  五、PID算法原理
  在工業(yè)應(yīng)用中PID及其衍生算法是應(yīng)用最廣泛的算法之一,是當(dāng)之無(wú)愧的萬(wàn)能算法,如果能夠熟練掌握PID算法的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,對(duì)于一般的研發(fā)人員來(lái)講,應(yīng)該是足夠應(yīng)對(duì)一般研發(fā)問(wèn)題了,而難能可貴的是,在我所接觸的控制算法當(dāng)中,PID控制算法又是最簡(jiǎn)單,最能體現(xiàn)反饋思想的控制算法,可謂經(jīng)典中的經(jīng)典。經(jīng)典的未必是復(fù)雜的,經(jīng)典的東西常常是簡(jiǎn)單的,而且是最簡(jiǎn)單的,想想牛頓的力學(xué)三大定律吧,想想愛(ài)因斯坦的質(zhì)能方程吧,何等的簡(jiǎn)單!簡(jiǎn)單的不是原始的,簡(jiǎn)單的也不是落后的,簡(jiǎn)單到了美的程度。先看看PID算法的一般形式:
  PID的流程簡(jiǎn)單到了不能再簡(jiǎn)單的程度,通過(guò)誤差信號(hào)控制被控量,而控制器本身就是比例、積分、微分三個(gè)環(huán)節(jié)的加和。這里我們規(guī)定(在t時(shí)刻):
  1.輸入量為rin(t);
  2.輸出量為rout(t);
  3.偏差量為err(t)=rin(t)-rout(t);
  pid的控制規(guī)律為
  理解一下這個(gè)公式,主要從下面幾個(gè)問(wèn)題著手,為了便于理解,把控制環(huán)境具體一下:
  1.規(guī)定這個(gè)流程是用來(lái)為直流電機(jī)調(diào)速的;
  2.輸入量rin(t)為電機(jī)轉(zhuǎn)速預(yù)定值;
  3.輸出量rout(t)為電機(jī)轉(zhuǎn)速實(shí)際值
  4.執(zhí)行器為直流電機(jī);
  5.傳感器為光電碼盤(pán),假設(shè)碼盤(pán)為10線;
  6.直流電機(jī)采用PWM調(diào)速轉(zhuǎn)速用單位轉(zhuǎn)/min表示;不難看出以下結(jié)論:
  1.輸入量rin(t)為電機(jī)轉(zhuǎn)速預(yù)定值(轉(zhuǎn)/min);2.輸出量rout(t)為電機(jī)轉(zhuǎn)速實(shí)際值(轉(zhuǎn)/min);3.偏差量為預(yù)定值和實(shí)際值之差(轉(zhuǎn)/min)
  六、PID算法應(yīng)用——線性控制原理
  PID控制的三要素:控制器,被控對(duì)象,反饋器。控制器就是一個(gè)數(shù)學(xué)模型,就PID來(lái)說(shuō),等同于PID算法。是對(duì)反饋量的一個(gè)處理與輸出。通俗的說(shuō)就是對(duì)于每個(gè)被控的量,我的輸出量通過(guò)什么函數(shù)式算出,或者說(shuō),我如何描述我的輸出量。現(xiàn)在我給定一個(gè)描述性的傳遞函數(shù)。從數(shù)學(xué)角度來(lái)看:它的自變量是反饋值,當(dāng)這個(gè)函數(shù)的對(duì)應(yīng)關(guān)系確定了之后,輸出量就是個(gè)定值了。我的希望是:這個(gè)描述函數(shù)是一個(gè)透明的空箱——它既能反映系統(tǒng)外部特性,又可以看到其內(nèi)部結(jié)構(gòu)。
  就拿比賽來(lái)說(shuō):假設(shè)我現(xiàn)在要構(gòu)建這樣一個(gè)閉環(huán)系統(tǒng),這個(gè)系統(tǒng)的反饋調(diào)節(jié)建立了一個(gè)描述函數(shù),最根本的在于:
  1 這個(gè)系統(tǒng)的動(dòng)態(tài)性從根本上講取決于哪些因素;2這些因素如何決定系統(tǒng)的性能;
  數(shù)學(xué)模型的描述:1 描述函數(shù)-》微分方程。描述函數(shù)的自變量與因變量滿足微分方程。(瞬間變化的關(guān)系式)
  2 將微分方程做一個(gè)處理,得出其特征方程,這個(gè)特征方程稱(chēng)作描述函數(shù)的極點(diǎn)。
  ps:下面簡(jiǎn)述一下極點(diǎn)和零點(diǎn)。對(duì)描述函數(shù)做拉普拉斯變換,將描述函數(shù)變換成一個(gè)與它本身相關(guān)的函數(shù),并找出其通解和特解,通解是這個(gè)函數(shù)的開(kāi)環(huán)特征,用來(lái)描述輸出與輸入的關(guān)系,零點(diǎn)是調(diào)節(jié)變量,用于閉環(huán)中對(duì)系統(tǒng)反饋參數(shù)的調(diào)節(jié)。(對(duì)函數(shù)做拉普拉斯變換事實(shí)上是針對(duì)描述大多函數(shù)是常微分方程的一種現(xiàn)象)
  我們有必要對(duì)這個(gè)描述函數(shù)的解進(jìn)行研究,盡管在線性控制原理中并不關(guān)注并不要求去了解他,但是對(duì)于這個(gè)常微分方程的極點(diǎn)形式的了解有助于我們認(rèn)識(shí)這個(gè)描述函數(shù)的物理意義。這是高數(shù)的知識(shí),就不再累述。通過(guò)求解,可以看到極點(diǎn)其實(shí)就是這個(gè)經(jīng)過(guò)拉普拉斯變換的描述函數(shù)的一次項(xiàng)的系數(shù),零點(diǎn)是反饋量的相關(guān)函數(shù)的系數(shù)。也就是說(shuō),極點(diǎn)一旦確定,這個(gè)函數(shù)也就確定了,對(duì)于每一個(gè)輸入函數(shù),賦予零點(diǎn)變換,再進(jìn)過(guò)極點(diǎn)變換 ,最后生成輸出量。
  把我們現(xiàn)在得到的結(jié)論聯(lián)系一下:對(duì)于一個(gè)閉環(huán)的系統(tǒng)我們通過(guò)對(duì)控制器一些參數(shù)的理論求解,或者說(shuō)調(diào)試求解,最終改變輸出變量,從而使這個(gè)系統(tǒng)持續(xù)穩(wěn)定。也就是說(shuō),在控制器內(nèi),存儲(chǔ)了有關(guān)于反饋值某種預(yù)期的實(shí)現(xiàn)方法,這些方法用一些固定的參數(shù)來(lái)描述,然后輸出變量改變系統(tǒng)的狀態(tài)。我的任務(wù)是調(diào)試這些具有物理意義的參數(shù)。
  下面是一個(gè)簡(jiǎn)單的PID程序設(shè)計(jì):
  double kp,ki,kd;
  double resultfunc(void)
    {
    double error;
    double diff;
    double lasterror = 0;
    error = target - input;
    sumerror += error;
    diff = error - lasterror;
    lasterror = error;
    output = kp * error + ki * sumerror + kd * diff;
    return output;
    }
  你會(huì)發(fā)現(xiàn)其實(shí)想象中的PID要比現(xiàn)實(shí)中的PID復(fù)雜很多,這是理所當(dāng)然的,因?yàn)榻?jīng)過(guò)PID數(shù)學(xué)計(jì)算之后,帶入的公式只是一個(gè)近似量。但是這可不是隨便瞎設(shè)的一個(gè)值,最重要的是,你需要數(shù)學(xué)計(jì)算。
  不得不說(shuō)一下,對(duì)于一個(gè)完全的門(mén)外漢來(lái)說(shuō),PID是一個(gè)十分高神的名詞,很多人一上手就接觸PID,結(jié)果連輸出輸入的到底是什么都搞不明白,其實(shí)不妨接觸一下線性控制的理論,這對(duì)于你的視野和思路有及其清晰的指導(dǎo)。
  參數(shù)整定尋最佳,從小到大順序查;
  先是比例后積分,最后才把微分加;
  曲線振蕩很頻繁,比例度盤(pán)要放大;
  曲線漂浮繞大彎,比例度盤(pán)往小扳;
  曲線偏離回復(fù)慢,積分時(shí)間往下降;
  曲線波動(dòng)周期長(zhǎng),積分時(shí)間再加長(zhǎng);
  曲線振蕩變很快,先把微分降下來(lái);
  動(dòng)差大來(lái)波動(dòng)慢,微分時(shí)間要加長(zhǎng);
  聯(lián)想曲線兩個(gè)波,前高后低4比1;
  一看二調(diào)多分析,調(diào)節(jié)質(zhì)量不會(huì)低。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-3-20 17:17 | 顯示全部樓層
樓上幾位從網(wǎng)上抄資料的都不知道PID算法本身非常簡(jiǎn)單,但是找出P、I、D三個(gè)參數(shù)的值,才是最難的。
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2024-3-20 22:40 | 顯示全部樓層
其實(shí)很簡(jiǎn)單。
error = SetPosition - position;  // 計(jì)算誤差
Integral += error;    // 計(jì)算誤差積分
pidTerm  = error * pGain + Integral * iGain - (position - PrePosition) * dGain; // 計(jì)算輸出
PrePosition = position;    // 保存當(dāng)前位置
回復(fù)

使用道具 舉報(bào)

ID:1113684 發(fā)表于 2024-3-21 13:43 | 顯示全部樓層
PID控制,全稱(chēng)比例-積分-微分控制,是一種廣泛應(yīng)用于工業(yè)控制系統(tǒng)和需要連續(xù)調(diào)制控制的其他各種應(yīng)用中的控制回路反饋機(jī)制。它的基本原理是根據(jù)被控對(duì)象的當(dāng)前狀態(tài)與設(shè)定值之間的差異來(lái)調(diào)整輸出信號(hào),使得差異趨近于零。PID控制器根據(jù)比例(P)、積分(I)、微分(D)三個(gè)部分的權(quán)重組合來(lái)計(jì)算輸出信號(hào),從而實(shí)現(xiàn)對(duì)被控對(duì)象的精確控制。

比例(P)控制:根據(jù)當(dāng)前誤差的大小來(lái)調(diào)整控制器的輸出。當(dāng)誤差較大時(shí),輸出信號(hào)也較大,從而加快被控對(duì)象的響應(yīng)速度。比例控制可以使系統(tǒng)快速接近設(shè)定值,但可能會(huì)引起超調(diào)和震蕩。
積分(I)控制:根據(jù)誤差隨時(shí)間累積的量來(lái)調(diào)整控制器的輸出。它能夠消除系統(tǒng)的穩(wěn)態(tài)誤差,確保系統(tǒng)最終穩(wěn)定在設(shè)定值附近。
微分(D)控制:根據(jù)誤差變化的速率來(lái)調(diào)整控制器的輸出。它能夠預(yù)測(cè)系統(tǒng)未來(lái)的狀態(tài)變化趨勢(shì),從而減小超調(diào)和提高系統(tǒng)的穩(wěn)定性。微分控制的引入可以抑制系統(tǒng)的震蕩,但同時(shí)也會(huì)增加系統(tǒng)對(duì)噪聲的敏感性。
PID控制器能夠自動(dòng)對(duì)控制功能進(jìn)行精確和及時(shí)的校正。例如,在汽車(chē)的巡航控制中,PID算法可以通過(guò)調(diào)整發(fā)動(dòng)機(jī)的功率輸出,以最小的延遲和過(guò)沖將測(cè)量的速度恢復(fù)到期望值。

總的來(lái)說(shuō),PID控制通過(guò)結(jié)合比例、積分和微分控制的特點(diǎn),實(shí)現(xiàn)對(duì)被控對(duì)象的快速、準(zhǔn)確和平穩(wěn)的控制,廣泛應(yīng)用于機(jī)電、冶金、機(jī)械、化工等行業(yè)。
#include <stdio.h>  
  
// 定義PID控制器結(jié)構(gòu)體  
typedef struct {  
    double setpoint;      // 設(shè)定值  
    double kp;            // 比例系數(shù)  
    double ki;            // 積分系數(shù)  
    double kd;            // 微分系數(shù)  
    double last_error;    // 上一次誤差  
    double integral;      // 誤差積分  
} PID_Controller;  
  
// PID控制函數(shù)  
double PID_Control(PID_Controller *pid, double feedback) {  
    double error = pid->setpoint - feedback;       // 計(jì)算誤差  
    double derivative = error - pid->last_error;   // 計(jì)算誤差的微分  
    pid->integral += error;                        // 累計(jì)誤差的積分  
    double output = pid->kp * error + pid->ki * pid->integral + pid->kd * derivative; // 計(jì)算輸出  
    pid->last_error = error;                       // 更新上一次誤差  
    return output;  
}  
  
int main() {  
    PID_Controller pid;  
    pid.setpoint = 1.0;          // 設(shè)定值為1.0  
    pid.kp = 0.5;               // 比例系數(shù)  
    pid.ki = 0.1;               // 積分系數(shù)  
    pid.kd = 0.01;              // 微分系數(shù)  
    pid.last_error = 0.0;  
    pid.integral = 0.0;  
  
    double feedback = 0.2;     // 初始反饋值  
    double output;  
  
    // 進(jìn)行PID控制  
    for (int i = 0; i < 10; i++) {  
        output = PID_Control(&pid, feedback);  
        printf("Step %d: Output = %f, Feedback = %f\n", i, output, feedback);  
        // 模擬系統(tǒng)響應(yīng),這里簡(jiǎn)單地假設(shè)系統(tǒng)響應(yīng)是輸出值的線性關(guān)系  
        feedback += output * 0.1;  
    }  
  
    return 0;  
}
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-3-21 16:50 | 顯示全部樓層
wdsoe 發(fā)表于 2024-3-21 13:43
PID控制,全稱(chēng)比例-積分-微分控制,是一種廣泛應(yīng)用于工業(yè)控制系統(tǒng)和需要連續(xù)調(diào)制控制的其他各種應(yīng)用中的控 ...

還是沒(méi)弄清楚P、I、D三個(gè)參數(shù)是怎么編出來(lái)的。
回復(fù)

使用道具 舉報(bào)

ID:891876 發(fā)表于 2024-3-21 20:19 | 顯示全部樓層
曉得個(gè)大概了,但還沒(méi)弄清楚原由,=不知道
回復(fù)

使用道具 舉報(bào)

ID:675030 發(fā)表于 2024-3-22 11:46 | 顯示全部樓層
加油初步理解有幫助:http://m.zg4o1577.cn/bbs/dpj-86786-1.html
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2024-3-22 12:54 | 顯示全部樓層
芙蓉焊料 發(fā)表于 2024-3-21 20:19
曉得個(gè)大概了,但還沒(méi)弄清楚原由,=不知道

不要去看網(wǎng)上那些帶一堆微積分公式的教程,那大多是抄人的,可能講解者自己都不知道什么叫PID
P就是比例控制,過(guò)大或者過(guò)小都不行
I就是誤差累加,這個(gè)累加是在程序運(yùn)行時(shí)候一直進(jìn)行的
PI的參數(shù)調(diào)節(jié)是一個(gè)工作量很大的過(guò)程,多調(diào)節(jié)幾次就能明白原理了
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-3-22 15:30 | 顯示全部樓層
Y_G_G 發(fā)表于 2024-3-22 12:54
不要去看網(wǎng)上那些帶一堆微積分公式的教程,那大多是抄人的,可能講解者自己都不知道什么叫PID
P就是比例控 ...

搜Ziegler-Nichols method,要求不是太高可以一次試出來(lái)。
回復(fù)

使用道具 舉報(bào)

ID:1055047 發(fā)表于 2024-3-26 12:48 | 顯示全部樓層
在比例、積分和微分的線性組合,構(gòu)成控制量u(t),稱(chēng)為:比例(Proportional)、積分(Integrating)和微分(Differentiation)控制,簡(jiǎn)稱(chēng)PID控制。比例作用P只與偏差成正比,積分作用I是偏差對(duì)時(shí)間的累積,而微分作用D是偏差的變化率。用一句形象的比喻,比例P代表著現(xiàn)在,積分I代表著過(guò)去,而微分D則代表著未來(lái)。
回復(fù)

使用道具 舉報(bào)

ID:993578 發(fā)表于 2024-3-26 17:05 | 顯示全部樓層

PID控制是一種常見(jiàn)的反饋控制算法,它通過(guò)比例(Proportional)、積分(Integral)、微分(Derivative)三個(gè)環(huán)節(jié)來(lái)調(diào)整控制器輸出,以便讓系統(tǒng)輸出盡可能接近期望值。簡(jiǎn)單來(lái)說(shuō),PID控制就是一個(gè)調(diào)節(jié)過(guò)程,它可以根據(jù)當(dāng)前值與目標(biāo)值之間的差異(偏差),動(dòng)態(tài)地調(diào)整輸出,以達(dá)到控制目標(biāo)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 韩日欧美| 日本不卡中文字幕 | 九九九九精品 | 日韩av一级 | 日日夜夜精品 | 视色网| 婷婷久久五月天 | 国产高清91 | 亚洲啪啪网 | 天天色天天爱 | 综合久久久 | 精品免费在线观看 | 99精品久久久久久中文字幕 | 91久久久久久久久 | 国产黄色录像 | 欧美精品二区三区四区免费看视频 | 在线婷婷 | 永久免费看mv网站入口亚洲 | 黄色片视频在线观看 | 亚洲男人av| 一区二区在线免费观看 | 久久性生活视频 | 亚洲国产成人av | 亚洲天天看 | 91在线精品李宗瑞 | 欧美日韩一二区 | 亚洲精品美女 | 免费黄色一级片 | 欧美三级精品 | 欧美日韩中文在线 | 日韩中文视频 | 国产精品成人免费视频 | 成人激情视频在线观看 | 三级网站免费 | 日本在线观看一区 | 成人小视频在线 | 免费在线播放av | 国产精品福利视频 | 一级片在线观看视频 | 黄色福利 | 高清乱码男女免费观看 |