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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HJB方程的一些简单理解和过程推导

發布時間:2023/12/8 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HJB方程的一些简单理解和过程推导 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于一個最優控制問題,HJB方程是連續時間最優控制的充分必要條件。

Hamilton-Jacobi-Bellman方程

  • 如何理解HJB方程
    • 公式的理解
    • 推導過程的步驟理解
  • 從源頭講起
    • 背景知識
      • 最優控制問題
      • 動態規劃的最優性原理
    • HJB方程
      • 定義
      • HJB方程的簡單應用
      • 必要性的簡要證明(公式推導)

如何理解HJB方程

??V?t(x(t),t)=min?u(t)∈U{g(x(t),u(t),t)+?V?x(x(t),t)?f(x(t),u(t),t)}-\frac{ \partial V }{ \partial t }(x(t),t)=\mathop{\min}_{u(t)\in U}\left\{g(x(t),u(t),t)+\frac{ \partial V }{ \partial x }(x(t),t)\cdot f(x(t),u(t),t) \right\} ??t?V?(x(t),t)=minu(t)U?{g(x(t),u(t),t)+?x?V?(x(t),t)?f(x(t),u(t),t)}
其中VVV是值函數,ggg是過程成本,fff是狀態方程

公式的理解

首先要理解值函數代表什么。值函數是性能指標(定義在下文)的最優值。一般性能指標都是由兩部分組成,一部分是積分,一部分就是一個和終點有關的值。比如從A開車去B,那么積分的部分可以是油錢,這取決于你的控制方式和在這段時間的行駛距離。第二部分就是停止時離終點的距離。這里的油錢也被稱為過程成本??刂?#xff08;油門,剎車)用狀態方程表示,給定當前位置和控制,就能知道下一時刻的位置在哪里。
這個式子有個隱含條件就是已知全程所用的時間。那么就是說在給定時間內,每一秒,都對應了應該用什么控制去走多少米。公式左邊對應的是最優值隨時間的變動,加負號是因為時間不能返流,滿足因果關系。
現在看公式右邊,第一項是當前所需要的油錢,第二項的偏導數說的是位置變動會引起最優值變動多少,那么具體移動多少移動到哪里是由狀態方程決定的,那么第二項的意思就顯而易見了,在當前位置,通過控制,實現移動后,能讓最優值改變多少。位置變動引起油價和最優值的變動,而位置的變動是由控制引起的。我們希望尋找一個最優控制,這個最優控制能做到在最優值隨時間變化過程中引起的變化正好是由于最優控制引起的位置的變化而導致的油價和最優值的變化,當然這個值是最小值。也可以理解成不浪費任何一秒的時間。

推導過程的步驟理解

我希望從上海出發到北京,有兩條路可以走。一條是上海-南京-北京,一條是上海-南京-天津-北京。如果我們已知上海-南京-北京是最短路徑,那么從南京到北京的最短路徑肯定是上海-南京-北京的子序南京-北京。
這里面我們將過程成本定義成油錢。如果一次性將上海-北京這段距離最省錢的方式計算出來不容易,那么我們怎么辦。首先我們可以先假設有那么一個最優值為VVV,其等于油錢和離終點距離的總和。根據前一段的原理,可以先計算從上海-南京的油錢,之后再計算從南京-北京的,而且一定是最優的解。不如更極限一點,計算這一秒到下一秒的油錢,那么這一段的時間足夠短,可以直接用當前的成本??時間來計算,或者說是當前的單位成本。之后的這么長距離的最優值是V‘V^‘V。那么這個1秒鐘的油錢的成本,其實就是兩個地方最優值的差。那么我們自然會想可能兩個最優值之間就是有某種差值,那么用泰勒展開的方法對當前最優值在初始最優值位置進行展開,留下來的差值其實就是對應的油錢。那么按此過程理解,推導步驟基本就形成了。

從源頭講起

背景知識

最優控制問題

