位置式PID演算法

??位置式
P
I
D
PID
PID演算法是一種比較直觀的的
P
I
D
PID
PID演算法,如系統框圖中所示,
i
n
in
in表示設定值,
e
r
r
o
r
error
error表示差值,
u
u
u表示控制器輸出值,
o
u
t
out
out表示被控量,演算法運算式如下:

增量式PID演算法
??增量式
P
I
D
PID
PID演算法不比位置式更直觀,當執行機構需要控制量的增量時,適合采用增量式
P
I
D
PID
PID演算法,比如步進電機控制,演算法運算式如下:


積分分離PID演算法
??
P
I
D
PID
PID演算法中,積分可消除穩態誤差,提高控制精度,在系統啟動或設定值大幅改變時,被控量與設定值之間會產生較大的偏差,造成過大的積分積累,甚至使控制量超過執行機構允許最大動作范圍對應的極限控制量,引起系統過大的超調量,從而振蕩,為避免這些不利的情況出現,可在被控量與設定值之間有較大偏差時,取消積分作用,避免超調量增大;當被控量接近設定值時,引入積分控制,消除穩態誤差,提高控制進度,
??設被控量與設定值之間的偏差閾值為
X
>
0
X>0
X>0,該值人為設定,即

演算法運算式如下:

梯形積分PID演算法
??在
P
I
D
PID
PID演算法中,積分項的作用就是為了消除穩態誤差,故而提高積分項的運算精度能更好的提高控制精度,在單片機中,對于積分運算通常使用累加的形式,也就是矩形積分,即

上述式子在程式中經常這樣使用,但在
P
I
D
PID
PID演算法中,并不是這樣,這不得不從原始的
P
I
D
PID
PID演算法說起,其運算式如下所示,

將其離散化,令
t
=
k
T
t=kT
t=kT,得

也就是說,從嚴格意義來講,積分項應該為

為方便編程計算把系數項全部整合在一塊,稱之為積分系數,所以就把
T
T
T省略了,積分從影像上來看,就是求面積,因此在單片機中計算積分的思路就是把圖形劃分為寬度為
T
T
T的
n
n
n個等份,然后在每個等份中自圖形曲線以下畫出一個最大矩形,然后將所有矩形面積相加便可近似為求積分的程序,
T
T
T越小矩形面積和越接近于積分運算,但在實際工程中,
T
T
T不可能太小,因為
T
T
T實際上就是采樣時間,也是
P
I
D
PID
PID的計算周期,
T
T
T過小會加大單片機的負擔,這樣的計算方式很直觀,但計算的精度較低,誤差大,假設偏差
e
r
r
o
r
error
error在某段時間服從函式
e
r
r
o
r
=
?
a
?
t
+
b
error=-a*t+b
error=?a?t+b,如下所示

那么積分運算就是指

很明顯,這使得每個矩形上面的三角形都未參與計算,使得積分運算精度大大降低,為避免出現過大的誤差或者進一步提高運算精度,引入梯形積分的概念,就是把矩形和三角形加在一起,也就是梯形的面積,即

故梯形積分的
P
I
D
PID
PID的運算式為

??當偏差
e
r
r
o
r
error
error不服從線性關系,或者是其他一些曲線,則不會向示例中那般毫無誤差,仍會有些許誤差無法計算到,但同矩形積分相比,運算精度已經得到了很大的改善,
變速積分PID演算法
??變速積分
P
I
D
PID
PID演算法與積分分離
P
I
D
PID
PID演算法本質上相同,都是為了減小系統超調,提高系統回應速度,但是積分分離
P
I
D
PID
PID演算法較為粗暴,變速積分
P
I
D
PID
PID演算法則是根據偏差
e
r
r
o
r
error
error的大小來改變積分的速度,偏差越大,積分越慢,反之越快,即積分項的運算式為

β
β
β是關于偏差
e
r
r
o
r
error
error的函式,即

其中
A
,
B
A,B
A,B表示人為設定的閾值,則變速積分PID演算法的運算式為

帶濾波器的PID演算法
??當系統中存在高頻干擾時,會使得系統變得不穩定,另外,在
P
I
D
PID
PID演算法中,微分項會將高頻干擾放大,所以需要將高頻干擾過濾掉,從而使系統穩定,故引入低通濾波器,假設該濾波器傳遞函式為

該濾波器的轉折頻率為20
H
z
Hz
Hz,對如下系統

當干擾信號頻率低于20
H
z
Hz
Hz,設為10
H
z
Hz
Hz,輸出曲線如下

左圖為帶濾波器的輸出回應,右圖不帶濾波器,可以看出此時兩個系統輸出很不穩定,波動都很大,再看看干擾信號頻率大于20
H
z
Hz
Hz時的情況,設為100
H
z
Hz
Hz,輸出曲線如下

很明顯,此時帶有濾波器的系統輸出相比于之前10
H
z
Hz
Hz干擾信號時的輸出波動幅度要小很多,此時不帶濾波器的系統輸出已經受到劇烈干擾,帶有濾波器的系統輸出波動幅度更小,在加大干擾信號的頻率,設為10
k
H
z
kHz
kHz,輸出曲線如下

此時帶有濾波器的系統輸出幾乎已經沒有了波動,
??在編程中使用帶濾波器的
P
I
D
PID
PID演算法時,需要對濾波器的傳遞函式進行
Z
Z
Z變換并離散化,
基于前饋補償的PID演算法
??對于設定值變化的系統中,為提高系統的跟蹤性能,需要加入前饋補償,既然是提高系統的跟蹤性能,那自然就是系統的輸出越接近于甚至等于系統的輸入,也就是倍訓系統的傳遞函式為
1
1
1,如下圖所示


??假設有一個被控物件為

不加前饋補償,如下

系統輸入為正弦信號,輸出影像如下

??黃線表示系統輸入的信號曲線,藍線表示系統輸出曲線,可以看出,輸出曲線不僅幅值較系統輸入小,且滯后于系統輸入,再來看看加入前饋補償的效果,系統框圖如下

輸出曲線如下

此時只能看到一條曲線,因為輸入曲線與輸出曲線重合了,此時的跟蹤效果較之前有了很大的提升,在編程中,使用前饋補償的
P
I
D
PID
PID演算法,在計算uf時,可對
1
/
G
(
s
)
1/G(s)
1/G(s)進行
Z
Z
Z變換并離散化,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/381902.html
標籤:AI
上一篇:深度模型部署
