みなさん,こんにちは
おかしょです.
この記事では,センサーから得られたデータを基にして他の状態量を推定できるかどうかを判断する可観測性について解説していきたいと思います.
この記事を読むと以下のようなことがわかる・できるようになります.
- 可観測生徒は
- 可観測性の求め方
この記事を読む前に
この記事では状態方程式を使用して可観測性を調べます.状態方程式が何なのか知らない方は以下の記事で伝達関数から状態方程式に変換する方法を解説しているので,この記事を読む前に読んでおくことをおすすめします.
可観測性とは
ロボットを自律させたい場合は,必ずセンサーを搭載しなければなりません.
たとえば,二輪型倒立振子を倒立した状態で維持したい場合は,そのロボットの姿勢を測定できるセンサーを搭載しておく必要があります.
姿勢を測定できるセンサーは加速度センサーやジャイロセンサーです.
それに関する記事はこちらから読むことができます.
さらに,ロボットの位置を制御したい場合は位置を取得できるセンサーも搭載しなければなりません.
このようにして,制御したい状態量ごとにセンサーを搭載していくと大量のセンサーが必要になってしまいます.
大量のセンサーを搭載すると,機体の重量も増してしまうため好ましくありません.
特にマルチコプターのように空を飛ぶロボットの場合は重量に制限があるので,センサーは必要最低限に抑えておきたいです.
そのようなときに使用される手法として,オブザーバーというものがあります.
これはある状態量のデータを基にして,他の状態量のデータを推定するという手法です.
例えばロボットの位置が取得できた場合,オブザーバを使用することで速度の推定ができると言った具合です.
それならば,センサーは1つだけ搭載して他の状態量はオブザーバーで取得すればいいと考えるかもしれませんが,どんな状態量でもオブザーバーで取得できるというわけではありません.
このときの条件が可観測性です.
対象のシステムが可観測であると言うことができれば状態量を推定することができますが,可観測でなかった場合は状態量を推定することができません.
なので,不可観測であった場合は可観測になるようにセンサーを追加するなどの対策が必要になります.
可観測性の調べ方
ここからは,可観測性の調べ方について解説していきます.
可観測性を調べる前に,対象とするシステムの状態方程式と出力方程式について確認しておきます.
$$ \dot{x} = Ax+Bu $$
これが状態方程式で,\(x\)は状態量,\(u\)は入力,\(A\)をシステム行列,\(B\)を入力行列と言います.
$$ y = Cx $$
これは出力方程式と言い,\(y\)は出力,\(C\)は出力行列と言います.
状態量がいくつあるのか,システム行列が何行何列なのかなどは以下のように表されます.
$$ x \in R^{n},\ y \in R^{l},\ u \in R^{m},\ A \in R^{n\times n},\ B \in R^{n\times m},\ C \in R^{l\times n} $$
可観測性はシステム行列\(A\)と出力行列\(C\)を使って求めます.
可観測性を調べるために,まず可観測性行列\(M_{o}\)を求めます.
\begin{eqnarray}
M_o =
\begin{bmatrix}
C\\
CA\\
\vdots\\
CA^{n-1}
\end{bmatrix}
\end{eqnarray}
この可観測性行列を調べたら,可制御性行列の時と同様に,rankを調べます.
求められたrankが状態量の数の\(n\)と一致すれば可観測で,一致しなければ不可観測となります.
二輪型倒立振子の可観測性を調べる
それでは可観測性を実際に調べてみます.
ここでは,例として二輪型倒立振子の可観測性を調べてみます.
二輪型倒立振子の状態方程式はこちらで解説しています.
以上の記事から,二輪型倒立振子のシステム行列\(A\)と入力行列\(B\)は以下のようになります.
\begin{eqnarray}
A =
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix}
,\ B=
\begin{bmatrix}
0\\
5618\\
0\\
-756\\
\end{bmatrix}
\end{eqnarray}
ここで,二輪型倒立振子に搭載するセンサーで振子の姿勢角\(\theta\)のみを取得したとします.
その場合,出力行列\(C\)は以下のようになります.
\begin{eqnarray}
C =
\begin{bmatrix}
0& 0& 1& 0\\
\end{bmatrix}
\end{eqnarray}
このとき,可観測性行列\(M_{o}\)は以下のようになります.
\begin{eqnarray}
M_o &=&
\begin{bmatrix}
C\\
CA\\
\vdots\\
CA^{n-1}
\end{bmatrix} \\
&=&
\begin{bmatrix}
\begin{bmatrix}
0& 0& 1& 0
\end{bmatrix} \\
\begin{bmatrix}
0& 0& 1& 0\\
\end{bmatrix} &
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix} \\
\begin{bmatrix}
0& 0& 1& 0\\
\end{bmatrix} &
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix} ^{2}\\
\begin{bmatrix}
0& 0& 1& 0\\
\end{bmatrix} &
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix} ^{3}\\
\end{bmatrix}
\end{eqnarray}
これを計算します.
一気に計算しようとするとややこしいので,各行ごとに計算していきます.
まずは第1行目
\begin{eqnarray}
C =
\begin{bmatrix}
0& 0& 1& 0\\
\end{bmatrix}
\end{eqnarray}
2行目
\begin{eqnarray}
CA =
\begin{bmatrix}
0& 0& 0& 1\\
\end{bmatrix}
\end{eqnarray}
3行目
\begin{eqnarray}
CA^{2} =
\begin{bmatrix}
0& 77& 68& -10\\
\end{bmatrix}
\end{eqnarray}
4行目
\begin{eqnarray}
CA^{3} =
\begin{bmatrix}
0& 43259& -19462& 3034\\
\end{bmatrix}
\end{eqnarray}
最終的に可観測性行列\(M_{o}\)は以下のようになります.
\begin{eqnarray}
M_o &=&
\begin{bmatrix}
C\\
CA\\
CA^{2}\\
CA^{3}
\end{bmatrix} \\
&=&
\begin{bmatrix}
0& 0& 1& 0 \\
0& 0& 0& 1\\
0& 77& 68& -10\\
0& 43259& -19462& 3034\\
\end{bmatrix} \\
\end{eqnarray}
そして,このrankを調べると3であることがわかります.
状態量は4つだったので,これでは不可観測であることになってしまいます.
今回使用した状態方程式は状態量が車輪の角度と角速度,振子の角度と角速度でした.
それに対して,センサーで取得できる状態量は振子の角度のみです.
振子の角度のみではタイヤの角度までは推定ができないため,ランク落ちが生じて不可観測となってしまいました.
車輪の角度まで制御したい場合は,車輪の角度も取得できるセンサーを搭載する必要があります.
車輪の角度も取得できるようにした場合は出力行列\(C\)は以下のようになります.
\begin{eqnarray}
C =
\begin{bmatrix}
1& 0& 0& 0\\
0& 0& 1& 0\\
\end{bmatrix}
\end{eqnarray}
このときの可観測性行列を求めて,ランクを調べると4となります.
状態量の数と可観測性行列のランクが一致するので,振子の角度に加えて車輪の角度も取得できるようにすれば可観測であるということができます.
まとめ
この記事では可観測性とは何か・可観測性の調べ方について,二輪型倒立振子を例として解説しました.
二輪型倒立振子の場合は車輪の角度と振子の角度が取得できるとき,可観測であることがわかりました.
以前の記事で可制御性を調べたときに,二輪型倒立振子は可制御であることがわかりましたが,振り子の角度のみしかセンサーによって取得できない場合は,車輪の角度を取得することができないので車輪の角度までは制御できないことになります.したがって,不可観測の場合は車輪の角度までは制御することができないので二輪型倒立振子の位置を正誤することはできません.
続けて読む
この記事では可観測性について解説しましたが,可観測性と同じような性質で可制御性というものがあります.可制御性とは読んで字のごとく,制御ができるかどうかを判断する性質です.
可制御性については以下の記事で解説しているので,続けて参考にしてください.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント