はじめに
非線形システムを制御する場合、まずは
- システムを平衡点周りで線形近似する
- 座標変換とフィードバックで非線形項を打ち消す
のどちらかをとり、それから線形制御理論に基づいて制御器設計をするといった方法がとられると思います。
本記事では後者の方法について,多入力の場合にどのようにすればよいかをまとめました。
執筆にあたり参考文献[1]の「5.2節 Exact Linearization via Feedback」を熟読しましたが、紙面と著者の理解力の都合上,
- 厳密線形化可否を判断する定理と事例紹介
- 厳密線形化の実現方法
を述べるに留めます。
本記事では、「厳密線形化の実現方法」を扱います。
扱う非線形システム
本記事では以下に示す5次2入力の非線形入力アファインシステムを扱います。
\dot{x} = f(x) + g_1(x)u_1 + g_2(x)u_2
\tag{1-1}
f(x) =
\begin{bmatrix}
x_2 + x_2^2 \\
x_3 - x_1x_4 + x_4x_5 \\
x_2x_4 + x_1x_5 - x_5^2 \\
x_5 \\
x_2^2
\end{bmatrix}
\tag{1-2}
g_1(x) =
\begin{bmatrix}
0 \\ 0 \\ \cos(x_1 - x_5) \\ 0 \\ 0
\end{bmatrix}
\tag{1-3}
g_2(x) =
\begin{bmatrix}
1 \\ 0 \\ 1 \\ 0 \\ 1
\end{bmatrix}
\tag{1-4}
なお、このシステムは参考文献[1]の5.2節にて例として挙げられているシステムです。
厳密な線形化の実現
適切な座標変換の導出
前回の記事より、式(1-1)~式(1-4)が定理を満たすこと、つまり厳密線形化が可能であることを確認できたので、本記事より厳密線形化のための座標変換を求めます。
式(1-1)~式(1-4)のような5次2入力系の場合、
\begin{align}
\begin{bmatrix}
\dot{z_1} \\
\dot{z_2} \\
\dot{z_3} \\
\dot{z_4} \\
\dot{z_5}
\end{bmatrix}
=
\begin{bmatrix}
z_2 \\
z_3 \\
\alpha_1(x) \\
z_5 \\
\alpha_2(x)
\end{bmatrix}
+
\begin{bmatrix}
0 \\
0 \\
\beta_{11}(x) \\
0 \\
0
\end{bmatrix}
u_1
+
\begin{bmatrix}
0 \\
0 \\
\beta_{21}(x) \\
0 \\
\beta_{22}(x)
\end{bmatrix}
u_2
\end{align}
という形にする座標変換を求めることが目標です。
このような座標変換を求める戦略として、入力の数だけスカラ関数$\lambda_1(x)$と$\lambda_2(x)$を用意し、微分や幾何学的関係からこれら関数の満たすべき性質を求め、関数を作ります。
λ1(x)が満たすべき性質
まずは$\lambda_1(x)$を微分します。
\begin{align}
\dot{\lambda_1}(x)
&=
\frac{\partial \lambda_1(x)}{\partial x}f(x)
+\frac{\partial \lambda_1(x)}{\partial x}g_1(x)u_1(x)
+\frac{\partial \lambda_1(x)}{\partial x}g_2(x)u_2(x)
\\
&=
L_f\lambda_1(x)+L_{g_1}\lambda_1(x)u_1+L_{g_2}\lambda_1(x)u_2
\end{align}
これが
\begin{align}
\dot{\lambda_1}(x)=L_f\lambda_1(x)
\end{align}
となるためには、
\begin{align}
L_{g_1}\lambda_1(x)&=0 \\
L_{g_2}\lambda_1(x)&=0
\end{align}
つまり
\begin{align}
\frac{\partial \lambda_1(x)}{\partial x}\in span\{g_1 ,g_2\}^{\perp}
\end{align}
が、$\lambda_1(x)$が満たすべき性質の一つです。
さらに、$\dot{\lambda_1}(x)=L_f\lambda_1(x)$を微分します。
\begin{align}
\ddot{\lambda_1}(x)
&=
\dot{L_f\lambda_1(x)}
\\
&=
\frac{\partial L_f\lambda_1(x)}{\partial x}f(x)
+\frac{\partial L_f\lambda_1(x)}{\partial x}g_1(x)u_1(x)
+\frac{\partial L_f\lambda_1(x)}{\partial x}g_2(x)u_2(x)
\\
&=
L^2_f\lambda_1(x)+L_{g_1}L_f\lambda_1(x)u_1+L_{g_2}L_f\lambda_1(x)u_2
\end{align}
これが
\begin{align}
\ddot{\lambda_1}(x)
&=
\frac{\partial L_f\lambda_1(x)}{\partial x}f(x)
\\
&=L^2_f\lambda_1(x)
\end{align}
となるためには、
\begin{align}
L_{g_1}L_f\lambda_1(x)&=0 \\
L_{g_2}L_f\lambda_1(x)&=0
\end{align}
を満たす必要があります。これらをLie bracketの性質を利用して変形すると、
\begin{align}
L_{adf_{g}g_1}\lambda_1(x)&=0 \\
L_{adf_{g}g_2}\lambda_1(x)&=0
\end{align}
となります。つまり、
\begin{align}
\frac{\partial \lambda_1(x)}{\partial x}\in span\{adf_{g}g_1 ,adf_{g}g_2\}^{\perp}
\end{align}
となることが、$\lambda_1(x)$の満たすべき性質の1つです。
以上をまとめると、
\begin{align}
\frac{\partial \lambda_1(x)}{\partial x}\in span\{g_1, g_2, adf_{g}g_1 ,adf_{g}g_2\}^{\perp}
\tag{A}
\end{align}
が、$\lambda_1(x)$に要求される性質です。
この時点で、右辺の
\begin{align}
span\{g_1, g_2, adf_{g}g_1 ,adf_{g}g_2\}
\end{align}
は$G_2$と同一、つまり次元は4であるので、$\frac{\partial \lambda_1(x)}{\partial x}$は1次元となります。そしてこれ以上微分するとさらに要求される性質が増え、$\lambda_1(x)$を定義できなくなります。
よってこれ以上の微分はせず、式(A)を満たすスカラ関数$\lambda_1(x)$を決め、このスカラ関数でできる範囲内で座標変換を求めます。
参考文献では、
\begin{align}
\lambda_1(x)=x_1-x_5
\end{align}
と決定しています。
この段階での新たな座標$z$の一部は
\begin{align}
\begin{bmatrix}
z_1 \\
z_2 \\\
z_3
\end{bmatrix}
=
\begin{bmatrix}
\lambda_1(x) \\
L_f\lambda_1(x) \\
L^2_f\lambda_1(x)
\end{bmatrix}
=
\begin{bmatrix}
x_1-x_5 \\
x_2 \\
x_3-x_1x_4+x_4x_5
\end{bmatrix}
\end{align}
となり、状態方程式は
\begin{align}
\begin{bmatrix}
\dot{z_1} \\
\dot{z_2} \\
\dot{z_3}
\end{bmatrix}
=
\begin{bmatrix}
z_2 \\
z_3 \\
0
\end{bmatrix}
+
\begin{bmatrix}
0 \\
0 \\
\cos{z_1}
\end{bmatrix}
u_1
+
\begin{bmatrix}
0 \\
0 \\
1
\end{bmatrix}
u_2
\end{align}
となります。
λ2(x)が満たすべき性質
残りの状態方程式、
\begin{align}
\begin{bmatrix}
\dot{z_4} \\
\dot{z_5}
\end{bmatrix}
=
\begin{bmatrix}
z_5 \\
\alpha_2(x)
\end{bmatrix}
+
\begin{bmatrix}
0 \\
0
\end{bmatrix}
u_1
+
\begin{bmatrix}
0 \\
\beta_{22}(x)
\end{bmatrix}
u_2
\end{align}
へ変換する$\lambda_2(x)$を求めます。
$\lambda_1(x)$と同様に$\lambda_2(x)$を微分すると、
\begin{align}
\dot{\lambda_2}(x)
&=
\frac{\partial \lambda_2(x)}{\partial x}f(z)
+
\frac{\partial \lambda_2(x)}{\partial x}g_1(z)u_1
+
\frac{\partial \lambda_2(x)}{\partial x}g_2(z)u_2
\\
&=
L_f\lambda_2(x)+L_{g_1}\lambda_2(x)u_1+L_{g_2}\lambda_2(x)u_2
\tag{B}
\end{align}
となり、式(B)より、
\begin{align}
L_{g_1}\lambda_2(x)&=0 \\
L_{g_2}\lambda_2(x)&=0
\end{align}
が$\lambda_2(x)$に要求されます。
それに加え、
- $\lambda_2(x)$を座標変換として扱うには、$\lambda_2(x)$の全微分と$z_1=\lambda_1(x)$、$z_2=L_f\lambda_1(x)$の全微分が線形独立でなければならないこと
- $\frac{\partial \lambda(x)}{\partial x}$と$\frac{\partial L_f\lambda_1(x)}{\partial x}$はともに$g_1$、$g_2$と直交すること
から、$\lambda_2(x)$に要求される性質は、
\begin{align}
span\{g_1,g_2\}^{\perp}
=
span\{
\frac{\partial \lambda_1(x)}{\partial x},
\frac{\partial L_f\lambda_1(x)}{\partial x},
\frac{\partial \lambda_2(x)}{\partial x}
\}
\end{align}
とまとめることができます。
参考文献では、
\begin{align}
\lambda_2(x)=x_4
\end{align}
と決定しています。
これによる新たな状態変数は、
\begin{align}
\begin{bmatrix}
z_4 \\
z_5
\end{bmatrix}
=
\begin{bmatrix}
\lambda_2(x) \\
L_f\lambda_2(x)
\end{bmatrix}
=
\begin{bmatrix}
x_4 \\
x_5
\end{bmatrix}
\end{align}
となり、状態方程式は、
\begin{align}
\begin{bmatrix}
\dot{z_4} \\
\dot{z_5}
\end{bmatrix}
=
\begin{bmatrix}
z_5 \\
z_2^2
\end{bmatrix}
+
\begin{bmatrix}
0 \\
0
\end{bmatrix}
u_1
+
\begin{bmatrix}
0 \\
1
\end{bmatrix}
u_2
\end{align}
となります。
よって最終的な座標変換は、
\begin{align}
\begin{bmatrix}
z_1 \\ z_2 \\ z_3 \\ z_4 \\ z_5
\end{bmatrix}
=
\begin{bmatrix}
\lambda_1(x) \\
L_f\lambda_1(x) \\
L^2_f\lambda_1(x) \\
\lambda_2(x) \\
L_f\lambda_2(x)
\end{bmatrix}
=
\begin{bmatrix}
x_1-x_5 \\
x_2 \\
x_3-x_1x_4+x_4x_5 \\
x_4 \\
x_5
\end{bmatrix}
\end{align}
となり、変換後の状態方程式は
\begin{align}
\begin{bmatrix}
\dot{z_1} \\
\dot{z_2} \\
\dot{z_3} \\
\dot{z_4} \\
\dot{z_5}
\end{bmatrix}
=
\begin{bmatrix}
z_2 \\ z_3 \\ 0 \\z_5 \\ z^2_2
\end{bmatrix}
+
\begin{bmatrix}
0 \\ 0 \\ \cos{z_1} \\ 0 \\ 0
\end{bmatrix}
u_1
+
\begin{bmatrix}
0 \\ 0 \\ 1 \\ 0 \\ 1
\end{bmatrix}
u_2
\tag{C}
\end{align}
となります。
非線形フィードバックによる厳密な線形化
状態方式を変換出来たら、状態方程式内にある非線形項を打ち消せば厳密な線形化ができます。
式(C)の場合、以下の非線形フィードバックを
\begin{align}
u_1&=\frac{1}{\cos{z_1}}(z_2^2+v_1) \\
u_2&=-z_2^2+v_2
\end{align}
とすれば、以下のような線形な状態方程式が得られます。
\begin{align}
\begin{bmatrix}
\dot{z_1} \\
\dot{z_2} \\
\dot{z_3} \\
\dot{z_4} \\
\dot{z_5}
\end{bmatrix}
=
\begin{bmatrix}
z_2 \\ z_3 \\ 0 \\z_5 \\ 0
\end{bmatrix}
+
\begin{bmatrix}
0 \\ 0 \\ 1 \\ 0 \\ 0
\end{bmatrix}
u_1
+
\begin{bmatrix}
0 \\ 0 \\ 1 \\ 0 \\ 1
\end{bmatrix}
u_2
\end{align}
参考文献
[1] Alberto Isidori, Nonlinear Control Systems, Third Edition (1989)