天天看點

開源飛控ACFLY:ADRC安排過渡過程

開源飛控ACFLY:ADRC安排過渡過程

ACFLY原創文章,轉載請說明出處https://blog.csdn.net/weixin_40767422/article/details/87651614

ADRC相關論文資料請加q群:180319060下載下傳

上一篇我們講了離散最速控制綜合函數fsun,連結在此

這篇我們來講講ADRC的安排過渡過程,如下圖:

開源飛控ACFLY:ADRC安排過渡過程

       我們知道PID的誤差求取直接是e=v-y,而控制目标 v 是有可能産生突變的,而對象輸出 y 一定是連續的,用連續的緩變的變量追蹤可能跳變的變量本身就是不合理的。韓老師針對PID等的這個缺陷提出的解決辦法就是安排過渡過程,顧名思義就是安排個路徑過去,讓輸入量緩慢的增大,使其與輸出量的內插補點很小,即可使系統無超調的達到穩态,解決了 PID快速性與超調之間的沖突。

開源飛控ACFLY:ADRC安排過渡過程

       比如現在位置是10,目标是80,如果直接求取誤差e就等于90了,安排過渡過程就是可以先到20,此時e1=10;再到50,e2=30;然後到80,e3=30。這隻是舉個例子(路徑随意取的),實際安排過渡路徑的方法ADRC裡用的是離散跟蹤微分器(Tracking Differetiator) ,即二階純積分對象的離散最速控制,關于TD的推導上篇部落格已經說了。如下圖:

開源飛控ACFLY:ADRC安排過渡過程

                                                                      注:圖中的fst函數了解為fsun函數

       這個離散系統可以實作x1跟蹤輸入信号v(t),x2跟蹤v(t)的微分,可能這裡大家會有點疑問,上圖中的fsun函數是這樣的:

                                       fsun( x1( t)-v( t) ,x2( t) ,r ,h)                         (1)式

而在上一篇部落格所講的論文裡最後推導得到的fsun函數是這樣的:

                                       fsun( x1( t) ,x2( t) ,r ,h)                                 (2)式

     可見第一個參數不一樣, fsun函數推導的是從目前狀态到目标狀态的最速路徑,論文裡把目标狀态設為0,目的是為了友善計算,得到的是(2)式,你可能會問如果目标狀态不為0就不能用fsun函數了嗎?答案是可以的,隻需做一下變換就行,把目标狀态設為0點,目前狀态就變為了x1( t)-v( t),就得到了(1)式。或者可以這樣了解,把x1( t)-v( t)看作是整體,當x1( t)-v( t)=0的時候,x1( t)=v( t),即從目前位置到達了目标位置,安排過渡過程我們用的就是(1)式。

        比如目前狀态x1( t) 是10,目标狀态v( t)是20,為了适應(2)式我們把目标狀态設為0點即原點,那麼目前位置就變為x1( t)-v( t) = -10,點還是那個點,隻是坐标變換一下。TD的作用除了安排過渡過程還給出此過程的微分信号即X2。

        ADRC中非線性組合部份也可以用離散跟蹤微分器來給出最佳控制量u,此時的fsun應該是fsun( e1( t) ,e2( t) ,r ,h) ,不用進行變換,因為我們就是讓誤差e1最速無超調衰減為0。

Conclusion:

       離散跟蹤微分器可以用來安排路徑,也可以用來控制,它可以輸出狀态變量x1,x2即過渡路徑,也可以輸出最優控制量u。