<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

帶PID的數字輸出控制示例解析

要長高 ? 來源:labcenter ? 作者:labcenter ? 2023-11-28 12:25 ? 次閱讀

PID控制是一種算法,用于控制輸出,以便將某個過程保持在精確值。一些例子包括:

控制船上的舵的位置以便駛向特定的方向。

控制提供給加熱元件的功率,以保持特定的溫度。

控制汽車的發動機油門以保持特定的速度(“巡航控制”)。

控制飛機副翼的位置以保持特定的旋轉速度。

控制水處理廠中化學藥品加入水流的速度。

PID有三個變量,即輸入、輸出和設定值。PID算法控制輸出,以使輸入與設定值相匹配。

例如,在控制船舵以駛向特定航向的場景中:

輸入是指南針或GPS航向。

設定點是期望的航向。

輸出是舵角。

輸入和設定點之間的差異稱為誤差,PID算法旨在消除過程中的誤差。為了理解為什么需要PID,讓我們先來看看更簡單的過程控制方法。

棒棒控制

Bang-bang控制是一種數字形式的控制,輸出要么完全打開(最大值),要么完全關閉(最小值),兩者之間沒有任何東西。當輸出也是數字時,這種控制似乎更直觀;例如完全打開或關閉的閥門,或者可以打開或關閉的空調。使用空調的例子,輸入將由溫度傳感器提供,并且設定點將是要保持的期望溫度。算法很簡單:

If the measured temperature is above the setpoint then we turn the air-conditioner on, otherwise we switch it off.對于某些應用程序,這可能工作得很好。然而,對于其他人來說,可能會遇到兩個問題中的一個或兩個:

設定點附近的讀數快速變化。

第一個問題是在設定點附近相對快速波動的讀數。例如,假設設定值為20 ℃,根據房間周圍的氣流或溫度傳感器的穩定性,讀數可能在例如20.1℃和20.0℃之間波動;每次溫度讀數僅比設定值高0.1°C時,空調就會再次打開,一旦讀數再次達到20.0°C時,空調就會再次關閉。這可能會很快發生,這既會讓房間里的人感到討厭,也可能會損壞空調。。如果制冷和制熱都可用,我們可以想象一個場景,溫度在19.9°C和20.1°C之間波動,空調和加熱器相對快速地開關——兩者互相干擾,浪費能源。

解決方案是在設定點附近增加一些延遲或緩沖,這稱為滯后。在我們的例子中,2°C的滯后意味著一旦溫度達到20°C并且空調關閉,那么空調不會再次打開,直到溫度再次上升到22°C。如果也有暖氣,那么在溫度降到18°C之前,暖氣不會打開(但是一旦打開,在溫度升到20°C之前不會再次關閉)。

過沖。

可能遇到的第二個問題是超調。指令輸出和輸入測量輸出指令結果之間存在延遲時,通常會出現過沖。以在水處理廠向水流中添加化學物質為例:化學物質需要一段時間才能溶解到水中,因此我們只能在添加化學物質的下游一點點處測量結果,也許是pH值,也就是說,在這個過程中會有一些延遲。比方說,我們開始時pH值有點太低,所以我們打開閥門向水中添加堿,以便使pH值升高一點;這開始起作用,但是當我們在傳感器上讀取pH中性值并關閉閥門時,大量的堿已經被添加到上游,傳感器讀數遠遠超過中性值,我們開始獲得非常高的pH值讀數;現在,系統通過打開閥門向水中添加酸來對高pH讀數做出反應,以便再次降低pH值——但當這種影響到達傳感器時,我們再次超過中性,讀數再次變得過低……該過程重復,輸出繼續在設定點附近擺動——可能比觸發糾正反應的原始誤差幅度更大。

如果我們看看控制船舵位置或汽車發動機油門位置的例子,那么同樣更直觀明顯的是,需要一個比bang-bang更好的控制系統——如果只需要一個小的航向修正,我們不想將船舵擺動到最右(右舷)或最左(左舷);或者讓汽車油門在踏板到金屬和完全關閉之間擺動——我們需要介于兩者之間的東西。

比例控制

