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

歡迎訪問 生活随笔!

生活随笔

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

LQR控制算法的浅析

發(fā)布時(shí)間:2023/12/14 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LQR控制算法的浅析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

前言

一、知識(shí)點(diǎn)補(bǔ)充

? ? ? ? 1、拉格朗日乘子法

? ? ? ? 2、積分中值定理

? ? ? ? 3、向前歐拉法,向后歐拉法,中點(diǎn)歐拉法

????????4、向量的導(dǎo)數(shù)

? ? ? ? 5、矩陣求逆引理(記住就好,推導(dǎo)見鏈接)

二、連續(xù)時(shí)間下的LQR推導(dǎo)

? ? ? ? 1、系統(tǒng)狀態(tài)方程

? ? ? ? 2、推導(dǎo)過程

????????3、例子-------手平衡小桿? ??

????????3.1、系統(tǒng)模型

????????3.2、simulink模型仿真

????????????????3.2.1、開環(huán)情況(k1=k2=0,初值設(shè)置為5)

? ? ? ? ? ? ? ? 3.2.2、閉環(huán)情況

? ? ? ? ? ? ? ? 仿真結(jié)果:

三、離散時(shí)間下的LQR推導(dǎo)(重要)

? ? ? ? 1、狀態(tài)方程離散化

? ? ? ? 2、離散LQR的解法

總結(jié)

???


前言

這里的部分內(nèi)容和之前的轉(zhuǎn)載文章有相同的地方LQR控制算法及matlab/simulink仿真_陌路兩立的博客-CSDN博客_lqr matlab,寫這篇文章的目的是為了增強(qiáng)自己對(duì)LQR控制算法的理解。


一、知識(shí)點(diǎn)補(bǔ)充

? ? ? ? 1、拉格朗日乘子法

? ? ? ? ? ? ? ? 假設(shè)需要求極值的目標(biāo)函數(shù)為,約束條件為。設(shè),定義一個(gè)新函數(shù),則用偏導(dǎo)數(shù)方法列出方程:

? ? ? ? 2、積分中值定理

? ? ? ? ? ? ? ? 若函數(shù)在閉區(qū)間上連續(xù),則在積分區(qū)間上至少存在一個(gè)點(diǎn),使得下式成立:

其中,,滿足:。

? ? ? ? 3、向前歐拉法,向后歐拉法,中點(diǎn)歐拉法

? ? ? ? ? ? ? ? 向前歐拉法:;

? ? ? ? ? ? ? ? 向后歐拉法:;

? ? ? ? ? ? ? ? 中點(diǎn)歐拉法:。

????????4、向量的導(dǎo)數(shù)

????????????????

? ? ? ? ? ? ? ? ? ? ?參考:? ?向量的導(dǎo)數(shù)_影子飛揚(yáng)的博客-CSDN博客_向量的導(dǎo)數(shù)

? ? ? ? 5、矩陣求逆引理(記住就好,推導(dǎo)見鏈接)

????????

? ? ? ? ? ? ? ? ? ? 參考:矩陣求逆引理(matrix inversion lemma)_UESTC_C2_403的博客-CSDN博客_矩陣求逆引理

二、連續(xù)時(shí)間下的LQR推導(dǎo)

? ? ? ? 1、系統(tǒng)狀態(tài)方程

? ? ? ? ? ? ? ? 開環(huán):;

? ? ? ? ? ? ? ? 閉環(huán):,設(shè)計(jì),可以得到,通過改變可以改變的特征值從而控制系統(tǒng)表現(xiàn)。

? ? ? ? 2、推導(dǎo)過程

? ? ? ? ? ? ? ? 系統(tǒng)的狀態(tài)發(fā)生變化的原因是在上一個(gè)狀態(tài)時(shí),有外界干擾或者系統(tǒng)的輸入發(fā)生變化引起的,忽略外界干擾的影響,這里引入cost function(能量函數(shù),損失函數(shù)):

其中,Q和R均為自己設(shè)計(jì)的半正定矩陣。我們的目的就是通過設(shè)計(jì)Q和R使得能量函數(shù)最小。?

能量函數(shù)的理解:

????????? ? ? ? ? ?Q=,能量函數(shù)前面部分可以寫成,當(dāng)時(shí),Q表現(xiàn)為懲罰;R越大,u對(duì)J的影響越大,希望J越小,可以使得u減小。

假設(shè)Q=當(dāng)?時(shí),J將會(huì)變得非常大,對(duì)J有較大的影響,為了使得J減小,只能希望快速收斂。

? ? ? ? ? ? ? ? 將控制器?代入到能量函數(shù)中:


? ? ? ? ? ? ? ? ? ? ?

?????????????????為了找到,假設(shè)存在一個(gè)常量矩陣,使得

????????????????????????

? ? ? ? ? ? ? ? 隨后得到:

???????????????????

?????

? ? ? ? ? ? ? ? 將代入到上式中得:

? ? ? ? ? ? ? ? 為了使上式恒成立,我們可以得到:

????????????????

? ? ? ? ? ? ? ? 通過令?,上式可以化簡(jiǎn)為:

該式就是著名的Riccati方程。其中??是系統(tǒng)矩陣已知,選取合適的?,可以解出?,從而得到,控制器。

注:k的由來

????????3、例子-------手平衡小桿? ??

????????3.1、系統(tǒng)模型

