日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

2020-12-18 Matlab LQR 推导及简单应用

發(fā)布時(shí)間:2025/3/21 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2020-12-18 Matlab LQR 推导及简单应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Matlab LQR 推導(dǎo)及簡單應(yīng)用

本文主要介紹LQR的直觀推導(dǎo),說明LQR目標(biāo)函數(shù)J選擇的直觀含義以及簡單介紹矩陣Q,R的選取,最后總結(jié)LQR控制器的設(shè)計(jì)步奏,并將其應(yīng)用在一個簡單的倒立擺例子上。 ? ? ?

? ? ? 假設(shè)有一個線性系統(tǒng)能用狀態(tài)向量的形式表示成:

? ? ? ? ? ? ?

? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ?( 1 )

其中?,初始條件是. 并且假設(shè)這個系統(tǒng)的所有狀態(tài)變量都是可測量到的。

? ? ? 在介紹LQR前,先簡單回顧一下現(xiàn)代控制理論中最基本的控制器--全狀態(tài)反饋控制。

? ? ? 全狀態(tài)反饋控制系統(tǒng)圖形如下:

? ? ? ? ? ? ? ? ?

我們要設(shè)計(jì)一個狀態(tài)反饋控制器

? ? ? ? ? ? ?

使得閉環(huán)系統(tǒng)能夠滿足我們期望的性能。我們把這種控制代入之前的系統(tǒng)狀態(tài)方程得到

? ? ? ? ? ??? ? ? ? ? ? ? ? ? ?( 2 )

對于(1)式的開環(huán)系統(tǒng),由現(xiàn)代控制理論我們知道開環(huán)傳遞函數(shù)的極點(diǎn)就是系統(tǒng)矩陣A的特征值。(傳遞函數(shù)的分母是|sI -A|,|·|表示行列式)

現(xiàn)在變成了(2)的閉環(huán)形式,狀態(tài)變換矩陣A變成了(A-BK)。因此通過配置反饋矩陣K,可以使得閉環(huán)系統(tǒng)的極點(diǎn)達(dá)到我們期望的狀態(tài)。注意,這種控制器的設(shè)計(jì)與輸出矩陣C,D沒有關(guān)系。

? ? ? ?那么,什么樣的極點(diǎn)會使得系統(tǒng)性能很棒呢?并且,當(dāng)系統(tǒng)變量很多的時(shí)候,即使設(shè)計(jì)好了極點(diǎn),矩陣K也不好計(jì)算。

? ? ? ?于是,LQR為我們設(shè)計(jì)最優(yōu)控制器提供了一種思路。

在設(shè)計(jì)LQR控制器前,我們得設(shè)計(jì)一個能量函數(shù),最優(yōu)的控制軌跡應(yīng)該使得該能量函數(shù)最小。一般選取如下形式的能量函數(shù)。

? ? ? ? ? ??,其中Q是你自己設(shè)計(jì)的半正定矩陣,R為正定矩陣。

可是,為什么能量函數(shù)(或稱系統(tǒng)的目標(biāo)函數(shù))得設(shè)計(jì)成這個樣子呢?

? ? ? ?首先假設(shè)狀態(tài)向量x(t)是1維的,那么其實(shí)就是一個平方項(xiàng) Qx^2 >= 0,同理.?能量函數(shù)J要最小,那么狀態(tài)向量x(t),u(t)都得小。J最小,那肯定是個有界的函數(shù),我們能推斷當(dāng)t趨于無窮時(shí),狀態(tài)向量x(t)將趨于0,這也保證了閉環(huán)系統(tǒng)的穩(wěn)定性。那輸入u(t)要小是什么意思呢?它意味著我們用最小的控制代價(jià)得到最優(yōu)的控制。譬如控制電機(jī),輸入PWM小,將節(jié)省能量。

