c++ 多重背包状态转移方程_串讲:控制理论:全状态反馈控制(FSFB)
全狀態(tài)反饋控制也可以被稱作狀態(tài)反饋控制,它是現(xiàn)代控制理論的一種控制方法,私信中部分小伙伴問道極點配置還有狀態(tài)反饋是怎么回事,這里就寫一篇文章來解決上述問題。介紹全狀態(tài)反饋控制(FSFB)之前,根據(jù)自己的理解并結合參考文獻來介紹一下科學家們?yōu)槭裁匆O計FSFB來構造閉環(huán)控制,如有不對的地方歡迎糾正!
全狀態(tài)反饋控制(FSFB)構造的意義
首先,線性系統(tǒng)的被控對象狀態(tài)方程如下所示:
(1)給一個結論:在第一個式子中,第一項
代表線性系統(tǒng)的動態(tài)特性,系統(tǒng)中的能量如何被存儲及被轉移取決于矩陣 ,第二項 表示系統(tǒng)如何根據(jù)輸入量進行響應。因此當有了輸入量后,學者們更關心的問題是如何提高系統(tǒng)的動態(tài)特性(也就是說如何快速的轉移系統(tǒng)中的能量)。
那么證明一下結論中第一項
為什么可以代表系統(tǒng)的動態(tài)特性?證明如下:
利用Laplace對Eq. (1)進行變換:
(2)假設矩陣
為零矩陣,傳遞函數(shù)如下: (3)當滿足下式時,系統(tǒng)的極點(Pole)可以被求出。
(4)然而矩陣
特征根(Eigenvalues)求得方法如下: (5)對比Eqs.(4-5),不難發(fā)現(xiàn),原來矩陣A特征根就是系統(tǒng)的極點!如果知道了系統(tǒng)的極點,就可以判斷系統(tǒng)的穩(wěn)定性,和收斂趨近狀態(tài)及速度。
當系統(tǒng)的極點在s域中的位置如下所示,系統(tǒng)的狀態(tài)變量變化形態(tài)可以從圖中看出。
圖參考油管中的視頻,鏈接如下所示:因此可以看出系統(tǒng)狀態(tài)方程中的第一項
代表系統(tǒng)的動態(tài)特性,且矩陣 特征根為系統(tǒng)的極點,極點的位置可以反映出系統(tǒng)的穩(wěn)定性,如果極點足夠遠,可以快速使系統(tǒng)收斂,但是能量也越大,且抗干擾能量下降。全狀態(tài)反饋控制(FSFB)
因此合理的配置極點可以使系統(tǒng)達到我們想要的結果,這里就需要引入FSFB,有了這個控制器,問題就迎刃而解了,我們可以通過FSFB這種方法來任意改變系統(tǒng)的極點位置。
FSFB有幾種結構,三種結構如下所示:
圖參考油管中的視頻三種方法都含有參考量
和參數(shù) ,為了便于理解,這里介紹一種比例參考型的FSFB:根據(jù)上圖中的結構,可以看出這種控制方式非常的簡單,FSFB系統(tǒng)的控制率可以表示為如下所示:
(6)通過代入Eq.(1)于Eq. (6),系統(tǒng)狀態(tài)方程可以表示為如下:
(7)因此可以看出系統(tǒng)的極點發(fā)生了改變,從A的特征根變?yōu)榱司仃?
的特征根,而矩陣 可以通過人為的設計參數(shù)進行調整,因此可以達到理想的系統(tǒng)控制需求。問題:那么如何調整系統(tǒng)的極點來滿足系統(tǒng)的需求,或者是使系統(tǒng)達到最優(yōu)的性能呢?
答:可以采用以下兩種方法,即利用極點配置(Pole placement,本文重點介紹)的方法來獲取參數(shù)K,或者可以利用線性二次型LQR(這里的LQR結合FSFB也是LQR最優(yōu)控制的一種,在專欄中另一篇文章中講述)來獲取參數(shù)
。極點配置:本質是放置這些極點到系統(tǒng)中想要的(理想的)位置來提高系統(tǒng)動態(tài)響應性能。
特別注意是的極點配置優(yōu)于根軌跡方法,根軌跡是改變參數(shù)來改變極點沿著根軌跡的位置,不能夠任意擺放極點位置;然而極點配置可以通過改變矩陣的參數(shù)來任意的改變改變極點的位置,因此配置起來更加地靈活。
這里我列舉一個極點配置的例子來獲取參數(shù)
:極點配置的例子及Matlab仿真分析:
系統(tǒng)狀態(tài)和輸出方程如下所示:
(8) (9)Eqs. (8-9)的矩陣對應于Eq. (1)中的矩陣ABCD,因次根據(jù)Eq. (5),矩陣A的特征根為-2,1,其中1為正實數(shù),因此系統(tǒng)不穩(wěn)定。
利用極點配置,令矩陣
的參數(shù)為[k1,k2],則矩陣 可以表示如下: (10)根據(jù)Eq. (5),可以得到如下所示:
(11)假設我們期望的極點分別為-2,-1,通過上述公式,可以獲取矩陣
的參數(shù)為[2,1]。Matlab源代碼如下所示:
clcA=[0 1;2 -1]; B=[1;0]; C=[1 0]; D=0;sys=ss(A,B,C,D);%原狀態(tài)方程 E=eig(A);%原系統(tǒng)的特征根 P=[-2 -1]; %理想的特征根 K=place(A,B,P);%極點配置獲取參考KAc=A-B*K;%FSFB矩陣 Ec=eig(Ac);%FSFB系統(tǒng)的特征根 kr=2;%參數(shù)kr sysc=ss(Ac,B*kr,C,D);%新狀態(tài)方程 step(sysc);%給定輸入信號為階躍信號當輸入為階躍信號,觀察系統(tǒng)的響應為:
改變系統(tǒng)的帶寬可以根據(jù)調節(jié)系統(tǒng)的極點來提高。
FSFB的缺陷
在上述形式的FSFB中,改變參數(shù)
可以提高系統(tǒng)的幅值使系統(tǒng)的輸出和系統(tǒng)參考值保持一致,然而參數(shù) 會影響系統(tǒng)的穩(wěn)態(tài)誤差,詳細推導如下:根據(jù)比例參考型的FSFB結構,定義誤差
: (12)假設矩陣
為零矩陣,根據(jù)傳遞函數(shù)Eq. (3)和Eq. (6),可以獲得誤差方程如下: (13)利用終值定理,可以得到:
(14)因此比例參考型的FSFB的穩(wěn)態(tài)誤差為:
(15)當輸入信號為階躍信號時(
),Eq.(15)可以變換為: (16)代入Eq.(3)于傳遞函數(shù)Eq. (16)中,得:
(17)從式中可以看出,基于這種方法的FSFB系統(tǒng)算法簡單且動態(tài)響應特性可控,但存在穩(wěn)態(tài)誤差,提高參數(shù)
會導致穩(wěn)態(tài)誤差進一步增大,為了解決這一問題,可以采用積分形式的FSFB(推導與上述推導類似,這里不做推導)。參考資料包括以下內(nèi)容,歡迎交流討論:
https://en.wikipedia.org/wiki/Final_value_theorem?en.wikipedia.orghttps://www.youtube.com/watch?v=wEevt2a4SKI?www.youtube.comhttps://www.youtube.com/watch?v=wEevt2a4SKI?www.youtube.comhttps://www.youtube.com/watch?v=FXSpHy8LvmY?www.youtube.com總結
以上是生活随笔為你收集整理的c++ 多重背包状态转移方程_串讲:控制理论:全状态反馈控制(FSFB)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中point的用法_关于C语言Sw
- 下一篇: dim private public s