假設現在有一輛自動駕駛汽車,我們要設置控制方法,讓其沿著指定路線到達某一個位置。要完成這項工作,首要的任務就是了解這輛車當前的“狀態”和關于“控制”的變化規律:比如我們一般最關心當前的位置和車速,通過當前位置和速度去進行控制,比如打方向盤,踩剎車,踩油門等,從而又會引起當前位置和車速的變化。與此同時,我們可能還希望省油,車速平穩,不超速等要求。要滿足以上的需求,需要合理的設計控制方法,以上問題我們就可以把它寫成一個最優控制問題。
最優控制問題的四個基本元素:

  • 狀態方程:描述系統(自動駕駛汽車)的運動學或動力學方程

    x˙(t)=f(x(t),u(t),t),t∈[t0,tf].x(t0)=x0\dot{x}(t)=f(x(t),u(t),t) , t\in[t_0,t_f]. x(t_0)=x_0x˙(t)=f(x(t),u(t),t),t[t0?,tf?].x(t0?)=x0?

  • 容許控制:控制與狀態滿足的約束

    u∈U,x∈X.u\in U , x\in X.uU,xX.

  • 目標集:在結束時間tft_ftf?,被控對象的狀態x(tf)x(t_f)x(tf?)應符合的條件

S={x(tf):m(x(tf),tf)=0}S= \left\{ x(t_f):m(x(t_f),t_f)=0 \right\}S={x(tf?):m(x(tf?),tf?)=0}

  • 性能指標:hhh為終端成本,ggg為運行成本
    J(u)=h(x(tf),tf)+∫t0tfg(x(t),u(t),t)dt.\displaystyle{J(u)=h(x(t_f),t_f)+\int_{t_0}^{t_f}g(x(t),u(t),t)dt.}J(u)=h(x(tf?),tf?)+t0?tf??g(x(t),u(t),t)dt.

最優控制可以理解為求解滿足狀態方程、容許控制,且能達到目標點的情況下使性能指標最優的控制。

解決最優控制問題常用的有三種方法:變分法,極小值原理和動態規劃。HJB方程就是在動態規劃這個框架之中提出的。

動態規劃的最優性原理

現在我希望從上海出發到北京,有兩條路可以走。一條是上海-南京-北京,一條是上海-南京-天津-北京。這其實是一個多決策控制,我每到一個城市(狀態),都需要做出決策,下一步去哪里(如何控制)。如果我們已知上海-南京-北京是最短路徑,那么從南京到北京的最短路徑肯定是上海-南京-北京的子序南京-北京。
將上述過程抽象,就得到了著名的最優性原理
多級決策過程的最優策略具有如下性質:不論初始狀態和初始決策如何,其余的決策對于由初始決策所形成的狀態來說,必定也是一個最優策略。

HJB方程

定義

現在考慮更為廣泛的一類問題。以任意時刻為初始時刻,任意容許的狀態為初始狀態,同時定義性能指標為:
J(u;x(t),t)=h(x(tf),tf)+∫ttfg(x(τ),u(τ),τ)dτ.\displaystyle{J(u;x(t),t)=h(x(t_f),t_f)+\int_{t}^{t_f}g(x(\tau),u(\tau),\tau)d\tau.}J(u;x(t),t)=h(x(tf?),tf?)+ttf??g(x(τ),u(τ),τ)dτ.
且其狀態方程為:
x˙(t)=f(x(t),u(t),t),t∈[t0,tf]\dot{x}(t)=f(x(t),u(t),t), t\in[t_0,t_f]x˙(t)=f(x(t),u(t),t),t[t0?,tf?]
我們試圖將求解這個性能指標問題轉化為求解HJB方程問題,在此之前,要先定義該最優控制問題求解之后性能指標的最優值為值函數:
V(x,t)=min?u∈UJ(u;x,t),t∈[t0,tf].\displaystyle{V(x,t)=\mathop{\min}_{u\in U}J(u;x,t), t\in [t_0,t_f].} V(x,t)=minuU?J(u;x,t),t[t0?,tf?].

那么我們所說的HJB方程如下:
??V?t(x(t),t)=min?u(t)∈RmH(x(t),u(t),?V?x(x(t),t),t)-\frac{ \partial V }{ \partial t }(x(t),t)=\mathop{\min}_{u(t)\in R^m}H(x(t),u(t),\frac{ \partial V }{ \partial x }(x(t),t),t) ??t?V?(x(t),t)=minu(t)Rm?H(x(t),u(t),?x?V?(x(t),t),t)
滿足的邊界條件為:
V(x(tf),tf)=h(x(tf),tf)V(x(t_f),t_f)=h(x(t_f),t_f)V(x(tf?),tf?)=h(x(tf?),tf?)

