當前位置:首頁 » 操作系統 » 基於pid演算法

基於pid演算法

發布時間: 2024-10-05 00:41:22

『壹』 基於PID演算法的單片機溫度控制系統設計(實現製冷效果)

看看我以前回答過的一個問題,或許有幫助。
所謂PID指的是Proportion-Integral-Differential。翻譯成中文是比例-積分-微分。
記住兩句話:
1、PID是經典控制(使用年代久遠)
2、PID是誤差控制()
壓縮泵轉速進行控制:
1、變頻器-作為壓縮機驅動;2、溫度感測器-作為輸出反饋。
PID怎麼對誤差控制,聽我細細道來:
所謂「誤差」就是命令與輸出的差值。比如你希望控制壓縮機轉速為1500轉(「命令電壓」=6V),而事實上控制壓縮機轉速只有1000轉(「輸出電壓」=4V),則誤差: e=500轉(對應電壓2V)。如果泵實際轉速為2000轉,則誤差e=-500轉(注意正負號)。
該誤差值送到PID控制器,作為PID控制器的輸入。PID控制器的輸出為:誤差乘比例系數Kp+Ki*誤差積分+Kd*誤差微分。
Kp*e + Ki*∫edt + Kd*(de/dt) (式中的t為時間,即對時間積分、微分)
上式為三項求和(希望你能看懂),PID結果後送入電機變頻器或驅動器。
從上式看出,如果沒有誤差,即e=0,則Kp*e=0;Kd*(de/dt)=0;而Ki*∫edt 不一定為0。三項之和不一定為0。
總之,如果「誤差」存在,PID就會對變頻器作調整,直到誤差=0。
評價一個控制系統是否優越,有三個指標:快、穩、准。
所謂快,就是要使壓力能快速地達到「命令值」(不知道你的系統要求多少時間)
所謂穩,就是要壓力穩定不波動或波動量小(不知道你的系統允許多大波動)
所謂准,就是要求「命令值」與「輸出值」之間的誤差e小(不知道你的系統允許多大誤差)
對於你的系統來說,要求「快」的話,可以增大Kp、Ki值
要求「准」的話,可以增大Ki值
要求「穩」的話,可以增大Kd值,可以減少壓力波動
仔細分析可以得知:這三個指標是相互矛盾的。
如果太「快」,可能導致不「穩」;
如果太「穩」,可能導致不「快」;
只要系統穩定且存在積分Ki,該系統在靜態是沒有誤差的(會存在動態誤差);
所謂動態誤差,指當「命令值」不為恆值時,「輸出值」跟不上「命令值」而存在的誤差。不管是誰設計的、再好的系統都存在動態誤差,動態誤差體現的是系統的跟蹤特性,比如說,有的音響功放對高頻聲音不敏感,就說困廳明功放跟蹤性能不好。
調整PID參數有兩種方法:1、模擬法;2、「試湊法」
模擬法我想你是不會的,介紹一下「試湊法」
「試湊法」設置PID參數的建議步驟:
1、把Ki與Kd設為0,不要積分與微分;
2、把Kp值從0開始慢慢增大,觀察壓力的反應速度是否在你的要求內;
3、當壓力的反應速度達到擾賣你的要求,停止增大Kp值;
4、在該Kp值的基礎上減少10%;
5、把Ki值從0開始慢慢增大;
6、當壓力開始波動,停止增大Ki值;
7、在該Ki值的基礎上減少10%;
8、把Kd值從0開始慢慢緩尺逗增大,觀察壓力的反應速度是否在你的要求內;

『貳』 什麼是PID演算法——超級實用的PID演算法和PID控制原理

