状態フィードバック…Homework
[1] ある平衡状態周りの挙動が線形状態方程式
で表される制御対象に対して、状態フィードバック
を考えます。ここで、を入力変数の個数、を状態変数の個数とするとき、はサイズのゲイン行列です。(2)を(1)に代入して、次式を得ます。
以上の状況は次図のように図示されます。
図1 状態フィードバックによる閉ループ系
これは、制御対象とコントローラ(状態フィードバック)が閉路を構成することから、閉ループ系と呼ばれます。ここで、興味深いのは、制御対象が不安定であっても(行列の固有値の一部が複素左半平面にあっても)、状態フィードバックを行って閉ループ系を構成すると、行列の固有値をすべて複素左半平面に移動させる可能性があることです。どのような条件の下で、どのようにゲイン行列を決定できるかを検討する問題を状態フィードバックによる安定化問題と言います。
●状態フィードバックゲイン行列を求めることは、適当な安定行列を与えて、行列方程式
を解くことに他なりません。よく学生さんは次のように解きます。
でも一般にはは正方行列ではないので、そもそも逆行列を考えることができません。を安定行列とする状態フィードバックが求まる条件の説明は次節で行いますが、ここではその準備として、状態フィードバックゲイン行列を求める公式を示します。
[2] いま行列の特性多項式を次式で表します。
ケーリーハミルトンの定理から次式が成り立ちます。
これはのとき、次のように書けます。
したがって、1入力系でが正則ならば、次の公式を得ます。
同様に、のとき、次のように書けます。
したがって、1入力系でが正則ならば、次の公式を得ます。
の場合も同様にして、の特性多項式(7)を
のように書き換えることができます。ここで、はサイズの適当な行列です。したがって、1入力系でが正則ならば、(12)の右辺の第2番目の行列の最下段にあるを取りだすことにより、次の公式が得られます。
このように、1入力次系の場合は、の個の要素が、の特性多項式の個の係数(すなわち個の固有値)を指定することにより決定されます。ところが入力系の場合、の固有値だけでは決まらず、対応する固有ベクトルまで指定する必要があります。このことを以下で調べてみます。
[3] いま、ジョルダン分解を仮定して
ここで、が対角行列の場合、の固有値に対応する固有ベクトルをとして
これより、もしがの固有値と一致しないならば、固有ベクトルの表現式として次式を得ます。
したがって、状態フィードバックゲイン行列を求める次の手順が考えられます。
1) の固有値をの固有値とは異なるように指定する。
2) の固有ベクトルを決める自由度を、(15)のが正則になるように与える。 3) 次式で を求める。
|
この手順は簡潔ですが、1)の制約があること、2)の具体的な手法が不明であることなどの難点があります。状態フィードバックを定める手続きは、ある最適化問題の解として得ることが多く、これについてはあと説明します。
演習 A31…Flipped Classroom
次のコードを実行し、の固有値を計算し、指定されているものになっていることを確かめよ。
MATLAB |
|
次のコードを実行し、の固有値と固有ベクトルを計算し、指定されているものになっていることを確かめよ。
MATLAB |
|
Note A31 不可制御の例
どのような制御対象に対しても,閉ループ系を安定化する状態フィードバックが求まるわけではありません。たとえば、皆さんは小さいころ棒立て遊びをやった記憶があると思います。不安定なモノを安定化できた楽しい思い出だったと思います。それでは、2本の棒を同時に立てることはできたと思いますか?この状況を次図のように表します。
図 2本の棒立て制御
ここで、2本の棒の長さと質量をそれぞれととします。また鉛直線からの傾きをとします。2本の棒は1つの軸に取り付けられており、自由に回転できるとします。この軸を左右に動かして回転トルクを与えるのですが、その結果として働くトルクをここではで表します。このとき運動方程式は次式となります。ただし、。
これから次の状態方程式を得ます。
ただし、、。
それでは、これを安定化する状態フィードバックゲインを求めてみます。上述の公式
を参照すれば、次の行列が正則である必要があります。
これは2つの棒の長さ違うときは正則となり、閉ループ系を安定化する状態フィードバックが求まります。ところが2つの棒が同じで、となる場合は、第1行と第2行が同じとなり、第3行と第4行も同じとなり、正則性は失われます。これから全く同じ2本の棒の棒立ては成功しないと考えられます。これは「二兎を追うものは一兎も得ず」のことわざ通りですね。