集中系と分布系のフィードバック制御 佐野英樹 · 1.2...
TRANSCRIPT
集中系と分布系のフィードバック制御
佐野英樹
情報知能工学総論 平成25年6月5日
1
1. 1入力系
入力をもつ常微分方程式系
dx(t)
dt= Ax(t) + bu(t), x(0) = x0 (1)
を考えよう. ここで
• Aは n × n行列, b ∈ Rn
• x(t) ∈ Rnは状態変数ベクトル, u(t) ∈ Rは入力変数
※ 以下,dx(t)
dt= x(t),
d2x(t)
dt2= x(t) などと書いたりする.
※ システム(1)は1入力系であるが, b ∈ Rnが n × m行列 Bに置き換わったときは m入力系となる.
2
1.1 単振動系(空気抵抗がない場合)
図1に示すようなバネによる振動を取り上げよう. ここでは, 台車の質量を m, バネ定数を k > 0とし, 空気抵抗がないものと仮定する. バネの自然な状態からの伸びを ξとするとき, |ξ|が小さいときは Hooke の法則により, 伸び ξに比例する復元力 −kξが生ずる. 台車に加わる外力 uを制御入力とすると, この系の運動方程式は
mξ = u − kξ (2)
となる. ここでx1 := ξ, x2 := ξ
とおく. このときx1 = ξ = x2
であることに注意して,状態変数ベクトルを[x1 x2
]T と選ぶと, (2)
式から次式を得る.
3
d
dt
[x1
x2
]=
[0 1
− km 0
] [x1
x2
]+
[01m
]u (3)
4
1.2 単振動系(空気抵抗がある場合)
図2に示すように, 単振動系において空気抵抗がある場合を考えよう. 振動の速さがあまり大きくないときは, 空気抵抗は速度に比例する. したがって,この抵抗を考慮に入れると, 台車に加わる力は全体で u − kξ − aξ (a > 0)となるので, この系の運動方程式は
mξ = u − kξ − aξ (4)
となる. ここでx1 := ξ, x2 := ξ
とおき,空気抵抗がない場合と同様に状態変数ベクトルを[x1 x2
]Tと選ぶと, (4)式から次式を得る.
d
dt
[x1
x2
]=
[0 1
− km − a
m
] [x1
x2
]+
[01m
]u (5)
5
2. 数学的準備
2.1 線形代数
1次独立n次元ベクトル空間における零ベクトルでないベクトル ζ1, ζ2, . . . ,
ζmがつぎの条件を満たせば, 1次独立であるという.
p1, p2, . . . , pm : スカラー, p1ζ1 + p2ζ2 + · · · + pmζm = 0
ならば p1 = p2 = · · · = pm = 0
• ζ1, ζ2, . . . , ζmが1次独立でないとき, ζ1, ζ2, . . . , ζmは1次従属であるという.
6
ランクn × m行列 Aの行ベクトルのうち, 1次独立なものの個数を行列 A
のランク(または階数)といい, rank Aと記す. これは, 列ベクトルについて考えても同じ値を与えるので, rank Aはその列ベクトルのうち, 1次独立なものの個数と言い換えることができる.
• n × m行列 Aに対して, 明らかに rank A ≤ n, rank A ≤ mが成り立つ.
•行列 Aが n × nのサイズのとき, det A �= 0であることと rank A
= nであることは等価である.
7
固有値n × n行列 Aの固有値 λ, 固有ベクトル ζとは
Aζ = λζ, ζ �= 0
を満たすものである.
固有値 λは, 変数を sとする n次元代数方程式
det(sI − A) = 0
の根として与えられる. したがって, 固有値は重複度を込めて n個存在する. この n次元代数方程式を Aの特性方程式あるいは固有方程式, 永年方程式と呼ぶ.
任意の正則な行列 Tを用いて構成される行列 T−1ATも,転置行列ATも Aと同じ固有値をもつ.
8
2.2 システムの解
システム
dx(t)
dt= Ax(t) + bu(t), x(0) = x0 (6)
の解を求めよう. Aは n×n行列, b ∈ Rnであり, x(t) ∈ Rn, u(t) ∈ R
である.
まずはじめに, x(t) ∈ R, u(t) ∈ Rの場合の
dx(t)
dt= ax(t) + bu(t), x(0) = x0 (7)
の解を定数変化法を用いて求めよう. (7)式で入力を u(t) = 0 (t ≥ 0)
とおいたdx(t)
dt= ax(t) (8)
9
を考える. この微分方程式は∫1
xdx =
∫adt
のように変数を分離して両辺を積分することにより
log |x| = at + c1 (c1は任意定数)
すなわち
x(t) = ±eat+c1 = eat(±ec1) = eatc (cは任意定数)
と解ける. ここで, この定数 cを tの関数と考えて
x(t) = eatc(t) (9)
とおき, これを(7)式に代入するとdx(t)
dt= aeatc(t) + eatdc(t)
dt= aeatc(t) + bu(t)
すなわちdc(t)
dt= e−atbu(t)
10
この式の両辺を 0から tまで積分すると, c(t)は
c(t) = c(0) +
∫ t
0e−aτbu(τ )dτ
と求まる. これを(9)式に代入すると
x(t) = eat(c(0) +
∫ t
0e−aτbu(τ )dτ ) = eatc(0) +
∫ t
0ea(t−τ )bu(τ )dτ
(10)
(7)式の初期値は x(0) = x0であるので, c(0) = x0となる. したがって, (7)式の解は
x(t) = eatx0 +
∫ t
0ea(t−τ )bu(τ )dτ (11)
と求まる.
なお, eatのテイラー展開は以下のとおりである.
eat = 1 + at +a2t2
2!+
a3t3
3!+ · · · =
∞∑i=0
aiti
i!
11
つぎに x(t) ∈ Rn, u(t) ∈ Rの場合の
dx(t)
dt= Ax(t) + bu(t), x(0) = x0 (12)
について考えよう. 行列 Aに対して行列指数関数 etAというものを
etA := I + tA +t2
2!A2 +
t3
3!A3 + · · · =
∞∑i=0
ti
i!Ai
によって定義すれば, (12)式の解は
x(t) = etAx0 +
∫ t
0e(t−τ )Abu(τ )dτ (13)
で与えられる.
12
3. システムの安定性
システムdx(t)
dt= Ax(t) + bu(t), x(0) = x0 (14)
を考える. ここで, Aは n × n行列, b ∈ Rnである.
このシステムにおいて,入力を零としたときの状態変数ベクトルはx(t) = etAx0で与えられる. この x(t)のノルム ‖x(t)‖ =
√xT (t)x(t)
が,いかなる初期値 x0に対しても時間の経過とともに 0に収束するとき, システム(14)は漸近安定であるという.
すなわち, 任意の初期値 x0に対してdx(t)
dt= Ax(t), x(0) = x0
の解 x(t)が limt→∞‖x(t)‖ = 0となるとき,システム(14)は漸近安定で
ある.
13
したがって, この安定性は入力には依存せず, 行列 Aのみに関係する概念である.
【定理3.1】 システム (14)が漸近安定であるための必要十分条件は,
Aの固有値の実部がすべて負であることである.
14
4. 可制御性
システム
dx(t)
dt= Ax(t) + bu(t), x(0) = x0 (15)
を考える. ここで, Aは n × n行列, b ∈ Rnである.
【定義4.1】 システム (15)において, 任意の初期状態 x(0) = x0が与えられたとき, ある有限時刻 t1まで適当な入力
u[0,t1]= {u(t); 0 ≤ t ≤ t1}
を加えることによって, x(t1) = 0とすることができるならば, システム(15)は可制御であるという.
※ 可制御性は A, bのみに依存するので, (A, b)は可制御であるともいう.
15
【定理4.1】 つぎの三つの主張は等価である.
(C1) (A, b)が可制御である.
(C2) W (0, t1) :=
∫ t1
0e−tAbbT e−tAT
dt が正則である.
(C3) V :=[b Ab A2b · · · An−1b
]とするとき, rank V = n
(すなわち, V は正則)である. この n × n行列 V を可制御行列という.
16
5. 状態フィードバック制御
システムdx(t)
dt= Ax(t) + bu(t), x(0) = x0 (16)
を考える. ここで, Aは n × n行列であり, b ∈ Rnである.
このシステムが任意の初期状態 x(0) = x0にあるとき, この状態を速やかに零に収束させるフィードバック系の構成を考える. このような系はレギュレータと呼ばれている. ここでは, 状態変数ベクトル x(t) =
[x1(t) x2(t) · · · xn(t)
]Tの各成分が直接測定可能とする.
システム(16)に対してつぎの制御則を考えよう.
u(t) = −fTx(t) (17)
ここで f ∈ Rnである. このような制御を状態フィードバック制御という.
17
(17)式を(16)式に代入すると, 閉ループ系
dx(t)
dt= (A − bfT )x(t), x(0) = x0 (18)
が得られる(図3参照).
以下に示すように, (A, b)が可制御のときには, fTを適当に選んでA−bfTの固有値を任意に指定できる. ただし, 複素数の場合には必ず共役な対とする. 特に複素左半平面上に配置すれば, 任意の x0 ∈Rnに対して ‖x(t)‖ → 0 (t → ∞)となることが, 定理3.1より保障される.
18
5.1 極配置のアルゴリズム
(A, b)が可制御のときに, A − bfTの固有値を
σ(A − bfT ) = {μ1, μ2, . . . , μn}に設定する fTを求めるアルゴリズムはつぎのとおりである.
(1)特性多項式
det(sI − A) = sn + αn−1sn−1 + αn−2s
n−2 + · · · + α1s + α0
を計算し, その係数 αn−1, . . . , α1を用いて, 行列
T := V
⎡⎢⎢⎢⎢⎢⎢⎢⎣
1 αn−1 · · · · · · α2 α1
0 1 · · · · · · α3 α2... ... ... ...
0 0 · · · · · · αn−1 αn−2
0 0 · · · · · · 1 αn−1
0 0 · · · · · · 0 1
⎤⎥⎥⎥⎥⎥⎥⎥⎦
19
を定める. ただしV :=[b Ab · · · An−1b
].
(2)設定したい固有値をもつ特性多項式の係数を求める.
det(sI − A + bfT )
= (s − μ1)(s − μ2) · · · (s − μn)
= sn + γn−1sn−1 + γn−2s
n−2 + · · · + γ1s + γ0
(3) σ(A − bfT ) = {μ1, μ2, . . . , μn}とするベクトル fTは
fT =[γn−1 − αn−1 γn−2 − αn−2 · · · γ0 − α0
]T−1
で与えられる.
20
【注意】 システム(16)は1入力系であるが, m入力系のときには (A,
B)が可制御のとき, m × n行列 Fを適当に選んで A − BFの固有値を任意に指定できる. ただし, そのような Fを求めるアルゴリズムを述べるためには, Kalman の正準構造定理や Luenberger の第2可制御正準形に関する予備的な準備が必要になるので, ここでは省略する. (MATLAB には, Fを計算するための便利なコマンド“place” が用意されている.)
【注意】 A − bfTの固有値の実部がすべて負になるような fTが存在するとき, (A, b)は可安定であると定義される. この定義と極配置のアルゴリズムから, (A, b)の可制御性から可安定性が結論できる.
21
6. 単振動系への応用
6.1 単振動系(空気抵抗がない場合)
この系はd
dt
[x1
x2
]=
[0 1
− km 0
] [x1
x2
]+
[01m
]u (19)
のように表現されたので
A =
[0 1
− km 0
], b =
[01m
]
となる. Aの特性方程式は
det(sI − A) = s2 +k
m= 0
となり, これを解くと
s = ±√
k
mi
22
となるので, 定理3.1よりシステム(19)は漸近安定でない.
可制御行列を計算すると
V =[b Ab
]=
[0 1
m1m 0
]
となり正則なので,定理4.1より (A, b)は可制御となる. システム(19)
は状態フィードバック制御を用いて安定化できる.
23
6.2 単振動系(空気抵抗がある場合)
この系はd
dt
[x1
x2
]=
[0 1
− km − a
m
] [x1
x2
]+
[01m
]u (20)
のように表されたので
A =
[0 1
− km − a
m
], b =
[01m
]
となる. Aの特性方程式
det(sI − A) = s2 +a
ms +
k
m= 0
を解くと
s =1
2{− a
m±
√(a
m)2 − 4
k
m}
となるので,これらは √の中の正負にかかわらず複素左半平面上に位置する. したがって, システム(20)は漸近安定となる.
24
可制御行列を計算すると
V =
[0 1
m1m − a
m2
]
となり正則なので, (A, b)は可制御となる. システム (20)は状態フィードバック制御を用いてシステムの安定性の度合いを高めることができる.
25
7. 倒立振子系への応用
7.1 倒立振子系(質量が一様な棒が1本ある場合)
図4に示すような質量 Mの台車に, 長さが 2lで質量が mの棒が取り付けられている倒立振子系を考える. 台車に働く力 uを制御入力とする. 振子の重心の座標は (ξ + l sin ϕ, l cos ϕ)となるので, 振子および台車の運動方程式はつぎのようになる.
振子の回転方向 : Jd2ϕ
dt2= V l sin ϕ − Hl cos ϕ (21)
振子の鉛直方向 : md2
dt2(l cos ϕ) = V − mg (22)
振子の水平方向 : md2
dt2(ξ + l sin ϕ) = H (23)
台車の水平方向 : Md2ξ
dt2= u − H (24)
26
ここで, Jは長さ 2lの棒の重心回りの慣性モーメントで J = ml2/3,
振子と台車の接合部分に働く水平抗力を H ,鉛直抗力を V としている. ここで, (21)~(24)式から Hと V を消去すると次式が得られる.
(J + ml2)ϕ + (ml cos ϕ)ξ = mgl sin ϕ (25)
(M + m)ξ + (ml cos ϕ)ϕ = (ml sin ϕ)ϕ2 + u (26)
u = 0に対する平衡点 ϕ = 0の近傍で sin ϕ ∼= ϕ, cos ϕ ∼= 1 とし, さらに 2次以上の項を無視して線形化すると次式が得られる.
(J + ml2)ϕ + mlξ = mglϕ (27)
(M + m)ξ + mlϕ = u (28)
ここでx1 := ξ, x2 := ϕ, x3 := ξ, x4 := ϕ
とおく.
27
このとき
x1 = ξ = x3
x2 = ϕ = x4
x3 = ξ
x4 = ϕ
であることに注意して,状態変数ベクトルを[x1 x2 x3 x4
]T と選ぶと, (27), (28)式から次式を得る.
d
dt
⎡⎢⎢⎢⎣
x1
x2
x3
x4
⎤⎥⎥⎥⎦ =
⎡⎢⎢⎢⎢⎣
0 0 1 0
0 0 0 1
0 −m2gl2
Δ 0 0
0mgl(M+m)
Δ 0 0
⎤⎥⎥⎥⎥⎦
⎡⎢⎢⎢⎣
x1
x2
x3
x4
⎤⎥⎥⎥⎦ +
⎡⎢⎢⎢⎣
0
0J+ml2
Δ−ml
Δ
⎤⎥⎥⎥⎦u (29)
ここで Δ := (J + ml2)(M + m)−m2l2 である. システム(29)は可制御なので, 状態フィードバック制御を用いて安定化できる.
28
7.2 倒立振子系(質量が一様な棒が2本ある場合)
図5に示すような質量 Mの台車に, 長さが 2l1で質量が m1の棒と長さが 2l2で質量が m2の棒が取り付けられている倒立振子系を考える. 台車に働く力 uを制御入力とする. このとき, 二つの振子および台車の運動方程式はつぎのようになる.
振子1の回転方向 :1
3m1l
21d2ϕ1
dt2= V1l1 sin ϕ1 − H1l1 cos ϕ1 (30)
振子1の鉛直方向 : m1d2
dt2(l1 cos ϕ1) = V1 − m1g (31)
振子1の水平方向 : m1d2
dt2(ξ + l1 sin ϕ1) = H1 (32)
振子2の回転方向 :1
3m2l
22d2ϕ2
dt2= V2l2 sin ϕ2 − H2l2 cos ϕ2 (33)
29
振子2の鉛直方向 : m2d2
dt2(l2 cos ϕ2) = V2 − m2g (34)
振子2の水平方向 : m2d2
dt2(ξ + l2 sin ϕ2) = H2 (35)
台車の水平方向 : Md2ξ
dt2= u − H1 − H2 (36)
ここで, 振子1と台車の接合部分に働く水平抗力を H1, 鉛直抗力をV1とし, 振子2と台車の接合部分に働く水平抗力を H2, 鉛直抗力をV2としている. u = 0に対する平衡点 ϕ1 = ϕ2 = 0の近傍で sin ϕ1
∼=ϕ1, cos ϕ1
∼= 1, sin ϕ2∼= ϕ2, cos ϕ2
∼= 1 とし, (30)~(36)式から H1,
V1, H2および V2を消去すると次式が得られる.
ξ = a1ϕ1 + a2ϕ2 + b1u (37)
ϕ1 = a3ϕ1 + a4ϕ2 + b2u (38)
ϕ2 = a5ϕ1 + a6ϕ2 + b3u (39)
30
ここで
a1 := − 3m1g
4M + m1 + m2, a2 := − 3m2g
4M + m1 + m2
b1 :=4
4M + m1 + m2
a3 :=3(4M + 4m1 + m2)g
4(4M + m1 + m2)l1, a4 :=
9m2g
4(4M + m1 + m2)l1
b2 := − 3
(4M + m1 + m2)l1
a5 :=9m1g
4(4M + m1 + m2)l2, a6 :=
3(4M + m1 + 4m2)g
4(4M + m1 + m2)l2
b3 := − 3
(4M + m1 + m2)l2
31
ここで
x1 := ξ, x2 := ϕ1, x3 := ϕ2, x4 := ξ, x5 := ϕ1, x6 := ϕ2
とおく. このとき
x1 = ξ = x4
x2 = ϕ1 = x5
x3 = ϕ2 = x6
x4 = ξ
x5 = ϕ1
x6 = ϕ2
であることに注意して, 状態変数ベクトルを[x1 x2 x3 x4 x5 x6
]Tと選ぶと, (37)~(39)式から次式を得る.
32
d
dt
⎡⎢⎢⎢⎢⎢⎢⎢⎣
x1
x2
x3
x4
x5
x6
⎤⎥⎥⎥⎥⎥⎥⎥⎦
=
⎡⎢⎢⎢⎢⎢⎢⎢⎣
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 a1 a2 0 0 0
0 a3 a4 0 0 0
0 a5 a6 0 0 0
⎤⎥⎥⎥⎥⎥⎥⎥⎦
⎡⎢⎢⎢⎢⎢⎢⎢⎣
x1
x2
x3
x4
x5
x6
⎤⎥⎥⎥⎥⎥⎥⎥⎦
+
⎡⎢⎢⎢⎢⎢⎢⎢⎣
0
0
0
b1
b2
b3
⎤⎥⎥⎥⎥⎥⎥⎥⎦
u (40)
• l1 �= l2のとき, システム (40)は可制御であるので, 状態フィードバック制御により安定化できる.
• l1 = l2のとき, システム(40)は可制御ではない. また, 可安定でもないので, 状態フィードバック制御により安定化できない.
33
8. バックステッピング法による分布系の境界制御とその応用
時間発展を有する偏微分方程式に対するバックステッピング法とは,ボルテラ型の積分変換によって,元のシステムがターゲットシステムと呼ばれる安定なシステムに写るように, 積分核と制御則を求める手法である. 不安定なシステムに対しては安定化のために, 安定性の度合いが低いシステムに対しては安定度を高めるために用いることができる.
バックステッピング法は
•熱拡散系の境界制御•振動系の境界制御に用いることができるが, さらに図6に示すような
•群ロボットのフォーメーション制御に応用することもできる(参考資料8, 第2章).
34
参考資料
1.有本 卓, 線形システム理論, 産業図書 (1974)
2.古田勝久・佐野 昭, 基礎システム理論, コロナ社 (1978)
3.児玉慎三・須田信英, システム制御のためのマトリクス理論, 計測自動制御学会 (1978)
4.丹羽敏雄, 微分方程式と力学系の理論入門 - 非線形現象の解析にむけて, 遊星社 (1988)
5.渡辺嘉二郎・小林尚登・須田義大, パソコンによる制御工学, 海文堂 (1989)
6.吉川恒夫・井村順一, 現代制御論, 昭晃堂 (1994)
7. MATLAB Control System Toolbox User’s Guide, The MathWorks, Inc. (1997)
8.児島晃・佐野英樹,分布パラメータ・むだ時間と制御,計測と制御, Vol. 52, No. 4,
pp. 354–360 (2013)
35
図 1: 単振動系(空気抵抗がない場合)
図 2: 単振動系(空気抵抗がある場合)
ξk−k
m
u
ξ0
ξk−k
m
u
0 ξ
ξ&a−
図 3: 状態フィードバック制御
buAxx +=&
Tf−
u x
図 4: 倒立振子系
l2長さ
ϕ
mgV
H
uMg
0=ξ
図 5: 倒立振子系
12l長さ
1ϕ
gm1
1V1H
uMg
0=ξ
gm2
22l長さ
2ϕ
2H2V
x
y
(x (t), y (t))i i