PID控制原理和特點
在工程實際中,最廣泛應用的調節器控制規律是比例、積分、微分控制,即PID控制,又稱PID調節。PID控制器自問世以來已有近70年的歷史,因其結構簡單、穩定性好、可靠性高、調節方便,已成為工業控制領域的主要技術之一。對於那些結構和參數不完全掌握,或無法獲得精確數學模型的被控對象,控制理論的其他技術難以應用,此時PID控制技術顯得尤為合適。它依賴於經驗和現場調試來確定控制器結構和參數,特別適用於這些情況。
PID控制的應用
PID控制包括比例控制(P)、積分控制(I)和微分控制(D)。PID控制器通過計算系統誤差,並利用比例、積分、微分計算出控制量以進行控制。
1. 比例控制(P):比例控制是最常用的控制手段之一。例如,在控制加熱器恆溫100度時,開始加熱時與目標溫度相差較大,通常會加大加熱以快速升溫。當溫度超過100度時,關閉輸出。比例控制函數為e(t) = SP – y(t) – u(t),其中e(t)是誤差,y(t)是反饋值,u(t)是輸出值,P是比例系數。對於滯後性不大的控制對象,比例控制可以滿足控制要求。
2. 比例積分控制(PI):比例積分控制是對比例控制的一種改進,以解決比例控制可能出現的靜態誤差問題。PI控制器的公式有多種,標准公式如下:u(t) = Kp*e(t) + Ki∑e(t) + u0。其中,u(t)是輸出,Kp是比例放大系數,Ki是積分放大系數,e(t)是誤差,u0是控制量基準值。積分項是歷史誤差的累積值,可以解決比例控制無法消除靜態誤差的問題。
PID演算法的控制點目前包括三種基本的PID演算法:增量式演算法、位置式演算法和微分先行演算法。這三種演算法各有特點,通常能滿足大部分控制需求。
1. 增量式PID演算法:其離散化公式為u(t) = Δu(t) + u(t-1),其中Δu(t) = q0e(t) + q1e(t-1) + q2e(t-2),q0、q1、q2的值根據|e(t)|與β的關系確定。
2. 積分分離法:其離散化公式為u(t) = u(t-1) + Δu(t),其中Δu(t)根據|e(t)|與β的關系確定q0、q1、q2的值。
3. 微分先行PID演算法:其離散化公式為u(t) = Kp*e(t) + Ki∑e(t) + Kd + u0。
PID調試過程中應注意的步驟:
1. 關閉I和D,僅使用P,加大P值直至系統產生振盪。
2. 減小P值至系統處於臨界振盪狀態。
3. 打開I,調整至系統達到目標值。
4. 重新上電檢查超調量、振盪和穩定時間是否符合要求。
5. 根據超調和振盪情況適當增加微分項。
6. 所有調試應在最大負載情況下進行,以確保在整個工作范圍內有效。
PID控制器參數整定是控制系統設計的核心。它涉及確定PID控制器的比例系數、積分時間和微分時間。參數整定方法有兩種:理論計算整定法和工程整定法。工程整定法簡單易行,依賴於工程經驗,在實際中被廣泛採用。常用的工程整定方法包括臨界比例法、反應曲線法和衰減法。這些方法都依賴於試驗和工程經驗來確定控制器參數,但最終參數仍需在實際運行中進行調整和完善。目前,臨界比例法被廣泛採用。

『叄』 基於Matlab的PID控制演算法設計及參數分析解決什麼樣的實際問題

基於MATLAB的PID控制演算法設計及參數分析可以用來解決許多實際問題,例如:
1. 機器人控制:PID控制演算法可以用於控制機器人的位置、速度和姿態等參數,實現精確控制和定位。
2. 溫度控制:PID控制演算法可以用於控制溫度,例如控制溫室溫度、實驗室溫度或工業製造中的加熱或冷卻過程。
3. 電機控制:PID控制演算法可以用於控制電機的轉速、位置和力矩等參數,例如電動汽車、電梯、工業機器人等領域。
4. 液位控制:PID控制演算法可以用於控制液位,例如在水處理系統中控制水位、油罐中的油位等。
在PID控制中,P代表比例項,I代表積分項,D代表微分項。通過調整這三個參數,可以實現控制系統的穩定性、響應速度和抗干擾性等要求。MATLAB提供了豐富的PID控制工具箱,可以幫助用戶快速設計和調試PID控制器,並進行參數分析和優化。

『肆』 一文搞懂PID控制演算法

PID演算法是工業應用中最廣泛演算法之一,在閉環系統的控制中,可自動對控制系統進行准確且迅速的校正。PID演算法已經有100多年歷史,在四軸飛行器,平衡小車、汽車定速巡航、溫度控制器等場景均有應用。

