何為跟蹤微分器(TD)
跟蹤微分器顧名思義,包含了跟蹤和微分兩個部分。
- 跟蹤 t
就是一個對輸入信號以某種手段延遲輸出的環(huán)節(jié) 。
在做一些控制時,通常不希望輸入信號出現(xiàn)階躍的情況,這會在系統(tǒng)中產生一定擾動,因此通常會用一種 " 斜坡算法 "使輸入信號變得更平緩。這在變化的輸入信號中體現(xiàn)出平滑滯后的效果,看起來像是經(jīng)過這一 “斜坡算法” 的輸出信號在跟蹤輸入信號。
- 微分 d
微分是指跟蹤信號微分后的信號,代表著跟蹤信號的變化率。
微分可以理解成變化速度,當我們想要快速精準到達目標信號時,既要保證快速,也要保證精準。而這兩者通常是相悖的,快速往往伴隨著超調(剎不住車)。因此如果能把握好速度的快慢,在離得遠時加速,在快要到達時減速,就可以避免剎不住車的情況。
線性跟蹤微分器(LTD)數(shù)學描述
- 建立線性狀態(tài)方程,其中狀態(tài)變量為
x
?
=
[
x
1
x
2
]
=
[
t
d
]
\vec{x}=\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}t\\d\end{bmatrix}
x=[x1?x2??]=[td?],輸入信號為
u
u
u,其狀態(tài)方程為
x ′ ? = A x ? + B u y ? = x ? \vec{x'}=A\vec{x}+Bu \\ \vec{y}=\vec{x} x′=Ax+Buy?=x
在自動控制理論中,常見的LTD是臨界阻尼的二階慣性環(huán)節(jié), 其傳遞函數(shù)表示為
Y ( s ) U ( s ) = G ( s ) = r 2 s 2 + 2 r s + r 2 \frac{Y(s)}{U(s)} = G(s) = \frac{r^2}{s^{2}+2rs+r^2} U(s)Y(s)?=G(s)=s2+2rs+r2r2?
其中 r r r是自然頻率;
將輸入信號 u u u和輸出信號 t t t代進慣性環(huán)節(jié),可以得到:
t ′ ′ + 2 r t ′ + r 2 t = r 2 u t''+2rt'+r^2t=r^2u t′′+2rt′+r2t=r2u
又 t ′ = d , t ′ ′ = d ′ t'=d,t''=d' t′=d,t′′=d′,代入上式可以得到:
d ′ + 2 r d + r 2 ( t ? u ) = 0 → d ′ = ? 2 r d ? r 2 ( t ? u ) → d ′ = ? r 2 t ? 2 r d + r 2 u d'+2rd+r^2(t-u)=0\\ \rightarrow d'=-2rd-r^2(t-u)\\ \rightarrow d'=-r^2t-2rd+r^2u d′+2rd+r2(t?u)=0→d′=?2rd?r2(t?u)→d′=?r2t?2rd+r2u
又 d ′ = x 2 ′ , d = x 2 d'=x_2',d=x_2 d′=x2′?,d=x2?,代入到狀態(tài)方程中,可以得到矩陣 A , B A,B A,B為:
A = [ 0 1 ? r 2 ? 2 r ] B = [ 0 r 2 ] A=\begin{bmatrix} 0&1 \\ -r^2&-2r \end{bmatrix}\\ B=\begin{bmatrix} 0\\ r^2 \end{bmatrix} A=[0?r2?1?2r?]B=[0r2?]
整理后,得到
[ t ′ d ′ ] = [ 0 1 ? r 2 ? 2 r ] [ t d ] + [ 0 r 2 ] u [ y 1 y 2 ] = [ t d ] \begin{bmatrix} t'\\ d' \end{bmatrix} =\begin{bmatrix} 0&1 \\ -r^2&-2r \end{bmatrix} \begin{bmatrix} t \\ d \end{bmatrix} +\begin{bmatrix} 0\\ r^2 \end{bmatrix} u \\ \begin{bmatrix} y1 \\ y2 \end{bmatrix} = \begin{bmatrix} t\\ d \end{bmatrix} [t′d′?]=[0?r2?1?2r?][td?]+[0r2?]u[y1y2?]=[td?]到這里大多數(shù)文章就沒有后續(xù)的描述了,但其實我在學習到這部分的時候就有一個疑問,這個參數(shù)$r$的數(shù)學意義是什么,該怎么選取這個參數(shù)的數(shù)值呢,它又是如何影響著LTD的性能。后面的這部分內容是對參數(shù)r的討論,感興趣的可以往下看,反之則可以直接跳過。
通過微分方程 t ′ ′ + 2 r t ′ + r 2 t = r 2 u t''+2rt'+r^2t=r^2u t′′+2rt′+r2t=r2u的形式,以單位階躍響應為例, u = 1 ( t ) u=1(t) u=1(t),觀察 t t t隨時間變化的過程,觀察其達到1時的時間以及參數(shù) r r r在這個過程發(fā)揮的作用。
由于 t t t是關于時間的信號,為了避免誤解,令 t = h ( t ) t=h(t) t=h(t),前者的t是信號,后者的t是時間。則將上述微分方程整理后得到:
h ′ ′ + 2 r h ′ + r 2 h = r 2 h''+2 r h'+r^{2} h = r ^2 h′′+2rh′+r2h=r2
開始求解微分方程 (悄悄拿出高數(shù)課本)
這里不贅述,直接給結論。
h ( t ) = ( C 1 + C 2 t ) e ? r t + 1 h(t)=(C_1 +C_2t)e^{-rt}+1 h(t)=(C1?+C2?t)e?rt+1
其中 C 1 , C 2 C_1,C_2 C1?,C2?跟0時刻狀態(tài)有關,不進行討論。
我們只需要關注當 h ( t ) = 1 h(t)=1 h(t)=1是 t t t的值,用于衡量跟蹤性能。
h ( t ) = ( C 1 + C 2 t ) e ? r t + 1 → ( C 1 + C 2 t ) e ? r t = 0 h(t)=(C_1 +C_2t)e^{-rt}+1\\ \rightarrow(C_1 +C_2t)e^{-rt}=0 h(t)=(C1?+C2?t)e?rt+1→(C1?+C2?t)e?rt=0
顯然, r r r是衰減因子, r r r越大, h ( t ) h(t) h(t)收斂的越快。
非線性跟蹤微分器(NTD)數(shù)學描述
- 對比LTD,NTD采用的不是線性二階慣性環(huán)節(jié),而是特殊的非線性函數(shù)(最速控制綜合函數(shù)),以實現(xiàn)跟蹤的目的。
連續(xù)系統(tǒng)的最速控制綜合函數(shù)的數(shù)學描述為
f h a n = ? r s i g n ( x 1 ? u + x 2 ∣ x 2 ∣ 2 r ) f_{han}=-rsign(x_1-u+\frac{x_2 |x_2|}{2r}) fhan?=?rsign(x1??u+2rx2?∣x2?∣?)
其中 x 1 x_1 x1?為跟蹤信號, u u u為輸入信號, x 2 x_2 x2?為微分信號, r r r為加速度的絕對值,則NTD的非線性狀態(tài)方程為:
x 1 ′ = x 2 x 2 ′ = f h a n = ? r s i g n ( x 1 ? u + x 2 ∣ x 2 ∣ 2 r ) x_1' = x_2 \\ x_2' = f_{han}=-rsign(x_1-u+\frac{x_2 |x_2|}{2r}) x1′?=x2?x2′?=fhan?=?rsign(x1??u+2rx2?∣x2?∣?)
這個最速控制綜合函數(shù) f h a n f_{han} fhan?是基于物理公式得到的,假設當前速度為 v 1 v_1 v1?,以固定的加速度 a a a運動,位移了 x x x后速度為 v 2 v_2 v2?,則滿足公式:
v 1 2 ? v 2 2 2 a = x \frac{v^{2}_{1}- v_{2}^{2}}{2a}=x 2av12??v22??=x
所以 s i g n sign sign中的第二項 x 2 ∣ x 2 ∣ 2 r \frac{x2|x_2|}{2r} 2rx2∣x2?∣?是減速到0的位移,第一項 x 1 ? u x_1 - u x1??u是到達目標位置的位移。
通過比較這兩個位移項的和,來決定當前是否加減速。
在simulink實現(xiàn)NTD,再觀察狀態(tài)變量的變化過程。
matlab function模塊中的代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-767370.html
function y = fcn(x1,x2,r)
y = -r*sign(x1+x2*abs(x2)/(2*r));
示波器結果為:文章來源地址http://www.zghlxwxcb.cn/news/detail-767370.html
到了這里,關于【自抗擾控制ADRC】跟蹤微分器的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!