比例控制(PID中的P)只做它所說的,并且控制輸出與輸入和設定點之間的差值成比例(與誤差成比例)。如果輸入和設定值之間的差異很小,那么我們僅對輸出進行小的調整,如果差異很大,那么我們對輸出進行大的調整。如果船只是稍微偏離了航向,那么我們只是稍微轉動一下方向舵——我們不會把它轉到底。對于某些系統來說,比例控制可能就是所需要的。然而,對于其他系統,會遇到下一種問題:

積分

使用比例控制時,幾乎總是會有一定程度的穩態誤差,這意味著系統不會完全達到設定值,因為接近設定值的比例控制量太小,不足以克服影響系統的某些偏差(可能是電流或風)。在下圖中,過程穩定在設定值以下一點。

wKgZomVlaxWAAqnIAAATiN1Am4U192.png

PID的積分(I)部分查看系統偏離設定值多長時間,并提升輸出以克服該偏差。例如,如果汽車上的巡航控制設置為60英里/小時,但僅使用比例控制時,速度停留在57英里/小時(由于空氣或其他阻力),那么PID的“積分”部分將隨著時間的推移增加發動機功率,以使速度達到60英里/小時的設置。同樣,對于某些控制器來說,PI控制可能就是全部所需。然而,在穩定之前,PI本身傾向于在設定點附近至少有一些過沖和振蕩,特別是當設定點和輸入讀數之間存在大的初始差異時(例如在啟動時或當對設定點進行大的調整時),因為PID的積分部分將在過渡期間累積所有的誤差,并因此變大(比需要的更大),并且沒有任何其他東西來抑制它,那么將再次減小它的唯一事情將是在相反方向上的一些累積誤差。PID的D部分解決了這個問題:

導數

微分(PID中的D)元件通過根據其接近設定值的速度來緩和/抑制輸出,從而最小化或消除過沖;如果輸入讀數非??斓叵蛟O定值移動,那么PID的微分部分將促使輸出變緩,以便最小化或消除過沖。在數學中,曲線的導數是曲線在特定點的角度或梯度,即變化率,這就是這個術語的含義。在下圖中,紅線代表陡峭的梯度(這將導致PID算法中的大D校正),藍線代表淺梯度(這將導致PID算法中的小D校正)。

wKgaomVlayGAfkWFAAALCc0Q9xk624.png

調諧

PID算法中的每個元素——比例元素、積分元素和微分元素——都可以調整或加權,使其在算法中產生更大或更小的影響,正確的值因應用而異。PID調節是一個很深的主題,其全部深度超出了本文的范圍,但是很好地理解P、I和D中每個元素的作用是一個很好的起點。選項包括為特定類型的流程、手動調整和模擬查找一些默認值。

手動調諧主要包括按順序調諧P、I和D元件:

首先,I和D權重設置為零,P權重增加,直到系統開始在設定點附近振蕩。然后,P權重被設置為該值的一半。

接下來,增加I權重,直到任何穩態誤差被足夠快地校正,但是不要太多以至于系統變得不穩定。

最后,增加D權重,直到任何過沖都被充分抑制,但沒有抑制到系統響應遲緩甚至變得不穩定(尤其是在輸入中有一些噪聲的情況下會發生這種情況)。

帶PID的數字輸出控制

如果PID控制的輸出是數字的,例如繼電器或電磁閥,則可以使用脈寬調制等技術將數字輸出有效地轉換為模擬輸出。PWM頻率根據應用來選擇,并且取決于系統,可以實施額外的約束,例如僅在占空比高于特定水平時才切換輸出。

這是一個使用PICCOLO微控制器的烤箱PID控制示例,在中模擬變形VSM.

wKgaomVlazKAJzQnAALCe9X1hQ8999.png

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 繼電器
    +關注

    關注

    131

    文章

    5060

    瀏覽量

    146602
  • 電磁閥
    +關注

    關注

    14

    文章

    488

    瀏覽量

    30869
  • PID
    PID
    +關注

    關注

    35

    文章

    1448

    瀏覽量

    84166
  • 脈寬調制
    +關注

    關注

    3

    文章

    208

    瀏覽量

    38081
  • PID控制
    +關注

    關注

    10

    文章

    444

    瀏覽量

    39743