之前做過循跡車項目,簡單循跡搖擺幅度較大,效果如下所示:

PID演算法優化後,循跡穩定性能較大提升,效果如下所示:

PID演算法:就是「比例(proportional)、積分(integral)、微分(derivative)」,是一種常見的「保持穩定」控制演算法。

常規的模擬PID控制系統原理框圖如下所示:

因此可以得出e(t)和u(t)的關系:

其中:

Kp:比例增益,是調適參數;

Ki:積分增益,也是調適參數;

Kd:微分增益,也是調適參數;

e:誤差=設定值(SP)- 回授值(PV);

t:目前時間。

數學公式可能比較枯燥,通過以下例子,了解PID演算法的應用。

例如,使用控制器使一鍋水的溫度保持在50℃,小於50℃就讓它加熱,大於50度就斷電不就行了?

沒錯,在要求不高的情況下,確實可以這么干,如果換一種說法,你就知道問題出在哪裡了。

如果控制對象是一輛汽車呢?要是希望汽車的車速保持在50km/h不動,這種方法就存在問題了。

設想一下,假如汽車的定速巡航電腦在某一時間測到車速是45km/h,它立刻命令發動機:加速!

結果,發動機那邊突然來了個100%全油門,嗡的一下汽車急加速到了60km/h,這時電腦又發出命令:剎車!結果乘客吐......

所以,在大多數場合中,用「開關量」來控制一個物理量就顯得比較簡單粗暴了,有時候是無法保持穩定的,因為單片機、感測器不是無限快的,採集、控制需要時間。

而且,控制對象具有慣性,比如將熱水控制器拔掉,它的「余熱」即熱慣性可能還會使水溫繼續升高一小會。

此時就需要使用PID控制演算法了。

接著咱再來詳細了解PID控制演算法的三個最基本的參數:Kp比例增益、Ki積分增益、Kd微分增益。

1、Kp比例增益

Kp比例控制考慮當前誤差,誤差值和一個正值的常數Kp(表示比例)相乘。需要控制的量,比如水溫,有它現在的 當前值 ,也有我們期望的 目標值 。

當兩者差距不大時,就讓加熱器「輕輕地」加熱一下。

要是因為某些原因,溫度降低了很多,就讓加熱器「稍稍用力」加熱一下。

要是當前溫度比目標溫度低得多,就讓加熱器「開足馬力」加熱,盡快讓水溫到達目標附近。

這就是P的作用,跟開關控制方法相比,是不是「溫文爾雅」了很多。

實際寫程序時,就讓偏差(目標減去當前)與調節裝置的「調節力度」,建立一個一次函數的關系,就可以實現最基本的「比例」控制了~

Kp越大,調節作用越激進,Kp調小會讓調節作用更保守。

若你正在製作一個平衡車,有了P的作用,你會發現,平衡車在平衡角度附近來回「狂抖」,比較難穩住。

2、Kd微分增益

Kd微分控制考慮將來誤差,計算誤差的一階導,並和一個正值的常數Kd相乘。

有了P的作用,不難發現,只有P好像不能讓平衡車站起來,水溫也控製得晃晃悠悠,好像整個系統不是特別穩定,總是在「抖動」。

設想有一個彈簧:現在在平衡位置上,拉它一下,然後鬆手,這時它會震盪起來,因為阻力很小,它可能會震盪很長時間,才會重新停在平衡位置。

請想像一下:要是把上圖所示的系統浸沒在水裡,同樣拉它一下 :這種情況下,重新停在平衡位置的時間就短得多。

此時需要一個控製作用,讓被控制的物理量的「變化速度」趨於0,即類似於「阻尼」的作用。

因為,當比較接近目標時,P的控製作用就比較小了,越接近目標,P的作用越溫柔,有很多內在的或者外部的因素,使控制量發生小范圍的擺動。

D的作用就是讓物理量的速度趨於0,只要什麼時候,這個量具有了速度,D就向相反的方向用力,盡力剎住這個變化。