???????????????下面是B站大佬DR_CAN對(duì)LQR控制算法的講解(知識(shí)的搬運(yùn)工)。

? ? ? ? ? ? ? ?運(yùn)動(dòng)學(xué)方程:

????????????????

其中:?表示桿子的長(zhǎng)度,?表示重力加速度,?表示桿子與垂直方向的夾角,?表示手的移動(dòng)。

? ? ? ? ? ? ? 通過令?? 可以得到:

? ? ? ? ? ? ? 令??得:

????????3.2、simulink模型仿真

????????????????3.2.1、開環(huán)情況(k1=k2=0,初值設(shè)置為5)

?

? ? ? ? ? ? ? ? 3.2.2、閉環(huán)情況

? ? ? ? ? ? ? ? ? ? ? ? LQR求k代碼:? ? ? ? ? ??

%% 系統(tǒng)參數(shù) A=[0 1;10 0]; B=[0;-1];%% 大Q情況 Q=[100 0;0 1]; R=.01; K=lqr(A,B,Q,R);%% 大R情況 % Q=[1 0;0 1]; % R=100; % K=lqr(A,B,Q,R);%% 求解出來 k1=K(1,1); k2=K(1,2);

? ? ? ? ????????????????simulink模型:

?

?

?大R情況:k1=-20.000499987499590,k2=-6.325424884938331;

?大Q情況:k1=-1.104987562112088e+02,k2=-17.916403445513760;

? ? ? ? ? ? ? ? 仿真結(jié)果:
?

?

?????????????????結(jié)論:通過選取不同的Q和R可以得到不同的系統(tǒng)表現(xiàn),其中大Q決定的是系統(tǒng)的狀態(tài)能否快速達(dá)到收斂效果,大R決定的是系統(tǒng)的能耗(輸入)。

參考:?1、視頻鏈接:https://www.bilibili.com/video/BV1RW411q7FDshare_source=copy_web

? ? ? ? ? ? 2、LQR控制算法及matlab/simulink仿真_陌路兩立的博客-CSDN博客_lqr matlab


三、離散時(shí)間下的LQR推導(dǎo)(重要)

? ? ? ? 1、狀態(tài)方程離散化

? ? ? ? ? ? ? ? 離散之后最重要的一個(gè)就是不可以使用微分方程描述系統(tǒng)了。

? ? ? ? ? ? ? ? 動(dòng)力學(xué)方程:,對(duì)動(dòng)力學(xué)方程兩邊同時(shí)求積分得:

其中,這里我們需要知道是?是 ?維的,?稱為采樣周期。

使用到的知識(shí)點(diǎn):狀態(tài)??去??使用的是中間歐拉法,控制輸入??去??使用的是向前歐拉法(因?yàn)槲覀儫o法知道)。

? ? ? ? 2、離散LQR的解法

? ? ? ? ? ? ? ? step 1:和連續(xù)時(shí)間下的LQR相同,首先引入能量函數(shù)(cost function):

? ? ? ? ? ? ? ? step 2:引入約束函數(shù):

注:為什么cost function只有,卻沒有呢?

答:如果改為的話,可是約束函數(shù)只能覆蓋,所以cost function只能為。

? ? ? ? ? ? ? ? step 3:拉格朗日乘子法求解cost function:

? ? ? ? ? ? ? ? ? ? ? ? 首先將約束函數(shù)寫為:

????????

? ? ? ? ? ? ? ? ? ? ? ? 然后構(gòu)造新函數(shù):? ? ? ?

? ? ? ? ? ? ??

其中?。

注:注意這里的維度問題,?是維的。

? ? ? ? ? ? ? ? ? ? ? ? 接下來對(duì)構(gòu)造的函數(shù)求偏導(dǎo):

? ? ? ? ? ? ? ? 首先對(duì)??求偏導(dǎo):

????????????????

????????????????綜上所述:

? ? ? ? ? ? ? ? 然后對(duì)??求導(dǎo):

? ? ? ? ? ? ? ? 最后對(duì)求導(dǎo):

????????????????

? ? ? ? ? ? ? ? 綜上所述:

其中,。

? ? ? ? ? ? ? ? step 4:遞推式

? ? ? ? ? ? ? ? ? ? ? ? 當(dāng)?時(shí):

通過對(duì)比?和可以推出:

其中?(Riccati方程)。

可以得到:

其中??認(rèn)為已知。

LQR控制實(shí)際為:

首先,取矩陣??初值為,然后,代入離散時(shí)間下的Riccati方程?中迭代,求出矩陣??(一般只需要迭代幾十次,?就會(huì)收斂),最后,將??代入到??中得到?。


總結(jié)

這里是我自己學(xué)LQR控制算法的推導(dǎo)過程,數(shù)學(xué)原理很大,總結(jié)起來就是,通過選取Q和R,然后將A,B,Q,R代入LQR控制算法中(A,B是系統(tǒng)的狀態(tài)矩陣,認(rèn)為是已知的),從而得到K,然后將K代入到反饋控制輸入?中,從而得到控制輸入,其中Q決定的是收斂速度,R決定的是能耗。因此,我們需要通過選擇合適的Q和R使得cost function達(dá)到最優(yōu)。歡迎大家來討論指正(我的QQ1012154405),一起在控制的海洋中前進(jìn)!!!

總結(jié)

以上是生活随笔為你收集整理的LQR控制算法的浅析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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