これまで,安定性の定義,安定化の可能性とその方策を学んできた。その結果,私たちは,閉ループ系の零入力応答を適切に安定化する,すなわち,ある初期状態から出発して速やかに零状態(平衡状態)にもっていくことはできる。この零入力応答は,適当な強さのインパルス入力に対する零状態応答に等しいことを思い出してほしい。
例えば,一定速度で回転しているモータを考え,これに瞬間的な負荷がかかって,その速度が乱されたとする。このときは,状態フィードバックによってもとの速度に復帰させることができる。しかし,モータで何か対象物を回転させるときは,モータ軸への持続的な負荷が生じ,極端な場合はモータは回転することさえできないであろう。同様に,飛行機,船舶,車などのビークルに強い向い風が吹けば定速を維持することは困難となるであろう。 また,モータやビークルでは,速度の設定値を変えることが制御の大切な役割なのに,そのための手段はまったく学んでいない。 したがって,これまでの知識だけでは多くの現実問題を解くことはできない。実際の問題では,必ずといっていいほど,さまざまな「定値外乱」の影響を受ける状況のもとで,「設定値」の保持や,ときには変更を要求されるからである。このような問題を解決するためには,これまでの制御方式に加えて,まず「積分動作」の導入による構造的な改良が必要となる。本章では,定値外乱の影響の除去や,設定値の変更に対応できるように,積分動作を入れて安定化を行う方策について学ぶ。その安定化に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 |
【本章のねらい】 ・1次系,2次系の状態フィードバックの最適設計を,リッカチ方程式を解いて行う。 ・ リッカチ方程式を解くMファイルを理解し,これを用いて高次系の状態フィードバックの最適設計を行なう。 ・ オブザーバベースト・コントローラの最適設計を,リッカチ方程式CAREを解いて状態フィードバックを,またリッカチ方程式FAREを解いてオブザーバゲインを求めて行う。 |
5.1 状態フィードバックの最適設計
可制御な![]() ![]() ![]() ![]() を安定化する状態フィードバック の決定法を改めて考える。一つの方法は,閉ループ系 の時間応答に関する評価規範として,2次形式評価関数 を設定し,これを最小化する問題を解くことである。ただし, の解 |
まず,1次系の場合を考える。
例題5.1 時定数 に対して,評価関数 を最小にするように,状態フィードバック の解
|
演習5.1 例題5.1において,,
とする。このとき,つぎの重み係数をもつ評価関数を最小にする
を決定せよ。
(1) ,
(2) ,
(3)
また,のとき,閉ループ系の時間応答をMATLABでシミュレーションせよ。
つぎに,2次系の場合を考える。
例題5.2 2次系 を安定化する状態フィードバック を最小にするように求めよ。 を要素ごとに整理して を得る。これは,まず第1式より ここで,(1)だけが, |
演習5.2 つぎの2次系について,例題5.2と同じ問題設定で解け。
例題5.3 2次系
を安定化する状態フィードバック を最小にするように求めると となることを示せ。 を要素ごとに整理して を得る。まず,第1式より と求まる。つぎに,第3式より となるが, でなければならない。さらに,第2式より となるが,
でなければならない。このとき |
演習5.3 2次系
について,例題5.3と同じ問題設定で解くと
のように与えられることを示せ。
ちなみに,例題5.3において,評価関数
を最小にするように求めると となる。演習5.3においては となる。これらから重み係数 |
さて,リッカチ方程式を計算機を用いて解くときは,ハミルトン行列![]() のように求めて,状態フィードバックゲインを によって得る。 |
例題5.4 リッカチ方程式![]() ![]() ![]() [F,p]=opt(A,B,C,Q,R) を準備し,例題5.2を解け。 %opt.m ここで,4行目でハミルトン行列の固有値問題を解き,安定固有値の添字を5行目の index に得て,リッカチ方程式の解 X を得ている。 例題5.2を解くには,MATLABにつぎのコマンドを与えればよい。 %lqr.m また, p が閉ループ系の固有値 eig(A-B*F) としてみれば確認できる。 |
演習5.4 演習5.2を,例題5.4にならって,MATLABで解け。
演習5.5 3次系
を安定化する状態フィードバックを,つぎの評価関数を最小にするように求めよ。
演習5.6 4次系
を安定化する状態フィードバックを,つぎの評価関数を最小にするように求めよ。
5.2 オブザーバベースト・コントローラの最適設計
オブザーバベースト・コントローラによる閉ループ系の時間応答に関する評価するために,つぎのブロック線図を考える。
ここで,新しい入力 この に対して,オブザーバベースト・コントローラ による閉ループ系は,次式で表される。 このインパルス応答行列 に関する評価規範として を設定し,これを最小化する問題を解くことができる( Step 1 行列方程式 の解 Step 2 行列方程式 の解 |
例題5.5 1次系![]()
において |
演習5.7 1次系に対するオブザーバベースト・コントローラを,
例題5.5のCAREにおいて,
,FAREにおいて
,
と選んで構成せよ。
例題5.6 LQG制御則を設計するためのMファイルを作成せよ。
[AK,BK,CK,pK,pcare,pfare] = optobc(A,B,C,CC,Q,R,BB,W,V) 解答 例題5.4で作成したMファイル opt.m を用いる。 %optobc.m |
演習5.8 演習5.7を,例題5.6で作成したMファイル optobc.m を用いて解け。
演習問題の解答
【演習5.1】
(1) ,
(2) ,
(3) 。
MATLABによるシミュレーションはつぎのように行えばよい。
%lqr1.m
T=1; K=1; a=-1/T; b=K/T; c=1; t=0:0.1:5; x0=1;
s0=ss(a,b,c,0); y0=initial(s0,x0,t);
f1=-1+sqrt(2); s1=ss(a-b*f1,b,c,0); y1=initial(s1,x0,t); u1=-f1*y1;
f2=-1+sqrt(3); s2=ss(a-b*f2,b,c,0); y2=initial(s2,x0,t); u2=-f2*y2;
f3=-1+sqrt(11); s3=ss(a-b*f3,b,c,0); y3=initial(s3,x0,t); u3=-f3*y3;
figure(1),subplot(121),plot(t,y0,t,y1,t,y2,t,y3),grid,title(‘y’)
figure(1),subplot(122),plot(t,u1,t,u2,t,u3),grid,title(‘u’)
【演習5.2】
(1)リッカチ方程式
を要素ごとに整理して
を得る。を満たす解は,
。
したがって
%[f,p]=opt([0 1;0 -1],[0;1],[1 0],1,1)
(2)リッカチ方程式
を要素ごとに整理して
を得る。を満たす解は,
。したがって
%[f,p]=opt([0 1;-1 0],[0;1],[1 0],1,1)
【演習5.3】
リッカチ方程式
を要素ごとに整理して
を得る。を満たすものを選ぶと
を得る。これらを用いて,と
の表現式が,例題??と同様にして得られる。
【演習5.4】
%lqr2.m
A=[0 1;0 -1]; B=[0;1]; C=[1 0]; Q=1; R=1;
[F,p]=opt(A,B,C,Q,R);
sys=ss(A-B*F,B,eye(2,2),0); x0=[1;0];
t=0:0.1:10; x=initial(sys,x0,t)’; y=C*x; u=-F*x;
figure(2),subplot(121),plot(t,y),grid,title(‘y’)
figure(2),subplot(122),plot(t,u),grid,title(‘u’)
(2)の場合,A=[0 1;-1 0] と書き換える。
【演習5.5】
%lqr3.m
A=[0 1 0;0 0 0;0 0 -1]; B=[0 0;1 -1;0 1]; C=[1 0 0;0 0 1];
[F,p]=opt(A,B,C,1,1)
【演習5.6】
%lqr4.m
A=[0 0 1 0;0 0 0 1;-1 1 0 0;1 -1 0 0]; B=[0;0;1;0]; C=[0 1 0 0];
[F,p]=opt(A,B,C,1,1)
【演習5.7】
CARE:に,
,
,
,
を代入して,
。
より
。
したがって,状態フィードバックゲインは,。
FARE:に,
,
,
,
を代入して,
。
より,
。
したがって,オブザーバゲインは,。
以上から,オブザーバベースト・コントローラが,つぎのように得られる。
【演習5.8】
%lqr5.m
[A
4 状態オブザーバと可観測性
【本章のねらい】 ・ 状態オブザーバを構成する。 ・ 可観測性と可検出性を判定する。 |
4.1 状態オブザーバ
いま制御対象は平衡状態にあるとし,何らかの要因でこれが乱されたとき,速やかに元の平衡状態に戻す手段として,![]() ![]() ![]() ![]() に対する状態フィードバック を考えた。しかしながら,現実には状態変数をすべて計測できる場合は少ない。したがって,状態フィードバックは実際には実施できるとは限らない。そこで,状態オブザーバとよばれる が考案されている。ここで,サイズ 実際,(4.3)から(4.1)の第1式を辺々引き算すると ここで,行列 となって, 一つのアプローチは,つぎの仮想的な を安定化する状態フィードバック を求めることである。実際,閉ループ系は となって,行列 したがって,前章の状態フィードバックの設計法をそのまま援用できるが,実際には次章のLQG制御問題として解く場合が多い。 例題4.1 2次系 に対する状態オブザーバ 行列 これらから,オブザーバゲイン したがって,求める状態オブザーバ 演習4.1 2次系 に対する状態オブザーバ 例題4.2 例題4.1において, %obs_err.m 演習4.2 演習4.1において, さて, のように実施するとき,オブザーバベースト・コントローラは となる。このとき,閉ループ系はつぎのように表される( このように閉ループ系の 例題4.3 1次系 に対する状態フィードバック と,状態オブザーバ を考える。このときオブザーバベースト・コントローラ による閉ループ系の すなわち で表される。この行列 より, 演習4.2 例題4.3において, |
4.2 可観測性と可検出性
どのような![]() 【可検出性の定義とその等価な条件】 定義D0: 状態オブザーバを構成可能 これらの条件の一つが成り立つとき 【可観測性の定義とその等価な条件】 定義O0: 任意有限時間の入力と出力から,初期状態を一意に決定可能 これらの条件の一つが成り立つとき 例題4.4 つぎの
(2) 可観測性行列は, (3) 可観測性行列は, 演習4.4 例題4.4における可観測性の判定を, |
4.3 状態オブザーバの低次元化
これまで,状態オブザーバの出力![]() ![]() ![]() ![]() が考案されている。ここで,サイズ を満足させることができれば が成り立ち,これから したがって を得る(テキスト「線形システム制御入門」の 4.3節参照)。特に, 例題4.5 1入力 に対して, ここで, と選べば,次式が成り立つ。 演習4.5 例題4.1の2次系に対する恒等関数オブザーバを,その固有値が 例題4.6 例題4.5の1入力 を推定する線形関数オブザーバの一つは,つぎに ただし, と選べば,次式が成り立つ。 演習4.6 例題4.1の2次系に対して,状態フィードバック |
演習問題の解答
【演習4.1】 行列![]() 行列
したがって,求める状態オブザーバ 【演習4.2】 %obs_err2.m 【演習4.3】 %observer_based_controller.m 【演習4.4】 したがって,この2次系は可観測である。 (2) したがって,この2次系は可観測ではない。 (3) したがって,この2次系は可観測ではない。 【演習4.5】 ただし, %obs_err3.m 【演習4.6】 ただし, %obs_err4.m |
3 状態フィードバックと可制御性
【本章のねらい】 ・ 状態フィードバックを設計する。 ・ 可制御性と可安定性を判定する。 |
3.1 状態フィードバック
いま制御対象は平衡状態にあるとし,何らかの要因でこれが乱されたとき,適当な手段を用いて,速やかに元の平衡状態に戻したい。そのような手段の一つとして,![]() ![]() ![]() ![]() に対する状態フィードバック を考える。このとき,(3.2)式を(3.1)式に代入して,閉ループ系 を得る。このブロック線図を次に示す。 上の制御目的が達成されるためには,閉ループ系の (3.4)「任意の が成り立ち,これは平衡状態 まず,1次系の状態フィードバックの例を考える。 例題3.1 時定数 に対して,新しい入力 を行うと閉ループ系の時定数は となる。これは時定数 演習3.1 1次系 演習3.2 例題2.5で得た図上( つぎに,2次系の状態フィードバックの例を考える。 例題3.2 減衰係数 に対して,新しい入力 を行うと,閉ループ系の減衰係数は これは減衰係数 演習3.3 例題2.6で得た図上( さて, また,行列 このとき,閉ループ系の または で与えられる(テキスト「線形システム制御入門」の3.3節参照)。(3.8})式と(3.9})式を比較すると,前者は 例題3.3 2次系 に対する状態フィードバック (1) 行列 したがって,ゲイン行列 (2) 行列 したがって,ゲイン行列 演習3.4 つぎの2次系に対する状態フィードバック (2) 最後に多入力をもつ ここで とおくと これから, ただし, 例題3.4 2入力2次系 に対するつぎの状態フィードバックによる閉ループ系おける行列 (1) (2) この特性多項式は したがって,行列 (2) 閉ループ系の この特性多項式は したがって,行列 演習3.5 例題3.4の2つの状態フィードバックは,公式(3.13})において (1) (2) と指定して得られることを,MATLABを用いて確かめよ。 |
3.2 可制御性と可安定性
どのような![]() 【可安定性の定義とその等価な条件】 これらの条件の一つが成り立つとき 【可制御性の定義とその等価な条件】 これらの条件の一つが成り立つとき 例題3.5 つぎの (1) (2) (3) 解答 (2) 可制御性行列は, (3) 可制御性行列は, 演習3.6 つぎの (1) (2) MATLABを用いて可制御性を判定するには,たとえば例題3.5(3)の %controllability_check.m ここで,4行目の結果がすべて真であれば,可制御である。 演習3.7 上のコマンドを用いて演習3.6の 例題3.6 例題3.5の したがって,この2次系は可安定である。 (2) したがって,この2次系は可安定ではない。 (3) したがって,この2次系は可安定である。 演習3.8 演習3.6の MATLABを用いて可安定性を判定するには,たとえば例題3.5(3)の %stabilizability_check.m 演習3.9 上のコマンドを用いて演習3.6の |
演習問題の解答
演習3.1 ![]() ![]() ![]() ![]() 演習3.2 たとえば,つぎのMファイルを実行すればよい。 %sf1.m 演習3.3 たとえば,つぎのMファイルを実行すればよい。 %sf2.m 演習3.4 行列 (1) したがって,ゲイン行列 (2) したがって,ゲイン行列 演習3.5 たとえば,つぎのMファイルを実行すればよい。 %sf_minputs.m 演習3.6 (1) 可制御性行列は, (2) 可制御性行列は, 演習3.7 Mファイル{\tt controllability\_check.m}のデータ{\tt A,B}の定義を次のように書き換える。 (1) A=[0 1 0;0 -1 1;0 0 -1]; B=[0;1;0]; 演習3.8 したがって,この3次系は可安定である。 (2) したがって,この3次系は可安定である。 演習3.9 Mファイル{\tt stabilizability\_check.m}のデータ{\tt A,B}の定義を,次のように書き換える。 (1) A=[0 1 0;0 -1 1;0 0 -1]; B=[0;1;0]; |
2 漸近安定性
【本章のねらい】 ・ 状態空間表現を用いて漸近安定性の判定を行う。 ・ 状態空間表現を用いて時間応答の計算を行う。 |
2.1 漸近安定性
いま制御対象は平衡状態(物理的な釣り合いの状態)にあるとし,何らかの要因でこれが乱されたとき,その振舞いはつぎの![]() ![]() ![]() ![]() このとき,もし元の平衡状態に戻るならば,その平衡状態は漸近安定,または の時間応答 となれば,漸近安定である。もし ならば,漸近安定ではない,すなわち不安定である。 例題2.1 1次自由系 演習2.1 つぎの1次系が漸近安定となる定数 ● で与えられる(テキスト「線形システム制御入門」の 定理2.2参照)。ここで, で定義される。たとえば
のように計算される(テキスト「線形システム制御入門」の 定理2.4参照)。これらを用いて,次の例題を考える。 例題2.2 つぎの2次自由系の時間応答を求め,漸近安定性を判定せよ。 解答 これより,つぎが成り立つ。 したがって,漸近安定である。 (2) 式(??)を用いて,時間応答は次式となる。 これより,つぎが成り立つ。 たとえば したがって,漸近安定でない。 (3) 式(??)を用いて,時間応答は次式となる。 これより,つぎが成り立つ。 したがって,漸近安定である。 演習2.2 つぎの2次自由系の時間応答を求め,漸近安定性を判定せよ。 一般に, 例題2.3 つぎの行列
解答 (1) 行列 の解として, (2) 行列 の解として, (3) 行列 の解として, 演習2.3 例題2.2と演習2.2の2次系の漸近安定性を,行列 MATLABを用いて漸近安定性を判定するには,たとえば例題2.3(3)に対しては,つぎのコマンドを与えればよい。 %stability_check.m |
SCILABを用いて漸近安定性を判定するには,たとえば例題2.3(3)に対しては,つぎのコマンドを与えればよい。
//stability_check.m
A=[0 1;1 -1]; n=size(A,1); //行列データの定義と次数の取得
poles=spec(A) //行列の固有値の計算
sum(real(poles)<0)==n //論理式による漸近安定性の判定
2.2 時間応答
![]() ただし, すなわち,時間応答は零入力応答と零状態応答の和となる(テキスト「線形システム制御入門」の定理2.3参照)。 以下では,簡単のために,1入力1出力の場合を考える。 は,ステップ応答と呼ばれる。したがって,ステップ応答はインパルス応答を積分して,逆にインパルス応答はステップ応答を微分して得られる。 まず,次式で表される1次系を考える。 例題2.4 1次系(??)のステップ応答を求めよ。 解答 インパルス応答は
で表わされる。または,インパルス応答を直接積分して 演習2.4 つぎの1次系のステップ応答を求めよ。 (1) 1次系(??)のステップ応答 において, すなわち,時定数は,応答が定常値 例題2.5 つぎの1次系のステップ応答をMATLABで計算し,図示せよ。 解答 MATLABに,つぎのコマンドを与えればよい。 %step_resp1.m |
SCILABに,つぎのコマンドを与えればよい。
//step_resp1.m
sys=syslin(‘c’,-1,1,1,0); //状態空間表現のデータ構造体の定義
t=0:0.1:5; //ステップ応答を計算する時刻の定義
plot(t,csim(‘step’,t,sys)), ,mtlb_grid //ステップ応答の計算と図示
演習2.5 例題2.5の図上に,時定数を求めるための補助線を引き,交点の座標をginput(1)を使って読み取れ。
つぎに,次式で表される2次系を考える。 ここで, これらに対応して, これらに対応して,インパルス応答 は,次式で与えられる。 これらに対応して,ステップ応答は,次式で与えられる。 特に, ただし このとき,ステップ応答の行き過ぎ時間 したがって,図上で第1番目のオーバーシュートの頂点の座標 例題2.6 つぎの2次系のステップ応答をMATLABで計算し,図示せよ。 解答 MATLABに,つぎのコマンドを与えればよい。 %step_resp2.m |
SCILABに,つぎのコマンドを与えればよい。
//step_resp2.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0];
sys=syslin(‘c’,A,B,C);
t=0:0.1:10; plot2d(t,csim(‘step’,t,sys)), mtlb_grid
演習2.6 例題2.6の図上で,第1番目のオーバーシュートの頂点の座標をginput(1)を使って読み込み,固有角周波数と減衰係数を同定せよ。
さて,もう一つ重要な 例題2.7 つぎの1次系の時間応答をMATLABで計算し,図示せよ。 ただし, 解答 MATLABに,つぎのコマンドを与えればよい。 %sin_resp.m |
SCILABに,つぎのコマンドを与えればよい。。
//sin_resp.m
sys=syslin(‘c’,-1,1,1,0); x0=1;
t=0:0.05:10; u=sin(10*t); //入力を指定
y=csim(u,t,sys,x0); //時間応答の計算
plot2d(t,y), mtlb_grid //時間応答の図示
演習2.7 例題2.7の図上に,零入力応答と零状態応答を重ねて表示せよ。
この例が示すように, ここで,周波数伝達関数 で与えられる。古典制御で用いられるボード線図は,角周波数毎にゲイン 例題2.8 つぎの1次系のボード線図をMATLABで図示せよ。 解答 MATLABに,つぎのコマンドを与えればよい。 %bode_diag.m |
SCILABに,つぎのコマンドを与えればよい。
//bode_diag.m
sys=syslin(‘c’,-1,1,1,0);
fmin=1e-1/(2*%pi); fmax=1e1/(2*%pi); //周波数範囲の指定
bode(sys,fmin,fmax) //ボード線図の計算と図示
演習2.8 例題2.6の2次系のボード線図をMATLABで図示せよ。
最後に,自由系の時間応答(初期値応答)の計算法を示す。 例題2.9 つぎの1次自由系の時間応答をMATLABで計算し,図示せよ。 解答 MATLABに,つぎのコマンドを与えればよい。 %free_resp.m |
SCILABに,つぎのコマンドを与えればよい。
//free_resp.m
sys=syslin(‘c’,-1,0,1,0); x0=1;
t=0:0.1:5; u=zeros(1,length(t)); //零入力を指定
y=csim(u,t,sys,x0); //初期値応答の計算
plot2d(t,y), mtlb_grid //初期値応答の図示
演習2.9 例題(2.6)の2次系のインパルス応答をMATLABで図示せよ。 |
演習問題の解答
演習2.1
(1) 漸近安定であるための条件は, 演習2.2 これより,つぎが成り立つ。 したがって,漸近安定でない。 (2) (??)式を用いて,時間応答は次式となる。 これより,つぎが成り立つ。 したがって,漸近安定である。 (3) (??)式を用いて,時間応答は次式となる。 これより,つぎが成り立つ。 したがって,漸近安定でない。 演習2.3 例題1.2について: 演習1.2について: 演習2.4 (1) 演習2.5 定常ゲインは1.したがって,横線 %step_resp1_cont.m |
//step_resp1_cont.m
plot2d([0 5],(1-exp(-1))*[1 1]) %レベル1-1/e=0.632の表示
w=locate(1)
演習2.6
%step_resp2_cont.m |
//step_resp2_cont.m
w=locate(1); Tp=w(1); p0=w(2)-1;
zeta=sqrt(log(p0)^2/(log(p0)^2+%pi^2));
wn=sqrt(log(p0)^2+%pi^2)/Tp;
演習2.7
%sin_resp_cont.m |
//sin_resp_cont.m
x0=1; u=zeros(1,length(t)); y1=csim(u,t,sys,x0); %零入力応答の計算
x0=0; u=sin(10*t); y2=csim(u,t,sys,x0); %零状態応答の計算
hold on, plot2d(t,y1,’g’,t,y2,’r’)
演習2.8
%bode_diag2.m |
//bode_diag2.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0]; sys=syslin(‘c’,A,B,C,0);
fmin=1e-1/(2*%pi); fmax=1e1/(2*%pi);
bode(sys,fmin,fmax)
演習2.9
%impulse_resp.m |
//impulse_resp.m
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0]; sys=syslin(‘c’,A,B,C,0);
t=0:0.1:5; u=zeros(1,length(t));
y=csim(u,t,sys,B);
1 状態空間表現
【本章のねらい】 ・状態空間表現を導き,その構造をブロック線図で表す。 ・状態空間表現に対する操作として座標変換と直列結合を行う。 |
1.1 状態空間表現の導出とブロック線図
古典制御では,主に1入力1出力をもつ線形ダイナミカルシステム(線形系)の入出力特性に注目し,これを伝達関数で表した。一方,現代制御では,多入出力をもつ線形系において,「まず入力が状態に影響を及ぼし,つぎに状態の一部が出力として現れる」と考え,前者を状態方程式で,後者を出力方程式で表す。すなわち,状態方程式と出力方程式をペアにした状態空間表現
を求めることが出発点となる。ここで,実ベクトル 以下では,(1.1)式の状態空間表現で表される ここで,(1)は直達項 ここでは,制御対象のダイナミクスは連立された線形常微分方程式で表されるとし,これから連立1階線形微分方程式の行列表現を導いて状態方程式を得る。 例題1.1 つぎの運動方程式を考える。 ここで, これを行列表現して, 演習1.1 つぎの運動方程式から2次自由系の状態方程式を導出せよ。 演習1.2 つぎの連成した運動方程式から, 例題1.2 つぎの運動方程式を考える。 ここで, これを行列表現すると, (1) (2) 演習1.3 例題1.2の(2)を考える。角速度を 演習1.4 つぎの2階線形常微分方程式から, MATLABを用いて状態空間表現 sys を定義するには,たとえば例題1.2の(1)で, %state_space.m ここで, sys.a,sys.b,sys.c,sys.d を用いる。たとえば sys.a(2,2)=-0.1 また, %state_space_cont.m もし状態方程式だけを指定する場合は,C=[]; D=[]; または C=eye(size(A)); D=0; とする。 |
SCILABを用いて状態空間表現 sys を定義するには,たとえば例題1.2の(1)で,の場合,つぎのコマンドを与えればよい。
//state_space.m
A=[0 1;0 -0.01]; B=[0;1]; C=[1 0]; D=0;
sys=syslin(A,B,C,D)
ここで,行列,
行列,
行列,
行列を参照するには,それぞれ
sys.a,sys.b,sys.c,sys.d
を用いる。たとえば行列の
要素を-0.1に変更するには,つぎのコマンドを与えればよい。
A(2,2)=-0.1; sys.a=A
また,行列,
行列が存在しない自由系 sys0 を定義するには,つぎのコマンドを与えればよい。
//state_space_cont.m
A=[0 1;0 -0.01]; B=[]; C=[1 0]; D=[];
sys0=syslin(A,B,C,D)
もし状態方程式だけを指定する場合は,C=[]; D=[]; または C=eye(size(A)); D=zeros(size(A,1),size(B,2)); とする。
さて,状態空間表現のブロック線図を作成することにより,どのように入力変数から状態変数を経て出力変数につながるかを表すことができる。これは,Simulinkなどを用いた時間応答シミュレーションに役に立つ。
例題1.3 つぎの1次系の状態空間表現をブロック線図で表せ。 解答 積分器の出力を 演習1.5 つぎの1次系の状態空間表現をブロック線図で表せ。 例題1.4 つぎの2次系の状態空間表現をブロック線図で表せ。 解答 演習1.6 つぎの2次系の状態空間表現をブロック線図で表せ。 演習1.7 演習1.2 で得られた状態空間表現について,ブロック線図を描け。 |
1.2 状態空間表現の座標変換と直列結合
![]() に対して,座標変換 を行うと,つぎの状態空間表現を得る。 ただし,変換後の係数行列は次式で与えられる。 例題1.5 2次系の状態空間表現 に対して,つぎの座標変換を行え。 解答 状態空間表現に を代入して この状態方程式の左から をかけて,つぎの状態空間表現を得る。 演習1.8 2次系の状態空間表現 に対して,つぎの座標変換を行え。 演習1.9 2次系の状態空間表現 に対して,どのような座標変換 を行なえば,出力方程式をつぎの形にできるか。 さて,つぎの2つの状態空間表現を考える。
例題1.6 1次系の状態空間表現 の入力に,むだ時間を1次系として近似したときの状態空間表現 の出力を結合して得られるシステムの状態空間表現を求めよ。 に と合わせて のように得られる。また,出力方程式は のように得られる。 演習1.10 2次系 の入力に,むだ時間を2次系として近似したときの状態空間表現 の出力を結合して得られるシステムの状態空間表現を求めよ。 MATLABを用いて座標変換を行うために,たとえば演習1.8で, %coordinate_transformation.m |
SCILABを用いて座標変換を行うために,たとえば演習1.8で,の場合,つぎのコマンドを与えればよい。
//coordinate_transformation.m
om=1; zeta=0.01;
A=[0 1;-om^2 -2*zeta*om]; B=[0;om^2]; C=[1 0]; D=0;
sys1=syslin(‘c’,A,B,C,D);
T=[1 0;-zeta*om om*sqrt(1-zeta^2)];
sys2=ss2ss(sys1,T)
つぎに,MATLABを用いて直列結合を行うためには,たとえば演習1.10で![]() %serial_connection.m ここで, sys1 と sys2 の順番に注意する。 最後に,状態空間表現から伝達関数行列表現(8章の(8.2)式を参照。)を求めるには,コマンド tf を用いる。たとえば,上のむだ時間を2次系として近似したときの状態空間表現 sys2 の伝達関数を求めるには,コマンド tf(sys2) を与えればよい。 |
つぎに,SCILABを用いて直列結合を行うためには,たとえば演習1.10での場合,つぎのコマンドを与えればよい。
//serial_connection.m
A1=[0 1;0 0]; B1=[0;1]; C1=[1 0]; D1=0;
sys1=syslin(‘c’,A1,B1,C1,D1);
L=1;
A2=[0 1;-12/L^2 -6/L]; B2=[0;1]; C2=[0 -12/L]; D2=1;
sys2=syslin(‘c’,A2,B2,C2,D2);
sys=sys1*sys2
ここで, sys1 と sys2 の順番に注意する。
最後に,状態空間表現から伝達関数行列表現(8章の(8.2)式を参照。)を求めるには,コマンド ss2tf を用いる。たとえば,上のむだ時間を2次系として近似したときの状態空間表現 sys2 の伝達関数を求めるには,コマンド ss2tf(sys2) を与えればよい。
演習問題の解答
演習1.1 ![]() ![]() 演習1.2 または 演習1.3 一定のトルク 演習1.4 または 演習1.5 演習1.6 演習1.7 演習1.8 状態空間表現に を代入して この状態方程式の左から をかけて,つぎの状態空間表現を得る。 演習1.9 を満足させればよいので,たとえば 演習1.10 |
UV Control
●Drone becomes to be very popular tool to take a video from the sky. It is a surprise that we can control its motion with 6 degrees of freedom so smartly. What makes it possible?
In general, a drone has 4 propellers as shown. This means that 4 degrees of freedom can be controlled. They should be the heave and the roll
, the pitch
, the yaw
. Assume that rotational speeds of 4 propellers can be set to the specified values,
,
,
,
.
Then we can produce 1 force and 3 torques
,
,
to control the heave
and the roll
, the pitch
, the yaw
respectively by combining the 4 propellers’ thrusts as follows:
.
This means that the MIMO dynamics is decoupled into 4 SISO dynamics. We will employ a PID controller corresponding to each SISO dynamics. Therefore it is the static decoupling to make the control system design easier.
●Many underwater vehicles have been developed for various purposes. For example, we can find them as follows.
Note that 4 to 8 thrustors are equipped to realize the static decoupling. The number depends on motion necessary to achieve the mission of UVs. Most control systems will be designed in the same way as drone.
●Prof. Koterayama and Prof. Nakamura developed the following UV called as DELTA.
The mission of DELTA is for wide-area survey. It works in a towing mode for wade scanning, and in a self-propulsive mode for local investigation. The detail is discussed in the paper:
Masahiko NAKAMURA, Hiroyuki KAJIWARA, Wataru KOTERAYAMA:
Development of an ROV operated both as towed and self-propulsive vehicle
Ocean Engineering, vol.28, no.1, pp.1-43, 2000.
DELTA has only two thrustors. So only the heave and the yaw
are controlled. However it is necessary to control the roll
and the pitch
to keep the equilibrium state. Such a control system can’t be realized by PID control. The following control system is designed by LQG approach.
For any UV, the collision avoidance is an important function. For example, a deep diving will be necessary to avoid an obstacle as follows.
In order to change the depth in DELTA, there is no way except decreasing the thrust. This means the large speed variation, by which hydrodynamic force will be varied largely. So we need a robust controller or a scheduling controller. Such a control scheme is depicted in the following.
Ship Control
●For the directional control of a ship, consider the following NOMOTO model.
where and
We assume the time lag to take account of the delay to get the rudder effect. We use the same notation for the ship length
assuming no confusion. The time constant
and gain constant
are varied according to the variation of forward speed
. From the following equation, it is clear that the rudder effect is proportional to the square of the forward speed.
Given a nominal forward speed , the following equation holds.
where
●Zig-Zag Test: Neglecting the time lag and the forward speed variation, a simulation example of the Zig-Zag test is given as follows.
From this response, we used to obtain both time constant and gain constant
. However, the response is not always the step response by which a linear system is completely characterized. As a ship has dynamics of an astatic (no-fixed-position) system, the Zig-Zag test is a compromise way for its identification.
We should notice that if we apply the unity feedback as shown in the above we can obtain the step response and identify from
by the following formula.
●PID control: Under the nominal forward speed , neglecting the time lag
, consider the following NOMOTO model.
Then PID control is presented as follows.
Although we used to tune the P gain , the D gain
, the I gain
on the site, here we want try to determine them based on the NOMOTO model. The closed-loop system by PID control is given by
Here assuming , we have
Therefore, we have another configuration of PID control system.
Letting , the following state equation is obtained.
Then PID control is a state feed back with an integral action as follows.
Therefore, after specifying the desired first overshoot , we calculate the corresponding to
and then determine PID gains by
Here we try at first, and then tune it by observing the disturbance rejection.
The CLPS by PID control is presented by
Here, assuming , we differentiate it and obtain
From the CLPS stability, we have
This means that the integral action is estimating the unknown disturbance.
The following simulation shows the CLPS responses by PD control. It is observed that the disturbance rejection is not sufficient because of the lack of integral action.
The following simulation shows the CLPS responses by PID control. Here . It is observed that the disturbance rejection is satisfied but the transient response is fractured a little bit being off expectation.
●LQI control: We will try to determine the PID gains in the framework of LQI control. Consider the following error system:
For the error system, we will minimize the following criterion function:
Solving this problem, the PID gains are obtained as follows:
In the case of , we have the following simulation result, which seems to be very nice. Note that there is no feedforward term compared with PID control.
However, in the case of having the time lag , the CLPS is unstable as follows:
●LPV control:
Assuming the following speed variation, the responses of CLPS by unity feedback vary largely.
Consider the following NOMOTO model based on a nominal forward speed .
Adding the rudder dynamics,
we have the following state-space representation.
Note that it is possible to have the following polytopic representation.
where
Defining ,
Based on this model, the framework of LPV control is proposed. LPV control can cover the variation included in the triangle region with the vertexes ,
and temporal vertex
.
Constitute the following 2-port system.
For this LPV model, design the following LPV controller.
Form this, the following output feedback is obtained.
We can obtain control by fixing as
. The following simulation shows the CLPS responses by
control. It is observed that the responses are slightly varied according to the three kinds of speed variation.
On the other hand, the following simulation shows the CLPS responses by the LPV control. It is observed that the responses are almost same in spite of the three kinds of speed variation.
LQG Control
1. Optimal Control for MIMO system
Given an nth-order system (satisfying controllability and observability)
(1)
and the stabilizing state feedback
(2)
the closed-loop system is represented by
(3)
The behaviors of the state and the input are given by
(4)
and
(5)
respectively. Then consider a problem to determine to minimize the criterion function
(6)
The criterion function can be written as
(7)
Note that we have the following constraint on :
(8)
It is known that holds because of the closed-loop stability. Taking account of all zero-input responses, instead of (7), we consider to minimize
(9)
Therefore, we will minimize
(10)
using undetermined multiplier and the stability constraint (8). As the necessary conditions, we have
(11)
(12)
(13)
Substituting into (13),
(14)
That is, we have the Algebraic Riccati Equation (ARE) on :
(15)
By solving this, we can obtain and then
by
(16)
The control methodology is called as LQ Control.
The sufficiency is discussed as follows. The following expression can be derived:
(17)
In fact, substituting into the right hand side and using the Riccati equation,
(18)
Integrating the both side,
(19)
As ,
(20)
Therefore, it is shown that minimizes the criterion function.
Exercise 1
Given , obtain the solution
of the Riccati equation
and calculate
.
Expanding the Ricatti equation
(21)
we have
(22)
There are the two solutions on from
, the two solutions on
from
, the one solution
from
. Therefore, we have the four kinds of solution
as follows:
(23)
The only (1) satisfies . Therefore we have
(24)
●How to solve ARE
Given the Riccati equation , consider the Hamilton matrix
(25)
The eigenvalues of the Hamilton matrix with size are distributed symmetrically to not only the real axis but also the imaginal axis. So there are
stable eigenvalues and
unstable eigenvalues. The eigenvectors corresponding to
stable eigenvalues
are obtained as follows:
(26)
Based on this, we can obtain as
(27)
A program by SCILAB to solve the Riccati equation is given as follows.
//opt.sce
function [F,p]=opt(A,B,C,Q,R)
W=R\B’; [V,R]=spec([A -B*W;-C’*Q*C -A’]);
p=diag(R); [dummy,index]=gsort(real(p));
n=size(A,1); j=index(n+1:n+n);
p=p(j); V1=V(1:n,j); V2=V(n+1:n+n,j);
X=real(V2/V1); F=W*X;
endfunction
//eof
Solve the Riccati equation in Exercise 1 by using the above program.
A=[0 1;0 0]; B=[0;1]; C=eye(2,2);
Q=diag([1 1]); R=1;
[F,p]=opt(A,B,C,Q,R)
poles=spec(A-B*F)
Exercise 2
Consider the following spring-connected carts as a control object.
The motion is governed by
(28)
where is a spring constant with the range
. The state equation and output equation are given by
(29)
(30)
The control purpose is to regulate the zero-input response under the initial condition:
(31)
by using the state feedback:
(32)
In order to determine the state feedback gain , for
fixed to an appropriate nominal value
, we will minimize the following criterion function:
(33)
that is
(34)
For example, the closed-loop zero-input response is simulated under the following assumptions:
1) ,
,
,
2) ,
,
,
().
Appendix 1
Check the following properties on matrix trace.
(35)
(36)
(37)
(38)
where for
. In fact,
(39)
(40)
(41)
(42)
LQG Control
1. Optimal Control for a SISO system
Given a 1st-order system with an input and an output:
(1)
and its stabilizing state feedback:
(2)
the closed-loop system is represented by
(3)
The state behavior and the input behavior
are given by
(4)
and
(5)
respectively. Then consider a problem to determine to minimize a criterion function
(6)
The first term of the criterion function is calculated as
(7)
and the second term of the criterion function is calculated as
(8)
Therefore, the criterion function can be written as
(9)
Minimizing is equivalent to minimizing
(10)
Differentiating by brings
(11)
Therefore
(12)
As must satisfy
, we have
(13)
This is uniquely determined because is downward convex as follows:
(14)
The closed-loop system by the is given by
(15)
In the case of ,
(16)
which means that the new time constant is shorter than the original time constant .
Exercise 1
Letting ,
,
, consider the following cases:
Case#1:
Case#2:
Case#3:
Then simulate the behaviors of and
as follows.
Question:
Why do we use not only but also
in the criterion function.
Answer:
Check that is downward convex, and takes the minimum value at
as follows:
(17)
(18)
For example, letting , for
and
, the overview of
,
,
are drown as follows.
Here the symbol “o” shows the minimum of . Note that
is necessary to make
downward convex.
Appendix
In order to extend the above discussion to MIMO systems, we should be familiar with Lagrange’s method of undetermined multipliers. We will rewrite the above discussion by using this method as follows.
From (10), note that the constraint on is given by the following Lyapnov’s equation
(19)
Here holds because of
. Therefore, instead of minimizing
, we will minimize
(20)
using undetermined multiplier and the stability constraint (19). As the necessary conditions, we have
(21)
(22)
(23)
Substituting into (23),
(24)
That is, we have the second-order equation on
(25)
which is called as Ricatti equation. By solving this, is obtained by
(26)
and is given by
(27)
Lastly consider the following matrix:
(28)
which is called as Hamilton matrix. The stable eigenvalue is given by
(29)
from
(30)
The corresponding eigenvector is obtained as
(31)
Note that
(32)
and
(33)