Kd參數越大,向速度相反方向剎車的力道就越強,如果是平衡小車,加上P和D兩種控製作用,如果參數調節合適,它應該可以站起來了。

3、Ki積分增益

Ki積分控制考慮過去誤差,將誤差值過去一段時間和(誤差和)乘以一個正值的常數Ki。

還是以熱水為例,假如有個人把加熱裝置帶到了非常冷的地方,開始燒水了,需要燒到50℃。

在P的作用下,水溫慢慢升高,直到升高到45℃時,他發現了一個不好的事情:天氣太冷,水散熱的速度,和P控制的加熱的速度相等了。

這可怎麼辦?

P兄這樣想:我和目標已經很近了,只需要輕輕加熱就可以了。

D兄這樣想:加熱和散熱相等,溫度沒有波動,我好像不用調整什麼。

於是,水溫永遠地停留在45℃,永遠到不了50℃。

根據常識,我們知道,應該進一步增加加熱的功率,可是增加多少該如何計算呢?

前輩科學家們想到的方法是真的巧妙,設置一個積分量,只要偏差存在,就不斷地對偏差進行積分(累加),並反應在調節力度上。

這樣一來,即使45℃和50℃相差不是太大,但是隨著時間的推移,只要沒達到目標溫度,這個積分量就不斷增加,系統就會慢慢意識到:還沒有到達目標溫度,該增加功率啦!

到了目標溫度後,假設溫度沒有波動,積分值就不會再變動,這時,加熱功率仍然等於散熱功率,但是,溫度是穩穩的50℃。

Ki的值越大,積分時乘的系數就越大,積分效果越明顯,所以,I的作用就是,減小靜態情況下的誤差,讓受控物理量盡可能接近目標值。

I在使用時還有個問題:需要設定積分限制,防止在剛開始加熱時,就把積分量積得太大,難以控制。

PID演算法的參數調試是指通過調整控制參數(比例增益、積分增益/時間、微分增益/時間) 讓系統達到最佳的控制效果 。

調試中穩定性(不會有發散性的震盪)是首要條件,此外,不同系統有不同的行為,不同的應用其需求也不同,而且這些需求還可能會互相沖突。

PID演算法只有三個參數,在原理上容易說明,但PID演算法參數調試是一個困難的工作,因為要符合一些特別的判據,而且PID控制有其限制存在。

1、穩定性

若PID演算法控制器的參數未挑選妥當,其控制器輸出可能是不穩定的,也就是其輸出發散,過程中可能有震盪,也可能沒有震盪,且其輸出只受飽和或是機械損壞等原因所限制。不穩定一般是因為過大增益造成,特別是針對延遲時間很長的系統。

2、最佳性能

PID控制器的最佳性能可能和針對過程變化或是設定值變化有關,也會隨應用而不同。

兩個基本的需求是調整能力(regulation,干擾拒絕,使系統維持在設定值)及命令追隨 (設定值變化下,控制器輸出追隨設定值的反應速度)。有關命令追隨的一些判據包括有上升時間及整定時間。有些應用可能因為安全考量,不允許輸出超過設定值,也有些應用要求在到達設定值過程中的能量可以最小化。

3、各調試方法對比

4、調整PID參數對系統的影響

熱點內容
啟動ftp的命令是 發布:2024-11-24 09:12:33 瀏覽:601
腳本爬取數據 發布:2024-11-24 09:11:50 瀏覽:273
加密機制協議的是 發布:2024-11-24 09:11:47 瀏覽:826
易語言靜態編譯dll 發布:2024-11-24 09:11:43 瀏覽:583
cf游戲里最低配置怎麼調 發布:2024-11-24 09:02:51 瀏覽:81
java排序演算法效率 發布:2024-11-24 08:59:06 瀏覽:145
安卓vivo藍牙耳機掉了一隻怎麼找 發布:2024-11-24 08:45:28 瀏覽:847
加油站腳本 發布:2024-11-24 08:44:02 瀏覽:434
絕地求生和cod哪個更吃配置 發布:2024-11-24 08:42:36 瀏覽:945
在哪裡可以下載小游戲安卓版 發布:2024-11-24 08:42:30 瀏覽:692