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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【控制理论】离散及连续的LQR控制算法原理推导

發(fā)布時(shí)間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【控制理论】离散及连续的LQR控制算法原理推导 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 參考資料
  • 1. 全狀態(tài)反饋控制系統(tǒng)
  • 2. LQR控制器
    • 2.1 連續(xù)時(shí)間
      • 2.1.1 Q、R矩陣的選取
      • 2.1.2推導(dǎo)過(guò)程
      • 2.1.3 連續(xù)時(shí)間下的LQR算法步驟
    • 2.2 離散時(shí)間
      • 2.2.1 推導(dǎo)
      • 2.2.2 離散時(shí)間下的LQR算法步驟
  • 3. MPC與LQR比較

參考資料

  • https://www.bilibili.com/video/BV1RW411q7FD?spm_id_from=333.999.0.0
  • LQR控制器_simulink
  • https://jonathan-hui.medium.com/rl-lqr-ilqr-linear-quadratic-regulator-a5de5104c750
  • LQR控制算法推導(dǎo)以及簡(jiǎn)單分析
  • Riccati 黎卡提 system
  • LQR-離散時(shí)間有限邊界

1. 全狀態(tài)反饋控制系統(tǒng)

假設(shè)有一個(gè)線性系統(tǒng)用狀態(tài)向量表示:
{x˙=Ax+Buy=Cx+Du(1)\tag{1} \left\{\begin{array}{l} \dot{x}=A x+B u \\ y=C x+D u \end{array}\right. {x˙=Ax+Buy=Cx+Du?(1)
其中, x(t)∈Rn,u(t)∈Rmx(t) \in R^{n} , u(t) \in R^{m}x(t)Rnu(t)Rm

設(shè)計(jì)狀態(tài)反饋控制器
u=?Kx(2)\tag{2} u=-K x u=?Kx(2)
將式(2)帶入系統(tǒng)狀態(tài)方程(1)中,有
x˙=(A?BK)x=Acx(3)\tag{3} \dot{x}=(A-B K) x=A_{c} x x˙=(A?BK)x=Ac?x(3)
設(shè)定系統(tǒng)中的各個(gè)狀態(tài)量都可知,式(1)所示的開(kāi)環(huán)系統(tǒng),傳遞函數(shù)的極點(diǎn)就是系統(tǒng)矩陣A的特征值。 式(2)所示的閉環(huán)形式,通過(guò)配置反饋矩陣 KKK ,可以使得閉環(huán)系統(tǒng)達(dá)到所期望的系統(tǒng)狀態(tài)。

接下來(lái)講解如何使用LQR設(shè)計(jì)控制量uuu

2. LQR控制器

最優(yōu)控制理論主要探討的是讓動(dòng)力系統(tǒng)以最小成本來(lái)運(yùn)作,若系統(tǒng)動(dòng)態(tài)可以用一組線性微分方程表示,而其成本為二次泛函,這類的問(wèn)題稱為線性二次(LQ)問(wèn)題。此類問(wèn)題的解即為線性二次調(diào)節(jié)器,簡(jiǎn)稱LQR。

LQR(Linear quadratic regulator,線性二次型調(diào)節(jié)器),它假設(shè)模型是locally linear 和 time-varied的。

2.1 連續(xù)時(shí)間

LQR的目標(biāo)就是找到一組控制量u0,u1,...u_0,u_1,...u0?,u1?,...,使得同時(shí)有x0,x1,...x_0,x_1,...x0?,x1?,...能夠快速、穩(wěn)定地趨近于零,并保持平衡(系統(tǒng)達(dá)到穩(wěn)定狀態(tài)),u0,u1,...u_0,u_1,...u0?,u1?,...盡可能小(控制量盡量小的變化)。

這是一個(gè)典型的多目標(biāo)優(yōu)化最優(yōu)控制問(wèn)題,選取代價(jià)函數(shù)(目標(biāo)函數(shù))為
J=12∫0∞xTQx+uTRudt(4)\tag{4} J=\frac{1}{2} \int_{0}^{\infty} x^{T} Q x+u^{T} R u d t J=21?0?xTQx+uTRudt(4)
其中,Q、R分別是需要設(shè)計(jì)的半正定矩陣和正定矩陣

代價(jià)函數(shù) JJJ需要達(dá)到最小值,那么在 ttt趨近于無(wú)窮時(shí),狀態(tài)向量 x(t)x(t)x(t)肯定趨近于0,即是達(dá)到了系統(tǒng)穩(wěn)態(tài);同理, ttt趨近于無(wú)窮時(shí),控制向量 u(t)u(t)u(t)也會(huì)趨近于0,意味著,隨著時(shí)間的推移,需要對(duì)系統(tǒng)施加的控制量會(huì)越來(lái)越小,意味著使用最小的控制量使得系統(tǒng)達(dá)到了最終控制目標(biāo),反映的是控制能量的損耗優(yōu)化。

2.1.1 Q、R矩陣的選取

QQQ為半正定的狀態(tài)加權(quán)矩陣, RRR為正定的控制加權(quán)矩陣,兩者通常取為對(duì)角陣。QQQ矩陣元素變大意味著希望狀態(tài)量能夠快速趨近于零; RRR 矩陣元素變大意味著希望控制輸入能夠盡可能小,它意味著系統(tǒng)的狀態(tài)衰減將變慢。比如, Q11Q_{11}Q11??選取較大的值,會(huì)讓 x1x_1x1??很快的衰減到0;所以,Q、RQ、RQR的選取,要綜合看具體的實(shí)際應(yīng)用場(chǎng)景來(lái)調(diào)節(jié)。

2.1.2推導(dǎo)過(guò)程

  • u=?Kxu=-K xu=?Kx 代入代價(jià)函數(shù)后,有
    J=12∫0∞xT(Q+KTRK)xdt(5)\tag{5} J=\frac{1}{2} \int_{0}^{\infty} x^{T}\left(Q+K^{T} R K\right) x d t J=21?0?xT(Q+KTRK)xdt(5)
  • 假設(shè)存在一個(gè)常量矩陣 PPP 使得,
    ddt(xTPx)=?xT(Q+KTRK)x(6)\tag{6} \fracozvdkddzhkzd{d t}\left(x^{T} P x\right)=-x^{T}\left(Q+K^{T} R K\right) x dtd?(xTPx)=?xT(Q+KTRK)x(6)
  • 把式(6)代入(5)后,有
    J=?12∫0∞ddtxT(P)xdt=?12xTPx∣0∞=12xT(0)Px(0)(7)\tag{7} J=-\frac{1}{2} \int_{0}^{\infty} \fracozvdkddzhkzd{d t} x^{T}(P) x dt=-\frac{1}{2} x^{T}P x\bigg|^{\infty}_{0}=\frac{1}{2} x^{T}(0) P x(0) J=?21?0?dtd?xT(P)xdt=?21?xTPx?0?=21?xT(0)Px(0)(7)
    式(7)的意思就是,t趨近于無(wú)窮時(shí),系統(tǒng)狀態(tài)向量 x(t)x(t)x(t) 趨近于 0 ,這樣就直接計(jì)算出了積分方程。
  • 把式(6)左邊微分展開(kāi),并且將右邊移到左邊后有
    x˙TPx+xTPx˙+xTQx+xTKTRKx=0(8)\tag{8} \dot{x}^{T} P x+x^{T} P \dot{x}+x^{T} Q x+x^{T} K^{T} R K x=0 x˙TPx+xTPx˙+xTQx+xTKTRKx=0(8)
    x˙\dot xx˙用式(3)表示,代入式(8)
    xTAcTPx+xTPAcx+xTQx+xTKTRKx=0(9)\tag{9} x^{T} A_{c}^{T} P x+x^{T} P A_{c} x+x^{T} Q x+x^{T} K^{T} R K x=0 xTAcT?Px+xTPAc?x+xTQx+xTKTRKx=0(9)
    整理后,有
    xT(AcTP+PAc+Q+KTRK)x=0(10)\tag{10} x^{T}\left(A_{c}^{T} P+P A_{c}+Q+K^{T} R K\right) x=0 xT(AcT?P+PAc?+Q+KTRK)x=0(10)
    如果式(10)要有解,那么括號(hào)里面的部分必須等于0.
    AcTP+PAc+Q+KTRK=0(11)\tag{11} A_{c}^{T} P+P A_{c}+Q+K^{T} R K=0 AcT?P+PAc?+Q+KTRK=0(11)
    Ac=A?BKA_{c}=A-B KAc?=A?BK 代入式(11)
    (A?BK)TP+P(A?BK)+Q+KTRK=0(12)\tag{12} (A-B K)^{T} P+P(A-B K)+Q+K^{T} R K=0 (A?BK)TP+P(A?BK)+Q+KTRK=0(12)

    ATP+PA+Q+KTRK?KTBTP?PBK=0(13)\tag{13} A^{T} P+P A+Q+K^{T} R K-K^{T} B^{T} P-P B K=0 ATP+PA+Q+KTRK?KTBTP?PBK=0(13)
  • K=R?1BTPK=R^{-1} B^{T} PK=R?1BTP ,式(13)化為
    ATP+PA+Q+KTR(R?1BTP)?KTBTP?PB(R?1BTP)=0(14)\tag{14} A^{T} P+P A+Q+K^{T} R\left(R^{-1} B^{T} P\right)-K^{T} B^{T} P-P B\left(R^{-1} B^{T} P\right)=0 ATP+PA+Q+KTR(R?1BTP)?KTBTP?PB(R?1BTP)=0(14)
    化簡(jiǎn)后得
    ATP+PA?PBR?1BTP+Q=0(15)\tag{15} A^{T} P+P A-P B R^{-1} B^{T} P+Q=0 ATP+PA?PBR?1BTP+Q=0(15)
    式(15)中, A,B,Q,RA, B, Q, RA,B,Q,R 都是已知量,那么通過(guò)式(15)可以求解出 PPPn×nn \times nn×n維) ,式(15)就是著名的連續(xù)時(shí)間代數(shù)Riccati方程(CARE)。
  • 2.1.3 連續(xù)時(shí)間下的LQR算法步驟

    LQR的算法步驟如下:

    • 選擇參數(shù)矩陣Q,R(分別滿足半正定和正定)
    • 根據(jù)公式(15)求解Riccati方程得到矩陣P
      ATP+PA?PBR?1BTP+Q=0A^{T} P+P A-P B R^{-1} B^{T} P+Q=0 ATP+PA?PBR?1BTP+Q=0
    • 根據(jù)P計(jì)算增益K=R?1BTPK=R^{-1}B^{T}PK=R?1BTP
    • 計(jì)算控制量 u?=?Kxu^*=-Kxu?=?Kx

    2.2 離散時(shí)間

    2.2.1 推導(dǎo)

    假設(shè)一個(gè)離散的系統(tǒng)表示為
    X(k+1)=AX(k)+Bu(k)(16)\tag{16} \mathbf{X}(k+1) = A \mathbf{X}(k)+B \mathbf{u}(k) X(k+1)=AX(k)+Bu(k)(16)

    離散得LQR的目標(biāo)函數(shù)如下:
    J=∑k=1N(XTQX+uTRu)(17)\tag{17} J=\sum_{k=1}^{N}\left(\mathbf{X}^{T} Q \mathbf{X}+\mathbf{u}^{T} R \mathbf{u}\right) J=k=1N?(XTQX+uTRu)(17)

    其中 X\mathbf{X}Xn×1n \times 1n×1 的狀態(tài)向量, u\mathbf{u}uk×1k \times 1k×1 的控制變數(shù)向量, AAAn×nn \times nn×n 的狀態(tài)遞移矩陣, BBBn×kn \times kn×k 的控制系數(shù)矩陣, QQQn×nn \times nn×n的半正定狀態(tài)損失函數(shù)矩陣, RRRk×kk \times kk×k的正定控制損失函數(shù)矩陣。

    求解LQR的方法,有最小二乘法和動(dòng)態(tài)規(guī)劃算法。詳情請(qǐng)參考博客

    這里直接給出結(jié)果:從后往前推導(dǎo)可以找到每一個(gè)時(shí)間的最優(yōu)控制律:
    Kt=(R+BTPt+1B)?1BTPt+1Aut?=?KtXt(18)\tag{18} \begin{aligned} K_{t}&=\left(R+B^{T} P_{t+1} B\right)^{-1} B^{T} P_{t+1} A\\ u_{t}^{*}&=-K_{t} X_{t} \end{aligned} Kt?ut???=(R+BTPt+1?B)?1BTPt+1?A=?Kt?Xt??(18)
    其中矩陣 PPP 會(huì)依據(jù)下式并且配合初始值 PN=QP_{N}=QPN?=Q 進(jìn)行迭代求解
    Pt?1=Q+ATPtA?ATPtB(R+BTPt+1B)?1BTPtA(19)\tag{19} P_{t-1}=Q+A^{T} P_{t} A-A^{T} P_{t} B\left(R+B^{T} P_{t+1} B\right)^{-1} B^{T} P_{t} A Pt?1?=Q+ATPt?A?ATPt?B(R+BTPt+1?B)?1BTPt?A(19)
    這個(gè)就是離散時(shí)間的代數(shù) Riccati 方程(DARE)。 PPP 的穩(wěn)態(tài)解和和 NNN 趨近無(wú)限大時(shí)的無(wú)限時(shí)間問(wèn)題有關(guān),可以將方程(19)反復(fù)迭代直到收斂,來(lái)求得 PPP 的穩(wěn)態(tài)解。

    2.2.2 離散時(shí)間下的LQR算法步驟

    綜上,采用LQR算法進(jìn)行控制率求解的步驟概括為

  • 確定迭代范圍 NNN
  • 設(shè)置迭代初始值 PN=QfP_{N}=Q_{f}PN?=Qf?,其中Qf=QQ_f=QQf?=Q
  • 循環(huán)迭代, 從后往前t=N,…,1t=N, \ldots, 1t=N,,1
    Pt?1=Q+ATPtA?ATPtB(R+BTPtB)?1BTPtAP_{t-1}=Q+A^{T} P_{t} A-A^{T} P_{t} B\left(R+B^{T} P_{t} B\right)^{-1} B^{T} P_{t} A Pt?1?=Q+ATPt?A?ATPt?B(R+BTPt?B)?1BTPt?A
  • t=0,…,N?1t=0, \ldots, N-1t=0,,N?1,循環(huán)計(jì)算反饋系數(shù) Kt=(R+BTPt+1B)?1BTPt+1AK_{t}=\left(R+B^{T} P_{t+1} B\right)^{-1} B^{T} P_{t+1} AKt?=(R+BTPt+1?B)?1BTPt+1?A
  • 最終得優(yōu)化的控制量 ut?=?KtXtu_{t}^{*}=-K_{t} X_{t}ut??=?Kt?Xt?
  • 3. MPC與LQR比較

    MPC和LQR兩種控制方式有很多的相似之處,但是也有很多不相同的地方,

    • 首先,LQR的研究對(duì)象是現(xiàn)代控制理論中的狀態(tài)空間方程給出的線性系統(tǒng),而MPC的研究對(duì)象可以是線性系統(tǒng),也可以是非線性系統(tǒng)。不過(guò)現(xiàn)在很多的做法都是將非線性系統(tǒng)線性化,然后進(jìn)行相關(guān)計(jì)算,具體要根據(jù)自己的工程情況來(lái)確定哪種方式比較好。
    • 其次,既然是優(yōu)化問(wèn)題,那就離不開(kāi)目標(biāo)函數(shù)的設(shè)計(jì),LQR的目標(biāo)函數(shù)在上面已經(jīng)有描述,MPC的目標(biāo)函數(shù),多數(shù)都是多個(gè)優(yōu)化目標(biāo)乘以不同權(quán)重然后求和的方式。雖然方式不同,不過(guò)都是對(duì)達(dá)到控制目標(biāo)的代價(jià)累計(jì)。
    • 最后,工作時(shí)域上的不同,LQR的計(jì)算針對(duì)同一工作時(shí)域,在一個(gè)控制周期內(nèi),LQR只計(jì)算一次,并將此次計(jì)算出的最優(yōu)解下發(fā)給控制器即可;而MPC是滾動(dòng)優(yōu)化的,計(jì)算未來(lái)一段時(shí)間內(nèi),每個(gè)采樣周期都會(huì)經(jīng)過(guò)計(jì)算,得出一組控制序列,但是只將第一個(gè)控制值下發(fā)給控制器。

    總結(jié)

    以上是生活随笔為你收集整理的【控制理论】离散及连续的LQR控制算法原理推导的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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