? ? ? ?再來看看矩陣Q,R的選取,一般來說,Q值選得大意味著,要使得J小,那x(t)需要更小,也就是意味著閉環(huán)系統(tǒng)的矩陣(A-BK)的特征值處于S平面左邊更遠(yuǎn)的地方,這樣狀態(tài)x(t)就以更快的速度衰減到0。另一方面,大的R表示更加關(guān)注輸入變量u(t),u(t)的減小,意味著狀態(tài)衰減將變慢。同時(shí),Q為半正定矩陣意味著他的特征值非負(fù),R為正定矩陣意味著它的特征值為正數(shù)。如果你選擇Q,R都是對角矩陣的話,那么Q的對角元素為正數(shù),允許出現(xiàn)幾個0.R的對角元素只能是正數(shù)。

? ? ? ?注意LQR調(diào)節(jié)器是將狀態(tài)調(diào)節(jié)到0,這與軌跡跟蹤不同,軌跡跟蹤是使得系統(tǒng)誤差為0.

? ? ? ? 知道了背景后,那如何設(shè)計(jì)反饋矩陣K使得能量函數(shù)J最小呢?很多地方都是從最大值原理,Hamilton函數(shù)推導(dǎo)出來。這里用另外一種更容易接受的方式推導(dǎo)。

將u = -Kx 代入之前的能量函數(shù)得到:

? ? ? ? ? ? ?? ? ? ? ? ?( 3 )

為了找到K,我們先不防假設(shè)存在一個常量矩陣P使得:

? ? ? ? ? ? ??? ? ? (4)

代入(3)式得:

? ? ? ? ? ? ??? ? ?(5)

注意,我們已經(jīng)假設(shè)閉環(huán)系統(tǒng)是穩(wěn)定的,也就是t趨于無窮時(shí),x(t)趨于0.

現(xiàn)在把(4)式左邊的微分展開,并把狀態(tài)變量x的微分用(2)式替代得到:

? ? ? ? ? ? ? ??

這個式子要始終成立的話,括號里的項(xiàng)必須恒等于0.

? ? ? ? ? ? ? ??

這是一個關(guān)于K的二次型等式,當(dāng)然這個二次型是我們不愿看到的,因?yàn)橛?jì)算復(fù)雜。現(xiàn)在只要這個等式成立,我們何必不選擇K使得兩個二次項(xiàng)正好約掉了呢?這樣既符合了要求,又簡化了計(jì)算。

取 ?? 代入上式得:

? ? ? ? ? ? ?(6)

K的二次項(xiàng)沒有了,可K的取值和P有關(guān),而P是我們假設(shè)的一個量,P只要使得的(6)式成立就行了。而(6)式在現(xiàn)代控制理論中極其重要,它就是有名的Riccati 方程。

現(xiàn)在回過頭總結(jié)下LQR控制器是怎么計(jì)算反饋矩陣K的:

? ? ? ?1.選擇參數(shù)矩陣Q,R

? ? ? ?2.求解Riccati 方程得到矩陣P

? ? ? ?3.計(jì)算

再看看LQR的結(jié)構(gòu)圖:

? ? ? ? ? ? ??

關(guān)于它的應(yīng)用呢,比較典型的就是倒立擺控制器的設(shè)計(jì)。

倒立擺的狀態(tài)變量為,其中p(t)是小車位置,θ是倒立擺的角度。系統(tǒng)結(jié)構(gòu)如程序所示:

A = [0 1 0 00 0 -1 00 0 0 10 0 9 0]; B = [0;0.1;0;-0.1]; C = [0 0 1 0]; %觀測角度 D = 0;Q = [1 0 0 00 1 0 00 0 10 00 0 0 10]; R = 0.1; %由上面這個系統(tǒng),可以計(jì)算出K K = lqr(A,B,Q,R); Ac = A - B*K; %對系統(tǒng)進(jìn)行模擬 x0 = [0.1;0;0.1;0]; %初始狀態(tài) t = 0:0.05:20; u = zeros(size(t)); [y,x]=lsim(Ac,B,C,D,u,t,x0); figure plot(t,y);


最后看到角度回到0,即平衡位置,控制器起到了作用,你可以選擇不同的Q,R進(jìn)行對比。

reference:

1.F.L. Lewis .<<?Linear Quadratic Regulator (LQR) State Feedback Design >>

2.http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum&section=ControlStateSpace

3.http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum&section=ControlStateSpace

總結(jié)

以上是生活随笔為你收集整理的2020-12-18 Matlab LQR 推导及简单应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。