其中H(x,u,p,t)=g(x,u,t)+p?f(x,u,t)H(x,u,p,t)=g(x,u,t)+p\cdot f(x,u,t)H(x,u,p,t)=g(x,u,t)+p?f(x,u,t)為Hamiltonian函數。

這個公式看起來挺復雜,先看一下怎么用,再推導。

HJB方程的簡單應用

這里給出一個例子,用于學會如何從一個給定的最優控制直接得出HJB方程:
比如性能指標中的過程指標(隨便構造的,不具有任何意義)
g(u,x)=12(u(t)umax)2+x(t)xref\displaystyle{g(u,x)=\frac{1 }{2}(\frac{u(t) }{u_{max}})^2}+\frac{x(t) }{x_{ref}} g(u,x)=21?(umax?u(t)?)2+xref?x(t)?
動力學方程為:
x˙(t)=u(t)\dot{x}(t)=u(t) x˙(t)=u(t)
則對應的過程指標為:
J(u;x(t),t)=h(x(tf),tf)+∫ttf12(u(t)umax)2+x(t)xrefdt\displaystyle{J(u;x(t),t)=h(x(t_f),t_f)+\int_{t}^{t_f}\frac{1 }{2}(\frac{u(t) }{u_{max}})^2}+\frac{x(t) }{x_{ref}}dtJ(u;x(t),t)=h(x(tf?),tf?)+ttf??21?(umax?u(t)?)2+xref?x(t)?dt

直接套用公式得出HJB方程為:
?V?t(x(t),t)+min?u(t)∈Rm(12(u(t)umax)2+x(t)xref+u(t)??V?x)\frac{ \partial V }{ \partial t }(x(t),t)+\mathop{\min}_{u(t)\in R^m}(\frac{1 }{2}(\frac{u(t) }{u_{max}})^2+\frac{x(t) }{x_{ref}}+u(t)\cdot \frac{ \partial V }{ \partial x }) ?t?V?(x(t),t)+minu(t)Rm?(21?(umax?u(t)?)2+xref?x(t)?+u(t)??x?V?)
滿足的邊界條件為:
V(x(tf),tf)=h(x(tf),tf)V(x(t_f),t_f)=h(x(t_f),t_f)V(x(tf?),tf?)=h(x(tf?),tf?)

必要性的簡要證明(公式推導)

