みなさん,こんにちは
おかしょです.
この記事では,現代制御工学において重要な可制御性について解説していきます.
例として,二輪型倒立振子の可制御性を調べていくので
可制御性の求め方を知りたい方は参考になるかと思うので,最後まで読んでいただけると幸いです.
この記事を読むと以下のようなことがわかる・できるようになります.
- 可制御性とは
- 可制御性の求め方
この記事を読む前に
この記事では可制御性を求める例として線形化した二輪型倒立振子の運動方程式を使用します.
以下の記事で線形化した二輪型倒立振子の運動方程式を解説しています.そちらを先に読んでからこちらの記事を読むことをおすすめします.
可制御性とは
まずは,可制御性とはどういう性質なのかを解説します.
可制御性とは,そのロボットを制御できるのかどうかを表します.
制御ができれば,そのロボットは可制御であると言います.
反対に可制御でなければそのロボットは可制御ではない,不可制御であると言います.
しかし,不可制御でもロボットの状態が安定する場合があります.
このようなロボットを可安定と言います.
これについては後程くわしく説明します.
ここまでの解説で可制御性とはどういうものなのかがわかった方は少ないと思うので,具体例を出します.
例えば,あなたが自動車に乗っているとします.
この車にハンドルはついていません.そのため,前後にしか進めないとします.
アクセルやブレーキはついているので,前後の方向についてはコントロールができます.
つまり,可制御です.
しかし,右折をしたり左折をしたりすることができないので,左右の方向についてはコントロールできません.
このような場合は不可制御です.
これらを数式で表すと以下のようになります.
前後方向のみの移動を考えた場合
$$ \dot{x} = u $$
ここで,車の前後の位置を\(x\),車の駆動力を\(u\)としています.
この式は,実際の自動車の運動方程式とは異なるので注意してください.
横方向にも移動することを考えた場合
\begin{eqnarray}
\dot{x} &=& u\\
\dot{y} &=& 0
\end{eqnarray}
ここで,車の横方向の位置を\(y\)としています.
前後方向のみを考えている場合は,一つの状態変数\(x\)を入力\(u\)で直接変更することが可能なので制御できることがわかります.
横方向にも移動することを考えた場合は,横方向の位置\(y\)を入力で変更することができません.
そのため,入力\(u\)をどのような値にしても\(y\)を変えることができないので,このシステムは不可制御であると言えます.
しかし,横方向の位置\(y\)に関する式が以下のようになっていた場合はどうでしょうか.
$$ \dot{y} = -1 $$
このような場合は,\(y\)は時間の経過とともに0に収束していくことがわかります.
そのため,このシステムは不可制御ではありますが0に収束するので可安定と言います.
可制御性の調べ方
可制御性とはどういうものなのかを解説したので,次に可制御性の調べ方について解説します.
可制御性の調べ方は,可制御性行列というものを求めて,そのランクが状態量の数と一致すれば可制御であると言えます.
「可制御行列ってなんだ?」と思われた方,ご安心ください.順に説明していきます.
まず,線形の状態方程式は以下のように表すことができます.
$$ \dot{x} = Ax+Bu $$
ここで,\(x\)は状態量,\(A\)はシステム行列,\(B\)は入力行列,\(u\)は入力を表しています.
状態量がいくつあるのか,システム行列が何行何列なのかなどは以下のように表されます.
$$ x \in R^{n},\ A \in R^{n\times n},\ B \in R^{n\times m},\ u \in R^{m} $$
このシステム行列\(A\)と入力行列\(B\)を使って可制御性行列を求めることができます.
可制御性行列は以下のようにして求めることができます.
\begin{eqnarray}
M_c =
\begin{bmatrix}
B& AB& A^{2}B& …& A^{n-1}B
\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}
これを用いて可制御性行列\(M_c\)を求めます.
\begin{eqnarray}
M_c &=&
\begin{bmatrix}
B& AB& A^{2}B& A^{3}B
\end{bmatrix}\\
&=&
\begin{bmatrix}
\begin{bmatrix}
0\\
5618\\
0\\
-756\\
\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\\
5618\\
0\\
-756\\
\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\\
5618\\
0\\
-756\\
\end{bmatrix}
&
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix}^{3}
\begin{bmatrix}
0\\
5618\\
0\\
-756\\
\end{bmatrix}
\end{bmatrix}
\end{eqnarray}
これを計算します.
各列ごとに求めていくと以下のようになります.
まずは第1列目
\begin{eqnarray}
B=
\begin{bmatrix}
0\\
5618\\
0\\
-756\\
\end{bmatrix}
\end{eqnarray}
二列目は
\begin{eqnarray}
AB &=&
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix}
\begin{bmatrix}
0\\
5618\\
0\\
-756\\
\end{bmatrix}\\
&=&
\begin{bmatrix}
5617\\
-3184756\\
-756\\
432585
\end{bmatrix}\\
\end{eqnarray}
3列目は
\begin{eqnarray}
A^{2}B &=&
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix}^{2}
\begin{bmatrix}
0\\
5618\\
0\\
-756\\
\end{bmatrix}\\
&=&
\begin{bmatrix}
-3184756\\
1805731604\\
432585\\
-245319526\\
\end{bmatrix}\\
\end{eqnarray}
最後の4列目は
\begin{eqnarray}
A^{2}B &=&
\begin{bmatrix}
0& 1& 0& 0\\
0& -562& -248& 38\\
0& 0& 0& 1\\
0& 76& 68& -10\\
\end{bmatrix}^{3}
\begin{bmatrix}
0\\
5618\\
0\\
-756\\
\end{bmatrix}\\
&=&
\begin{bmatrix}
1805731604\\
-1023838310566\\
-245319526\\
139094990641\\
\end{bmatrix}\\
\end{eqnarray}
となります.
以上のことから,可制御性行列\(M_{c}\)を求めると以下のようになります.
\begin{eqnarray}
M_c &=&
\begin{bmatrix}
B& AB& A^{2}B& A^{3}B
\end{bmatrix}\\
&=&
\begin{bmatrix}
0& 5617& -3184756& 1805731604\\
5618& -3184756& 1805731604& -1023838310566\\
0& -756& 432585& -245319526\\
-756& 432585& -245319526& 139094990641\\
\end{bmatrix}\\
\end{eqnarray}
この行列のランクを求めると4となるので,状態変数の数と一致します.
従って,この二輪型倒立振子は可制御であると言えます.
まとめ
この記事では可制御性とはどのような性質なのか,求めるにはどうすれば良いのかを解説してきました.
また,可制御性の調べ方は以前求めた二輪型倒立振子の状態方程式を利用して解説しました.
最後に,可制御性とはどのような性質なのかをまとめておきます.
可制御性というのは,そのシステムの状態変数をすべて入力によって制御できるのかを表します.
そのシステムが可制御性を有しているのかは,システム行列\(A\)と入力行列\(B\)を用いて可制御性行列\(M_c\)を求めることで判断ができます.
可制御性を調べて,システムが可制御であることが確認できれば問題ないのですが
不可制御であった場合は,入力の向きを変更したり,入力を追加することで可制御にすることができるので
不可制御であった場合は試してみてください.
可制御性であることが確認できれば,様々な制御器を適用して制御することができます.
続けて読む
この記事で解説した可制御性と同じくらい重要な性質で可観測性というものがあります.
この可観測性がなければ,状態量をセンサーの値から求めることができないので困ってしまいます.
以下の記事ではその可観測性について解説しているので参考にしてください.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント