当記事は東京工業大学の藤井成美(https://www.linkedin.com/in/narumi-fujii-32304330b/ )によって執筆されました
はじめに
本記事では,IEEE CDC 2023で発表されたParameter-Varying Koopman Operator for Nonlinear System Modeling and Control という論文を紹介します.Koopman作用素論は,ある非線形系が在る時にそれに等価な時間発展を示す高次元空間内の線形系の存在を保証しています.このKoopman作用素は,元の非線形系から得られる時系列データを用いてeDMDという方法で推定され,非線形系をData-Driven型で線形系としてモデル化する場合に用いられます.Koopman作用素を用いたモデル化では,空間的に大域的な線形系を得られることが局所線形化と比較して利点となっています.とはいえ,今までKoopman作用素を用いたモデル化の研究では,主に時不変な非線形系を対象としていました(Korda and Mezić (2016) ).この論文では,実現象の多くのダイナミクスが何らかのパラメータの値に依存することに着目し,時間依存パラメータp = p ( t ) p=p(t) p = p ( t ) を含むNonlinear Parameter-Varying system (NPVs)に対するKoopman作用素を用いたモデル化が提案されています.時間依存パラメータを含む非線形系とは,例えば以下のような系のことです.
x ˙ = 10 ( y − x ) y ˙ = p x − y − x z z ˙ = x y − z
\begin{align}
& \dot{x}=10(y-x) \\
& \dot{y}= px-y-x z \\
& \dot{z}=x y-z
\end{align}
x ˙ = 10 ( y − x ) y ˙ = p x − y − x z z ˙ = x y − z
モデル化の具体的な方法としては,異なるp p p の値に対して局所的に時不変であることを仮定してKoopman作用素を同定し,得られたKoopman作用素の間を補間することでNPVsに対するKoopman作用素を推定します.得られる線形系はLinear Parameter-Varying system (LPVs)となり,パラメータ方向には大域的でないものの空間方向の大域性を持ちます.さらに,得られたLPVsに対して最近発展しているLPV-MPCを統合することで元のNPVsの制御を行うことが提案されています.本記事は,「LPVsとしてのNPVsのモデル化」と「LPV-MPC適用による制御」の二部構成とし,ここでは「LPVsとしてのNPVsのモデル化」に焦点を当てて紹介します.また,Koopman作用素やeDMDの知識をある程度仮定しているため,気になる方はこちらの記事も参考にしてください(Koopman作用素 ,eDMD ).
Parameter-Varying Koopman作用素
先に述べたように,Koopman作用素は空間的に大域的な線形系を提供するので,NPVsに適用した場合はParameter-Varyingな性質が残りKoopman作用素もParameter-Varying Koopman作用素 (PV Koopman作用素)となります.以下では,PV Koopman作用素の推定方法について述べます.
まず,以下の離散時間的なNPVsを考えます.
x k + 1 = f ( x k , u k , p k )
\begin{align}
{\bm x}_{k+1} = {f} ({\bm x}_k,~{\bm u}_k,~{p}_k)
\tag{1}
\end{align}
x k + 1 = f ( x k , u k , p k ) ( 1 )
ここで,x k ∈ X ⊂ R n {\bm x}_k\in \mathbb{X}\subset\mathbb{R}^n x k ∈ X ⊂ R n ,u k ∈ U ⊂ R m {\bm u}_k\in \mathbb{U}\subset\mathbb{R}^m u k ∈ U ⊂ R m は状態ベクトルと入力ベクトル,p k ∈ P ⊂ R { p}_k\in \mathbb{P}\subset\mathbb{R} p k ∈ P ⊂ R はパラメータで時間に依存します.X , U , P \mathbb{X},~\mathbb{U},~\mathbb{P} X , U , P などは,入力はこの大きさまでと言うようなそれぞれの拘束条件で決まります.そして,p k p_k p k に依存するPV Koopman作用素は,
K p k ( Ψ ( x k , u k ) ) = Ψ ( x k + 1 , u k + 1 )
\begin{align}
\mathcal{K}_{p_k}\left({\bm \Psi}\left({\bm x}_k,~{\bm u}_k\right)\right)={\bm \Psi}\left({\bm x}_{k+1},~{\bm u}_{k+1}\right)
\tag{2}
\end{align}
K p k ( Ψ ( x k , u k ) ) = Ψ ( x k + 1 , u k + 1 ) ( 2 )
のようにして高次元空間における線形系を与えます.ここで,Ψ ∈ G {\bm \Psi} \in \mathbb{G} Ψ ∈ G は観測関数,K p k : G → G \mathcal{K}_{p_k}: \mathbb{G}\rightarrow \mathbb{G} K p k : G → G はPV Koopman作用素です.添え字のp k {p_k} p k でパラメータに依存することを表しています.G \mathbb{G} G は無限次元の関数空間ですが数値計算上扱えないので,設計者が有限個の適当な関数を基底として選びます.一般に状態に関する基底の数q q q は元の系の状態の次元n n n よりも大きく,Ψ ∈ G : R n + m → R q + m {\bm \Psi}\in \mathbb{G}: \mathbb{R}^{n+m}\rightarrow\mathbb{R}^{q+m} Ψ ∈ G : R n + m → R q + m (q > n q> n q > n )のように次元を拡張し,
Ψ ( x k , u k ) = [ ψ 1 ( x k ) , ψ 2 ( x k ) , ⋯ , ψ q ( x k ) , u k ⊤ ] ⊤ (3)
{\bm \Psi}\left({\bm x}_k,~{\bm u}_k\right)=\left[\psi_1({\bm x}_k),~ \psi_2({\bm x}_k), \cdots,~ \psi_q({\bm x}_k),~{\bm u}_k^{\top}\right]^{\top}
\tag{3}
Ψ ( x k , u k ) = [ ψ 1 ( x k ) , ψ 2 ( x k ) , ⋯ , ψ q ( x k ) , u k ⊤ ] ⊤ ( 3 )
ここで,ψ i : R n → R \psi_i:\mathbb{R}^n \rightarrow\mathbb{R} ψ i : R n → R です.特に,高次元空間にリフトされた状態は,
y k = Ψ x ( x k ) = [ ψ 1 ( x k ) , ψ 2 ( x k ) , ⋯ , ψ q ( x k ) ] ⊤ (4)
{\bm y}_k={\bm \Psi}_{{\bm x}}\left({\bm x}_k\right)=\left[\psi_1\left({\bm x}_k\right),~\psi_2\left({\bm x}_k\right), \cdots, ~\psi_q\left({\bm x}_k\right)\right]^{\top}
\tag{4}
y k = Ψ x ( x k ) = [ ψ 1 ( x k ) , ψ 2 ( x k ) , ⋯ , ψ q ( x k ) ] ⊤ ( 4 )
Koopman作用素の推定には,x k , u k , y k {\bm x}_k,~{\bm u}_k,~{\bm y}_k x k , u k , y k の時系列データを用いてeDMDを行うというのが一般的ですが,今回はPV Koopman作用素を推定したいので少し修正が必要です.ここでは,パラメータは観測可能であり,さらに設計者が適当なp 1 , ⋯ , p l ∈ P p^1,\cdots,~p^l\in\mathbb{P} p 1 , ⋯ , p l ∈ P のl l l 個の時不変な値に設定できることを仮定して,各パラメータ値における時系列データを集めてそれぞれeDMDを行いKoopman作用素を推定します.PV Koopman作用素はそれらのKoopman作用素の間を補間することで推定されます (Fig.1).
Fig. 1 PV Koopman作用素 (出典:Lee et al. (2023) )
例えば,時不変なパラメータのi ( i = 1 , ⋯ , l ) i(i=1,\cdots,~l) i ( i = 1 , ⋯ , l ) 番目をp i p^i p i とすると,p k = p i p_k=p^i p k = p i におけるKoopman作用素はeDMDを用いて次のように求められます.
対象とする系の式( 1 ) (1) ( 1 ) においてp k = p i p_k=p^i p k = p i とした時に得られる状態と入力のM M M 時刻における時系列データ,
X ( i ) = [ x 1 , x 2 , … , x M − 1 ] ∈ R n × ( M − 1 ) X + ( i ) = [ x 2 , x 3 , … , x M ] ∈ R n × ( M − 1 ) U ( i ) = [ u 1 , u 2 , … , u M − 1 ] ∈ R m × ( M − 1 )
\begin{align}
{\bm X}(i) & =\left[{\bm x}_1, {\bm x}_2, \ldots, {\bm x}_{M-1}\right] \in \mathbb{R}^{n \times(M-1)} \tag{5a}\\
{\bm X}^{+}(i) & =\left[{\bm x}_2, {\bm x}_3, \ldots, {\bm x}_M\right] \in \mathbb{R}^{n \times(M-1)} \tag{5b}\\
{\bm U}(i) & =\left[{\bm u}_1, {\bm u}_2, \ldots, {\bm u}_{M-1}\right] \in \mathbb{R}^{m \times(M-1)} \tag{5c}
\end{align}
X ( i ) X + ( i ) U ( i ) = [ x 1 , x 2 , … , x M − 1 ] ∈ R n × ( M − 1 ) = [ x 2 , x 3 , … , x M ] ∈ R n × ( M − 1 ) = [ u 1 , u 2 , … , u M − 1 ] ∈ R m × ( M − 1 ) ( 5a ) ( 5b ) ( 5c )
を用意します.X ( i ) , X + ( i ) {\bm X}(i),~{\bm X}^{+}(i) X ( i ) , X + ( i ) についてはリフトされた状態に変換し,
Y ( i ) = [ y 1 , y 2 , … , y M − 1 ] ∈ R q × ( M − 1 ) Y + ( i ) = [ y 2 , y 3 , … , y M ] ∈ R q × ( M − 1 )
\begin{align}
{\bm Y}(i) & =\left[{\bm y}_1, {\bm y}_2, \ldots, {\bm y}_{M-1}\right] \in \mathbb{R}^{q \times(M-1)} \tag{6a}\\
{\bm Y}^{+}(i) & =\left[{\bm y}_2, {\bm y}_3, \ldots, {\bm y}_M\right] \in \mathbb{R}^{q \times(M-1)}\tag{6b}
\end{align}
Y ( i ) Y + ( i ) = [ y 1 , y 2 , … , y M − 1 ] ∈ R q × ( M − 1 ) = [ y 2 , y 3 , … , y M ] ∈ R q × ( M − 1 ) ( 6a ) ( 6b )
所望のリフトされた高次元空間内の時不変な線形系は,
Y + ( i ) = A ( p i ) Y ( i ) + B ( p i ) U ( i ) X ( i ) = C Y ( i )
\begin{align}
{\bm Y}^{+}(i) & ={\bm A}\left(p^i\right) {\bm Y}(i)+{\bm B}\left(p^i\right) {\bm U}(i) \tag{7a}\\
{\bm X}(i) & ={\bm C} {\bm Y}(i)\tag{7b}
\end{align}
Y + ( i ) X ( i ) = A ( p i ) Y ( i ) + B ( p i ) U ( i ) = C Y ( i ) ( 7a ) ( 7b )
を満たし,A ( p i ) , B ( p i ) , C {\bm A}\left(p^i\right),~{\bm B}\left(p^i\right),~{\bm C} A ( p i ) , B ( p i ) , C は,
min A ( p i ) , B ( p i ) ∣ Y + ( i ) − ( A ( p i ) Y ( i ) + B ( p i ) U ( i ) ) ∣ F min C ∣ X ( i ) − C Y ( i ) ∣ F
\begin{align}
\min _{{\bm A}\left(p^i\right), {\bm B}\left(p^i\right)}\left|{\bm Y}^{+}(i)-\left({\bm A}\left(p^i\right) {\bm Y}(i)+{\bm B}\left(p^i\right) {\bm U}(i)\right)\right|_F \tag{8a}\\
\min _C|{\bm X}(i)-{\bm C} {\bm Y}(i)|_F\tag{8b}
\end{align}
A ( p i ) , B ( p i ) min Y + ( i ) − ( A ( p i ) Y ( i ) + B ( p i ) U ( i ) ) F C min ∣ X ( i ) − C Y ( i ) ∣ F ( 8a ) ( 8b )
のようなフロべニウスノルムの最小化より求められます.これは,擬似逆行列を用いて,
[ A ( p i ) B ( p i ) ] = Y + ( i ) [ Y ( i ) U ( i ) ] † C = X ( i ) Y ( i ) †
\begin{align}
{\left[{\bm A}\left(p^i\right) \quad {\bm B}\left(p^i\right)\right] } & ={\bm Y}^{+}(i)\left[\begin{array}{l}
{\bm Y}(i) \\
{\bm U}(i)
\end{array}\right]^{\dagger}\tag{9a}\\
{\bm C} & ={\bm X}(i){\bm Y}(i)^{\dagger}\tag{9b}
\end{align}
[ A ( p i ) B ( p i ) ] C = Y + ( i ) [ Y ( i ) U ( i ) ] † = X ( i ) Y ( i ) † ( 9a ) ( 9b )
式( 9 a ) (9a) ( 9 a ) より各p i p^i p i について計算したA ( p i ) {\bm A}\left(p^i\right) A ( p i ) とB ( p i ) {\bm B}\left(p^i\right) B ( p i ) を用いて,あるp k p_k p k に対するA ( p k ) {\bm A}\left(p_k\right) A ( p k ) とB ( p k ) {\bm B}\left(p_k\right) B ( p k ) を
A ( p k ) = α 1 ( p k ) A ( p 1 ) + α 2 ( p k ) A ( p 2 ) + ⋯ + α l ( p k ) A ( p l ) B ( p k ) = α 1 ( p k ) B ( p 1 ) + α 2 ( p k ) B ( p 2 ) + ⋯ + α l ( p k ) B ( p l )
\begin{align}
& {\bm A}\left(p_k\right)=\alpha_1\left(p_k\right) {\bm A}\left(p^1\right)+\alpha_2\left(p_k\right) {\bm A}\left(p^2\right)+\cdots+\alpha_l\left(p_k\right) {\bm A}\left(p^l\right) \tag{10a}\\
& {\bm B}\left(p_k\right)=\alpha_1\left(p_k\right) {\bm B}\left(p^1\right)+\alpha_2\left(p_k\right) {\bm B}\left(p^2\right)+\cdots+\alpha_l\left(p_k\right) {\bm B}\left(p^l\right) \tag{10b}
\end{align}
A ( p k ) = α 1 ( p k ) A ( p 1 ) + α 2 ( p k ) A ( p 2 ) + ⋯ + α l ( p k ) A ( p l ) B ( p k ) = α 1 ( p k ) B ( p 1 ) + α 2 ( p k ) B ( p 2 ) + ⋯ + α l ( p k ) B ( p l ) ( 10a ) ( 10b )
とします.ここで,α 1 ( p k ) , α 2 ( p k ) , ⋯ , α l ( p k ) \alpha_1\left(p_k\right),~\alpha_2\left(p_k\right),\cdots,~\alpha_l\left(p_k\right) α 1 ( p k ) , α 2 ( p k ) , ⋯ , α l ( p k ) は重み係数でありp k p_k p k に依存します.重み係数の関数同定方法としては,線形補間が用いられています.以上より,PV Koopman作用素を用いてモデル化されたLPVsとして以下を得ることができます.
y k + 1 = A ( p k ) y k + B ( p k ) u k
\begin{align}
{\bm y}_{k+1}={\bm A}\left(p_k\right) {\bm y}_k+{\bm B}\left(p_k\right) \mathbf{u}_k
\tag{11}
\end{align}
y k + 1 = A ( p k ) y k + B ( p k ) u k ( 11 )
現在の状態と未来のパラメータの変化が既知であれば同定したLPVsを用いてNPVsの未来を予測することができ,LPV-MPCを適用することができます.
予測精度の評価
今回は,モデルの予測精度を評価することが目的なので制御入力は加えておらず,推定するのはA ( p k ) {\bm A}\left(p_k\right) A ( p k ) の部分のみです.対象とするNPVsとして,以下のローレンツ方程式を考えます.
x ˙ = 10 ( y − x ) y ˙ = p x − y − x z z ˙ = x y − z
\begin{align}
& \dot{x}=10(y-x)\tag{12a} \\
& \dot{y}=px-y-xz\tag{12b}\\
& \dot{z}=xy-z\tag{12c}
\end{align}
x ˙ = 10 ( y − x ) y ˙ = p x − y − x z z ˙ = x y − z ( 12a ) ( 12b ) ( 12c )
ここで,時間依存するパラメータを,
p ( t ) = 25 + ∑ i = 1 20 a i sin ( f i t ) ∑ i = 1 20 a i = 5 ( a i > 0 )
\begin{align}
p(t)=25+\sum_{i=1}^{20}a_i\sin(f_it)~~~~~~
\sum_{i=1}^{20}a_i=5~~~(a_i>0)
\tag{13}
\end{align}
p ( t ) = 25 + i = 1 ∑ 20 a i sin ( f i t ) i = 1 ∑ 20 a i = 5 ( a i > 0 ) ( 13 )
とし,f i f_i f i は0 0 0 から10 10 10 の一様分布から決定されるとします.この系に対して,従来のKoopman作用素と今回のPV Koopman作用素を推定し,得られたモデルの予測精度を比較します.
Koopman作用素
- データの時刻数: M = 15000 M=15000 M = 15000 (150 s 150s 150 s のデータ)
- 基底関数 (radial basis function)の数: q = 50 q=50 q = 50
PV Koopman作用素
p i = 20 , 25 , 30 ( l = 3 ) p^i=20,~25,~30~~(l=3) p i = 20 , 25 , 30 ( l = 3 )
データの時刻数: 各パラメータp i p^i p i ごとにM = 5000 M=5000 M = 5000 とし全部で15000 15000 15000 時刻 (各パラメータp i p^i p i ごとに50 s 50s 50 s のデータ)
基底関数 (radial basis function)の数: q = 50 q=50 q = 50
Fig2は,Koopman作用素(KO)とPV Koopman作用素(PVKO)の推定から得られた,時不変な線形系とLPVsのモデルついて2秒間の予測結果を示し,元のNPVsの結果(True)と比較しています.
Fig. 2 予測した状態の比較 (出典:[Lee et al. (2023)]
PV Koopman作用素の方がより元の系の結果に合っているように見えます.定量的には,基底関数 (radial basis function)の次数N r b f N_{rbf} N r b f を変化させ,それぞれのN r b f N_{rbf} N r b f ついて2秒間の予測シミュレーションを500回行った時の,
R M S E = 100 ∑ k ∥ x ^ k − x k ∥ 2 2 ∑ k ∥ x k ∥ 2 2
RMSE=100\frac{\sqrt{\sum_k\|\hat{\bm x}_k-{\bm x}_k\|_2^2}}{\sqrt{\sum_k\|{\bm x}_k\|_2^2}}
RMSE = 100 ∑ k ∥ x k ∥ 2 2 ∑ k ∥ x ^ k − x k ∥ 2 2
を比較します.R M S E RMSE RMSE は二乗平均平方根誤差であり,x ^ k \hat{\bm x}_k x ^ k は予測した状態,x k {\bm x}_k x k は式( 12 a ) (12a) ( 12 a ) から式( 12 c ) (12c) ( 12 c ) によって得られる状態です.Fig.3に示すように,より多くの条件においてPV Koopman作用素の方がKoopman作用素に比べて二乗平均平方根誤差が小さい傾向にあります.以上より,PV Koopman作用素がNPVsな系に対して有効なLPVsモデルを与えることが分かりました.
Fig. 3 二乗平均平方根誤差の平均± σ \pm\sigma ± σ の比較 (出典:[Lee et al. (2023)]
最後に
次回は,得られたLPVsのモデルに対してLPV-MPCを適用する話をしたいと思います.
参考文献
Lee, Changyu, Kiyong Park and Jinwhan Kim. “Parameter-Varying Koopman Operator for Nonlinear System Modeling and Control.” 2023 62nd IEEE Conference on Decision and Control (CDC) (2023): 3700-3705.
Korda, Milan and Igor Mezić. “Linear predictors for nonlinear dynamical systems: Koopman operator meets model predictive control.” Autom. 93 (2016): 149-160.
Discussion