state-space model
state-space model
state-space model
訊號學家自創一個詞彙state-space model。 嚴格來說是三件事情,但是整包稱作state-space model: 一、系統追加內部狀態(internal state)。 二、多項式推廣為矩陣(matrix representation)。 三、特殊系統改寫成矩陣(state-space representation / phase-variable representation)。 本章介紹一。下章介紹二三。 state原義是指特定時刻,各個變數的數值,所組成的數組。 state space原義是指所有時刻,全部的數組。 上述三件事情,僅第三件事情的一部分跟state space有關。 訊號學家沒有考慮清楚,胡亂造詞。成為歷史共業。
system with internal state
system with internal state (no input signal)
system: system with internal state:
y = f(θ) ⎰ x +⃡ 1 = f(x)
⎱ y = g(x)
╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮
┌───┐ ╎ x ┌───┐ ┌───┐ ╎
│ f │──→ y ╎ ┌─→│ f │──┬──│ g │──→ y
└───┘ ╎ │ └───┘ │ └───┘ ╎
╎ └─────────┘ ╎
╰╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╯
f'
x: internal state
y: output signal y: output signal
系統g的輸入訊號是遞迴數列x。 系統g的輸出訊號是數列y。 y是輸出訊號。g是系統(開迴路)。 x是內部狀態。f是另一個系統(閉迴路)。 整體可以視作一個生成器f'。
數學當中,函數必須擁有輸入變數。 訊號學當中,系統不一定有輸入訊號x,但是通常有參數θ。 嚴謹起見,生成器的數學式子必須明確寫出參數θ,當作輸入變數。
system with internal state
system: system with internal state:
y = f(x) ⎰ x +⃡ 1 = f(x, u)
⎱ y = g(x, u)
╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮
┌───┐ u ────┬─────────┐ ╎
x ──→│ f │──→ y ╎ └─→┌───┐ └─→┌───┐ ╎
└───┘ ╎ ┌─→│ f │──┬──│ g │──→ y
╎ x│ └───┘ │ └───┘ ╎
╎ └─────────┘ ╎
╰╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╯
f'
x: internal state
x: input signal u: input signal
y: output signal y: output signal
u是輸入訊號。y是輸出訊號。g是系統(開迴路)。 x是內部狀態。f是另一個系統(閉迴路)。 系統g追加第二道輸入訊號x。 複製一份u,套用另一個系統f,當作第二道輸入訊號x。 符號意義被更動,u和x地位對調,f和g地位對調。 阿就古人當初沒有考慮清楚。成為歷史共業。
LTI system with internal state (no input signal)
LTI system: LTI system with internal state:
y = a ∗ θ ⎰ x +⃡ 1 = a ∗ x
⎱ y = c ∗ x
LTI system with internal state
LTI system: LTI system with internal state:
y = a ∗ x ⎰ x +⃡ 1 = a ∗ x + b ∗ u
⎱ y = c ∗ x + d ∗ u
範例
sensor (a = d = zero)
╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮ u ╎ ┌───────────┐ x ┌────────────┐ ╎ y ────→│ f ≜ plant │────→│ g ≜ sensor │────→ ╎ └───────────┘ └────────────┘ ╎ ╰╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╯
使用感測器測量系統。 真實輸入訊號u,真實輸出訊號x,測量而得的輸出訊號y。 x無法得知,視作內部狀態。名副其實。
random number generator (b = d = zero and c = identity)
╭╌╌╌╌╌╌╌╌╌╌╌╌╌╮ ╎ x ┌───┐ ╎ ╎ ┌─→│ f │──┬──→ y ╎ │ └───┘ │ ╎ ╎ └─────────┘ ╎ ╰╌╌╌╌╌╌╌╌╌╌╌╌╌╯
密碼學當中,隨機數生成器經常採用AR system。 如果還想實施線性變換,那就接上MA system。不過一般來說沒有必要。 如果還想利用密鑰影響隨機數,那就接上輸入訊號。
inertial motion measurement (b = d = zero)
╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮ ╎ x⃗ ≜ ⎡x⎤ ╎ ╎ ⎣v⎦ ┌───┐ ┌───┐ ╎ ╎ ┌───────→│ f │──┬──│ g │──→ y ≜ v ╎ │ └───┘ │ └───┘ ╎ ╎ └───────────────┘ ╎ ╰╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╯
⎰ x[n+1] = x[n] + v[n] Δt 牛頓運動定律(慣性運動) ⎱ y[n] = v[n] 感測器(測速槍) x是物體位置,v是物體速度。 x和v都是內部狀態,兩道訊號拼成向量x⃗,形成MIMO system。 y是用測速槍觀察到的速度。y是輸出訊號。 觀察自然現象x⃗,使用測量儀器g,收集數據y。 自然現象源自自迴歸模型f,合乎科學定律。 測量儀器是移動平均模型g,合乎電路原理。
accelerated motion measurement (d = zero)
╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮
u ≜ a ────┐ ╎
╎ └─→┌───┐ ┌───┐ ╎
╎ ┌─→│ f │──┬──│ g │──→ y ≜ v
╎ x⃗│ └───┘ │ └───┘ ╎
╎ └─────────┘ ╎
╰╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╯
⎰ x[n+1] = x[n] + v[n] Δt + ½ a[n] Δt² 牛頓運動定律(加速運動) ⎱ y[n] = v[n] 感測器(測速槍) a是加速度,來自外力。a = f/m。 a是輸入訊號。
system model
discrete-time system / continuous-time system
discrete-time system: ⎰ x[n+1] = fₙ(x[n], ..., x[n-p], u[n], ..., u[n-q]) ⎱ y[n] = gₙ(x[n], ..., x[n-r], u[n], ..., u[n-s]) continuous-time system: ⎰ x′(t) = f(t, x(t), u(t)) ⎱ y(t) = g(t, x(t), u(t))
causal system / time-invariant system / linear system
time-variant causal system: ⎰ x[n+1] = fₙ(x[n], ..., x[n-p], u[n], ..., u[n-q]) ⎱ y[n] = gₙ(x[n], ..., x[n-r], u[n], ..., u[n-s]) time-invariant causal system: ⎰ x[n+1] = f(x[n], ..., x[n-p], u[n], ..., u[n-q]) ⎱ y[n] = g(x[n], ..., x[n-r], u[n], ..., u[n-s]) linear time-variant causal system: ⎧ x[n+1] = aₙ₀ x[n] + aₙ₁ x[n-1] + ... + aₙₚ x[n-p] ⎨ + bₙ₀ u[n] + bₙ₁ u[n-1] + ... + bₙ₉ u[n-q] ⎪ y[n] = cₙ₀ x[n] + cₙ₁ x[n-1] + ... + cₙᵣ x[n-r] ⎩ + dₙ₀ u[n] + dₙ₁ u[n-1] + ... + dₙₛ u[n-s] linear time-invariant causal system: ⎧ x[n+1] = a₀ x[n] + a₁ x[n-1] + ... + aₚ x[n-p] ⎨ + b₀ u[n] + b₁ u[n-1] + ... + b₉ u[n-q] ⎪ y[n] = c₀ x[n] + c₁ x[n-1] + ... + cᵣ x[n-r] ⎩ + d₀ u[n] + d₁ u[n-1] + ... + dₛ u[n-s]
LTI system
system LTI system
with internal state: with internal state:
╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮ ╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮
╎ ┌───┐ ╎ ╎ ┌───┐ ╎
╎ ┌──→│ f │ ╎ ╎ ┌─│ a │─┐ ╎
╎ │ ┌→└───┘─┐ ╎ ╎ │ └───┘ │ ╎
╎ │ ├── x ←─┘ ╎ ╎ ┌───┐ ↓+ │ ┌───┐ ╎
╰╌│╌│╌╌╌╌╌╌╌╌╌╌╌╯ ╎ ┌─→│ b │─→⊕─→ x ──┴─→│ c │──┐ ╎
│ └→┌───┐ ╎ │ └───┘ + └───┘ │ ╎
u ──┴──→│ g │─────→ y ╰╌│╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌│╌╯
└───┘ │ ┌───┐ ↓+
u ──┴──────────→│ d │──────────→⊕─→ y
└───┘ +
系統模型畫成方塊圖,形成新觀點。 一、內部狀態x,自迴歸a。不斷改變自身,不受外界影響。 二、接著讓x受到外界影響。 引入輸入訊號。進來之前先過b,出去之前先過c。 三、線性非時變系統,只有三種運算,位移、倍率、加法。 因此可以直接把兩道輸入訊號加在一起。 因此可以直接將輸入訊號改成輸出訊號。 出去之前先過c再過d,兩者複合當作新c。 阿就前饋看起來比較工整啊。 維基百科的方塊圖,畫成其他造型。看你喜歡哪種都行。 https://commons.wikimedia.org/wiki/File:Typical_State_Space_model.svg
system representation
system representation
polynomial representation / matrix representation
polynomial representation: ⎧ x[n+1] = a₀ x[n] + a₁ x[n-1] + ... + aₚ x[n-p] ⎨ + b₀ u[n] + b₁ u[n-1] + ... + b₉ u[n-q] ⎪ y[n] = c₀ x[n] + c₁ x[n-1] + ... + cᵣ x[n-r] ⎩ + d₀ u[n] + d₁ u[n-1] + ... + dₛ u[n-s] matrix representation: ⎰ x⃗[n+1] = A x⃗[n] + B u⃗[n] ⎱ y⃗[n] = C x⃗[n] + D u⃗[n]
四串系統參數可以改寫成四個常對角矩陣ABCD。
矩陣表示法,數值u[n] x[n] y[n]推廣為向量u⃗[n] x⃗[n] y⃗[n]。 簡單起見,下文u x y一律省略向量符號。
state-space representation / phase-variable representation
模仿ARMA system,state-space model也有這兩種表示法。不再贅述。
companion matrix realization
模仿ARMA system,湊出矩陣ABCD。不再贅述。
https://people.duke.edu/~hpgavin/SystemID/CourseNotes/LTI.pdf
similarity transformation
A' = T⁻¹AT B' = T⁻¹B C' = CT D' = D x' = T⁻¹x u' = u y' = y
相似變換不影響系統的各種數學性質。不再贅述。
stability
專著《Optimal State Estimation: Kalman, H∞ and Nonlinear Approaches》。
BIBO stability
if x[n+1] = A x[n] is stable,
then ⎰ x[n+1] = A x[n] + B u[n] is BIBO stable.
⎱ y[n] = C x[n] + D u[n]
if x′(t) = A x(t) is stable,
then ⎰ x′(t) = A x(t) + B u(t) is BIBO stable.
⎱ y(t) = C x(t) + D u(t)
BIBO穩定性:一個系統,當輸入訊號受限,則輸出訊號也受限。 穩定性:一道差分方程式/微分方程式,未知函數受限。 受限:不會出現正負無限大。 想要判斷state-space model的BIBO穩定性, 只需判斷x[n+1] = A x[n]的穩定性。 只需檢查A。 針對差分方程式x[n+1] = A x[n]/微分方程式x′(t) = A x(t), 穩定性:A的特徵值,絕對值都小於等於1/實部都小於等於0。 穩定性:A的特徵值,都在複平面單位圓內或上/都在左半複平面。 此時A稱作Schur-stable matrix / Hurwitz-stable matrix。
rank / nullity
矩陣尺寸是size(A)。 矩陣維度是rank(A)。 當矩陣維度少於矩陣尺寸(矩陣維度不足)。 套用此矩陣、實施變換,有些維度完全消失。 例如投影矩陣,有些維度完整保留,有些維度完全消失。
eigendecomposition
利用特徵分解,這件事情可以描述得更細膩。 有些方陣可以特徵分解。 特徵值,包含了等於0,絕對值小於1、絕對值等於1、絕對值大於1。 這些維度,包含了消失、縮小、不變、放大。 不斷套用此矩陣、不斷實施變換, 有些維度完全消失、趨近消失、保持不變、變成正負無限大。 消失、縮小、不變,最終形成穩態,滿足穩定性。 放大,最終不會形成穩態,不滿足穩定性。 順帶一提,消失的維度,特徵值是零,特徵向量未定義。 (數學家規定必須湊滿n個特徵值。但是不必湊滿n個特徵向量。)
穩定性(特徵分解):特徵值絕對值均小於等於一。
Jordan–Chevalley decomposition (Jordan canonical form)
有些方陣不能特徵分解,只能喬登分解(喬登標準型)。
對角線有特徵值,次對角線還有移位值(0或1),形成喬登矩陣。
喬登矩陣的穩定性分析,多了移位值,需要深入討論。
喬登矩陣拆成對角線矩陣D、次對角線矩陣N。
A = ⎡ 1 1 ⎤ is a Jordan matrix
⎣ 0 1 ⎦
(1) D = ⎡ 1 0 ⎤ 特徵值絕對值均等於一。不斷實施變換,仍保持不變。
⎣ 0 1 ⎦
(2) N = ⎡ 0 1 ⎤ 不斷實施變換,變成無限大。
⎣ 0 0 ⎦
A = D + N
不斷實施變換A,數學式子強行展開,出現D與N交叉相乘項。
D縮小則得以消滅N。D不變則無法消滅N。
此例當中,A不穩定!畢竟D不變則無法消滅N。
穩定性(喬登分解): 一、特徵值絕對值均小於等於一。 二、特徵值絕對值等於一者,必須都是semisimple。 semisimple白話文:沒有次對角線。N = 0。 semisimple文言文:代數重根數=幾何重根數。
stabilizability
可穩定性,分成兩部分解釋: 一、穩定的維度:無論哪種輸入訊號,總是自然而然穩定。放著不管也沒關係。 二、不穩定的維度:人為設定特殊的輸入訊號,恰好可以強行穩定。運氣不錯。
可穩定性:即便不穩定,但是可到達。 可到達性:矩陣維度充足,足以生成各種向量。請見下個小節。
⎧ ⎡ -1 0 0 ⎤ ⎡ 0 ⎤ ⎪ x[n+1] = A x[n] + B u[n] = ⎢ 0 1 1 ⎥ x[n] + ⎢ 0 ⎥ u[n] ⎨ ⎣ 0 0 1 ⎦ ⎣ 1 ⎦ ⎪ ⎩ y[n] = C x[n] + D u[n] = [ 1 0 1 ] x[n] + 2 u[n] 上述系統有兩個模態: 一、左上角[ -1 ]與[ 0 ]。顯然穩定,儘管不可到達。 二、右下角⎡ 1 1 ⎤與⎡ 0 ⎤。雖然不穩定,但是可到達。 ⎣ 0 1 ⎦ ⎣ 1 ⎦ 因此整個系統可穩定。 此例當中,A恰好是喬登矩陣。 一般情況,A要做喬登分解、ABCD要一起做相似變換。 相似變換不影響矩陣尺寸和矩陣維度。 系統的各種數學性質仍然相同。
reachability / observability
專著《Filtering and System Identification: A Least Squares Approach》。
reachability
expansion of x (polynomial representation):
⎧ x[1] = A x[0] + B u[0]
⎨ x[2] = A² x[0] + AB u[0] + B u[1]
⎪ :
⎩ x[k] = Aᵏ x[0] + Aᵏ⁻¹B u[0] + ⋯ + AB u[k-2] + B u[k-1]
expansion of x[k] (matrix representation):
⎡ u[0] ⎤
x[k] = Aᵏ x[0] + [ Aᵏ⁻¹B ⋯ A²B AB B ] ⎢ : ⎥
⎣ u[k-1] ⎦
Я
reachability matrix (controllability matrix):
𝑅 = reverse(Я) = [ A⁰B ⋯ Aᵏ⁻¹B ]
reachability:
any x[k] can be generated by x[0] and u[0⋯k-1]
<=> any (x[k] - Aᵏ x[0]) can be generated by u[0⋯k-1]
<=> rank(𝑅) = rank(Я) = k
x[n]是向量。k是向量長度。 x是向量的數列。n是數列索引值。N是數列長度。
當矩陣維度充足,那麼矩陣直條的線性組合,得以形成各種輸出向量。 當rank(𝑅) = k,那麼𝑅的直條的線性組合,得以形成各種x[n]。
observability
expansion of y (polynomial representation):
⎧ y[0] = C x[0] + D u[0]
⎨ y[1] = CA x[0] + CB u[0] + D u[1]
⎪ :
⎩ y[k-1] = CAᵏ⁻¹ x[0] + CAᵏ⁻²B u[0] + ... + CAB u[k-1] + D u[k-1]
expansion of y (matrix representation):
⎡ y[0] ⎤ ⎡ C ⎤ ⎡ D 0 ⋯ ⎤ ⎡ u[0] ⎤
⎢ : ⎥ = ⎢ CA ⎥ x[0] + ⎢ CB D ⋯ ⎥ ⎢ : ⎥
⎢ : ⎥ ⎢ : ⎥ ⎢ CAB CB ⋯ ⎥ ⎢ : ⎥
⎣ y[k-1] ⎦ ⎣ CAᵏ⁻¹ ⎦ ⎣ : : ⎦ ⎣ u[k-1] ⎦
y⃗ 𝑂 𝑇 u⃗
observability matrix:
⎡ CA⁰ ⎤
𝑂 = ⎢ : ⎥
⎣ CAᵏ⁻¹ ⎦
observability:
unique x can be reconstructed by y and u
<=> unique x[0] can be reconstructed by y[0⋯k-1] and u[0⋯k-1]
<=> unique x[0] can be reconstructed by (y[0⋯k-1] - 𝑇 u[0⋯k-1])
<=> rank(𝑂) = k
可到達性矩陣:x[k]強行展開,改寫成矩陣𝑅。 可觀察性矩陣:y[0]...y[k-1]強行展開,改寫成矩陣𝑂。 避免撞名,採用斜體。
𝑅和𝑂是一堆矩陣併成一個超大矩陣。 y⃗和u⃗是一堆向量併成一個超長向量。
Krylov subspace:湊足k種連續次方,得以構成k維空間。 一、可到達性矩陣𝑅、可觀察性矩陣𝑂,至少列出0次方到k-1次方。 二、輸入向量u⃗,長度至少是k,得以檢查可到達性、可觀察性。
原作者Kálmán先想到controllability,後人才想到reachability。 導致大家採用符號𝐶,不採用符號𝑅。 現今教科書已經習慣採用符號𝐶。 不過我喜歡採用符號𝑅。 許多古代教科書並未將controllability與reachability區分清楚。 名稱混用,自己小心。
dual system
reachability / controllability / stabilizability
可到達性:總是存在輸入訊號,各種初始狀態都可以得到各種狀態。 可控制性:總是存在輸入訊號,可以得到各種狀態。 可穩定性:總是存在輸入訊號,讓系統穩定。
可到達性:每種狀態皆可抵達。 所有初始條件,皆可抵達特定一種狀態。 可控制性:每種狀態皆可抵達。 存在初始條件,可以抵達特定一種狀態。 可穩定性:每種狀態不見得皆可抵達。 所有初始條件,輸出訊號皆可抵達穩態。
可到達性:已知初始狀態x[0]、當前狀態x[n], 總是存在輸入訊號u, 可以從初始狀態x[0]得到當前狀態x[n]。 (可以得到狀態數列x、輸出數列y。畢竟已知系統公式。) 可控制性:已知當前狀態x[n]。 總是存在輸入訊號u、初始狀態x[0], 可以得到當前狀態x[n]。 (可以得到狀態數列x。畢竟已知系統公式。) 可穩定性:已知初始狀態x[0], 總是存在輸入訊號u, 使得每種輸出訊號y到達穩態。 (即便不滿足可控制性。例如ABCD矩陣全是零。)
上述定義經過推導得到下述結論。 可到達性:初始狀態x[0] = 0可以到達所有狀態。 可控制性:存在初始狀態x[0]可以到達狀態x[n] = 0。
離散時間系統,可到達性=>可控制性。 離散時間系統,A有反矩陣,可到達性<=>可控制性。 連續時間系統,可到達性<=>可控制性。
observability / constructability / detectability
可觀察性:已知輸入訊號u、輸出訊號y, 總是存在唯一一種初始狀態x[0]。 可以用輸入訊號u得到輸出訊號y。 (可以得到唯一一種狀態數列x。畢竟已知系統公式。) 可建設性:已知輸入訊號u、輸出訊號y, 總是存在一種初始狀態x[0]。 可以用輸入訊號u得到輸出訊號y。 (可以得到一種狀態數列x。畢竟已知系統公式。) 可偵測性:已知輸入訊號u、輸出訊號y, 可以讓輸出訊號y到達穩態。 (即便不滿足可觀察性。例如不知道狀態但知道會穩定。)
離散時間系統,可觀察性=>可建設性。 離散時間系統,C有反矩陣,可觀察性<=>可建設性。 連續時間系統,可觀察性<=>可建設性。
dual system
ABCD通通轉置、且BC互換,仍然是LTI state-space model。 ABCD通通轉置、且BC互換,reachability與observability恰好對調。 原理是線性代數基本定理:kernel(A) = image(Aᵀ)⟂ 就這樣。
┌──────────────────┐ dual ┌──────────────────┐
│ reachability │←────→│ observability │
└──────────────────┘ └──────────────────┘
⇓ ⇓
┌──────────────────┐ dual ┌──────────────────┐
│ controllability │←────→│ constructability │
└──────────────────┘ └──────────────────┘
https://math.stackexchange.com/questions/4820830/ http://www.dii.unimo.it/~zanasi/didattica/Teoria_dei_Sistemi/Luc_TDS_ING_2016_Reachability_and_Controllability.pdf http://www.dii.unimo.it/~zanasi/didattica/Teoria_dei_Sistemi/Luc_TDS_ING_2016_Observability_and_Constructability.pdf
minimal realization
專著《Approximation of Large-Scale Dynamical Systems》。
minimal realization
minimal realization is both reachable and observable.
正則化、解耦合、最小實現是相同概念。不再贅述。 多餘維度刪光光。盡力減少矩陣尺寸,讓矩陣維度充足。 針對state-space model,最小實現=可到達+可觀察。 想要得到最小實現,有兩種方式: 一、喬登分解(A是方陣): Kálmán decomposition,刪除不可到達、不可觀察的多餘區塊。 二、奇異值分解: balanced realization,刪除奇異值是零的多餘維度。 eigensystem realization又進一步簡化計算流程,成為主流方式。
any y can be generated by x[0] and u
<=> rank(𝑅) = rank(𝑂) = k
<=> minimal realization
利用初始狀態和輸入訊號,可以得到各種輸出訊號。
Kálmán decomposition
reachable canonical form / observable canonical form
reachable canonical form: 以矩陣A為主角,實施喬登分解。 實施相似變換,將A和B分離成兩個區塊:可到達、不可到達。 observable canonical form: 以矩陣A為主角,實施喬登分解。 實施相似變換,將A和C分離成兩個區塊:可觀測、不可觀測。
Kálmán decomposition
將ABC分離成四個區塊: 可到達可觀測、可到達不可觀測、不可到達可觀測、不可到達不可觀測。
https://faculty.washington.edu/chx/teaching/me547/2_3_KalmanDecomposition_slides.pdf
balanced realization
balanced realization
四個矩陣ABCD的方程組,對角化比較複雜。 四個矩陣不能一起對角化。 只能以𝑅為主、或者以𝑂為主。 甚至𝑅與𝑂都無法對角化,只能得到Jordan canonical form。 有人發現取平方(矩陣內積和外積)再開根號,𝑅和𝑂就可以一起對角化。 宛如SVD的背後原理。SVD即是EVD取平方(矩陣內積和外積)再開根號。
1. get P,Q by Lyapunov equation AP + PAᵀ + BBᵀ = 0 AᵀQ + QA + CᵀC = 0 2. get 𝑂 by Cholesky decomposion Q = 𝑂ᵀ𝑂 3. get U,Σ by eigendecomposition 𝑂P𝑂ᵀ = 𝑂𝑅𝑅ᵀ𝑂ᵀ= HHᵀ = UΣ²Uᵀ 4. get T by conjugate decomposition T = 𝑂⁻¹U√Σ T⁻¹ = √ΣUᵀ𝑂 其實步驟1和2是多餘的。 H = Hankel((f[1], ⋯, f[k])) 使用矩陣內積HᵀH、矩陣外積HHᵀ,即可完成平衡實現。 步驟1和2主要是為了介紹Lyapunov equation。
https://ocw.mit.edu/courses/6-241j-dynamic-systems-and-control-spring-2011/7f6754029d6945bd3bdc745080890bf8_MIT6_241JS11_chap26.pdf
image
線性代數當中, image:一個矩陣,嘗試各種輸入向量,所能得到的各種輸出向量。輸出向量的集合。 theorem: image(AAᵀ) = image(A) 直觀解讀: 一、Aᵀx是輸入向量x實施變換,獲得一部分的輸入向量。比原本少。 再經過A變換,獲得一部分的輸出向量。比原本少。 因此image(AAᵀ) ⊆ image(A)。 二、Aᵀ是垂直投影。Aᵀ消滅的維度,A消滅的維度,基本相等。 換句話說,rank(Aᵀ) = rank(A)。 即便額外套用Aᵀ,剩下的維度還是一樣多。 因此image(AAᵀ) = image(A)。 嚴謹證明,分成三個階段: (1) AᵀAx = 0 <=> Ax = 0 (2) kernel(AᵀA) = kernel(A) (3) image(AᵀA) = image(Aᵀ) (1)(⟹) 等號兩邊同乘xᵀ AᵀAx = 0 => xᵀAᵀAx = 0 => ‖Ax‖² = 0 => Ax = 0 (1)(⟸) 等號兩邊同乘Aᵀ。 Ax = 0 => AᵀAx = 0 (2) 因為兩個方程式等價,所以兩個解集合也等價。 (3) 線性代數基本定理:kernel(A) = image(Aᵀ)⟂ kernel(AᵀA) = kernel(A) => image((AᵀA)ᵀ)⟂ = image(Aᵀ)⟂ => image(AᵀA)⟂ = image(Aᵀ)⟂ => image(AᵀA) = image(Aᵀ)
https://math.stackexchange.com/questions/2411508
reachability
圖論當中, reachable:從一個起點可以到達一個終點。 connected:從各種起點可以到達各種終點。 訊號學當中, reachable set:從各種起點所能到達的各種終點。終點的集合。 使用矩陣來描述相鄰關係, 訊號學的reachable set=線性代數的image。
先備知識請見本站文件「adjacency matrix」。 圖論當中,A是圖。Aᵀ是反向圖(顛倒所有邊)。 套用Aᵀ:順走1步。 套用A:逆走1步。 套用AAᵀ:先順走1步、再逆走1步(矩陣乘法由右往左讀)。 考慮所有可能的起點,以及所有可以到達的終點。 套用A、套用AAᵀ,所有可以到達的終點一樣多。 套用R = (A⁰+A¹+⋯+Aᵏ): 逆走0步到k步,所到之處通通聯集。 套用RRᵀ = (A⁰+A¹+⋯+Aᵏ)(A⁰+A¹+⋯+Aᵏ)ᵀ: 先順走再逆走(矩陣乘法由右往左讀)。 展開式子,變成兩兩相乘,得到各種情況。例如順1逆2。 套用P = A⁰(A⁰)ᵀ+A¹(A¹)ᵀ+⋯+Aᵏ(Aᵏ)ᵀ: 順0逆0、順1逆1、……、順k逆k,所到之處通通聯集。 考慮所有可能的起點,以及所有可以到達的終點。 套用R、套用P,所有可以到達的終點一樣多。
reachability Gramian
Gram matrix MᵀM
k-step Aᵏ⁻¹B
outer product (Aᵏ⁻¹B)(Aᵏ⁻¹B)ᵀ = Aᵏ⁻¹BBᵀ(Aᵏ⁻¹)ᵀ
image image(Aᵏ⁻¹B) = image((Aᵏ⁻¹B)(Aᵏ⁻¹B)ᵀ)
k-reachability matrix 𝑅ₖ = [ A⁰B ⋯ Aᵏ⁻¹B ]
k-reachability Gramian [ A⁰BBᵀ(A⁰)ᵀ ⋯ Aᵏ⁻¹BBᵀ(Aᵏ⁻¹)ᵀ ]
matrix
k-reachability R[k] = sum Aᵏ⁻¹B
k=0⋯∞
k-reachability Gramian P[k] = sum Aᵏ⁻¹BBᵀ(Aᵏ⁻¹)ᵀ = sum 𝑅ₖ 𝑅ₖᵀ
k=0⋯∞ k=0⋯∞
k-reachable set image(R[k]) = image(P[k])
k-reachable iff k-reachability Gramian is symmetric positive definite.
https://control.asu.edu/Classes/MAE507/507Lecture06.pdf https://control.asu.edu/Classes/MAE507/507Lecture17.pdf
Lyapunov equation
k-reachability Gramian P[k+1] = A P[k] Aᵀ + BBᵀ
Lyapunov stability image(P[k+1]) = image(P[k]) when k→∞
Lyapunov equation X = AXAᵀ + Q
where X = P[k] and k→∞
Q = BBᵀ
Lyapunov theorem Lyapunov stability <=> Lyapunov equation
Hankel singular values
reachability Gramian P = 𝑅𝑅ᵀ => AP + PAᵀ + BBᵀ = 0 observability Gramian Q = 𝑂ᵀ𝑂 => AᵀQ + QA + CᵀC = 0 Hankel singular values Σ = sqrt(eigenvalue(PQ)) balanced realization P' = Q' = Σ
similarity transformation
P' = T⁻¹P(Tᵀ)⁻¹ Q' = TᵀQT
eigensystem realization
eigensystem realization (Ho–Kálmán realization)
利用脈衝響應求得卷積核f,進一步改寫成矩陣H = 𝑂𝑅。 輸入訊號是脈衝函數,輸出訊號稱作脈衝響應。 針對線性非時變系統,脈衝響應恰是卷積核。
1. get (f[0], ⋯, f[n]) by impulse response 2. get 𝑂,𝑅 by compact SVD of Hankel((f[1], ⋯, f[n])) 3. get A,B,C,D A: extract from Hankel((f[2], ⋯, f[k+1])) B: first column of 𝑅 C: first row of 𝑂 D: orignal D (by similarity transformation)
https://math.stackexchange.com/questions/3275985/ https://par.nsf.gov/servlets/purl/10312038
Markov parameters
卷積核,省略f[0],改寫成常反對角矩陣,恰是𝑂𝑅相乘。
impulse response = convolution kernel: (f[0], ⋯, f[k]) = (D, CA⁰B, CA¹B, ..., CAᵏ⁻¹B) Markov parameters: (f[1], ⋯, f[k]) = (CA⁰B, CA¹B, ..., CAᵏ⁻¹B) theorem: Hankel((f[1], ⋯, f[k])) = Hankel((CA⁰B, ⋯, CAᵏ⁻¹B)) = 𝑂𝑅 ⎡ f[1] f[2] ⋯ f[k] ⎤ ⎡ CA⁰B CA¹B ⋯ CAᵏ⁻¹B ⎤ ⎢ f[2] f[3] ⋯ f[k+1] ⎥ ⎢ CA¹B CA²B ⋯ CAᵏB ⎥ ⎢ : : : ⎥ = ⎢ : : : ⎥ = 𝑂𝑅 ⎢ : : : ⎥ ⎢ : : : ⎥ ⎣ f[k] f[k+1] ⋯ f[2k-1] ⎦ ⎣ CAᵏ⁻¹B CAᵏB ⋯ CA²ᵏ⁻²B ⎦
Toeplitz matrix = constant diagonal matrix Hankel matrix = constant skew-diagonal matrix
可到達性矩陣故意被左右顛倒,就是為了產生常反對角矩陣。 如果我沒搞錯,這與卷積互相呼應。 卷積的其中一個數列也是需要左右顛倒。
conjugate decomposition
A = BᵀB。
對稱半正定矩陣A,分解成矩陣內積。
沒有正式學術名稱。
少數文獻稱作共軛分解conjugate decomposition。
概念宛如將一個平方值,分解成共軛複數相乘。
分解方式有無限多種。其中有兩種知名方式:
一、Cholesky decomposition,分解成上三角矩陣。
A = LLᵀ and B = Lᵀ
二、eigendecomposition。特徵分解。
A = EΛE⁻¹ = EΛEᵀ = E√Λ√ΛEᵀ and B = √ΛEᵀ
A是對稱半正定矩陣的情況下,特徵分解EVD等同奇異值分解SVD!
A不是對稱半正定矩陣的情況下,只好改用SVD。
Hankel((f[1], ⋯, f[k]))是對稱矩陣,但是通常不是半正定矩陣。
Hankel singular values
Hankel((f[1], ⋯, f[n])) 做共軛分解,得到𝑂與𝑅。 從中間剖開一人分一半。 共軛分解採用compact SVD,順便降維,以便形成minimal realization。 刪除奇異值是零的多餘維度。 方便起見,新維度還是標記成k,新矩陣則追加下標k。 A = UΣVᵀ = U√Σ√ΣVᵀ compact singular value decomposition Aₖ = Uₖ√Σₖ√ΣₖVₖᵀ minimal realization (rank k) 𝑂 = Uₖ√Σₖ 𝑅 = √ΣₖVₖᵀ
system parameters
算A:移位一個時刻,湊出A。然後𝑂和𝑅移項即得。 ⎡ f[2] f[3] ⋯ f[k+1] ⎤ ⎡ CA¹B CA²B ⋯ CAᵏB ⎤ ⎢ f[3] f[4] ⋯ f[k+2] ⎥ ⎢ CA²B CA²B ⋯ CAᵏ⁺¹B ⎥ ⎢ : : : ⎥ = ⎢ : : : ⎥ = 𝑂A𝑅 ⎢ : : : ⎥ ⎢ : : : ⎥ ⎣ f[k+1] f[k+2] ⋯ f[2k] ⎦ ⎣ CAᵏB CAᵏ⁺¹B ⋯ CA²ᵏ⁻¹B ⎦ let Hₖ = Hankel((f[1], ⋯, f[k])) Aₖ = 𝑂ₖ⁺(Hₖ+⃡1)𝑅ₖ⁺ 算B:𝑅ₖ第零個直條就是Bₖ。 算C:𝑂ₖ第零個橫條就是Cₖ。 算D:原本的D降維。【尚待確認】
表格
專著《Linear Optimal Control: H₂ and H∞ Methods》。
LTI state-space model
╭────────────────────────────┬────────────────────────────╮
│ polynomial representation │ matrix representation │
╞════════════════════════════╧════════════════════════════╡
│ time domain │
╞════════════════════════════╤════════════════════════════╡
│ sequence │ companion matrix │
│ a,b,c,d │ A,B,C,D │
│ a = (a₀, a₁, ...) │ │
│ b = (b₀, b₁, ...) │ │
│ c = (c₀, c₁, ...) │ │
│ d = (d₀, d₁, ...) │ │
├────────────────────────────┤────────────────────────────┤
│ linear recurrence │ linear recurrence │
│ ⎧ x[n+1] = a₀ x[n] + ⋯ │ ⎰ x[n+1] = A x[n] + B u[n] │
│ ⎨ + b₀ u[n] + ⋯ │ ⎱ y[n] = C x[n] + D u[n] │
│ ⎪ y[n] = c₀ x[n] + ⋯ │ │
│ ⎩ + d₀ u[n] + ⋯ │ │
├────────────────────────────┤────────────────────────────┤
│ expansion │ expansion │
│ x[n+1] = ...... | x[n+1] = Aⁿ⁺¹ x[0] + Я u⃗[n]|
│ y[n] = ...... │ y⃗[n] = 𝑂 x[0] + 𝑇 u⃗[n] │
├────────────────────────────┤────────────────────────────┤
│ convolution │ Hankel matrix │
│ ⎰ x+⃡1 = a ∗ x + b ∗ u │ 𝑂𝑅 │
│ ⎱ y = c ∗ x + d ∗ u │ │
├────────────────────────────┤────────────────────────────┤
│ impulse response │ Markov parameters │
│ f[n] = ...... │ f[n] = CAⁿ⁻¹B + D δ[n] │
│ │ = ⎰ D , if n = 0 │
│ │ ⎱ CAⁿ⁻¹B , if n > 0 │
├────────────────────────────┤────────────────────────────┤
│ expansion │ expansion │
│ y[n] = ...... │ y[n] = C Aⁿ x[0] │
│ │ + sum CAⁿ⁻¹⁻ⁱB u[i] │
│ │ i=0⋯n-1 │
│ │ + D u[0] │
╞════════════════════════════╧════════════════════════════╡
│ z-domain │
╞════════════════════════════╤════════════════════════════╡
│ generating function │ resolvent │
│ A(z) = a₀z⁰ + a₁z⁻¹ + ⋯ │ G(z) = C(zI-A)⁻¹B + D │
│ B(z) = b₀z⁰ + b₁z⁻¹ + ⋯ │ adj(zI-A) │
│ C(z) = c₀z⁰ + c₁z⁻¹ + ⋯ │ = C ————————— B + D │
│ D(z) = d₀z⁰ + d₁z⁻¹ + ⋯ │ det(zI-A) │
├────────────────────────────┤────────────────────────────┤
│ BIBO stability │ BIBO stability │
│ A(z) = 0 │ det(zI-A) = 0 │
╰────────────────────────────┴────────────────────────────╯
system identification
system identification
專著《Numerical Methods for Linear Control Systems》。
min sum ║⎡x[n+1]⎤ _ ⎡ A B ⎤ ⎡x[n]⎤║² A,B,C,D n ║⎣y[n] ⎦ ⎣ C D ⎦ ⎣u[n]⎦║ꜰ linear least squares有三種解法: 1. normal equation 2. QR decomposition 3. singular value decomposition 大家習慣使用QR分解,時間複雜度最低。 訊號學家自創一個詞彙subspace identification method。 其實就是這三種解法。
知名演算法N4SID。 N4SID將訊號切成三段:過去/現在/未來。 我不知道有何效果。請自行參考專著。
system functionality
system functionality【尚無正式名稱】
verb | action noun | agent noun ---------|-------------|----------- observe | observation | observer control | control | controller
觀測器:系統輸出之後,追加一個系統,用來觀測系統內部狀態。 輸入訊號需要前饋。 控制器:系統輸入之前,追加一個系統,用來調整輸入訊號暨輸出訊號。 輸出訊號需要回饋。
┌──────────┐
u ──┬─→│ system │──┬──────────────────→ y
│ └──────────┘ └─→┌──────────┐
╰──────────────────→│ observer │────→ x̂
└──────────┘
┌──────────┐ u ┌──────────┐
r ────→│controller│────→│ system │──┬─→ y
╭─→└──────────┘ └──────────┘ │
╰─────────────────────────────────╯
system functionality — linear quadratic observer
linear quadratic observer(Kalman filter)
linear least squares
專著《Optimal Estimation of Dynamic Systems》。
linear least squares 線性系統(公式解) weighted linear least squares 追加權重(能量範數) constrained linear least squares 追加約束條件(拉格朗日乘數法) nonlinear least squares 非線性系統(最佳化演算法)
https://books.google.com.tw/books?id=ITKKkBFxgNsC&pg=PA53
linear equation:
y = Ax
where A is overdetermined system (A:l×k and l ≥ k)
⎡ y[0] ⎤ ⎡ A[0][0] ... A[0][k-1] ⎤
⎢ : ⎥ ⎢ : : ⎥ ⎡ x[0] ⎤
⎢ : ⎥ ⎢ : : ⎥ ⎢ : ⎥
⎢ : ⎥ = ⎢ : : ⎥ ⎢ : ⎥
⎢ : ⎥ ⎢ : : ⎥ ⎢ : ⎥
⎢ : ⎥ ⎢ : : ⎥ ⎣ x[k-1] ⎦
⎣ y[l-1] ⎦ ⎣ A[l-1][0] ... A[l-1][k-1] ⎦
y A x
linear least squares:
given y and A
find x = argmin ‖y - Ax‖²
error:
e = y - Ax
objective function:
J = ‖y - Ax‖²
= e₀² + e₁² + ... + eₗ₋₁²
= eᵀe
= (y - Ax)ᵀ(y - Ax)
= yᵀy - xᵀAᵀy - yᵀAx + xᵀAᵀAx
solution:
dJ/dx = - 2Aᵀy + 2AᵀAx = 0 極值位於一次微分等於零的地方
x = (AᵀA)⁻¹Aᵀy normal equation
K = (AᵀA)⁻¹Aᵀ pseudoinverse
x is least-squares solution if A has full column rank.
linear equation:
y = Ax
where A is overdetermined system (A:l×k and l ≥ k)
weighted linear least squares:
given y and A and w
find x = argmin ‖y - Ax‖ᴡ²
^^ subscript is capital W
objective function:
J = w₀e₀² + w₁e₁² + ... + wₗ₋₁eₗ₋₁²
= eᵀWe
= (y - Ax)ᵀW(y - Ax)
weight matrix:
⎡ w₀ ⎤
W = ⎢ ⋱ ⎥
⎣ wₗ₋₁ ⎦
solution:
dJ/dx = - 2AᵀWy + 2AᵀWAx = 0
x = (AᵀWA)⁻¹AᵀWy
K = (AᵀWA)⁻¹AᵀW
linear equation with noise: y = Ax + v where A is overdetermined system (A:l×k and l ≥ k) where v are zero-mean Gaussian noises linear least squares: given y and A and v find x = argmin ‖y - Ax - v‖² theorem: normal regression = linear regression solution (the same): x = (AᵀA)⁻¹Aᵀy
linear equation with noise:
y = Ax + v
where A is overdetermined system (A:l×k and l ≥ k)
where v are zero-mean Gaussian noises
with distinct variances
linear least squares:
given y and A and v
find x = argmin ‖y - Ax - v‖²
assumptions:
1. every noise has zero mean: correlation = covariance
E[vᵢ] = 0
2. every noise has its variance
E[vᵢ²] = σᵢ²
3. noises are independent: independent => uncorrelated
E[vᵢvⱼ] = 0
error covariance matrix:
⎡ σ₀² ⎤
R = E[vvᵀ] = ⎢ ⋱ ⎥
⎣ σₗ₋₁² ⎦
objective function:
J = e₀²/σ₀² + e₁²/σ₁² + ... + eₗ₋₁²/σₗ₋₁²
= eᵀR⁻¹e
= (y - Ax)ᵀR⁻¹(y - Ax)
誤差變異數通通調整成一樣,
以便讓normal regression = linear regression。
solution:
dJ/dx = - 2AᵀR⁻¹y + 2AᵀR⁻¹Ax = 0
x = (AᵀR⁻¹A)⁻¹AᵀR⁻¹y
sequential linear least squares (recursive least squares)
專著《Adaptive Filter Theory》。
原始名稱recursive least squares。 雖然是online algorithm、iterative method, 但是原始作者取名recursive。 畢竟當時online這個詞彙尚未流行。 畢竟數值分析領域所有演算法都是iterative method,只好換個詞彙。 另外,數值分析領域習慣將online algorithm冠上前綴sequential。
linear equations:
yₙ = Aₙ xₙ
where Aₙ are overdetermined systems
sequential linear least squares:
given yₙ and Aₙ , for all n
find xₙ = argmin Jₙ , for all n
objective function:
Jₙ = sum ‖yᵢ - Aᵢ xᵢ‖²
i=0⋯n
initial value:
x₀ = (A₀ᵀA₀)⁻¹A₀ᵀy₀
P₀ = (A₀ᵀA₀)⁻¹
iteration:
Kₙ = Pₙ₋₁ Aₙᵀ (I + AₙPₙ₋₁Aₙᵀ)⁻¹
xₙ = xₙ₋₁ + Kₙ (yₙ - Aₙxₙ₋₁)
Pₙ = (I - KₙAₙ) Pₙ₋₁
K: pseudoinverse of A K = (AᵀA)⁻¹Aᵀ P: inverse of Gram matrix of A P = (AᵀA)⁻¹
online algorithm必須找到遞迴公式。 xₙ的遞迴公式:xₙ = xₙ₋₁ + Kₙ (yₙ - Aₙ xₙ₋₁)。 利用上回合的輸入xₙ₋₁, 求得這回合的輸入xₙ。 因為我們只知輸出yₙ,所以利用輸出反推輸入。 Kₙ是Aₙ的虛擬反矩陣。 解釋一下遞迴公式的意義。 觀察(yₙ - Aₙ xₙ₋₁)。 yₙ - Aₙ xₙ₋₁ = Aₙ xₙ - Aₙ xₙ₋₁ = Aₙ (xₙ - xₙ₋₁) 輸入變化xₙ - xₙ₋₁。 輸出變化Aₙ (xₙ - xₙ₋₁)。 利用輸出變化反推輸入變化。 Kₙ的遞迴公式:Pₙ₋₁ Aₙᵀ (I + AₙPₙ₋₁Aₙᵀ)⁻¹。 使用Sherman–Morrison–Woodbury identity求得。
linear equations:
yₙ = Aₙ xₙ
where Aₙ are overdetermined systems
sequential linear least squares:
given yₙ and Aₙ , for all n
find xₙ = argmin Jₙ , for all n
objective function:
Jₙ = sum ‖yᵢ - Aᵢ xᵢ‖²
i=0⋯n
solution:
⎛ ⎞⁻¹⎛ ⎞
xₙ = ⎜ sum {AᵢᵀAᵢ} ⎟ ⎜ sum {Aᵢᵀyᵢ} ⎟
⎝ i=0⋯n ⎠ ⎝ i=0⋯n ⎠
Rₙ ≜ sum {AᵢᵀAᵢ}
i=0⋯n
bₙ ≜ sum {Aᵢᵀyᵢ}
i=0⋯n
xₙ = Rₙ⁻¹bₙ
Rₙ = Rₙ₋₁ + AₙᵀAₙ
bₙ = bₙ₋₁ + Aₙᵀyₙ
inverse of Gram matrix:
Pₙ ≜ Rₙ⁻¹
xₙ = Pₙbₙ
Pₙ⁻¹ = Pₙ₋₁⁻¹ + AₙᵀAₙ
bₙ = bₙ₋₁ + Aₙᵀyₙ
iteration of xₙ:
xₙ = Pₙbₙ
= Pₙ (bₙ₋₁ + Aₙᵀyₙ)
= Pₙ (Pₙ₋₁⁻¹xₙ₋₁ + Aₙᵀyₙ)
= Pₙ ((Pₙ⁻¹ - AₙᵀAₙ) xₙ₋₁ + Aₙᵀyₙ)
= xₙ₋₁ + PₙAₙᵀyₙ - PₙAₙᵀAₙxₙ₋₁
= xₙ₋₁ + Kₙ (yₙ - Aₙxₙ₋₁)
where Kₙ = PₙAₙᵀ is pseudoinverse of Aₙ
Sherman–Morrison–Woodbury identity:
(M + UᵀV)⁻¹ = M⁻¹ - M⁻¹Uᵀ (I + VM⁻¹Uᵀ)⁻¹ VM⁻¹
Pₙ = (Pₙ₋₁⁻¹ + AₙᵀAₙ)⁻¹
Pₙ = Pₙ₋₁ - Pₙ₋₁Aₙᵀ (I + AₙPₙ₋₁Aₙᵀ)⁻¹ AₙPₙ₋₁
where M = Pₙ₋₁ and U = V = Aₙ
anonymous identity:
I - (I+M)⁻¹M = (I+M)⁻¹
Kₙ = PₙAₙᵀ
= Pₙ₋₁Aₙᵀ (I + AₙPₙ₋₁Aₙᵀ)⁻¹
where M = AₙPₙ₋₁Aₙᵀ
iteration of Pₙ:
Pₙ = Pₙ₋₁ - KₙAₙPₙ₋₁
= (I - KₙAₙ) Pₙ₋₁
linear least squares -> offline algorithm sequential linear least squares -> online algorithm 凡是線性迴歸,都可以改成線上演算法。舉例來說: AR system求得系統參數,改成線上演算法,稱作Wiener filter。 state-space model求得內部狀態,改成線上演算法,稱作Kalman filter。
最小平方法當中,訊號越多,答案越準。 然而現實世界總不能一直收集訊號: 一、時間有限。 只好改成online algorithm,即時計算當前最佳解。 目標函數是以前到當前所有誤差總和。 二、空間有限。 每回合隨時紀錄最新訊號、形成最新矩陣。 每回合矩陣保持相同尺寸、而且盡量高。
以Wiener filter為例,估計AR system的系統參數: Yᵀ Y b = Yᵀ y。 A ≜ Yᵀ Y x ≜ b y ≜ Yᵀ y 隨時記錄最新l個訊號,形成Y:l×k,形成A:k×k。 Y越高,答案越準。 每回合Y保持相同尺寸、而且盡量高。
sequential linear least squares改造版本。
專著《Optimal State Estimation: Kalman, H∞ and Nonlinear Approaches》。
(1) minimize the squared error of y
https://mdav.ece.gatech.edu/ece-6250-fall2019/notes/21-notes-6250-f19.pdf
(2) minimize the squared error of x
https://web.mit.edu/kirtley/kirtley/binlustuff/literature/control/Kalman%20filter.pdf
Wiener filter使用正常版本(1)。
Kalman filter使用改造版本(2)。
兩種版本不等價。
誤差和目標函數完全不同。
P和K是完全不同的東西,只是外觀相像。
推導過程出現無法處理的項Pₙ⁻。
大家敷衍了事。Pₙ⁻當作是Pₙ₋₁。
simultaneous equations:
⎰ yₙ = Aₙ xₙ + vₙ linear equations with noise
⎱ x̂ₙ = x̂ₙ₋₁ + Kₙ (yₙ - Aₙ x̂ₙ₋₁) sequential LLS update rule
sequential linear least squares:
given yₙ and Aₙ and vₙ , for all n
find x̂ₙ = argmin Jₙ , for all n
objective function:
Jₙ = sum ‖xₙ - x̂ₙ‖²
i=0⋯n
initial value:
x̂₀ = E[x₀] = (A₀ᵀA₀)⁻¹A₀ᵀy₀ estimation mean
(assume A₀ is
overdetermined system)
P₀ = E[(x₀-x̂₀)(x₀-x̂₀)ᵀ] = O error covariance matrix
(assume two means are equal)
iteration:
Pₙ⁻ = Pₙ₋₁ 敷衍了事
Rₙ = E[vₙvₙᵀ] noise covariance matrix
(assume the mean is zero)
Kₙ = Pₙ⁻ Aₙᵀ (Aₙ Pₙ⁻ Aₙᵀ + Rₙ)⁻¹
x̂ₙ = x̂ₙ₋₁ + Kₙ (yₙ - Aₙ x̂ₙ₋₁)
Pₙ = (I - Kₙ Aₙ) Pₙ⁻
v: zero-mean Gaussian noise R: covariance matrix of v x: true x (from y = Ax) x̂: estimate of x (from sequential LLS update rule) e: difference of x and x̂ e⁻: difference of current x and previous x̂ P: covariance matrix of e P⁻: covariance matrix of e⁻ K: Kalman gain
complementary filter: x̂ₙ = x̂ₙ₋₁ + Kₙ (yₙ - Aₙ x̂ₙ₋₁) = x̂ₙ₋₁ + Kₙ (Aₙ xₙ - Aₙ x̂ₙ₋₁) = (I - Kₙ Aₙ) x̂ₙ₋₁ + (Kₙ Aₙ) xₙ input: previous estimation x̂ₙ₋₁ and true xₙ output: current estimation x̂ₙ
simultaneous equations: ⎰ yₙ = Aₙ xₙ linear equations ⎱ x̂ₙ = x̂ₙ₋₁ + Kₙ (yₙ - Aₙ x̂ₙ₋₁) sequential LLS update rule error: eₙ ≜ xₙ - x̂ₙ eₙ⁻ ≜ xₙ - x̂ₙ₋₁ eₙ = xₙ - x̂ₙ = xₙ - x̂ₙ₋₁ - Kₙ (yₙ - Aₙ x̂ₙ₋₁) = xₙ - x̂ₙ₋₁ - Kₙ (Aₙ xₙ - Aₙ x̂ₙ₋₁) = eₙ⁻ - Kₙ Aₙ eₙ⁻ = (I - Kₙ Aₙ) eₙ⁻ objective function: Jₙ = e₁² + e₂² + ... + eₙ² = eᵀe = tr(eeᵀ) = tr(Pₙ) error covariance matrix: Pₙ ≜ eₙeₙᵀ = (xₙ - x̂ₙ)(xₙ - x̂ₙ)ᵀ Pₙ⁻ ≜ eₙ⁻eₙ⁻ᵀ = (xₙ - x̂ₙ₋₁)(xₙ - x̂ₙ₋₁)ᵀ Pₙ = eₙeₙᵀ = ((I - Kₙ Aₙ) eₙ⁻) ((I - Kₙ Aₙ) eₙ⁻)ᵀ = (I - Kₙ Aₙ) Pₙ⁻ (I - Kₙ Aₙ)ᵀ solution: ∂Jₙ/∂Kₙ = 2 (I - Kₙ Aₙ) Pₙ⁻ (-Aₙ)ᵀ = 0 Kₙ = Pₙ⁻ Aₙᵀ (Aₙ Pₙ⁻ Aₙᵀ)⁻¹ iteration of Pₙ: Pₙ = (I - Kₙ Aₙ) Pₙ⁻ (I - Kₙ Aₙ)ᵀ = Pₙ⁻ - Kₙ Aₙ Pₙ⁻ - Pₙ⁻ Aₙᵀ Kₙᵀ + Kₙ (Aₙ Pₙ⁻ Aₙᵀ) Kₙᵀ = Pₙ⁻ - Kₙ Aₙ Pₙ⁻ ^^ = (I - Kₙ Aₙ) Pₙ⁻
simultaneous equations:
⎰ yₙ = Aₙ xₙ + vₙ linear equations with noise
⎱ x̂ₙ = x̂ₙ₋₁ + Kₙ (yₙ - Aₙ x̂ₙ₋₁) sequential LLS update rule
zero-mean Gaussian noise:
vₙ ~ N(0,σₙ²)
E[vₙ] = 0
error:
eₙ ≜ xₙ - x̂ₙ
eₙ⁻ ≜ xₙ - x̂ₙ₋₁
E[eₙ] = E[xₙ - x̂ₙ]
= E[xₙ - x̂ₙ₋₁ - Kₙ (yₙ - Aₙ x̂ₙ₋₁)]
= E[xₙ - x̂ₙ₋₁ - Kₙ (Aₙ xₙ + vₙ - Aₙ x̂ₙ₋₁)]
= E[eₙ⁻ - Kₙ Aₙ eₙ⁻ - Kₙ vₙ ]
= E[(I - Kₙ Aₙ) eₙ⁻ - Kₙ vₙ]
= (I - Kₙ Aₙ) E[eₙ⁻] - Kₙ E[vₙ]
objective function:
Jₙ = E[e₁² + e₂² + ... + eₙ²]
= E[eᵀe]
= E[tr(eeᵀ)]
= tr(E[eeᵀ])
= tr(Pₙ)
error covariance matrix:
Pₙ ≜ E[eₙeₙᵀ] = E[(xₙ - x̂ₙ)(xₙ - x̂ₙ)ᵀ]
Pₙ⁻ ≜ E[eₙ⁻eₙ⁻ᵀ] = E[(xₙ - x̂ₙ₋₁)(xₙ - x̂ₙ₋₁)ᵀ]
Pₙ = E[eₙeₙᵀ]
= E[eₙ]E[eₙ]ᵀ
= ((I - Kₙ Aₙ) E[eₙ⁻] - Kₙ E[vₙ]) (......)ᵀ
= (I - Kₙ Aₙ) Pₙ⁻ (I - Kₙ Aₙ)ᵀ + Kₙ Rₙ Kₙᵀ
^^^^^^^^^
*noise covariance matrix:
Rₙ ≜ E[vₙvₙᵀ]
*assume vₙ and eₙ⁻ are independent:
E[vₙeₙ⁻] = E[vₙ]E[eₙ⁻] = 0
solution:
∂Jₙ/∂Kₙ = 2 (I - Kₙ Aₙ) Pₙ⁻ (-Aₙ)ᵀ - 2 Kₙ Rₙ = 0
Kₙ = Pₙ⁻ Aₙᵀ (Aₙ Pₙ⁻ Aₙᵀ + Rₙ)⁻¹
iteration of Pₙ:
Pₙ = (I - Kₙ Aₙ) Pₙ⁻ (I - Kₙ Aₙ)ᵀ + Kₙ Rₙ Kₙᵀ
= Pₙ⁻ - Kₙ Aₙ Pₙ⁻ - Pₙ⁻ Aₙᵀ Kₙᵀ + Kₙ (Aₙ Pₙ⁻ Aₙᵀ + Rₙ) Kₙᵀ
= Pₙ⁻ - Kₙ Aₙ Pₙ⁻ ^^
= (I - Kₙ Aₙ) Pₙ⁻
linear quadratic observer (Kalman filter)
原始名稱Kalman filter。 雖然是observer,但是原始作者取名filter。 畢竟當時observer這個詞彙尚未流行。
stochastic LTV state-space model: ⎰ x[n+1] = Aₙ x[n] + Bₙ u[n] + w[n] ⎱ y[n] = Cₙ x[n] + Dₙ u[n] + v[n] derivation: 一、y[n] = Cₙ x[n] 套用sequential linear least squares。 二、v[n] 追加雜訊。公式解多出一項。 三、Dₙ u[n] 使用中學數學的配方法。 簡單起見,教科書習慣省略這項。 四、x[n+1] = Aₙ x[n] 事先套用線性變換Aₙ,調整一下估計平均數x̂、誤差共變異矩陣P。 五、Bₙ u[n] + w[n] 同上。公式解多出一項。
stochastic LTV state-space model (Dₙ = 0):
⎰ x[n+1] = Aₙ x[n] + Bₙ u[n] + w[n]
⎱ y[n] = Cₙ x[n] + v[n]
sequential LLS update rule:
x̂[n] = x̂[n-1] + Kₙ (y[n] - Aₙ x̂[n-1])
linear quadratic observer:
given y[n] and (Aₙ,Bₙ,Cₙ,Dₙ) , for all n
find x̂[n] = argmin sum ‖x[n] - x̂[n]‖² , for all n
i=0⋯n
change notations:
xₙ ≜ x[n]
yₙ ≜ y[n]
x̂ₙ ≜ x̂[n]
initial value:
0. estimate: x̂₀ = E[x₀]
P₀ = E[(x₀-x̂₀)(x₀-x̂₀)ᵀ]
iteration:
1. transform: x̂ₙ⁻ = Aₙ x̂ₙ₋₁ + Bₙ uₙ
Pₙ⁻ = Aₙ Pₙ₋₁ Aₙᵀ + Qₙ
2. Kalman gain: Kₙ = Pₙ⁻ Cₙᵀ (Cₙ Pₙ⁻ Cₙᵀ + Rₙ)⁻¹
3. estimate: x̂ₙ = x̂ₙ⁻ + Kₙ (yₙ - Cₙ x̂ₙ⁻)
Pₙ = (I - Kₙ Cₙ) Pₙ⁻
x: state y: measurement A: state transition matrix C: measurement matrix w: state transition noise v: measurement noise Q: covariance matrix of w (SPSD matrix) R: covariance matrix of v (SPSD matrix) x̂: mean vector of x P: covariance matrix of difference of x and x̂ (SPSD matrix) x̂ₙ⁻: transform of x̂ₙ₋₁ under Aₙ Pₙ⁻: transform of Pₙ₋₁ under Aₙ (SPSD matrix)
affine transformation:
y = A x + v
assumptions:
E[v] = 0 (since v are zero-mean Gaussian noises)
cov[v] = r (r is user-defined value)
mean vector:
E[y] = E[Ax + v]
= A E[x] + E[v]
E[x] = (AᵀA)⁻¹Aᵀ(E[y] - E[v]) pseudoinverse
= (AᵀA)⁻¹AᵀE[y] by assumptions
= A⁺E[y]
covariance matrix:
cov[y] = cov[Ax + v]
= A cov[x] Aᵀ + cov[v]
cov[x] = A⁺(cov[y] - cov[v])Aᵀ⁺ pseudoinverse【尚待確認】
內部狀態初始值有兩種設定方式:
一、自行設定:
觀察現實狀況,判斷初始值。
例如慣性運動測量inertial motion measurement,
物體從靜止狀態開始運動,
位置是零、速度是零,
內部狀態初始值就是零向量。
二、解方程式:
取得足夠的輸出訊號、輸入訊號,
利用observability matrix那道等式,求得內部狀態初始值。
另外如果C恰是方陣而且可逆,那麼可以直接用C來算。
⎡ y[0] ⎤ ⎡ C ⎤ ⎡ D 0 ⋯ ⎤ ⎡ u[0] ⎤
⎢ : ⎥ = ⎢ CA ⎥ x[0] + ⎢ CB D ⋯ ⎥ ⎢ : ⎥
⎢ : ⎥ ⎢ : ⎥ ⎢ CAB CB ⋯ ⎥ ⎢ : ⎥
⎣ y[k-1] ⎦ ⎣ CAᵏ⁻¹ ⎦ ⎣ : : ⎦ ⎣ u[k-1] ⎦
y⃗ 𝑂 𝑇 u⃗
x̂₀ = (𝑂ᵀ𝑂)⁻¹𝑂ᵀ(y⃗ - 𝑇u⃗) where rank(𝑂) = k
x̂₀ = C⁻¹(y[0] - Du[0]) if rank(C) = k and C is invertible
誤差共變異矩陣初始值有兩種設定方式: 一、如果方才採用自行設定: 就是零矩陣。畢竟誤差是0。 二、如果方才採用解方程式: 雜訊的共變異矩陣,套用變異數變換公式。 P₀ = (𝑂ᵀR₀⁻¹𝑂)⁻¹
Riccati equation / Lyapunov equation
順便介紹兩種方程式。 一、Pₙ的遞迴公式,替換掉Kₙ,稱作Riccati equation。 二、Pₙ的遞迴公式,趨近穩態,稱作Lyapunov equation。
Riccati equation: Pₙ = (Aₙ Pₙ₋₁ Aₙᵀ + Qₙ) - (Aₙ Pₙ₋₁ Cₙᵀ) (Cₙ Pₙ₋₁ Cₙᵀ + Rₙ)⁻¹ (Aₙ Pₙ₋₁ Cₙᵀ)ᵀ
| discrete-time | continuous-time
| system | system
--------------------------------------------------------
Lyapunov equation | AXAᵀ - X + C = 0 | AX + XAᵀ + C = 0
Sylvester equation | AXB - X + C = 0 | AX + XB + C = 0
stochastic LTV state-space model (Bₙ = Dₙ = 0):
⎰ x[n+1] = Aₙ x[n] + w[n]
⎱ y[n] = Cₙ x[n] + v[n]
mean vector:
x̄ₙ₊₁ = E[xₙ₊₁]
= E[Aₙ xₙ + wₙ]
= Aₙ E[xₙ] + E[wₙ]
= Aₙ x̄ₙ
since E[wₙ] = 0
error covariance matrix:
Pₙ₊₁ = E[(xₙ₊₁ - x̄ₙ₊₁)(xₙ₊₁ - x̄ₙ₊₁)ᵀ]
= E[(Aₙ xₙ + wₙ - Aₙ x̄ₙ)(Aₙ xₙ + wₙ - Aₙ x̄ₙ)ᵀ]
= E[(Aₙ (xₙ - x̄ₙ) + wₙ)(Aₙ (xₙ - x̄ₙ) + wₙ)ᵀ]
= ......
= Aₙ Pₙ Aₙᵀ + E[wₙ wₙᵀ]
since E[xₙ wₙ] = 0
error covariance matrix at steady state:
P = Aₙ P Aₙᵀ + E[wₙ wₙᵀ]
since Pₙ₊₁ = Pₙ
Lyapunov equation:
P = Aₙ P Aₙᵀ + Qₙ where Qₙ = E[wₙ wₙᵀ]
Aₙ P Aₙᵀ - P + Qₙ = 0
nonlinear system
專著《Kalman Filter for Beginners: with MATLAB Examples》。
Kalman filter 線性系統 extended Kalman filter 非線性系統 unscented Kalman filter 平均數和變異數變換,透過取樣點。 particle Kalman filter 取樣點變換,透過變遷機率。 error-state Kalman filter 線性、非線性,兩者分開處理。
system functionality — linear quadratic controller
linear quadratic controller
專著《Linear Quadratic Control: An Introduction》。
optimal control
受控廠:LTI state-space model、LTV state-space model。 參考訊號:regulator、tracker。 觀測器:Kalman filter。 控制器:P controller、PI controller。 目標函數:quadratic function、convex function。 約束條件:自訂。 最佳化演算法:公式解、梯度下降法、牛頓法、線性規劃、動態規劃。 優點:為所欲為。想到什麼目標函數、約束條件,都可以放進來。 缺點:難以控制收斂速度,甚至不會收斂。 不定時得到最佳解,甚至不確定得到最佳解。 上個世紀,最佳控制曾經搞到噴射機失事。 大家研判這種作法行不通,導致最佳控制發展停滯。
linear quadratic control
現在教科書只會介紹其特例linear quadratic control: LTI state-space model、regulator、P controller、quadratic function。 然後推導其公式解。 畢竟只有公式解沒有上述缺點。 linear是指線性系統。包括線性非時變系統、線性時變系統。 quadratic是指二次函數。目標函數是二次函數,換句話說,二次最佳化。 當矩陣是半正定矩陣,導致二次最佳化有最小值,可以推導公式解。 請見本站文件「quadratic optimization」。 極值位於一次微分等於零的地方。推導過程需要用到多變量函數微分。 請見本站文件「differential calculus」。
linear quadratic controller
(1) r = 0 and skip cross term (2) r = 0 (3) r is constant (linear quadratic regulator) (4) r is arbitrary (linear quadratic tracker) (5) PI controller (linear quadratic integral controller) (6) noise (linear quadratic Gaussian controller) 依序介紹六種版本,從特例到通例。 每種版本都需要引進新的公式解求解技巧。 不過我不打算仔細講解求解技巧。 甚至我不確定公式解是什麼。 主要是因為我沒找到參考文獻。 這領域的書籍都寫得有点那啥、一寸微妙。
r = 0 and skip cross term
LTV state-space model:
⎰ x[n+1] = Aₙ x[n] + Bₙ u[n]
⎱ y[n] = Cₙ x[n] + Dₙ u[n]
linear quadratic controller:
given r[n] and x[n] and (Aₙ,Bₙ,Cₙ,Dₙ) , for all n
find u[0⋯N-1] = argmin J
objective function:
J = sum ‖y[i] - r[i]‖²
i=0⋯N-1
= sum ‖y[i]‖² (assume r[n] = 0 for all n)
i=0⋯N-1
= sum ‖Cᵢ x[i] + Dᵢ u[i]‖²
i=0⋯N-1
= sum (Cᵢ x[i] + Dᵢ u[i])ᵀ (Cᵢ x[i] + Dᵢ u[i])
i=0⋯N-1
= sum { x[i]ᵀ Cᵢᵀ Cᵢ x[i] +
i=0⋯N-1 u[i]ᵀ Dᵢᵀ Dᵢ u[i] +
2 x[i]ᵀ Cᵢᵀ Dᵢ u[i] }
rename variables:
Qᵢ ≜ Cᵢᵀ Cᵢ
Rᵢ ≜ Dᵢᵀ Dᵢ
Nᵢ ≜ Cᵢᵀ Dᵢ
J = sum { x[i]ᵀ Qᵢ x[i] +
i=0⋯N-1 u[i]ᵀ Rᵢ u[i] +
2 x[i]ᵀ Nᵢ u[i] }
objective function (skip cross term):
J = sum { x[i]ᵀ Qᵢ x[i] + u[i]ᵀ Rᵢ u[i] }
i=0⋯N-1
solution:
Pɴ = 0
Kₙ = - (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ (Aₙᵀ Pₙ₊₁ Bₙ)ᵀ
Pₙ = (Qₙ + Aₙᵀ Pₙ₊₁ Aₙ)
- (Aₙᵀ Pₙ₊₁ Bₙ) (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ (Aₙᵀ Pₙ₊₁ Bₙ)ᵀ
u[n] = Kₙ x[n]
infinite-horizon solution:
當時刻足夠大(例如n→∞)且已經抵達穩態(Pₛₛ ≜ Pₙ = Pₙ₊₁ = ...)
Kₙ = - (Rₙ + Bₙᵀ Pₛₛ Bₙ)⁻¹ (Aₙᵀ Pₛₛ Bₙ)ᵀ
Pₛₛ = (Qₙ + Aₙᵀ Pₛₛ Aₙ)
- (Aₙᵀ Pₛₛ Bₙ) (Rₙ + Bₙᵀ Pₛₛ Bₙ)⁻¹ (Aₙᵀ Pₛₛ Bₙ)ᵀ
u[n] = Kₙ x[n]
A B C D: model parameters of state-space model y: output signal x: internal state u: input signal r: reference signal J: objective function Q: coefficient of x square term of J (SPSD matrix) R: coefficient of u square term of J (SPSD matrix) N: coefficient of x u cross term of J P: coefficient of J (SPSD matrix) K: controller gain
linear quadratic observer有自己的P和K。 linear quadratic controller也有自己的P和K。 而且兩邊的P和K意義完全不同。
二次最佳化: Qₙ = Cₙᵀ Cₙ形成對稱半正定矩陣,導致二次最佳化有最小值。 最小值位於一次微分等於零的地方。 多目標最佳化: 一、內部狀態:x[n]ᵀ Qₙ x[n] for all n 二、輸入訊號:u[n]ᵀ Rₙ u[n] for all n 三、交叉項: x[n]ᵀ Nₙ u[n] for all n 四、邊界: x[n]ᵀ Mₙ x[n] for last n = N-1 一般來說,Mₙ = 0。 邊界有如常數項,不影響最佳解位置。
(1) Lagrange multiplier
https://math.stackexchange.com/questions/3119575/
(2) Hamilton–Jacobi–Bellman equation
https://cruxponent.com/post/lqr/
兩種推導方式等價。
中規中矩的作法是拉格朗日乘數法(1)。
投機取巧的作法是動態規劃(2)。
教科書總是介紹(2)。我也介紹(2)。
objective function (skip cross term):
J = sum { x[i]ᵀ Qᵢ x[i] + u[i]ᵀ Rᵢ u[i] }
i=0⋯N-1
recurrence:
Jₙ = sum { x[i]ᵀ Qᵢ x[i] + u[i]ᵀ Rᵢ u[i] }
i=n⋯N-1
= x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] + Jₙ₊₁
optimality:
Jₙ* = min Jₙ
u[n⋯N-1]
= min { x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] + Jₙ₊₁ }
u[n⋯N-1]
= min { x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] } + min { Jₙ₊₁ }
u[n⋯N-1] u[n⋯N-1]
= min { x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] } + min { Jₙ₊₁ }
u[n] u[n⋯N-1]
= min { x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] + min Jₙ₊₁ }
u[n] u[n+1⋯N-1]
= min { x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] + Jₙ₊₁* }
u[n]
ansatz:
Jₙ = x[n]ᵀ Pₙ x[n]
recurrence:
Jₙ = x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] + Jₙ₊₁
= x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] + x[n+1]ᵀ Pₙ₊₁ x[n+1]
= x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] +
(Aₙ x[n] + Bₙ u[n])ᵀ Pₙ₊₁ (Aₙ x[n] + Bₙ u[n])
= x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] +
x[n]ᵀ Aₙᵀ Pₙ₊₁ Aₙ x[n] +
u[n]ᵀ Bₙᵀ Pₙ₊₁ Bₙ u[n] +
2 u[n] Bₙᵀ Pₙ₊₁ Aₙ x[n]
= x[n]ᵀ (Qₙ + Aₙᵀ Pₙ₊₁ Aₙ) x[n] +
u[n]ᵀ (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ) u[n] +
2 u[n] Bₙᵀ Pₙ₊₁ Aₙ x[n]
solution:
∂Jₙ/∂u[n] = 2 (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ) u[n] + 2 Bₙᵀ Pₙ₊₁ Aₙ x[n] = 0
u[n] = - (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ Bₙᵀ Pₙ₊₁ Aₙ x[n]
controller gain:
Kₙ ≜ - (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ Bₙᵀ Pₙ₊₁ Aₙ
u[n] = Kₙ x[n]
iteration of Pₙ:
Jₙ = x[n]ᵀ (Qₙ + Aₙᵀ Pₙ₊₁ Aₙ) x[n]
- x[n]ᵀ (Aₙᵀ Pₙ₊₁ Bₙ (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ Bₙᵀ Pₙ₊₁ Aₙ) x[n]
Pₙ = (Qₙ + Aₙᵀ Pₙ₊₁ Aₙ)
- (Aₙᵀ Pₙ₊₁ Bₙ (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ Bₙᵀ Pₙ₊₁ Aₙ)
此演算法是offline algorithm,不是online algorithm。 2018年出現online algorithm,但是此處不介紹: https://arxiv.org/abs/1806.07104 關於內部狀態x[0]...x[N-1]。 大家習慣假設已知初始內部狀態x[0], 藉由系統模型x[n+1] = Aₙ x[n] + Bₙ u[n], 一路遞推得到x[1]...x[N-1]。 通通準備好才能實施演算法。 此演算法是offline algorithm。
動態規劃: 考慮當前時刻n。將目標函數改寫成遞迴公式。 一、x[n+1]...x[N-1]強行展開直到x[n]和u[n], 藉由系統模型x[n+1] = Aₙ x[n] + Bₙ u[n]。 因此發現,當前輸入訊號u[n], 影響未來時刻目標函數值x[i]ᵀ Qᵢ x[i] + u[i]ᵀ Rᵢ u[i],i ≥ n。 子問題必須包含未來時刻。 子問題不需包含過去時刻。 二、每個子問題,撇開遞迴部分, 額外成本只有當前時刻目標函數值。 因此發現,僅當前輸入訊號u[n], 影響當前時刻目標函數值x[i]ᵀ Qᵢ x[i] + u[i]ᵀ Rᵢ u[i],i = n。 一個子問題只需要針對單一訊號u[n]進行最佳化。 問題變得簡單,得以推導公式解。 動態規劃簡化為貪心法。 擬設: 假設Jₙ形成一個二次型,係數設為Pₙ。 然後求得係數Pₙ的遞迴公式。 一、x[n+1]...x[N-1]強行展開直到x[n]和u[n], 藉由系統模型x[n+1] = Aₙ x[n] + Bₙ u[n]。 二、再將u[n]通通替換成x[n], 藉由通靈答案u[n] = Kₙ x[n]。 三、二次型相加仍是二次型。 於是得到擬設Jₙ = x[n]ᵀ Pₙ x[n]。
regulator: 系統需要花時間讓輸出訊號迎合參考訊號(抵達穩態)。 (回想一下先前章節reachability,rank(𝑅) = k。) 目標函數累計範圍足夠大(N ≥ k),才會得到正確答案。 tracker: 參考訊號一直在變。每個時刻都要重新實施演算法。 每當新增一個時刻,就重新計算輸入訊號u。 答案每次都不一樣。不斷推翻過去的答案。 N越大時間複雜度越高。畢竟不斷重算。 N不夠大答案就不正確。畢竟N ≥ k。 這是兩難局面。大家自行取捨適當的N。 所幸計算時間是確定的。 儘管無法即時得到最佳解,但是可以定時得到最佳解。
Hamilton–Jacobi–Bellman equation / Riccati equation
Hamilton–Jacobi–Bellman equation:
Jₙ* = min { x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n] + Jₙ₊₁* }
u[n]
Riccati equation:
Pₙ = (Qₙ + Aₙᵀ Pₙ₊₁ Aₙ)
- (Aₙᵀ Pₙ₊₁ Bₙ) (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ (Aₙᵀ Pₙ₊₁ Bₙ)ᵀ
訊號學家自創一個詞彙Hamilton–Jacobi–Bellman equation。 Bellman發明動態規劃。 Jacobi發展微分方程式、動態系統。 Hamilton發明辛動態系統。 Bellman's equation源自應用數學。 它是動態規劃當中的遞迴公式。 目標函數,可以改寫成遞迴公式。 Hamilton-Jacobi equation源自物理學。 它是辛動態系統的一個關係式。 目標函數,其格式宛如作用量。 遞迴公式,其格式宛如Hamilton-Jacobi equation。
訊號學家自創一個詞彙Riccati equation。 Riccati equation源自數學。 它是一種特殊格式的一階二次微分方程式的解。 HJE equation,右式就是這種一階二次微分方程式。 導致HJE equation的解就是Riccati equation。
訊號學家自創一個詞彙infinite-horizon。 其實就是converge to steady state at infinity。
r = 0
多了交叉項,計算過程還是一樣,答案多了一項反而更漂亮。 教科書總是省略交叉項。成為歷史共業。
objective function:
J = sum { x[i]ᵀ Qᵢ x[i] + u[i]ᵀ Rᵢ u[i] + 2 x[i]ᵀ Nᵢ u[i] }
i=0⋯N-1
solution:
Pɴ = 0
Kₙ = - (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ (Nₙ + Aₙᵀ Pₙ₊₁ Bₙ)ᵀ
Pₙ = (Qₙ + Aₙᵀ Pₙ₊₁ Aₙ)
- (Nₙ + Aₙᵀ Pₙ₊₁ Bₙ) (Rₙ + Bₙᵀ Pₙ₊₁ Bₙ)⁻¹ (Nₙ + Aₙᵀ Pₙ₊₁ Bₙ)ᵀ
u[n] = Kₙ x[n]
https://en.wikipedia.org/wiki/Linear–quadratic_regulator#Finite-horizon,_discrete-time
r is constant【尚待確認】
當參考訊號是常數函數而不是零。 最佳控制器追加一項Kₛₛ,對付參考訊號。 這項Kₛₛ源自配方法。 目標函數從二次型變成二次函數。 常數項不影響最佳解位置,可以消除。 一次項用配方法消除。
objective function: J = sum ‖y[i] - r‖² i=0⋯N-1 solution: u[n] = Kₙ x[n] + Kₛₛ r steady-state feedforward gain Kₛₛ: x[n+1] = Aₙ x[n] + Bₙ u[n] x[n+1] = Aₙ x[n] + Bₙ (Kₙ x[n] + Kₛₛ r) x[n+1] = (Aₙ + BₙKₙ) x[n] + B Kₛₛ r xₛₛ = (Aₙ + BₙKₙ) xₛₛ + B Kₛₛ r xₛₛ = (I - Aₙ - BₙKₙ)⁻¹ B Kₛₛ r yₛₛ = [(Cₙ + DₙKₙ) (I - Aₙ - BₙKₙ)⁻¹ Bₙ + D] Kₛₛ r Kₛₛ = [(Cₙ + DₙKₙ) (I - Aₙ - BₙKₙ)⁻¹ Bₙ + D]⁻¹
r is arbitrary【尚待確認】
我沒有學會。
linear quadratic integral controller【尚待確認】
P controller改成PI controller。 目標函數是累進誤差z。 累進誤差z作為擴充變數。
accumulative error (integral action):
z[n+1] = z[n] + (r - y[n])
= z[n] + r - Cₙ x[n] - Dₙ u[n]
augmented internal state:
⎡ x[n+1] ⎤ = ⎡ Aₙ O ⎤ ⎡ x[n] ⎤ + ⎡ Bₙ ⎤ u[n] + ⎡ O ⎤ r
⎣ z[n+1] ⎦ ⎣ -Cₙ I ⎦ ⎣ z[n] ⎦ ⎣ -Dₙ ⎦ ⎣ I ⎦
x'[n+1] A' x'[n] B'
O: zero matrix
I: identity matrix
objective function:
J = sum { x'[i]ᵀ Qₙ x'[i] + u[i]ᵀ Rₙ u[i] + ... }
i=0⋯N-1
solution:
u[n] = Kₓₙ x[n] + Kₙ z[n]
linear quadratic Gaussian controller【尚待確認】
追加雜訊。 Pₙ從二次型改成二次函數。 請見專著。
stochastic LTV state-space model: ⎰ x[n+1] = Aₙ x[n] + Bₙ u[n] + w[n] ⎱ y[n] = Cₙ x[n] + Dₙ u[n] + v[n] solution: https://cruxponent.com/post/lqr/
延伸閱讀:dynamic programming
linear quadratic controller的解, 只需要貪心法,不需要動態規劃。 只需要公式解,不需要表格。 即便是非線性系統,也可以用線性化硬撐過去,不需要動態規劃。 不過還是順便介紹一下動態規劃。
cost[n] = x[n]ᵀ Qₙ x[n] + u[n]ᵀ Rₙ u[n]
J[n] = min { sum cost[i] }
u[n⋯N-1] i=n⋯N-1
= min { J[n+1] + cost[n] }
u[n]
每個時刻窮舉輸入訊號數值u[n],將最小成本儲存於表格。 因此只能處理數位訊號(離散)、無法處理類比訊號(連續)。 時間複雜度O(RN)。空間複雜度O(RN)。 R是訊號數值種類,N是訊號長度。
separation principle
separation principle:
min { f(x) + g(y) } = min f(x) + min g(y)
x,y x y
如果兩個目標函數各自使用不同變數、那麼可以分別最佳化。
就這麼簡單。
separation principle: optimal controller of state-space model = optimal observer + optimal controller using internal state 狀態空間模型的控制器,可以拆成兩部分: 一、最佳觀測器:估計內部狀態。 二、使用內部狀態的最佳控制器:利用內部狀態實施控制。 目標函數是輸出訊號y的函數。 利用y[n] = Cₙ x[n] + Dₙ u[n]強行展開數學式子, 形成初始內部狀態x[0]、輸入訊號u[0]...u[n]的函數。 大家習慣假設已知x[0],只需要求u[0]...u[n]。 不需要分別最佳化。 不需要separation principle。 當x[0]已知,那麼可以自行計算x[1]...x[n]。 當x[0]未知、或者雜訊/擾動、或者現實意外,導致自行計算結果不可靠。 此時,大家就會額外使用observer實地測量x[1]...x[n]。 此時,大家也把這種情況當作separation principle。
controller:
┌────────────┐ u ┌─────────┐
r ──→│ controller │────→│ plant │──┬─→ y
╭─→└────────────┘ └─────────┘ │
╰──────────────────────────────────╯
separation principle:
┌────────────┐ u ┌─────────┐
r ──→│ controller │──┬─→│ plant │──┬────────────────→ y
╭─→└────────────┘ │ └─────────┘ └─→┌──────────┐
│ ╰─────────────────→│ observer │──╮
│ └──────────┘ │
╰───────────────────────────────────────────────────╯
x̂
總結
曾經介紹:
(1) 受控廠:LTI system
控制器:PID controller
數學工具:Laplace transform
主題名稱:linear control
此處介紹:
(1) 受控廠:LTV state-space model
觀測器:linear quadratic observer (Kalman filter)
數學工具:linear least squares
主題名稱:optimal estimation
(2) 受控廠:LTV state-space model
控制器:linear quadratic controller
數學工具:quadratic optimization
主題名稱:optimal control
new-style name: 1. linear quadratic observer 2. linear quadratic controller old-fashioned name: 1. linear quadratic estimator (Kalman filter) 2. linear quadratic regulator/tracker (LQR/LQT)
system functionality — Luenberger observer
Luenberger observer
專著《Control System Design Guide: Using Your Computer to Understand and Diagnose Feedback Controllers》。
Luenberger observer
sequential linear least squares / Kalman filter: x̂ₙ = x̂ₙ⁻ + Kₙ (yₙ - Aₙ x̂ₙ⁻) Luenberger observer: x̂[n+1] = (A x̂[n] + B u[n]) + L (y[n] - ŷ[n]) 兩者更新方式完全一樣。不再贅述。
K: Kalman gain L: Luenberger gain
Luenberger observer: 自行設計一個幾乎一樣的系統,估計輸出訊號ŷ[n]。 藉由輸出訊號誤差y[n] - ŷ[n],估計內部狀態x̂[n+1]。 至於L是自行通靈出來的。 system estimator: 自行設計一個幾乎一樣的系統。 利用先前章節的system identification找到A B C D。 自行組裝成LTI state-space model。
Luenberger observer跟Kalman filter相比。 優點是時間複雜度較低。 缺點是不保證平方誤差最小。因此無法因應特殊狀況。 實務上用來節省成本。省錢省事。 實務上用於比較單純、比較穩定的系統。
觀測器輸入訊號:x̂[n]、u[n]、y[n] - ŷ[n]。
觀測器輸出訊號:x̂[n+1]。
observer:
u ──→┌──────────┐
y ──→│ observer │──→ x̂
└──────────┘
Luenberger observer:
u ──→┌──────────┐
y-ŷ ──→│ observer │─┬→ x̂
╭─→└──────────┘ │
╰───────────────╯
output error:
┌──────────┐ y
u ──┬───→│ system │──┬──┐
│ └──────────┘ │ │
│ ╭────────────────╯ ↓+
│ │ ┌───────────┐ ⊕──→ y - ŷ
│ ╰─→│ system │ ↑-
└───→│ estimator │────┘
└───────────┘ ŷ
Luenberger observer:
┌───┐
┌─────────────────────────→│ B │──┐
│ ┌───────────┐ ╞═══╡ ↓+
u ──┴─→│ system │──→ x̂ ────→│ A │─→⊕──┬─→ x̂
y ──┬─→│ estimator │──→ ŷ ──┐- ╞═══╡ ↑+ │
│ └─────┬─────┘ ⊕─→│ L │──┘ │
└────────↑──────────────┘+ └───┘ │
╰───────────────────────────╯
維基百科的方塊圖,畫成其他造型。看你喜歡哪種都行。
https://commons.wikimedia.org/wiki/File:Luenberger_Observer.svg
https://www.researchgate.net/figure/Schematic-diagram-of-the-Luenberger-observer_fig1_352751281
complementary filter
Luenberger observer可以視作互補濾波器。 輸入訊號與輸出訊號灌入互補濾波器,藉以消除感測器的影響。 詳情請見專著: https://books.google.com.tw/books?id=hTXsXTt5kewC&pg=PA199
separation principle
┌───────────────┐ u ┌─────────┐
╭─→│ P controller │──┬─→│ plant │──┬────────────────→ y
│ │ u[n] = K x̂[n] │ │ └─────────┘ └─→┌──────────┐
│ └───────────────┘ ╰─────────────────→│ observer │──╮
│ └──────────┘ │
╰──────────────────────────────────────────────────────╯
x̂
追加u[n] = K x̂[n]形成閉迴路系統。
整體也得滿足穩定性。
特徵值變成A+BK和A+LC。
詳情請見講義:
https://www.columbia.edu/~ja3451/courses/E6602/9_observers.pdf
https://control.asu.edu/Classes/MAE507/507Lecture09.pdf
system functionality — sliding mode observer🚧
sliding mode observer
專著《Sliding Mode Control and Observation》。
非線性系統。我沒有學會。有空再來介紹。 https://medium.com/@saurav310304/f9fc11c0177a
system design
continuous-time system
continuous-time LTV state-space model: ⎰ x′(t) = A(t) x(t) + B(t) u(t) ⎱ y(t) = C(t) x(t) + D(t) u(t)
以上僅介紹離散時間系統。 沒有介紹連續時間系統。 若有興趣請自行尋找資料。 連續時間系統,答案完全不同。 上述所有內容都要重新推導一遍。阿娘喂。 簡單來說就是所有答案都要多出exp(t)。但也不盡然。
disturbance rejection
disturbance rejection
干擾拒絕。分離並消除系統雜訊。經典方法如下: 1. low-pass filter 2. wavelet denoising 3. Wiener filter 4. adaptive inverse control
low-pass filter
通常雜訊是高頻,於是套用low-pass filter。 轉換到頻域、刪除高頻振幅、轉換回時域。 經典的low-pass filter有MA filter和ARMA filter。
wavelet denosing
專著《Wavelets: A Concise Guide》。
https://www.mathworks.com/help/wavelet/ug/wavelet-denoising.html
Wiener filter
專著《Adaptive Filters: Theory and Applications》。
https://web.stanford.edu/class/archive/ee/ee264/ee264.1072/mylecture12.pdf https://www.roma1.infn.it/exp/cuore/pdfnew/ch06.pdf https://dsp.stackexchange.com/questions/285/
adaptive inverse control
專著《Adaptive Inverse Control: A Signal Processing Approach》。
http://mocha-java.uccs.edu/ECE5540/ECE5540-CH07.pdf
control system design
專著《Control System Design》。
theorem / principle / condition / criterion
separation principle certainty equivalence principle internal model principle Pontryagin's maximum principle
intractable problem / open problem
NP-hardness of some linear control design problems https://web.mit.edu/jnt/www/Papers/J067-97-vb-contr.pdf
Open Problems in Mathematical Systems and Control Theory https://perso.uclouvain.be/vincent.blondel/op/