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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2504|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

零基礎(chǔ)制作平衡小車【連載】6---PID參數(shù)的分析

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:223481 發(fā)表于 2020-12-1 15:34 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

上一節(jié)我們知道了什么是位式控制,這節(jié)就正式進(jìn)入PID的學(xué)習(xí)。

簡單畫了一個系統(tǒng)的控制流程圖:


系統(tǒng)說明:
假設(shè)該系統(tǒng)是一個溫控系統(tǒng),用戶可設(shè)定目標(biāo)值Sv,單片機(jī)檢測了用戶輸入的值之后,通過PID算法進(jìn)行計算,得出一個值去輸出PWM,PWM去控制加熱絲的電源,加熱絲就是被控對象。加熱絲旁邊有個溫度傳感器,可以實時監(jiān)測加熱絲的溫度,并反饋給單片機(jī)一個當(dāng)前的溫度值Pv。之后單片機(jī)將Sv和Pv進(jìn)行PID運(yùn)算,根據(jù)計算結(jié)果再次改變PWM的值,就這樣以此循環(huán)下去。

第一個時間點采樣值為X1,第二個時間點采樣值為X2,以此類推第k-1個采樣點采樣值為Xk-1,第k個采樣點采樣值為Xk。那么將從第一個時間點采樣的值到第k個采樣值排成一個序列如下:
X1 、 X2 、 X3 、、、 Xk-2 、 Xk-1 、Xk

P 比例

P,大家都知道是比例運(yùn)算。比例運(yùn)算是根據(jù)當(dāng)前傳感器采集的值Pv和用戶設(shè)定的目標(biāo)值Sv進(jìn)行比較之后,做一個比例輸出,假設(shè)當(dāng)前誤差Ek = Sv - Xk,那么在單獨(dú)使用P運(yùn)算時,會輸出:


這就會產(chǎn)生三種運(yùn)算結(jié)果:
1.
當(dāng)Ek > 0; => 系統(tǒng)沒有達(dá)到目標(biāo)值 => 差值為正,當(dāng)差值較大時,也就是當(dāng)前測量值和目標(biāo)值相差甚遠(yuǎn)的時候,這就會使得OUTp的值變大,OUTp的值是控制PWM的占空比的。OUTp的值越大,占空比越大,平均電壓值越高,加熱絲加熱越快,使得當(dāng)前值以最快的速度接近目標(biāo)值,當(dāng)差值較小時則相反;
2.
當(dāng)Ek = 0; => 系統(tǒng)已經(jīng)達(dá)到目標(biāo)值 => 差值為0,也就是當(dāng)前測量值和目標(biāo)值相差為0的時候,這就會使得OUTp的值為0,OUTp的值是控制PWM的占空比的。OUTp的值為0,占空比為0,平均電壓值越也就為0,加熱絲不在進(jìn)行加熱,此時加熱絲已經(jīng)不受控制,不受控制就容易受外界影響而改變溫度;
3.
當(dāng)Ek < 0; => 系統(tǒng)超過目標(biāo)值 => 差值為負(fù),也就是當(dāng)前測量值已經(jīng)超過目標(biāo)值,PWM不可能輸出負(fù)的,因此只能不在輸出PWM,加熱絲也會處于不受控的狀態(tài)。

從運(yùn)算結(jié)果可得出以下幾個結(jié)論:
1.只有當(dāng)系統(tǒng)存在誤差了,我才控制你,如果沒有誤差我就不控制了,也就是說單獨(dú)的P運(yùn)算是個一直有誤差的運(yùn)算,也就是靜態(tài)誤差
2.當(dāng)前值和目標(biāo)值相差越大,我輸出就越大,相差越小,我輸出就小,也就是說P可以加快被控對象達(dá)到目標(biāo)設(shè)定值
3.P運(yùn)算只和當(dāng)前值作比較,也就說P控制的是當(dāng)前的狀態(tài)

以上就是P的特點。

優(yōu)化:
在沒有誤差的情況下為了還能控制被控對象,往往會在后面加一個常量OUT0:


也就是說當(dāng)沒有誤差時,K*Ek=0,但我最后的輸出OUTp = OUT0,還能控制被控對象,但是OUT0該設(shè)置多少就要看實際情況了,只能說有改善,但是很雞肋。如果環(huán)境變化很大,OUT0形同虛設(shè)。

I 積分

將每個采樣時間點的值和目標(biāo)設(shè)定值做一個差值,就能得出每次采樣的誤差值。第一個采樣時間點的差值E1 = Sv - X1,第二個時間點的差值E2 = Sv - X2,以此循環(huán),第k-1個時間點的差值Ek-1 = Sv - Xk-1,第k個時間點的差值Ek = Sv - Xk,排成序列如下:

E1 、 E2 、 E3 、、、 Ek-2 、 Ek-1 、Ek

那么我們來看看將這些歷史誤差加到一起會有什么結(jié)論

Sk = E1 + E2 + E3 +++ Ek-2 + Ek-1 + Ek

