これまで,安定性の定義,安定化の可能性とその方策を学んできた。その結果,私たちは,閉ループ系の零入力応答を適切に安定化する,すなわち,ある初期状態から出発して速やかに零状態(平衡状態)にもっていくことはできる。この零入力応答は,適当な強さのインパルス入力に対する零状態応答に等しいことを思い出してほしい。
例えば,一定速度で回転しているモータを考え,これに瞬間的な負荷がかかって,その速度が乱されたとする。このときは,状態フィードバックによってもとの速度に復帰させることができる。しかし,モータで何か対象物を回転させるときは,モータ軸への持続的な負荷が生じ,極端な場合はモータは回転することさえできないであろう。同様に,飛行機,船舶,車などのビークルに強い向い風が吹けば定速を維持することは困難となるであろう。 また,モータやビークルでは,速度の設定値を変えることが制御の大切な役割なのに,そのための手段はまったく学んでいない。 したがって,これまでの知識だけでは多くの現実問題を解くことはできない。実際の問題では,必ずといっていいほど,さまざまな「定値外乱」の影響を受ける状況のもとで,「設定値」の保持や,ときには変更を要求されるからである。このような問題を解決するためには,これまでの制御方式に加えて,まず「積分動作」の導入による構造的な改良が必要となる。本章では,定値外乱の影響の除去や,設定値の変更に対応できるように,積分動作を入れて安定化を行う方策について学ぶ。その安定化にLQ制御を適用するとき,その制御方式を簡潔に表すために「LQI制御」と呼ぶ。 |
6.1 1次系における定値外乱の影響を抑制する
6.1.1 定値外乱の影響
1章で述べた直流モータの状態方程式(1.11)すなわち
を思い出そう。これは,二つの入力変数 以下では,この状況を一般化した次式で表される1次系を考える。 ここで,
いま,1次系(2)に対して,状態フィードバック を行うと,閉ループ系 を得る。ここで, となる。第2項は と計算できるので, すなわち,定値外乱が加わると とはならない。このことをシミュレーション例で確認しよう。 シミュレーション 6.1
このような定値外乱の影響を取り除くために,式(3)の代わりに のような方策を用いる。このときの閉ループ系 の時間応答は となる。これより,外乱を打ち消すように と選べば,式(8)を達成できる。しかしながら, |
図6.2の下に次の問を設定していましたが,紙幅の関係で省略しました。
図6.2で,であることを確かめなさい。
6.1.2 積分動作を加える
この方法の基礎となるアイデアは
を達成できれば そこで,式(13)を満足する を達成することができないか検討しよう。 まず,式(2)と,式(13)の を合わせて を構成する。式(16)に を代入すると,閉ループ系は となる。そのブロック線図を図6.3に示す。
さて, となる。ここで, と計算できるから と表される。したがって を得る。ここで となり,外乱の影響が抑制されていることと,式(14)が成り立つことが確認できる。また,式(17)からつぎが成り立つ。 シミュレーション6.2
|
図6.4の下に次の問を設定していましたが,紙幅の関係で省略しました。
図6.4で,,
であることを確かめなさい。
また,(19),(20),(21)においであることに注意してください。
6.1.3 設定値を変更する
前節では,定値外乱の加わる1次系
に対して,制御目的 を達成する方法を学んだ。ここでは,任意の定数 を達成する問題を考える。この
この問題の解決のためには,外乱を抑制するための図6.4を,図6.5に示すように変更すればよい。実際,式(27)を のような積分動作を導入すればよいことに気づくであろう。 式(25)と式(26)を合わせて を構成する。いま,式(29)に を代入すると となる。 を得る。この第1行は, を得る。ここで,設定値 また,つぎが成り立つ。 それでは,フィードフォワード項による速応性改善の効果をシミュレーションによって確かめよう。 シミュレーション6.3
問6.1 |
6.2 積分型コントローラ
6.2.1 積分動作を加えた状態フィードバック
次式で表される可制御かつ可観測で,![]() ![]() ![]() ここで,状態方程式には,操作入力 のように選び( を達成したい。ここで,定数ベクトル の関係を満足しているはずである。したがって,どのような が成り立つように選ぶものとする。
さて,制御目的(39)を達成するために,図6.8に示すような,つぎの積分動作を加えた状態フィードバックを考える。 ここで,第2項は積分動作を表している。このように を得る。式(36)と式(43)を合わせて を得る。式(44)に,式(42)すなわち を代入すると,閉ループ系は,つぎのように表される。 いま, よって, を用いて ここで, のように計算される。ところで,式(46)から を得る。この第1ブロック行は,式(40)より となって,式(40)の第2ブロック行から制御目的(39)が成り立つ。また,式(50)の第2ブロック行から を得る。ここで,設定値 のように表され,ここで, |
6.2.2 積分動作を加えたオブザーバベース\,コントローラ
式(42)の代わりに,実際には,状態オブザーバ
の出力を用いて を実施することになる。ここでの積分動作を加えたオブザーバベース\,コントローラは,式(56)を式(55)に代入した と,式(43)を合わせて,つぎのように表される。 これによる閉ループ系は,式(56)を式(36)に代入した と,式(43),(57)を合わせて のように表される。そのブロック線図を図6.9に示す。
いま,閉ループ系(61)に,座標変換 を行えば となり,閉ループ系の固有値は,積分動作を加えた状態フィードバックだけの閉ループ系の固有値と状態オブザーバの固有値からなる。 ここで, すなわち を得る。したがって,定値外乱が存在するときは状態オブザーバに関して定常偏差が残るにもかかわらず,制御目的(39)が成り立つことがわかる。また,フィードフォーワードゲイン |
6.3 LQI設計
これまで,閉ループ系(18),(31),(46),(63)において,![]() 制御目的(39)が達成されたとき成り立つ式(40)より を得る( 偏差系E1: この両辺を微分すれば,状態変数の中の定数ベクトルを除くことができて 偏差系E2: を得る。さらに,式(36)と(38)をまとめた から式(40)を引いて,つぎの関係式が成り立つ。 これに基づいて,偏差系E2に座標変換を行えば 偏差系E3: を得る。ここで,つぎの関係式を用いた。 問6.2 問6.3 例えば,偏差系E1に対して,状態フィードバック を用いて,閉ループ系を安定化すれば, 以下に,偏差系E3をLQ制御により安定化して,積分動作を加えたオブザーバベース\,コントローラを構成する手順を示す。 アルゴリズム6.1 <LQI設計> 入力パラメータ1 出力パラメータ ステップ1 被制御変数の決定
ステップ2 偏差系の安定化 偏差系 を,状態フィードバック によるLQ制御で安定化する。その際,評価関数としては を用いる。ただし, さらに, ステップ3 オブザーバゲイン 例えば,アルゴリズム5.2のステップ2を用いる。 を解いて, ステップ4 LQIコントローラの構成
ただし この積分動作を加えたオブザーバベース\,コントローラを簡潔にLQIコントローラ}(LQI controller),これによる制御方式をLQI制御(LQ control with integral action)と呼ぶ。 問6.4 |
前章までに,状態フィードバックと状態オブザーバを組み合わせた安定化コントローラ(オブザーバベース\,コントローラ)を,どのような条件のもとで構成できるかについて検討し,それが可制御性と可観測性(可安定性と可検出性)であることを述べた。そこでつぎに,状態フィードバックと状態オブザーバの構成を合理的に行うことを考えたい。
まず,状態フィードバックについては,代表的な方法として最小2乗規範に基づく方法がある。これは,状態フィードバックによる閉ループ系における時間応答の2乗面積が最小となるように,状態フィードバックゲインを定めるものである。ここで,状態変数の時間的振る舞いの2乗面積ばかりでなく,どのような入力を用いて閉ループ系を構成したかを評価するために,入力変数の時間的振る舞いの2乗面積についても同時に考えることが肝要である。こうして得られる制御方式を,状態フィードバックによる「LQ制御」と呼ぶ。この状態フィードバックゲインは,「リッカチ方程式」と呼ばれる行列に関する2次方程式を解いて求めることができる。 つぎに,状態オブザーバについてであるが,オブザーバベース\,コントローラによる閉ループ系における時間応答の2乗面積の和を最小化する立場から考える。この値は,理想的な状態フィードバックだけの場合と比べて,状態オブザーバを用いるので増加(劣化)する。そこで,この増分が小さくなるようにオブザーバゲインを定めることが行われる。 本章で述べる制御方式は「最適制御」と呼ばれるものの一つで,歴史的には「LQG理論」として確率システムの制御の立場から研究されてきた。しかし,ここでは確定的な議論にとどめて,主要な結果を説明した。 |
4. センサが足りないが大丈夫か
前章で,状態フィードバックによって安定化可能である条件(可安定性)や閉ループ系の固有値を任意に設定できる条件(可制御性)を学んだ。ただし,すでに指摘しておいたように,状態フィードバックという制御手段は,すべての状態変数にセンサを付けること(![]() \par それでは,状態オブザーバは,制御対象の状態空間表現が与えられるとき,いつでも構成可能なのであろうか。答えはノーである。状態オブザーバが構成可能な条件は「可検出性」として知られている。可検出性は,前章で学んだ可安定性と密接な関係(双対関係)にある。これについて学ぶのが本章の一つの目標である。可安定性を強めた概念として可制御性があったように,可検出性を強めた概念として「可観測性」があり,これについても本章で学ぶ。最後に,2~4章の重要な結論として,制御対象の安定化可能条件が可安定性と可検出性であり,その手段がオブザーバベース\,コントローラであることを述べる。 |
3. いつ安定化できるのか
前章で,状態方程式から安定性を調べる方法を学んだ。すなわち,対象が安定であるとは![]() ![]() さて,状態フィードバックによって安定化可能である条件は「可安定性」と呼ばれるが,これを直接明らかにするのは容易ではない。そこで,状態フィードバックによって |
特異値分解(singular-value decomposition)
——————————————————————————————————————–
定理 をサイズ
の行列(
)とする。このとき,サイズ
の直交行列
とサイズ
の直交行列
が存在して
(1)
が成り立つ。ここで,サイズの行列
は,次を満たす(
は,
がサイズ
の行列であることを示す(
は行数と列数の区切)。)。
(2)
(3)
を満足するものである。
証明 だから,仮定
より,
は
個の正固有値と
個の零固有値をもち,互いに直交する固有ベクトルをもつ。そこで,
の固有値の正の平方根を,大きい順に,
のように表し,対応する固有ベクトル
を
を満足するようにとることができる。いま,
を式3のように,また
(4)
とおくと,は直交行列となり,つぎが成り立つ。
(5)
(6)
式6の第2式の左から,をかけて
(7)
また,とおくと,式6の第1式から
を得る。そこで,
を
が直交行列となるように選ぶと
(8)
が成り立つ。これより,式1を得る。
——————————————————————————————————————–
——————————————————————————————————————–
例題 行列の特異値分解は
(9)
のように与えられることを確かめなさい。
解答 のサイズは
であるが,
のサイズは
であるので,
を計算すると
となる(サイズ
の行列
の特異値を手計算で求めるには,
と
のが同じ非零固有値をもつことから,サイズの小さいほうの固有値計算を行えばよい。)。これから,
の固有値は
で,その正の平方根
が特異値であるが,定理??の
の対角成分の特異値は大きい順に並べる約束であるので
(10)
のように,と
が決まる。つぎに,
については,視察によって
(11)
としてよい。ここでと
が直交しており,
の制約がある。式(11)から
が出て,
と定まる。
——————————————————————————————————————–
それでは,階段化アルゴリズムについて述べる。
——————————————————————————————————————–
アルゴリズム<階段化アルゴリズム(staircase algorithm)>
入力パラメータ
出力パラメータ
ステップ1 初期化
とおく。
ステップ2 の階数決定
を
に更新し,
に対して,つぎの特異値分解を行い,
の階数
と
を求める。
(12)
(13)
もしまたは
ならば,
と設定して終了する。そうでないときは,ステップ3へ行く。
ステップ3 座標変換
を,
を用いて
(14)
と設定し,と
を,次式から求める。
(15)
ステップ4 の切り出し
を
に更新し,
に対してつぎの分割を行い,
を得て,ステップ2へ戻る。
(16)
——————————————————————————————————————–
——————————————————————————————————————–
例題
階段化アルゴリズムを用いて,つぎの可安定性を調べなさい。
(17)
解答 階段化アルゴリズムの各ステップは,つぎのように計算される。
ステップ1:とおく。
ステップ2:とし,
に対する特異値分解
(18)
から,の階数
と
が求まる。
ステップ3:かつ
なので,ステップ4へ行く。
ステップ4:とし,
を求めると
(19)
となり,とする。
ステップ5:とする。
に対する分割から,
を得る。
ステップ2′:とする。
は零行列なので,その階数は
である。
ステップ3′:なので,
のように設定する。
以上から,式(24)は,つぎのように得られた。
(20)
ここで,は零行列で,
より,条件S0が成り立つ。よって,
は可安定である。
——————————————————————————————————————–
まず,可安定性と可制御性は座標変換により不変であることを示す。
——————————————————————————————————————–
定理 が可安定対[可制御対]ならば,
も可安定対[可制御対]である。
証明 次系
に対する
による安定化可能性は,座標変換後の
に対する
による安定化可能性と等価である。実際
(21)
が成り立ち,閉ループ系の固有値は,座標変換によって不変だからである。
可制御性については,シルベスターの公式
(
は
の列数)
を用いて
(22)
が成り立つことから,定理の主張を得る。
——————————————————————————————————————–
この定理に基づいて,可安定性や可制御性の判別をしやすいように座標変換行列を選ぶことを考える。すなわち,
次系
に対して,つぎを満足するように座標変換できるかどうかを調べる。
(23)
ただし,は可制御対とする。このブロック線図を描いてみればわかるように,状態
は入力
の影響を受けることはない。したがって,可制御性は成立しないこと,そして
が安定行列かどうかが可安定性と関係していることは想像がつくであろう。以下では,この判定法が導かれること示す。
「式(23)のように座標変換できれば,が安定行列のとき可安定性が成り立ち,そうでないときは可安定性は成り立たない。また,式(23)のように座標変換できなければ,可制御性が成り立っている。」
つぎの結果は,階段化アルゴリズムを用いて得られる。
——————————————————————————————————————–
定理
サイズの行列
とサイズ
の行列
に対して,つぎのように変換する直交行列
が存在する。
(24)
ここで,は正整数,また
のサイズを
とするとき(
),つぎが成り立つ(
は横長の形状となり,行フルランクをもつ。また,
は横長で,行フルランクをもつ行列または零行列のどちらかである。)。
(25)
(26)
(27)
このとき,が可制御対であるための必要十分条件は
条件C0: 式(24)において,
が成り立つことである。また,が可安定対であるための必要十分条件は、つぎが成り立つことである。
条件S0: 式(24)において,のとき,
は安定行列
——————————————————————————————————————–
のとき,式(23)のような形式が得られていることは,式\(ref{eq3.4.3})の
を上の
と読み替えれば明らかであろう。また,可安定性と可制御性と相違は,前者が
ばかりでなく
を許すところにあることに注意する。可制御性の条件C0と可安定性の条件S0の妥当性は,あとで示す。
それでは,まず可制御性について,新しい条件を追加した定理を述べる。
——————————————————————————————————————–
定理 可制御性が成り立つための等価な条件
定義: 任意初期状態を,任意有限時間内に,任意状態に移動可能
条件C1:
条件C2:
条件C3: を選んで,
の固有値を任意に設定可能
条件C4: (
は
のすべての固有値)
条件C5: (
は
のすべての固有値)
ここで,条件C4を満足するの固有値
は可制御固有値,満足しない固有値は不可制御固有値と呼ばれる。
——————————————————————————————————————–
前節までに,定義条件C1
条件C2
条件C3を示したので,以下では,条件C3
条件C0
条件C4
条件C5
条件C2を示す。
——————————————————————————————————————–
証明 <条件C3条件C0>
とすると,式(24)を用いて
(28)
となり,閉ループ系においての固有値はそのまま残るが,C3に矛盾である。
証明 <条件C0条件C4>
を任意の複素数とする。
に,式24を適用すると
(29)
を得る。ここで,は横長の形状となり,行フルランク(行数に等しい階数)をもつので
(30)
に,シルベスターの公式を適用して
(31)
を得る。この階数がより小さくなるのは,式(29)から明らかなように,
が
の固有値に等しい場合である。したがって,
は
の固有値について調べれば十分である。すなわち,条件C4を得た。
証明 <条件C4条件C5>
条件C4は,を
次元ベクトルとして
(32)
すなわち
(33)
と等価である。
証明 <条件C5条件C2>
条件C5より
(34)
を得て
(35)
が成り立つ。これは条件C2を意味する。
——————————————————————————————————————–
それでは,可安定性が成り立つための条件について考えよう。可制御であれば可安定であるので,問題は,不可制御で可安定の場合をどのように特徴付けるかである。不可制御であれば条件C0が不成立なので,となり,
の固有値だけは状態フィードバックによってどうすることもできない。このとき可安定であるためには,
が安定行列であることを前提とするしかない。これは条件S0そのものであり,可安定性の条件としての妥当性が得られた。
このことを踏まえて,可安定性の条件はつぎのように表される。
——————————————————————————————————————–
定理 可安定性が成り立つための等価な条件
定義 状態フィードバックにより安定化可能
条件S1: (
は
のすべての不安定固有値)
条件S2: \quad (〃)
証明 定義条件S0だから,条件S1
条件S2との等価性を示せばよい。そのために,
のとき,式(29)の行列のランクが落ちるのは
(36)
(37)
の部分で,が
の固有値に一致した場合である。したがって,条件S0を保証するためには,
に
のすべての不安定固有値を入れて,式(37)を調べ,列フルランクとなればよい。すなわち,条件C4
条件C5において,
は
のすべての不安定固有値という条件をつければよい。
——————————————————————————————————————–
上の可制御性と可安定性のさまざまな条件のうち,理論展開では条件C5とS2が,数値計算では条件C0,C4と,条件S0,S1がよく用いられる(条件C5条件C4と条件S2
条件S1による判定法は,PBH(Popov-Blevitch-Hautus)法と呼ばれる。)。
例えば,可制御性は状態フィードバックにより不変であることを示そう。
——————————————————————————————————————–
定理 が可制御対ならば
も可制御対である。
証明 条件C5より,任意のに対して
(38)
成り立つので,これを仮定して
(39)
を示せばよい。実際,より
(40)
を得るが,このようなは,仮定(38)より,
でなければならない。
——————————————————————————————————————–
2. 状態方程式から安定性を調べる
いま対象が物理的な釣り合いの状態にあるとき,何らかの原因でこれが乱されたとしよう。このとき,対象に働きかけて,元の物理的な釣り合いの状態に速やかに戻すことは,最も基本的な制御目的として知られている。もし,対象自身に復元力が備わっていて,元の状態に戻ろうとする性質があれば,対象は「安定」(正確には「漸近安定」)と呼ばれる。このことを状態方程式$\dot{x}=Ax+Bu$から,どのように調べるかが,本章のテーマである。
そのために,まず状態方程式を解くことから始める。その解は,与えられた入力のもとでの状態の時間的振る舞い,すなわち「時間応答」を表している。これは,「零入力応答」と「零状態応答」の和として表される。ここで,零入力応答とは,入力を零すなわち$u=0$として,初期状態$x(0)\ne0$から出発して得られる時間応答であり,零状態応答とは,初期状態$x(0)=0$のもとで適当な入力が与えられるときの時間応答である。対象が物理的な釣り合いの状態にあって,これが何らかの原因で乱されたときの時間的振る舞いは,零入力応答に対応する。そこで,1次系$\dot{x}=ax$に対しては,$a<0$ならば安定である,また,$n$次系$\dot{x}=Ax$に対しては,「正方行列$A$の固有値の実部がすべて負であるならば安定」と判定すればよいことを学ぶ。 一方,零状態応答の中で重要なのは「インパルス応答」と呼ばれるもので,これが与えられると,どのような入力が与えられても,たたみこみ積分を行って出力が求まることを理解してほしい。 |
1. 物理法則から状態方程式を導く
私たちが制御したい対象が物である場合,その振る舞いは物理法則により記述される。一般に,動的な振る舞いを表す物理法則は微分方程式で表される。微分方程式というと尻込みする人もいるかもしれないが,最初は,ニュートンの運動第2法則![]() さて,制御を行うには対象の動的な振る舞い(状態変数の時間変化)を観測することが必要であり,そのためにセンサが用いられる。ここで,現実には,すべての状態変数にセンサを配置できるわけではなく,通常は状態変数の一部がセンサにより観測される。センサにより観測される変数と状態変数の間の関係式を,制御対象の「出力方程式」と呼ぶ。 本章では,動的な振る舞いが連立線形微分方程式で記述されるいくつかの制御対象に対して,状態方程式と出力方程式をペアにした「状態空間表現」を求める。これを図示した「ブロック線図」は,計算機シミュレーションを行う際にも有用である。 |
1.1 状態空間表現の導出例
1.1.1 ペースメーカ
高齢化社会の到来に伴い,より優れた福祉・医療機器の開発が工学分野の大きなテーマの一つとなっている。図1.1に示すのは,心臓のペースメーカの簡単な原理図である。これは,まず左側の閉回路でコンデンサへの充電を行い,つぎにスイッチを切り替えてできる右側の閉回路で放電を行うという動作を周期的に繰り返すことにより,心臓のペースメーカの役割を果たそうとするものである。ここでは,状態方程式を導く最初の例として,このようなRC回路における充電と放電について考える。
そのために,キルヒホッフの電圧則より,左側閉回路と右側閉回路の回路方程式を考えると,それぞれ (1) (2) となる。ここで, (3) 状態方程式(3)を図1.2のように図示し,これを状態方程式に基づくブロック線図と呼ぶ。この描き方のポイントは,式(3)の右辺を表すのに加え合わせ記号○を用いることと,また 同様に,式(2)から得られる状態方程式は (4) であり,これによるブロック線図は図1.3のように示される。 (5) と与えられることはよいであろう(式(4)に代入して確かめよ)。状態方程式(4)は入力変数をもたないが,状態変数の初期値によって,状態変数の時間的振る舞いが現れる。この意味で,1次系(4)は シミュレーション1.1 式(5)で表されるコンデンサ電圧 (6) によって近似計算しなさい。 |
*系はsystemの訳語。ここでは「××システム」を簡潔に「××系」と書く。
**本書では,時間応答のコンピュータによるシミュレーション(simulation)の欄を設けた。最終的には時間応答の数学的理解が大切であるが,まずは,なぜそのような時間的振る舞いが現れるのかを物理的イメージをもって考えながら,典型的な時間応答に親しみをもってほしい。なお,本書の数値計算については演習問題の【4】を参照のこと。
1.1.2 教室のドア
教室で物の動きを実感できるものに,図1.5に示すようなばねとダンパ![]() ![]() 図1.5 緩衝装置をつけたドア このドアの運動は回転運動であるが,話しをわかりやすくするため,図1.6に示すような等価な直線運動として調べてみよう。その出発点は,ニュートンの運動第2法則 (7) である。ここで, (8) のように表すことができる。ここで,ダンパが第1項の力を,ばねが第2項の力を与える。 (9) を得る。 (10) (11) のような1階の連立線形微分方程式で表される。これらを行列表示すると (12) のような状態方程式を得る (13) を得るセンサはあるが,ドアの速度を計測するセンサはないものとする。このとき, (14) 以上から,ドアに対して,状態方程式(12)と出力方程式(14)からなる2次系(second-order system)としての状態空間表現を得た。 シミュレーション 式(12)において,
|
*ばねとダンパの特性値を調整するためのねじを回すことにより行われる。
**本書では,のように書いて,△を○で定義・表記する(△は○に等しいとする)。
1.1.3 直流モータ
代表的なアクチュエータとしてモータがある。例えば図1.9に示すのは,ロボットアームを駆動する直流モータである。 ![]() 図1.9 直流モータ このモデルは図1.10のように表される。 ![]() 図1.10 直流モータのモデル このとき,つぎが成り立つ。 (15) (16) ここで,式(15)は機械系としての運動方程式であるが,電流による発生トルクの項 (17) (18) (19) のような状態方程式を得る。状態方程式(19)は二つの入力変数 (20) となる。このように,直流モータに対して,状態方程式(19)と出力方程式(20)からなる3次系(third-order system)としての状態空間表現を得た。つぎに一つのシミュレーション例を示す。 (21) で与えられ,上の例では (22) これから (23) (24) は直流モータの機械的時定数と呼ばれている。上の例で計算してみると (25) 式(19)と比較すると,状態空間表現の次数を1だけ減らしたことになる。 低次元化の過程を図1.12~図1.14に示しておく。 |
*式(18)は,式(19)のように物理パラメータどうしの演算を含まず,それらの変動の影響を考察するのに便利な形式であり,ディスクリプタ形式の状態方程式と呼ばれる。
**ここでは,2.1.3項で学ぶ時定数の知識を前提にしている。
1.2 状態空間表現へのモデリング
前節で述べた内容は,モデリング(modeling)という枠組でとらえられる。これは,何らかの対象に対して,目的に応じた科学的分析を通してそのモデルを得ようとするものである。私たちが扱う対象は,入力と出力をもつ動的システム![]() ![]() ![]() 本書では,状態空間表現を次式のように書く。 (26) (27) ここで, |
*動的システムは,微分方程式・差分方程式のどちらで記述されるかによって連続時間系・離散時間系,重ね合わせの原理が成り立つか否かによって線形系・非線形系,常微分方程式か偏微分方程式かによって集中定数系・分布定数系,係数パラメータの時間依存性によって時変系・時不変系,入出力が確率過程であるか否かによって決定系・確率系などに分類される。
**非線形系の場合の取り扱いは7章で述べる。1~6章までは線形時不変系のみを扱う。
***他の数理モデルとして伝達関数表現がある。状態空間表現と伝達関数表現の間の相互関係については8章で述べる。
****他のアプローチとして,入力と出力の時系列データからモデリングを行うシステム同定がある。
1.3 状態空間表現の座標変換
状態空間表現を見やすくする一つの手段として,座標変換(coordinate transformation)があるので,これについて説明しよう。 いま, ![]() (28) (29) に対して,つぎの座標変換を行いたい。 (30) (31) に注意して (32) %すなわち (33) (34) となる。この結果を,参照しやすいようにつぎにまとめておく。 定理1.1 (35) (36) (37) 例題1.1 直流モータの状態方程式(25)において, (38) である。これに対して,座標変換 (39) を行うと,新しい状態方程式は (40) となることを示しなさい。 解答 座標変換後の (41) (42) のように得られる。 ここで,2次系の状態方程式が,二つの1次系の状態方程式 (43) に分離されており,入力から状態変数への影響の考察をしやすくなっていることに注意してほしい。 |
1.4 状態空間表現の直列結合
制御対象の状態空間表現を求める際に,図1.15に示すように,二つの部分システムの状態空間表現を求めておいて,これらを直列結合(serial connection)する場合がある。このときの結合システムの状態空間表現を求めることを考える。
まず,その結果を定理の形で示そう。 (44) (45) (46) (47) に対して, (48) (49) のように得られる。 証明 (50) (51) となる。第1式と (52) (53) に対して( (54) (55) を, 解答 定理1.2を用いて,直列結合の状態空間表現として (56) (57) が得られる 問1.4 例題1.2の直列結合の状態空間表現を,状態ベクトルが |
*ここで,行列の縦線と横線,
行列の横線は,状態ベクトルの要素
,
のサイズに適合するように引かれている。
演習問題
【1】 いろいろな計測装置の基礎となる電気回路の一つにブリッジ回路がある。 例えば,図1.16に示すブリッジ回路 ![]() (58) (59) で与えられる。いま,ブリッジ条件 (60) が成り立つとして,つぎの状態方程式を導出しなさい。 (61) この状態方程式に基づいて,平衡ブリッジ回路のブロック線図を描きなさい。
(62) (63) で与えられる。ここで, (64) この状態方程式に基づいて,連結台車のブロック線図を描きなさい。
MATLABとSIMULINKが手元にあれば,シミュレーション1.3と同一条件下で,直流モータの低次元化後の状態方程式25による角速度の応答を,低次元化前の状態方程式19によるものと比較しなさい。 ![]() |
*高橋・有本:回路網とシステム理論,コロナ社 (1974)のpp.6566から引用。
**B.Wie, D.2.Bernstein : Benchmark Problems for Robust Control Design, ACC Proc. pp.20472048 (1992) から引用。
***The Student Edition of MATLAB-Version\,5 User’s Guide, Prentice Hall (1997)
****The Student Edition of SIMULINK-Version\,2 User’s Guide, Prentice Hall (1998)
まえがき
本書は,動く物の制御に関心をもつ工学系の学生の皆さんに,状態方程式に基づく制御について説明するために書かれている。言うまでもないことだが,何らかの動く物を制御しようとすれば,それは物理法則に逆らってはできない。したがって,制御の出発点は,対象の動きを支配する運動方程式や回路方程式であり,これは一般には非線形の微分方程式で表される。どのような制御を行うかについてはさまざまなものが考えられるが,最も基本的なものは,ある物理的な釣り合いの状態(平衡状態)を保持することであり,この目的は安定化と呼ばれている。そのためには,すべての状態変数の変化をセンサによって即座にとらえて対象を操作する仕組み(状態フィードバック)と,またセンサの不足に備えて状態変数を推定する工夫(状態オブザーバ)が基本となる。
ところで,対象の時間的振る舞いは,ある平衡状態の近くでは,重ね合わせの原理がほぼ成り立ち,線形の微分方程式で十分近似できることが多い。これをラプラス変換して得られる伝達関数を前提にして,周波数領域で制御方式を考えるのが「古典制御」である。これに対し,状態空間法と呼ばれる本書のアプローチは,運動方程式や回路方程式から状態方程式を導いて,時間領域で制御方式を考えるもので,「現代制御」として知られている。近年は,古典制御と現代制御は相補的な関係を一段と強め,より高度に発展させられている。本シリーズでは,古典制御については,「フィードバック制御入門」で説明されている。また,その編集委員会によって,現代制御の線形理論について説明する本書のタイトルは,「線形システム制御入門」と与えられ,解析より設計の話にやや重点をおくことが意図されている。 以上のことをふまえて,本書では,現代制御の考え方を説明するためのストーリをつぎのように組み立ててみた。 1章 物理法則から状態方程式を導く ここで,1章から6章までは,2.3節の一部を除いて,対象が線形微分方程式で表される線形システムだけを扱い,7章で非線形システムへの対応について,8章で伝達関数と状態方程式の間の関係について述べた。したがって,微分積分,線形代数,力学,電気回路に関する基礎知識があれば,本書の大部分は古典制御よりも先に読めるであろう。つぎに,記述にあたっては,1次系について導入を行ったうえで,その結果を一般の高次系に拡張するというスタイルをとった。特に2次系についての説明は丁寧に行った。さらに,いくつかの節には$^*$印を付けて,最初はスキップしてもよいことを示した。 本書を,半期(約12時間)の現代制御のテキストとして使う場合は,1~5章と8章をじっくり勉強する基礎重視のコースと,1~7章で1次系と2次系に関する議論をおもにフォローし,高次系についての結果を受け入れていく応用重視のコースの2通りが考えられる。後者においては,実際の制御系設計で必要となる数値計算の指針を演習問題の形で示したので参考にしていただきたい。 おわりに,編集委員の先生方には,著者の拙い原稿に何度も目を通していただき,数多くの貴重なコメントをいただいた。このご支援に対し,心より感謝の意を表したい。それにもかかわらず,著者の力不足のため,現代制御のテキストとして至らないところがあることを恐れている。読者の率直なご意見を,{\tt kajiwara@nams.kyushu-u.ac.jp}まで,お寄せいただければ幸いである。 2000年3月 |
8 最小実現問題
【本章のねらい】 ・伝達関数行列に対応する状態空間表現(実現)を求める。 ・実現の可制御可観測な部分系を取り出して,与えられた伝達関数行列に対応する最小実現を求める。 |
8.1 実現問題
状態空間表現
から伝達関数行列表現 を求める計算を,つぎのドイルの記法を用いて表す。 ここでは,逆に伝達関数行列表現(8.2)から状態空間表現(8.1)を求める問題、 を満足する行列 また,1入力1出力系の場合は, 以下では,まず1入力1出力系の場合を考える。1次系について,次式が成り立つ。 2次系について,次式が成り立つ。 ここで,(8.8)式の2つの実現は, について,(8.5)式の関係にある。また,(8.9)式は(8.8)式を(8.6)式の意味で転置したものである。 一般に,1入力1出力
|
*分子多項式の次数が分母多項式の次数を超えない場合をいう。
**『線形システム制御入門』の8.1節のファディーブの公式を用いて証明できる。
例題8.1 むだ時間要素![]() ![]() このとき,対応する状態空間表現の一つを求めよ。 解答 |
演習8.1 むだ時間伝達関数のつぎの近似式に対応する状態空間表現の一つを求めよ。
|
以上の1入力1出力系の実現を利用して,多入力出力系の場合の実現の一つを求める方法を考える。
の各要素の実現を とするとき, で与えられる。ここで は,サイズ は,サイズ は,サイズ は,サイズ ちなみに, の可制御な実現の一つは
また,可観測な実現の一つは
で与えられる。 |
例題8.2 つぎの1入力2出力伝達関数行列の実現を一つ求めよ。
解答 だから となる。 |
演習8.2 つぎの2入力1出力伝達関数行列の実現を一つ求めよ。
|
8.2 最小実現
前節で求めた伝達関数行列の実現は,最小次元数をもつとは限らない。ここでは,最小次元数をもつ実現,すなわち最小実現を求める方法を考える。
一般に,不可制御かつ不可観測な状態空間表現(8.1)は適当な座標変換により,つぎの正準構造をもつように変換できることが知られている。 ここで,正方行列
さて,(8.23)を表す伝達関数行列を これが最小実現であることが知られている。すなわち,最小実現は,可制御かつ可観測な部分系であり,入力から出力までの伝達特性を表している。 最小実現の計算は,まず,正準構造の可制御な部分系 を求め,この可観測な部分系として求めるか,または,正準構造の可観測な部分系 を求め,この可制御な部分系として求めればよい。したがって,可制御な部分系または可観測な部分系の計算が基礎となる。 一般に,つぎのように変換する直交行列 ここで, そのような直交行列 |
/*staircase.m*/ function [T,m]=staircase(A,B,tol) [n,r]=size(B); j=0; s=0; T=eye(n); B1=B; A1=A; while j ![]() j=j+1; [U1,S1,V1]=svd(B1); m(j)=rank(B1,tol); if (m(j)==n-s)|(m(j)==0),k=j; break, end W=[eye(s) zeros(s,n-s); zeros(n-s,s) U1 ]; T=T*W; A1=W’*A1*W; s=s+m(j); B1=A1(s+1:n,s-m(j)+1:s); end |
ここで,tol は,7行で有効階数 m(j) を決めるために適切に選ばれる零判定基準である。
同様に,つぎのように変換する直交行列 ここで, そのような直交行列を求める階段化アルゴリズムを実行するMファイルの作成例をつぎに示す。 |
%staircase2.m function [T,p]=staircase2(A,C,tol) [T,p]=staircase(A’,C’,tol) |
例題8.3 例題8.2で得た実現の可制御かつ可観測な部分系を求め,最小実現を得よ。
解答 Mファイル |
%min_realization.m A=[-1 0 0;0 -3 -2; 0 1 0]; B=[1;1;0]; C=[1 0 0;0 1 1]; D=[0;0]; [T,m]=staircase(A,B,0.01); AA=T’*A*T; BB=T’*B; CC=C*T; n=sum(m); sys=ss(AA(1:n,1:n),BB(1:n:),CC(:1:n),D); tf(sys) |
を実行して,
を得る。このとき となる。この可制御部分を取り出すと となり,しかもこれは可観測であるので最小実現である。 |
演習8.3 演習8.2で得た実現の可制御かつ可観測な部分系を求め,最小実現を得よ。 |
演習問題の解答
【演習8.1】![]() から,実現の一つは である。 |
【演習8.2】![]() ![]() だから を得る。 |
【演習8.3】Mファイル |
%min_realization2.m A=[-3 -2 0;1 0 0; 0 0 -2]; B=[1 0;0 0;0 1]; C=[1 2 1]; D=[0 0]; [T,m]=staircase(A,B,0.01); AA=T’*A*T; BB=T’*B; CC=C*T; n=sum(m); sys=ss(AA(1:n,1:n),BB(1:n:),CC(:1:n),D); tf(sys) |
を実行して,
を得る。このとき となる。この可観測部分を取り出すと となり,しかもこれは可制御であるので最小実現である。 |
7 非線形システムの線形化
【本章のねらい】 ・ 振子を例に,MAXIMA ![]() ・ 振子の線形状態方程式を用いて,積分動作を加えた状態フィードバックのLQI設計を行い,これを非線形状態方程式に適用して,安定化シミュレーションを行う。 |
* http://ja.wikipedia.org/wiki/Maximaを参照。
7.1 非線形システムのモデリングの例
次の例題を考える。
例題7.1 図7.1の振子を考える。MAXIMAを用いて,非線形運動方程式を計算し,これから非線形状態方程式を求めよ。さらに,平衡状態のまわりで線形化して,線形状態方程式を求めよ。
解答 運動エネルギー に代入する。この計算をMAXIMAを用いて行うためには,コマンド |
/*pen*/ dth:’diff(th(t),t); ddth:’diff(th(t),t,2); x:ell*sin(th(t)); y:ell*cos(th(t)); J:(1/3)*m*ell^2; T:(1/2)*m*(diff(x,t)^2+diff(y,t)^2)+(1/2)*J*dth^2; V:m*g*ell*cos(th(t)); L:T-V; LE:diff(diff(L,dth),t)-diff(L,th(t))=0,trigreduce; sol:solve(LE,ddth); f:matrix([dth],[rhs(sol[1])]); |
を与えればよい![]() これより,非線形状態方程式 が求められる。平衡状態は
のように求められる。この平衡状態 を得る。この計算をMAXIMAを用いて行うためには,コマンド |
A:matrix([diff(f[1,1],th(t)),diff(f[1,1],dth)], [diff(f[2,1],th(t)),diff(f[2,1],dth)]); |
を与えればよい。すなわち,線形状態方程式は,次式のように求められる。
この線形状態方程式は,平衡状態近傍では, と近似できるので,これを非線形運動方程式に代入し を得て,これから直接求めることもできる。 |
演習7.1 例題7.1において,![]() ![]() (1) ![]() (2) ![]() |
例題7.2 図7.2の台車によって駆動される振子を考える。MAXIMAを用いて,非線形運動方程式を計算し,これから非線形状態方程式を求めよ。さらに,平衡状態のまわりで線形化して,線形状態方程式を求めよ。
解答 台車の運動エネルギーは に代入する。この計算をMAXIMAを用いて行うためには,コマンド |
/*pend*/ dr:’diff(r(t),t); ddr:’diff(r(t),t,2); dth:’diff(th(t),t); ddth:’diff(th(t),t,2); T0:(1/2)*M*diff(r(t),t)^2; x1:r(t)+ell*sin(th(t)); y1:ell*cos(th(t)); J1:(1/3)*m*ell^2; T1:(1/2)*m*(diff(x1,t)^2+diff(y1,t)^2)+(1/2)*J1*dth^2; V1:m*g*y1; L:T0+T1-V1; LE1:diff(diff(L,dr),t)-diff(L,r(t))=F,trigreduce,ratsimp; LE2:diff(diff(L,dth),t)-diff(L,th(t))=0,trigreduce,ratsimp; sol:solve([LE1,LE2],[ddr,ddth]); |
を与えればよい。この結果から,非線形運動方程式
が得られる。これより,非線形状態方程式 が求められる。平衡状態は,
のように求められる。この平衡状態近傍で,
を得る。この計算をMAXIMAを用いて行うためには,コマンド |
f:matrix([dr],[dth],[rhs(sol[1][1])],[rhs(sol[1][2])]); a31:diff(f[3,1],r(t)); a32:diff(f[3,1],th(t)); a33:diff(f[3,1],dr); a34:diff(f[3,1],dth); a41:diff(f[4,1],r(t)); a42:diff(f[4,1],th(t)); a43:diff(f[4,1],dr); a44:diff(f[4,1],dth); b3:diff(f[3,1],F); b4:diff(f[4,1],F); A:matrix([0,0,1,0],[0,0,0,1],[a31,a32,a33,a34], [a41,a42,a43,a44]); B:matrix([0],[0],[b3],[b4]); A1:A,th(t)=0,F=0,trigreduce,ratsimp; B1:B,th(t)=0,F=0,trigreduce,ratsimp; A2:A,th(t)=%pi,F=0,trigreduce,ratsimp; B2:B,th(t)=%pi,F=0,trigreduce,ratsimp; |
を与えればよい。この結果から,![]() となる。また,
|
演習7.2 例題7.2の振子を軸支した台車を,図7.3のように傾斜角![]()
|
例題7.3 例題7.2の台車によって駆動される振子について,そこで求めた状態方程式に基づいて,MAXIMAを用いて,漸近安定性と可制御性について調べよ。
解答 まず,安定性を調べるために, |
lambda:eigenvalues(A1); |
その結果,![]() ![]() ![]() ![]() つぎに,可制御性を, |
rank(addcol(A1-lambda[1][1]*ident(4),B1)); rank(addcol(A1-lambda[1][2]*ident(4),B1)); rank(addcol(A1-lambda[2][1]*ident(4),B1)); rank(addcol(A1-lambda[2][2]*ident(4),B1)); |
% For[i = 1, i ![]() % W=MapThread[Append,{A-lambda[[i]] IdentityMatrix[4],B}]; % Print[MatrixRank[W]]; i++] のコマンドを与えればよい。その結果,階数はすべて4と計算され,可制御性が成り立つ。 ![]() |
演習7.3 例題7.3を,![]() |
7.2 非線形系に対する線形制御の適用
つぎの例題を考える。
例題7.4 例題7.2の台車によって駆動される倒立振子について,台車の位置![]() ![]() ![]() ![]() 解答 まず,出力方程式として を得る。また,台車の位置 のように表される。このとき,正方行列 は正則である。したがって,次式が定まる。 つぎに,偏差系 に対する評価関数を,たとえば のように設定する。ここで, 制御目的を達成する積分動作を加えた状態フィードバック
は,上の評価関数を最小にするように,状態フィードバック を求め,次式から 以上の計算を,MATLABで行うためには |
%pend.m global M m ell g th0 M=1; m=0.1; ell=0.25; g=9.8; th0=3/180*pi; E=[M+m m*ell;m*ell (4/3)*m*ell^2]; A21=-E\[0 0;0 -m*ell*g]; A=[zeros(2) eye(2);A21 zeros(2)] B2=E\[1;0]; B=[zeros(2,1);B2] CM=[1 0 0 0;0 1 0 0]; CS=[1 0]; C=CS*CM; AE=[A B;zeros(1,5)]; BE=[zeros(4,1); 1]; CE=eye(5); Tcart=0.1; Kr=0.5; Tpend=(1/4)*(2*pi*sqrt(4/3*ell/g)); Kth=5/180*pi; Tamp=0.1; Kamp=5; q1=1/Kr; q2=1/Kth; q3=Tcart/Kr; q4=Tpend/Kth; q5=1/Kamp; QE=diag([q1 q2 q3 q4 q5].^2); RE=(Tamp/Kamp)^2; [FE,pAE]=opt(AE,BE,CE,QE,RE) FE=FE/[A B;C 0]; F=FE(:,1:4); FI=FE(:,5); ACL=[A-B*F -B*FI;C 0]; BCL=[zeros(4,1);-0.5]; CCL=[CM zeros(2,1);-F -FI]; DCL=[zeros(2,1);0]; sys=ss(ACL,BCL,CCL,DCL); step(sys) |
を与えればよい。 |
もちろん,これらは重み係数の初期値であり,実際には調整を伴うことはいうまでもない。
演習7.4 演習7.3のように,振子を軸支した台車を傾斜角![]() |
例題7.5 例題7.4で設計した積分動作を加えた状態フィードバックを,非線形ダイナミクスを表す非線形状態方程式と結合して,閉ループ系の時間応答をシミュレーションせよ。
解答 まず,非線形状態方程式を,つぎのS-functionで記述する。 |
%spend.m function [sys,x0]=spend(t,state,input,flag) global M m ell g th0 if abs(flag)==1 u =input(1); r =state(1); th =state(2); dr =state(3); dth=state(4); Mp=[M+m m*ell*cos(th); m*ell*cos(th) (4/3)*m*ell^2]; Cp=[0 -m*ell*dth*sin(th);0 0]; Gp=[0; -m*ell*g*sin(th)]; sys=[dr;dth;Mp\(-Cp*[dr;dth]-Gp+[u;0])]; elseif flag==3, sys=state(1:2); elseif flag==0 sys=[4;0;2;1;0;0]; x0=[0;th0;0;0]; else sys=[]; end |
つぎに,Simulink上に
のように,このS-functionブロックと例題??で設計した積分動作を加えた状態フィードバックを接続して,シミュレーションを行う。 |
演習7.5 演習7.4で設計した積分動作を加えた状態フィードバックを,非線形ダイナミクスを表す非線形状態方程式と結合して,閉ループ系の時間応答をシミュレーションせよ。 |
演習問題の解答
【演習7.1】Simulinkを用いて,次図のブロック線図を作成する。
上半分が非線形運動方程式 |
【演習7.2】非線形運動方程式を求める計算をMAXIMAを用いて行うためには |
/*pend2*/ dr:’diff(r(t),t); ddr:’diff(r(t),t,2); dth:’diff(th(t),t); ddth:’diff(th(t),t,2); x0:r(t)*cos(alpha); y0:r(t)*sin(alpha); T0:(1/2)*M*(diff(x0,t)^2+diff(y0,t)^2); V0:M*g*y0; x1:x0+ell*sin(th(t)); y1:y0+ell*cos(th(t)); J1:(1/3)*m*ell^2; T1:(1/2)*m*(diff(x1,t)^2+diff(y1,t)^2)+(1/2)*J1*dth^2; V1:m*g*y1; L:T0+T1-V0-V1; LE1:diff(diff(L,dr),t)-diff(L,r(t))=F,trigreduce,ratsimp; LE2:diff(diff(L,dth),t)-diff(L,th(t))=0,trigreduce,ratsimp; sol:solve([LE1,LE2],[ddr,ddth]); |
のコマンドを与えればよい。この結果から,非線形運動方程式![]() ![]() が得られる。これより,平衡状態は ![]() ![]() ![]() ![]() のように求まる。 ![]() ![]() ![]() |
【演習7.3】 |
%pend.m M=1; m=0.1; ell=0.25; g=9.8; E=[M+m m*ell;m*ell (4/3)*m*ell^2]; A21=-E\[0 0;0 -m*ell*g]; A=[zeros(2) eye(2);A21 zeros] B2=E\[1;0]; B=[zeros(2,1);B2] r=eig(A) tol=1e-6; for i=1:4, k=rank([B A-r(i)*eye(4)],tol), end |
【演習7.4】次を実行し,あとは例題7.4と同様に行えばよい。 |
%pend2.m M=1; m=0.1; ell=0.25; g=9.8; alpha=5/180*pi; a32=-(3*m*g*cos(alpha))/(7*M+(11-3*cos(2*alpha))/2*m); a42=(3*(M+m)*g)/(7*M+(11-3*cos(2*alpha))/2*m)/ell; b3=7/(7*M+(11-3*cos(2*alpha))/2*m); b4=-3/(7*M+(11-3*cos(2*alpha))/2*m)/ell; A21=[0 a32;0 a42]; A=[zeros(2) eye(2);A21 zeros(2)] B2=[b3;b4]; B=[zeros(2,1);B2] |
【演習7.5】まず,非線形ダイナミクスを,つぎのS-functionで記述する。 |
%spend2.m function [sys,x0]=spend2(t,state,input,flag) M=1; m=0.1; ell=0.25; g=9.8; th0=0; alpha=5/180*pi; if abs(flag)==1 u=input(1); r=state(1); th=state(2); dr=state(3); dth=state(4); Mp=[M+m m*ell*cos(th+alpha); m*ell*cos(th+alpha) (7/3)*m*ell^2]; Cp=[0 -m*ell*dth*sin(th+alpha);0 0]; Gp=[0; -m*ell*g*sin(th)]; sys=[dr;dth;Mp ![]() elseif flag==3 sys=state(1:2); elseif flag==0 sys=[4;0;2;1;0;0]; x0=[0;th0;0;0]; else sys=[]; end |
Simulink上に,このS-functionブロックと,演習7.4で設計した積分動作を加えた状態フィードバックを記述して,シミュレーションを行う。詳細は割愛する。 |
6. 定値外乱を抑制する
これまで,安定性の定義,安定化の可能性とその方策を学んできた。その結果,私たちは,閉ループ系の零入力応答を適切に安定化する,すなわち,ある初期状態から出発して速やかに零状態(平衡状態)にもっていくことはできる。この零入力応答は,適当な強さのインパルス入力に対する零状態応答に等しいことを思い出してほしい。
例えば,一定速度で回転しているモータを考え,これに瞬間的な負荷がかかって,その速度が乱されたとする。このときは,状態フィードバックによってもとの速度に復帰させることができる。しかし,モータで何か対象物を回転させるときは,モータ軸への持続的な負荷が生じ,極端な場合はモータは回転することさえできないであろう。同様に,飛行機,船舶,車などのビークルに強い向い風が吹けば定速を維持することは困難となるであろう。 また,モータやビークルでは,速度の設定値を変えることが制御の大切な役割なのに,そのための手段はまったく学んでいない。 したがって,これまでの知識だけでは多くの現実問題を解くことはできない。実際の問題では,必ずといっていいほど,さまざまな「定値外乱」の影響を受ける状況のもとで,「設定値」の保持や,ときには変更を要求されるからである。このような問題を解決するためには,これまでの制御方式に加えて,まず「積分動作」の導入による構造的な改良が必要となる。本章では,定値外乱の影響の除去や,設定値の変更に対応できるように,積分動作を入れて安定化を行う方策について学ぶ。その安定化にLQ制御を適用するとき,その制御方式を簡潔に表すために「LQI制御」と呼ぶ。 |
6.1 1次系における定値外乱の影響を抑制する
6.1.1 定値外乱の影響
1章で述べた直流モータの状態方程式(1.11)すなわち
を思い出そう。これは,二つの入力変数 以下では,この状況を一般化した次式で表される1次系を考える。 ここで,
いま,1次系(2)に対して,状態フィードバック を行うと,閉ループ系 を得る。ここで, となる。第2項は と計算できるので, すなわち,定値外乱が加わると とはならない。このことをシミュレーション例で確認しよう。 シミュレーション 6.1
このような定値外乱の影響を取り除くために,式(3)の代わりに のような方策を用いる。このときの閉ループ系 の時間応答は となる。これより,外乱を打ち消すように と選べば,式(8)を達成できる。しかしながら, |
図6.2の下に次の問を設定していましたが,紙幅の関係で省略しました。
図6.2で,であることを確かめなさい。
6.1.2 積分動作を加える
この方法の基礎となるアイデアは
を達成できれば そこで,式(13)を満足する を達成することができないか検討しよう。 まず,式(2)と,式(13)の を合わせて を構成する。式(16)に を代入すると,閉ループ系は となる。そのブロック線図を図6.3に示す。
さて, となる。ここで, と計算できるから と表される。したがって を得る。ここで となり,外乱の影響が抑制されていることと,式(14)が成り立つことが確認できる。また,式(17)からつぎが成り立つ。 シミュレーション6.2
|
図6.4の下に次の問を設定していましたが,紙幅の関係で省略しました。
図6.4で,,
であることを確かめなさい。
また,(19),(20),(21)においであることに注意してください。
6.1.3 設定値を変更する
前節では,定値外乱の加わる1次系
に対して,制御目的 を達成する方法を学んだ。ここでは,任意の定数 を達成する問題を考える。この
この問題の解決のためには,外乱を抑制するための図6.4を,図6.5に示すように変更すればよい。実際,式(27)を のような積分動作を導入すればよいことに気づくであろう。 式(25)と式(26)を合わせて を構成する。いま,式(29)に を代入すると となる。 を得る。この第1行は, を得る。ここで,設定値 また,つぎが成り立つ。 それでは,フィードフォワード項による速応性改善の効果をシミュレーションによって確かめよう。 シミュレーション6.3
問6.1 |
6.2 積分型コントローラ
6.2.1 積分動作を加えた状態フィードバック
次式で表される可制御かつ可観測で,![]() ![]() ![]() ここで,状態方程式には,操作入力 のように選び( を達成したい。ここで,定数ベクトル の関係を満足しているはずである。したがって,どのような が成り立つように選ぶものとする。
さて,制御目的(39)を達成するために,図6.8に示すような,つぎの積分動作を加えた状態フィードバックを考える。 ここで,第2項は積分動作を表している。このように を得る。式(36)と式(43)を合わせて を得る。式(44)に,式(42)すなわち を代入すると,閉ループ系は,つぎのように表される。 いま, よって, を用いて ここで, のように計算される。ところで,式(46)から を得る。この第1ブロック行は,式(40)より となって,式(40)の第2ブロック行から制御目的(39)が成り立つ。また,式(50)の第2ブロック行から を得る。ここで,設定値 のように表され,ここで, |
6.2.2 積分動作を加えたオブザーバベース\,コントローラ
式(42)の代わりに,実際には,状態オブザーバ
の出力を用いて を実施することになる。ここでの積分動作を加えたオブザーバベース\,コントローラは,式(56)を式(55)に代入した と,式(43)を合わせて,つぎのように表される。 これによる閉ループ系は,式(56)を式(36)に代入した と,式(43),(57)を合わせて のように表される。そのブロック線図を図6.9に示す。
いま,閉ループ系(61)に,座標変換 を行えば となり,閉ループ系の固有値は,積分動作を加えた状態フィードバックだけの閉ループ系の固有値と状態オブザーバの固有値からなる。 ここで, すなわち を得る。したがって,定値外乱が存在するときは状態オブザーバに関して定常偏差が残るにもかかわらず,制御目的(39)が成り立つことがわかる。また,フィードフォーワードゲイン |
6.3 LQI設計
これまで,閉ループ系(18),(31),(46),(63)において,![]() 制御目的(39)が達成されたとき成り立つ式(40)より を得る( 偏差系E1: この両辺を微分すれば,状態変数の中の定数ベクトルを除くことができて 偏差系E2: を得る。さらに,式(36)と(38)をまとめた から式(40)を引いて,つぎの関係式が成り立つ。 これに基づいて,偏差系E2に座標変換を行えば 偏差系E3: を得る。ここで,つぎの関係式を用いた。 問6.2 問6.3 例えば,偏差系E1に対して,状態フィードバック を用いて,閉ループ系を安定化すれば, 以下に,偏差系E3をLQ制御により安定化して,積分動作を加えたオブザーバベース\,コントローラを構成する手順を示す。 アルゴリズム6.1 <LQI設計> 入力パラメータ1 出力パラメータ ステップ1 被制御変数の決定
ステップ2 偏差系の安定化 偏差系 を,状態フィードバック によるLQ制御で安定化する。その際,評価関数としては を用いる。ただし, さらに, ステップ3 オブザーバゲイン 例えば,アルゴリズム5.2のステップ2を用いる。 を解いて, ステップ4 LQIコントローラの構成
ただし この積分動作を加えたオブザーバベース\,コントローラを簡潔にLQIコントローラ}(LQI controller),これによる制御方式をLQI制御(LQ control with integral action)と呼ぶ。 問6.4 |