前面介紹了變分法與極小值原理的基礎(chǔ)思想,之后有一個非常重要的應(yīng)用就是線性二次型的最優(yōu)控制問題。假如系統(tǒng)是線性的,性能泛函是狀態(tài)變量與控制變量的二次型函數(shù)的積分,那么這樣的問題稱之為線性二次型最優(yōu)控制問題。形如:
上式中,Q1為狀態(tài)加權(quán)矩陣,Q2為控制加權(quán)矩陣,Q0為終端加權(quán)矩陣。(有些書中把Q2矩陣寫作R矩陣)
在實際應(yīng)用中,Q1,Q2是對稱矩陣并且常取對角陣。
在實際的應(yīng)用中,第一項為 Lx = 1/2 * xT * Q1 * x,其中x表示狀態(tài)誤差,x越大,代價函數(shù)Lx越大,Q1的對角線上的元素q1i表示的是對應(yīng)誤差分量xi的重視程度,越被重視的誤差分量,就希望它越小,相應(yīng)的加權(quán)系數(shù)就取得越大:
例如上式,對x1更重視,就把q11設(shè)置得更大一點。
被積函數(shù)中的第二項 Lu = 1/2 * uT * Q2 * u,代表動態(tài)過程中對控制的約束與要求。一般就取單位陣就可以。
被積函數(shù)中的第三項突出了對終端誤差的要求,看自身需求來確定,在有些場合需要,在有些場合不需要。
對于一般的系統(tǒng),如何進行求解?可以按照下面的步驟:
對于以上的一般系統(tǒng),可以先構(gòu)造哈密頓函數(shù):
之后根據(jù)最優(yōu)控制求出最優(yōu)控制時的控制量u的表達(dá)式,之后根據(jù)正則方程,將最優(yōu)的u帶入進去,得到一個最優(yōu)軌跡的表達(dá)式以及λ:
之后引入一個新的矩陣P來表示λ與x的關(guān)系:λ = Px,之后便可以由P表示出最優(yōu)控制率K,之后再將引入控制器的u帶入回原系統(tǒng)(此時u可以由x來表示,因此可以合并),得到原系統(tǒng)的閉環(huán)表達(dá)式,之后便可以得到一個黎卡提方程:
以上只是演示一下推導(dǎo)的步驟,實際上當(dāng)然不需要這么繁瑣,這個黎卡提方程也不需要我們每次都手算,由matlab,我們可以得到一個matlab推薦的值,不過這個黎卡提的一般求解方法也確實是一個世界難題。
實例:
假設(shè)我們有一個比較簡單的系統(tǒng):x_dot = x + u,性能泛函就是線性二次型性能泛函的一般形式,那么按照這個步驟,便可以求出一個最優(yōu)控制率:
其實使用matlab的話,是可以直接得到這個矩陣K的,之后代入就可以了,我自己做了一個簡單的sumilink模型來驗證一下:
按照那個方程畫出模型:
之后就可以看出最后的控制效果:文章來源:http://www.zghlxwxcb.cn/news/detail-448825.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-448825.html
到了這里,關(guān)于【Matlab】線性二次型最優(yōu)控制問題(LQR控制)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!