Sk的值也會產(chǎn)生三種運(yùn)算結(jié)果:
1.
當(dāng)Sk > 0; => 所有正數(shù)的和的絕對值比所有負(fù)數(shù)的和的絕對值要大 => 從E1到Ek這么多數(shù)中,為正的個數(shù)多于為負(fù)的個數(shù) => 也就是說在歷史采樣k次中,大多數(shù)是采樣到系統(tǒng)沒有達(dá)到目標(biāo)值的。因為Ek >
0說明Sv > Xk , 說明系統(tǒng)沒有達(dá)到目標(biāo)值
2.
當(dāng)Sk = 0; => 所有正數(shù)的和的絕對值等于所有負(fù)數(shù)的和的絕對值 => 從E1到Ek這么多數(shù)中,為正的個數(shù)等于為負(fù)的個數(shù) => 也就是說在歷史采樣k次中,剛好沒有達(dá)到目標(biāo)值的次數(shù)和達(dá)到目標(biāo)值的次數(shù)相等
3.
當(dāng)Sk < 0; => 所有正數(shù)的和的絕對值比所有負(fù)數(shù)的和的絕對值要小 => 從E1到Ek這么多數(shù)中,為正的個數(shù)少于為負(fù)的個數(shù) => 也就是說在歷史采樣k次中,大多數(shù)是采樣到系統(tǒng)都達(dá)到目標(biāo)值的。因為Ek <
0說明Sv < Xk , 說明系統(tǒng)達(dá)到目標(biāo)值

現(xiàn)在我們想讓這個Sk單獨(dú)加到我們的運(yùn)算當(dāng)中,并且做一定的放大,這里說的是放大,其實是根據(jù)系數(shù)大不大于1而定的。那么我們可以得出一個公式:


那么我們來想想,I運(yùn)算會不會有不受控的時候。答案是肯定有的。當(dāng)Sk等于0時,系統(tǒng)是不受控制的,也就說在K次的采樣結(jié)果中,達(dá)到設(shè)定目標(biāo)的次數(shù)等于沒有達(dá)到目標(biāo)的次數(shù)時,系統(tǒng)是不受控制的。

從運(yùn)算結(jié)果可得出以下幾個結(jié)論:

1.只有當(dāng)系統(tǒng)存在歷史誤差了,注意是歷史誤差,我才控制你,如果沒有歷史誤差我就不控制了,也就是說單獨(dú)的I運(yùn)算也是一個有誤差的運(yùn)算
2.I運(yùn)算參考的是歷史數(shù)據(jù),是對系統(tǒng)歷史狀態(tài)做出一個整體評估,當(dāng)歷史狀態(tài)大多數(shù)都沒達(dá)到設(shè)定值時我就輸出一個大一點的信號,讓系統(tǒng)在之后的運(yùn)行中打到目標(biāo)值,當(dāng)歷史狀態(tài)大多數(shù)都達(dá)到設(shè)定值的時候則相反。

以上就是I的特點,和P有點類似只不過一個是將當(dāng)前值作為參考,一個是將過去值最為參考。

優(yōu)化:
在沒有歷史誤差的情況下為了還能控制被控對象,往往會在后面加一個常量OUT0,雖然用處不大:


D 微分

我們將積分中在k次采樣的誤差值Ek和k-1次采樣的誤差值Ek-1做差值會得到什么結(jié)論呢?


首先我們要理解Dk的含義:

Dk是這次采樣的誤差和上次采樣的誤差的差值,假如采樣時間很小,我們是不是可以把Dk看做是誤差的斜率,也就是Dk的值反映了單位時間內(nèi)誤差的變化快慢。Dk越大,說明誤差變化率越大,Dk越小,則誤差的變化率越小。

再舉個例子:
S = VT ( 路程=速度*時間) 我們又知道路程的倒數(shù)是速度,導(dǎo)數(shù)可以理解為變化率,也就是變化的快慢。在一段時間內(nèi)走了一段路,那么在任意時刻路程的導(dǎo)數(shù)就表示該單位時間內(nèi)走過的路程,也就是速度了。

再看看上面說的Dk,假設(shè)采樣時間很短,Dk是不是就可以理解為在單位時間內(nèi)誤差從Ek-1變成了Ek,相當(dāng)于路程在單位時間內(nèi)從S1變成了S2,那么S2-S1是單位時間內(nèi)走的路程,在對單位時間求導(dǎo)是不是就是速度了,Ek- Ek-1是單位時間內(nèi)誤差的變化值,在對單位時間求導(dǎo)是不是就是誤差的變化率了。

在理解了Dk的含義之后我們就可以運(yùn)用I運(yùn)算了,同樣的給D一個比例,放大一定倍數(shù)進(jìn)行輸出:


由于OUTd和Dk只是倍數(shù)關(guān)系,因此只看Dk的變化就能知道OUTd的變化,:
1.
當(dāng)Dk > 0; => 這次的誤差值比上一次的誤差值大 => 說明本次相比上次更加遠(yuǎn)離目標(biāo)值了 => 偏差越來越大
2.
當(dāng)Dk = 0; => 這次的誤差值等于上一次的誤差值 => 說明本次相比上次誤差沒有變化 => 偏差不變
3.
當(dāng)Dk < 0; => 這次的誤差值小于上一次的誤差值 => 說明本次相比上次更加接近目標(biāo)值了 => 偏差越來越小