選擇一個小量ΔtΔtΔt,將[t,tf][t,t_f][t,tf?]區間上最優控制的性能指標分為[t,t+Δt][t,t+Δt][t,t+Δt][t+Δt,tf][t+Δt,t_f][t+Δt,tf?]兩段,其中
t>t0t>t_0t>t0?任取。值函數滿足:
V(x,t)=min?u(τ):[t,tf]→Rm{h(x(tf),tf)+∫ttfg(x(τ),u(τ),τ)dτ}=min?u(τ):[t,tf]→Rm{h(x(tf),tf)+∫tt+Δtg(x(τ),u(τ),τ)dτ+∫t+Δttfg(x(τ),u(τ),τ)dτ}\displaystyle{V(x,t)=\mathop{\min}_{u(\tau):[t,t_f]\rightarrow R^m}\left\{h(x(t_f),t_f)+\int_{t}^{t_f}g(x(\tau),u(\tau),\tau)d\tau\right\}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \displaystyle{=\mathop{\min}_{u(\tau):[t,t_f]\rightarrow R^m}\left\{h(x(t_f),t_f)+\int_{t}^{t+Δt}g(x(\tau),u(\tau),\tau)d\tau+ \int_{t+Δt}^{t_f}g(x(\tau),u(\tau),\tau)d\tau\right\}} V(x,t)=minu(τ):[t,tf?]Rm?{h(x(tf?),tf?)+ttf??g(x(τ),u(τ),τ)dτ}=minu(τ):[t,tf?]Rm?{h(x(tf?),tf?)+tt+Δt?g(x(τ),u(τ),τ)dτ+t+Δttf??g(x(τ),u(τ),τ)dτ}
考察區間[t+Δt,tf][t+Δt,t_f][t+Δt,tf?]上的最優控制子問題。令該子問題的初始時刻為t+Δtt+Δtt+Δt,初始狀態為x(t+Δt)x(t+Δt)x(t+Δt)。其值函數為:
V(x(t+Δt),t+Δt)=min?u(τ):[t+Δt,tf]→Rm{h(x(tf),tf)+∫t+Δttfg(x(τ),u(τ),τ)dτ}\displaystyle{V(x(t+Δt),t+Δt)=\mathop{\min}_{u(\tau):[t+Δt,t_f]\rightarrow R^m}\left\{h(x(t_f),t_f)+\int_{t+Δt}^{t_f}g(x(\tau),u(\tau),\tau)d\tau\right\}} V(x(t+Δt),t+Δt)=minu(τ):[t+Δt,tf?]Rm?{h(x(tf?),tf?)+t+Δttf??g(x(τ),u(τ),τ)dτ}
根據最優性原理,如果u(τ):[t,tf]→Rmu(\tau):[t,t_f]\rightarrow R^mu(τ):[t,tf?]Rm[t,tf][t,t_f][t,tf?]上的最優控制,在子區間[t+Δt,tf][t+Δt,t_f][t+Δt,tf?]u(τ):[t+Δt,tf]→Rmu(\tau):[t+Δt,t_f]\rightarrow R^mu(τ):[t+Δt,tf?]Rm也是子問題的最優控制。所以有:
V(x(t),t)=min?u(τ):[t,t+Δt]→Rm{∫tt+Δtg(x(τ),u(τ),τ)dτ+V(x(t+Δt),t+Δt)}\displaystyle{V(x(t),t)=\mathop{\min}_{u(\tau):[t,t+Δt]\rightarrow R^m}\left\{\int_{t}^{t+Δt}g(x(\tau),u(\tau),\tau)d\tau+V(x(t+Δt),t+Δt)\right\}} V(x(t),t)=minu(τ):[t,t+Δt]Rm?{tt+Δt?g(x(τ),u(τ),τ)dτ+V(x(t+Δt),t+Δt)}
t+Δtt+Δtt+Δt時刻的值函數V(x(t+Δt),t+Δt)V(x(t+Δt),t+Δt)V(x(t+Δt),t+Δt)在x(t),t點一階泰勒展開,得到
V(x(t),t)=min?u(τ):[t,t+Δt]→Rm{∫tt+Δtg(x(τ),u(τ),τ)dτ+V(x(t+Δt),t+Δt)}=min?u(τ):[t,t+Δt]→Rm{∫tt+Δtg(x(τ),u(τ),τ)dτ+V(x(t),t)+?V?t(x(t),t)Δt+?V?x(x(t),t)?[x(t+Δt)?x(t)]+o(Δt)}\displaystyle{V(x(t),t)=\mathop{\min}_{u(\tau):[t,t+Δt]\rightarrow R^m}\left\{\int_{t}^{t+Δt}g(x(\tau),u(\tau),\tau)d\tau+V(x(t+Δt),t+Δt)\right\}}\\ \quad\quad\quad\quad\quad \displaystyle{=\mathop{\min}_{u(\tau):[t,t+Δt]\rightarrow R^m}\left\{\int_{t}^{t+Δt}g(x(\tau),u(\tau),\tau)d\tau+V(x(t),t)+\frac{ \partial V }{ \partial t }(x(t),t)Δt+\frac{ \partial V }{ \partial x }(x(t),t)\cdot [x(t+Δt)-x(t)]+o(Δt) \right\}} V(x(t),t)=minu(τ):[t,t+Δt]Rm?{tt+Δt?g(x(τ),u(τ),τ)dτ+V(x(t+Δt),t+Δt)}=minu(τ):[t,t+Δt]Rm?{tt+Δt?g(x(τ),u(τ),τ)dτ+V(x(t),t)+?t?V?(x(t),t)Δt+?x?V?(x(t),t)?[x(t+Δt)?x(t)]+o(Δt)}
對上式簡化。對足夠小的Δt,τ∈[t,t+Δt],gΔt,\tau\in[t,t+Δt],gΔt,τ[t,t+Δt],g對t連續,于是有:
∫tt+Δtg(x(τ),u(τ),τ)dτ=g(x(t),u(t),t)Δt+o(Δt)?V?x(x(t),t)?[x(t+Δt)?x(t)]=?V?x(x(t),t)?f(x(t),u(t),t)Δt+o(Δt)\int_{t}^{t+Δt}g(x(\tau),u(\tau),\tau)d\tau=g(x(t),u(t),t)Δt+o(Δt)\\ \frac{ \partial V }{ \partial x }(x(t),t)\cdot [x(t+Δt)-x(t)]=\frac{ \partial V }{ \partial x }(x(t),t)\cdot f(x(t),u(t),t)Δt+o(Δt) tt+Δt?g(x(τ),u(τ),τ)dτ=g(x(t),u(t),t)Δt+o(Δt)?x?V?(x(t),t)?[x(t+Δt)?x(t)]=?x?V?(x(t),t)?f(x(t),u(t),t)Δt+o(Δt)
于是又可以得到:
V(x(t),t)=min?u(τ):[t,t+Δt]→Rm{g(x(t),u(t),t)Δt+V(x(t),t)+?V?t(x(t),t)Δt+?V?x(x(t),t)?f(x(t),u(t),t)Δt+o(Δt)}\displaystyle{V(x(t),t)=\mathop{\min}_{u(\tau):[t,t+Δt]\rightarrow R^m}\left\{g(x(t),u(t),t)Δt+V(x(t),t)+\frac{ \partial V }{ \partial t }(x(t),t)Δt+\frac{ \partial V }{ \partial x }(x(t),t)\cdot f(x(t),u(t),t)Δt+o(Δt) \right\}} V(x(t),t)=minu(τ):[t,t+Δt]Rm?{g(x(t),u(t),t)Δt+V(x(t),t)+?t?V?(x(t),t)Δt+?x?V?(x(t),t)?f(x(t),u(t),t)Δt+o(Δt)}
這里面可以看到優化的是uuu所以左右的V(x(t),t)V(x(t),t)V(x(t),t)可以刪掉,移向整理得:
??V?t(x(t),t)Δt=min?u(τ):[t,t+Δt]→Rm{g(x(t),u(t),t)Δt+?V?x(x(t),t)?f(x(t),u(t),t)Δt+o(Δt)}-\frac{ \partial V }{ \partial t }(x(t),t)Δt=\mathop{\min}_{u(\tau):[t,t+Δt]\rightarrow R^m}\left\{g(x(t),u(t),t)Δt+\frac{ \partial V }{ \partial x }(x(t),t)\cdot f(x(t),u(t),t)Δt+o(Δt) \right\} ??t?V?(x(t),t)Δt=minu(τ):[t,t+Δt]Rm?{g(x(t),u(t),t)Δt+?x?V?(x(t),t)?f(x(t),u(t),t)Δt+o(Δt)}
同時除以ΔtΔtΔt,再令Δt→0Δt\rightarrow0Δt0.得到對于任意的t∈[t0,tf]t\in[t_0,t_f]t[t0?,tf?]都有:
??V?t(x(t),t)=min?u(t)∈U{g(x(t),u(t),t)+?V?x(x(t),t)?f(x(t),u(t),t)}-\frac{ \partial V }{ \partial t }(x(t),t)=\mathop{\min}_{u(t)\in U}\left\{g(x(t),u(t),t)+\frac{ \partial V }{ \partial x }(x(t),t)\cdot f(x(t),u(t),t) \right\} ??t?V?(x(t),t)=minu(t)U?{g(x(t),u(t),t)+?x?V?(x(t),t)?f(x(t),u(t),t)}
這樣就得到了HJB方程,t∈[t0,tf]t\in[t_0,t_f]t[t0?,tf?]
??V?t(x(t),t)=min?u(t)∈UH(x(t),u(t),?V?x(x(t),t),t)-\frac{ \partial V }{ \partial t }(x(t),t)=\mathop{\min}_{u(t)\in U}H(x(t),u(t),\frac{ \partial V }{ \partial x }(x(t),t),t) ??t?V?(x(t),t)=minu(t)U?H(x(t),u(t),?x?V?(x(t),t),t)
性能指標中,令t=tft=t_ft=tf?,即可得到邊界條件
V(x(tf),tf)=h(x(tf),tf)V(x(t_f),t_f)=h(x(t_f),t_f) V(x(tf?),tf?)=h(x(tf?),tf?)
證畢

總結

以上是生活随笔為你收集整理的HJB方程的一些简单理解和过程推导的全部內容,希望文章能夠幫你解決所遇到的問題。

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