收藏 人收藏

    評論

    相關推薦

    初步解析飛思卡爾控制電機PID算法代碼

    分享一篇在其他地方看的分享的飛思卡爾控制電機PID算法代碼解析的,寫得非常的好。PID實指“比例proportional”、“積分integral”、“微分derivative” ,
    發表于 11-04 11:59

    請問哪個系列的DSP的 C∕C++ 頭文件和外設示例PID控制的例程呢?

    最近在做一個數字電源,需要用到PID控制輸出電壓的穩定。請問哪一個型號的DSP的C∕C++ 頭文件和外設示例
    發表于 05-14 04:46

    PID增量控制示例程序參考

    示例程序參考PID增量控制#include"Pid_Init.h"#include"main.h"extern u16 out;extern u16
    發表于 09-07 09:34

    數字PID控制技術

    數字PID控制技術 數字PID控制在生活過程中是一種最普遍采用的
    發表于 04-28 14:09 ?49次下載

    數字PID控制實驗

    數字PID控制實驗 Ⅰ 標準PID 控制算法一.實驗要求1. 了解和掌握連續控制系統的
    發表于 05-15 00:18 ?7810次閱讀
    <b class='flag-5'>數字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>實驗

    數字PID控制算法講解

    數字PID控制算法是將模擬PID離散化得到,各參數有著明顯的物理意義,調整方便,所以PID控制
    發表于 01-16 16:27 ?903次下載
    <b class='flag-5'>數字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>算法講解

    基于C語言的數字PID控制算法

    目前隨著控制理論和電子技術的發展,數字PID控制正逐漸取代模擬PID控制,并逐步成為現代工業
    發表于 02-13 17:59 ?443次下載
    基于C語言的<b class='flag-5'>數字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>算法

    數字PID控制

    數字PID控制,非常有用的資料,有需要的下來看看。
    發表于 04-01 15:19 ?0次下載

    數字PID控制

    數字PID控制
    發表于 01-24 15:41 ?14次下載

    pid控制器的輸入輸出_PID控制器的控制實現

    本文首先介紹的是PID控制器的工作原理,其次介紹的是pid控制器的輸入輸出,最后介紹了PID
    的頭像 發表于 06-01 09:09 ?2.7w次閱讀

    數字PID控制算法教程之如何對標準PID算法進行改進

    本文檔的主要內容詳細介紹的是數字PID控制算法教程之如何對標準PID算法進行改進主要內容包括了:對標準PID算法的改進,飽和問題及其抑制,
    發表于 12-04 08:00 ?15次下載
    <b class='flag-5'>數字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>算法教程之如何對標準<b class='flag-5'>PID</b>算法進行改進

    如何使用DSP進行數字PID控制器的設計

    基于數字信號處理器(DSP)TMS320I F 2407和外接D/A轉換芯片,實現數字PID控制器,采用的PID
    發表于 01-02 16:30 ?34次下載
    如何使用DSP進行<b class='flag-5'>數字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>器的設計

    數字PID控制的原理

    數字PID控制的原理 自從計算機和各類微控制器芯片進入控制領域以來,用計算機或微控制器芯片取代模
    發表于 03-09 14:23 ?1644次閱讀
    <b class='flag-5'>數字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>的原理

    使用C語言編寫的熱水器控制溫度的PID算法示例

    以下是一個使用C語言編寫的熱水器控制溫度的PID算法示例
    的頭像 發表于 09-28 17:14 ?1960次閱讀
    使用C語言編寫的熱水器<b class='flag-5'>控制</b>溫度的<b class='flag-5'>PID</b>算法<b class='flag-5'>示例</b>

    控制算法PID之比例控制(P)的原理和示例代碼

    PID是“比例-積分-微分”的縮寫,是一種廣泛用于控制系統的反饋控制算法。PID控制器根據測量值與期望值之間的誤差來調整
    的頭像 發表于 11-01 08:00 ?1290次閱讀
    <b class='flag-5'>控制</b>算法<b class='flag-5'>PID</b>之比例<b class='flag-5'>控制</b>(P)的原理和<b class='flag-5'>示例</b>代碼
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>