由于變化率本身反映的就是一種趨勢,什么是趨勢?趨勢就是根據(jù)當(dāng)前的環(huán)境去預(yù)測以后會發(fā)生的事情。因此D微分運(yùn)算最大的一個作用就是通過誤差的變化率去預(yù)判在下一個采樣時刻系統(tǒng)會有什么樣的變化,這樣就能提前做出相應(yīng)的動作,而不是等待溫度達(dá)到目標(biāo)值再去關(guān)閉PWM

從運(yùn)算結(jié)果可得出以下幾個結(jié)論:
1.當(dāng)誤差的變化率為0時,系統(tǒng)會不受控制
2.不能單獨(dú)存在,為什么這樣說呢。因為微分是看誤差的變化率而不是誤差本身。
舉個例子,比如下圖,目標(biāo)值假設(shè)為100

4次采樣,每次采樣的偏差值都在變化,而偏差的變化率卻一直是2,也就是說Dk=2,微分有輸出。那么假設(shè)溫度就這樣很有規(guī)律的往上加呢,那是不是當(dāng)溫度到達(dá)了100度,微分還會有輸出,因為微分可不管你是多少度,只要Ek-Ek-1不等于0我就一直輸出。那如果沒有P和I的加入,只有微分是不是就會一直加熱。因此微分不能單獨(dú)存在。

3.還有一點很重要,就是微分輸出具有超前預(yù)判的功能
這一點也很好理解,剛才已經(jīng)說過Dk是誤差的變化率,變化率反映的是一種趨勢,那么當(dāng)Dk > 0時,Dk越大,OUTd就越大,也就是說Dk越遠(yuǎn)離目標(biāo)值,我輸出就越大,輸出越大加熱越快,加熱越快就會讓你越接近目標(biāo)值,也就是說你上一次里目標(biāo)越遠(yuǎn),我就在下一次輸出越大,讓你離目標(biāo)值越近,這就是D微分運(yùn)算的預(yù)判特點。

總結(jié)

上面所講的都是在離散型的系統(tǒng)中才能實現(xiàn)的。就像我們的單片機(jī)定時采樣一樣,他不可能無時無刻的去采樣傳感器的值,只能定時去采樣,但如果這個采樣時間很短呢,是不是就可以無限接近連續(xù)型系統(tǒng)了。

P與當(dāng)前誤差有關(guān),當(dāng)前誤差大我就輸出大,誤差小輸出小,主要是根據(jù)系統(tǒng)當(dāng)前的狀態(tài)做出響應(yīng);I與系統(tǒng)的累積誤差有關(guān),系統(tǒng)過去的總體表現(xiàn)影響現(xiàn)在的輸出;D與系統(tǒng)上一時刻的誤差變化率有關(guān),根據(jù)上一時刻的變化率判斷系統(tǒng)下一個采樣時刻可能會發(fā)生的變化。

P可以提高系統(tǒng)響應(yīng)時間,I可以消除靜態(tài)誤差,D可以預(yù)判系統(tǒng)的變化。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:223481 發(fā)表于 2020-12-1 15:36 | 只看該作者
51黑顯示有點問題。
原文鏈接:
https://blog.csdn.net/D_SEngineer?spm=1000.2115.3001.5113
回復(fù)

使用道具 舉報

板凳
ID:830831 發(fā)表于 2020-12-19 10:07 | 只看該作者
講的真好,這部分至關(guān)重要,頂了!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人精品一区二区三区四区 | 黄色一级大片在线免费看产 | 一区二区在线看 | 精品不卡 | 国产精品99久久久久久大便 | 亚洲成人999 | 亚洲一区二区视频 | 久久久久国产一区二区三区 | 欧美日韩在线播放 | 亚洲91精品 | 欧美色综合网 | 成人影视网址 | 成人免费在线网 | 国产一区二区影院 | 精品入口麻豆88视频 | 精品国产乱码久久久久久久久 | 欧美 日韩 国产 一区 | 亚洲视频免费在线观看 | 亚洲久久久 | 久久com| 一区二区三区视频在线观看 | 国产一区二区三区四区三区四 | 精品视频一区二区 | 国产精品国产三级国产aⅴ中文 | 99国产精品久久久 | 久久久久久久一区二区三区 | 国产精品久久久久久久久污网站 | 午夜一级大片 | 亚洲一区二区三区在线视频 | 一区二区三区四区在线 | 久久久久久黄 | 国产精品高潮呻吟久久av黑人 | 99国产精品99久久久久久 | 欧美一级免费看 | 日本三级网站在线观看 | 91se在线| 伊色综合久久之综合久久 | 国产免费拔擦拔擦8x高清 | 亚洲人成一区二区三区性色 | 欧美日本韩国一区二区三区 | 久久成人免费 |