日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Matlab】线性二次型最优控制问题(LQR控制)

發布時間:2023/12/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Matlab】线性二次型最优控制问题(LQR控制) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面介紹了變分法與極小值原理的基礎思想,之后有一個非常重要的應用就是線性二次型的最優控制問題。假如系統是線性的,性能泛函是狀態變量與控制變量的二次型函數的積分,那么這樣的問題稱之為線性二次型最優控制問題。形如:

上式中,Q1為狀態加權矩陣,Q2為控制加權矩陣,Q0為終端加權矩陣。(有些書中把Q2矩陣寫作R矩陣)

在實際應用中,Q1,Q2是對稱矩陣并且常取對角陣。

在實際的應用中,第一項為 Lx = 1/2 * xT * Q1 * x,其中x表示狀態誤差,x越大,代價函數Lx越大,Q1的對角線上的元素q1i表示的是對應誤差分量xi的重視程度,越被重視的誤差分量,就希望它越小,相應的加權系數就取得越大:

例如上式,對x1更重視,就把q11設置得更大一點。

被積函數中的第二項 Lu = 1/2 * uT * Q2 * u,代表動態過程中對控制的約束與要求。一般就取單位陣就可以。

被積函數中的第三項突出了對終端誤差的要求,看自身需求來確定,在有些場合需要,在有些場合不需要。

對于一般的系統,如何進行求解?可以按照下面的步驟:

對于以上的一般系統,可以先構造哈密頓函數:

之后根據最優控制求出最優控制時的控制量u的表達式,之后根據正則方程,將最優的u帶入進去,得到一個最優軌跡的表達式以及λ:

之后引入一個新的矩陣P來表示λ與x的關系:λ = Px,之后便可以由P表示出最優控制率K,之后再將引入控制器的u帶入回原系統(此時u可以由x來表示,因此可以合并),得到原系統的閉環表達式,之后便可以得到一個黎卡提方程:

以上只是演示一下推導的步驟,實際上當然不需要這么繁瑣,這個黎卡提方程也不需要我們每次都手算,由matlab,我們可以得到一個matlab推薦的值,不過這個黎卡提的一般求解方法也確實是一個世界難題。

實例:

假設我們有一個比較簡單的系統:x_dot = x + u,性能泛函就是線性二次型性能泛函的一般形式,那么按照這個步驟,便可以求出一個最優控制率:

其實使用matlab的話,是可以直接得到這個矩陣K的,之后代入就可以了,我自己做了一個簡單的sumilink模型來驗證一下:

按照那個方程畫出模型:

之后就可以看出最后的控制效果:

總結

以上是生活随笔為你收集整理的【Matlab】线性二次型最优控制问题(LQR控制)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。