— 固有値設定 —
演習 2 — 動的システムと固有値設定
宇都宮大学 工学研究科 吉田 勝俊
http://edu.katzlab.jp/lec/dsys/
演習の進め方
テキスト の 12 章「演習 2 」を自習せよ.
グループワークを成績評価の前提条件とする.
決して単独では進めず,2 名以上のグループで取り組むこと.
分からないことがあれば,まずグループで解決せよ.
それでも分からなければ,周辺のグループと共同で解決せよ.
分かる学生がクラスに 1 人も居なければ,代表者が教員に相談せよ.
グループワークの重要性
第 10 回 動的システム入門
関数の最小化 ( 微分法 )
宇都宮大学 工学研究科 吉田 勝俊
http://edu.katzlab.jp/lec/dsys/
学習目標
関数の最小化 ( 微分法 )
拘束条件付きの最小化 ( ラグランジュの未定乗数法 )
最適制御問題
最小化と微分法
例えば,4 次曲線 y = f(x) = x2(x + 1)(x − 2).
最小点 x = a を探すには,微分 0 の点を求めればよい.
f0(x) = 2x(x + 1)(x − 2) + x2(x − 2) + x2(x + 1)
= 4x3 − 3x2 − 4x = 0 最小点の候補 a ≈ −0.693,0,1.443.
最小化の必要条件
最小値と微分の関係:
f(x) が x = a で最小値をとる
| {z }
P
ならば=⇒ 微分| f{z0(a) = 0}
Q
因果関係 P =⇒ Q
{ P は,Q であるための十分条件.
Q は,P であるための必要条件.
@@
@@
@@
@@
@@
@@@@@@@@@@@@@@@@@@@@
算法 7.1
0
2 変数関数 f (x, y ) の最小化
例えば,2 次曲面 z = f(x) = f(x, y) = x2 + y2
点 a = (a, b) で最小となる必要条件 … 増分 ∆z が 0 になること.
∆z ≡ f(a + ∆x, b + ∆y) − f(a, b)
= (a + ∆x)2 + (b + ∆y)2 − a2 − b2
= (2a)∆x + (2b)∆y + (∆x2 + ∆y2) = 0
∴ 最小点は a = b = 0
n 変数関数 f (x
1, · · · , x
n) の最小化
表記
minx : f(x) ※ x = (x1,· · · , xn)
∆z ≡ f(a1 + ∆x1,· · · , an + ∆xn) − f(a1,· · · , an)
= ∂f
∂x1(a) ∆x1 + · · · + ∂f
∂xn(a) ∆xn = 0
@@
@@@@
@@
@@
@@@@@@@@@@@@@@@@@@@@
n 変数関数の最小化
関数 f(x1,· · · , xn) が,a = (a1,· · · , an) で最小となる必要条件は,
拘束条件付きの最小化
表記
minx : f(x) sub.to : g(x) = 0 ※ x = (x1,· · · , xn)
拘束条件 g(x) = 0 を満足する x のなかで,f(x) を最小化する!
代入法は面倒くさい!
例題:
minx : f(x, y) = x2 + y2
sub.to : g(x, y) = (x − 2)2 + (y − 2)2 − 1 = 0 ※中心 (2,2) の単位円
g(x, y) を y について解く @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ y = 2 ± √
1 − (x − 2)2 代入すると,1 変数関数 f(x) に帰着.
f(x, y) = x2 + {
2 ± √
1 − (x − 2)2 }2
≡ f(x)
√
ラグランジュの未定乗数法
未定乗数法
拘束条件付き最小化 minx : f(x)
sub.to : g(x) = 0
変形できる!
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ラグランジュ乗数 λ
拘束条件なし最小化 min
(x,λ) : h(x,λ)
h(x, λ) ≡ f(x) + λg(x)
@@
@@
@@
@@
@@
@@@@@@@@@@@@@@@@@@@@
新しい必要条件
∂h
∂x1(x,λ) = · · · = ∂h
∂xn(x,λ) = ∂h
∂λ(x,λ) = 0
未定乗数法の例題
例題:
minx : f(x, y) = x2 + y2
sub.to : g(x, y) = (x − 2)2 + (y − 2)2 − 1 = 0 ※中心 (2,2) の単位円
未定乗数法 @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ min : h(x, y, λ) ≡ x2+y2+λ {
(x−2)2+(y−2)2−1 }
必要条件: 0 = ∂ h∂x = 2x + 2λ(x − 2) ∴ x = 1+λ2λ 0 = ∂ h∂y = 2x + 2λ(x − 2) ∴ y = 1+λ2λ
0 = ∂ h∂λ = (x − 2)2 + (y − 2)2 − 1 ∴ λ = −1 ± 2√ 2
//
練習問題
minx : f(x, y) = 2x + 2y ※長方形の周長 sub.to : g(x, y) = xy − 1 = 0 ※面積 1
h(x, y, λ) = f(x, y) + λg(x, y)
∂h
∂x = ∂h
∂y = ∂h
∂λ = 0
解答例
未定乗数法 @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ min : h(x, y,λ) ≡ 2x + 2y + λ {
xy − 1 }
必要条件: 0 = ∂ h∂x = 2 + λy ∴ y = −λ2 0 = ∂ h∂y = 2 + λx ∴ x = −λ2
0 = ∂λ∂ h = xy − 1 = λ4 − 1 ∴ λ = ±2
//
最小点の候補:(x, y) = (−1,−1)
最小
, (1,1)
最小
//
多次元の未定乗数法
n 変数関数 … f(x) = f(x1,· · · , xn). m 本の拘束条件式 … g(x) =
g1(x1,· · · , xn) ...
gm(x1,· · · , xn)
=
0 ...
0
= 0
ラグランジュ乗数 (m 個) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ λ =
λ1 ...
λm
h(x,λ) ≡ f(x) + λTg(x) = f(x) + λ1g1(x) + · · · + λmgm(x) 未定乗数法 (拘束条件 m 本)
minx : f(x) sub.to : g(x) = 0
等価
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
min
(x,λ) : h(x,λ) 必要条件
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
8>
>>
<
>>
>:
∂ h
∂xi(a,b) = 0
∂ h (a,b) = 0
( 補足:転置部分の詳細 )
h(x,λ) ≡ f(x) + λTg(x)
= f(x) + (λ1,· · · ,λm)
g1(x) ...
gm(x)
= f(x) + λ1g1(x) + · · · + λmgm(x)
最適制御問題
与えられた評価関数 (省エネ,乗り心地,…) を,最小化 or 最大化 する制御入力 u(t) を求める問題のこと.
最適制御の例
minu(t) : J =
∫ t1
t0
q x(s)2 + r u(s)2ds (評価関数) sub.to : ˙x(t) = a x(t) + b u(t) (状態方程式)
評価関数の係数 q, r を「重み」という.
特徴 1: 最小化する関数 J の値が,関数形 x(t), u(t) で決まる.
特徴 2: 拘束条件が「微分方程式」である.
∴ 微分法では解けない! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 「変分法」だと解ける (次回)
境界条件
両端固定 … 積分区間 ∫ t1
t0 の両端で,状態量を指定
x(t0) = x0, x(t1) = x1
具体例 停止状態にある自動車を ,5 秒後に 100m 地点を 時速 100km/s で通過させ (両端固定),このときの消費エネルギーを最小 化せよ (最適制御).
終端自由 … 初期値のみ指定
x(t0) = x0, x(t1) = 任意
第 11 回 動的システム入門
最適制御入門 ( 変分法 )
宇都宮大学 工学研究科 吉田 勝俊
http://edu.katzlab.jp/lec/dsys/
学習目標
最適制御問題の定式化 ( 復習 ) 汎関数の最小化問題
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@変分法 最適制御問題の解法 (1 次元 ) 例題 (1 次元 )
n 次元の解法
( 最適制御問題 )
与えられた評価関数 (省エネ,乗り心地,…) を,最小化 or 最大化 する制御入力 u(t) を求める問題.
最適制御の例
minu(t) : J =
∫ t1
t0
q x(τ)2 + r u(τ)2dτ (評価関数) sub.to : ˙x(t) = a x(t) + b u(t) (状態方程式)
評価関数の係数 q, r を「重み」という.
特徴 1: 最小化する関数 J の値が,関数形 x(t), u(t) で決まる.
特徴 2: 拘束条件が「微分方程式」である.
∴ 微分法では解けない! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 「変分法」だと解ける (今回)
変分法
汎関数
汎関数
「関数の関数」のこと.関数形 x(t) を代入すると値が定まる.
J[x(t)] = 値
積分型の汎関数 (典型例)
J[x(t)] =
∫ t1 t0
L(
x(τ),x(τ˙ )) dτ
@@
@@
@@
@@
@@
@@@@@@@@@@@@@@@@@@@@
最小化の必要条件
汎関数の増分:δJ[x(t)] ≡ J[x(t) + δx(t)] − J[x(t)] = 0
関数 x(t) の微小な「ずれ 」δx(t) を変分という.
変分の境界条件
求める関数 x(t) の
(x(t0) = x0, δx(t1) = x1 (両端固定)
x(t0) = x0, δx(t1) = 任意 (終端自由) に合せて……
両端固定
δx(t0) = 0, δx(t1) = 0
終端自由
δx(t0) = 0, δx(t1) = 任意
汎関数の増分 δJ [x(t)]
定理
δJ[x(t)] ≡ J[x(t) + δx(t)] − J[x(t)]
= ∂ L
∂x˙
˛˛
˛t=t1
δx(t1) − ∂ L
∂x˙
˛˛
˛t=t0
δx(t0) +
Z t1 t0
∂ L
∂x − d dt
„∂ L
∂x˙
«ff
δxdτ
証明の方針:
関数の全微分と同様の展開,
L(
x + δx,x˙ + δx˙)
− L(
x, x˙)
= ∂L
∂x(x, x)δx˙ + ∂L
∂x˙ (x,x)δ˙ x˙ と部分積分を使う.
最小化の必要条件 ( 両端固定 )
オイラーの方程式
∂L
∂x − d dt
(∂L
∂x˙ )
= 0
証明:
両端固定の変分 δx(t0) = 0, δx(t1) = 0 を,汎関数の増分 δJ[x(t)]
に代入すると,積分の項だけが残り,
δJ[x(t)] =
∫ t1 t0
{
∂L
∂x − d dt
(∂L
∂x˙
)}
δxdτ = 0
最小化の必要条件 ( 終端自由 )
オイラーの方程式 + 追加の終端条件
∂L
∂x − d dt
(∂L
∂x˙ )
= 0, ∂L
∂x˙
t=t1 = 0
証明:
終端自由より,一般に δx(t1) 6= 0 なので,2 つ項が残る.
δJ[x(t)] = ∂L
∂x˙
t=t1δx(t1) +
∫ t1 t0
{∂L
∂x − d dt
(∂L
∂x˙ )}
δxdτ = 0
δx(t1) 6= 0 より,下線も 0 となる.
汎関数の最小化 (n 次元 )
x(t) = [xi(t)] の各成分 xi(t) に対して,同様な算法が成立する.
∂L
∂xi − d dt
(∂L
∂x˙i )
= 0 (i = 1,· · · , n)
終端自由「x(t0) = x0, x(t1) = 任意」に対して,
∂L
∂xi − d dt
(∂L
∂x˙i )
= 0, ∂L
∂x˙i
t=t1 = 0 (i = 1,· · · , n) ベクトルで @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 短縮表記
最小化の必要条件 (n 次元 )
オイラーの方程式 (n 次元)
積分型の汎関数,
J[x(t)] =
∫ t1 t0
L(
x(τ),x(τ˙ ))
dτ, x(t0) = x0, x(t1) = x1 を最小化するベクトル値関数 x(t) は,オイラーの方程式,
∂L
∂x − d dt
(∂L
∂x˙ )
≡
[∂L
∂xi − d dt
(∂L
∂x˙i )]
= 0
の解となる.終端自由 (x1 = 任意) では,追加の終端条件が課される.
∂L
∂x˙
t=t1 ≡
[∂L
∂x˙i
t=t1
]
= 0
最適制御の解法
解法 (1 次元 )
最適制御問題 (1 次元)
minx,u : J =
∫ t1 t0
L(
x(τ), u(τ)) dτ sub.to : ˙x(t) = f(
x(t), u(t)) with x(t0) = x0, x(t1) = x1
ラグランジュの @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 未定乗数法 (λ)
x,u,λmin : J0 =
∫ t1 t0
L0(
x(τ), u(τ),λ(τ)) dτ L0(x, u, λ) ≡ L(x, u) + λ(f(x, u) − x)˙
with x(t0) = x0, x(t1) = x1
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 必要条件は,オイラーの方程式
必要条件 (1 次元 )
最適制御の必要条件 (1 次元)
λ˙ = − ∂
∂x(L + λf) (随伴方程式) 0 = ∂
∂u(L + λf) (入力の条件)
˙
x = f(
x, u)
(状態方程式)
with
{両端固定
x(t0) = x0, x(t1) = x1 {終端自由
x(t0) = x0, λ(t1) = 0
証明: オイラーの方程式より,
0 = ∂ L0
∂x − d dt
„∂ L0
∂x˙
«
= ∂ L
∂x + λ∂ f
∂x − d
dt (−λ) ∴ λ˙ = − ∂
∂x(L + λf)
0 „ 0«
証明の続き
また,終端自由の場合は,x(t1) = x1 の代りに,λ(t) の終端条件,
0 = ∂L0
∂x˙
t=t1 = −λ(t1) ∴ λ(t1) = 0 が課される.
例題 (1 次元 )
例題と解法
冒頭の例題
min
u(t) : J =
∫ t1 t0
q x(τ)2 + r u(τ)2dτ (評価関数) sub.to : ˙x(t) = a x(t) + bu(t) (状態方程式)
L = q x2 +r u2, f = a x+ b u @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 最適制御の必要条件 (1 次元)に代入
λ˙ = −2q x − a λ, 0 = 2r u + b λ, x˙ = a x + b u 最適入力 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ u(t) = −2rb λ(t)
整理された必要条件
˙
x(t) = a x(t) − 2rb2 λ(t) (状態方程式)
λ(t) =˙ −2q x(t) − a λ(t) (随伴方程式)
with
x(t0) = x0, x(t1) = x1 or
x(t0) = x0, λ(t1) = 0
実習 8.1 「整理された必要条件」の数値解を求め,状態 x(t) と最適 入力 u(t) の時間応答を観察せよ.境界条件は,
{両端固定 x(0) = 1, x(1) = 2 終端自由 x(0) = 1, λ(1) = 0
の 2 種類とし ,その他のパラメータは,a = 1, b = 1, q = 100, r = 1 とせよ.次に,重み q, r を変化させて,重みの効果を考察せよ.
解答例
テキストの解答例の要領で,整理された必要条件と等価な初期値問題を導く.これを
Code 13 で解くと,次の結果が得られる.
0 0.5 1 1.5 2
0 0.2 0.4 0.6 0.8 1 Both sides fixed
x(t)
-10 -5 0 5 10 15
0 0.2 0.4 0.6 0.8 1 u(t)
0 0.2 0.4 0.6 0.8 1
0 0.2 0.4 0.6 0.8 1 Free endpoint
x(t)
-12 -10 -8 -6 -4 -2 0
0 0.2 0.4 0.6 0.8 1 u(t)
n 次元の解法
最適制御の解法 (n 次元)
n 次元の最適制御問題,
(min : J = R t1 t0 L`
x(τ),u(τ))dτ sub.to : x(t) = f`
x(t),u(t)´ with x(t0) = x0, x(t1) = x1 を達成する制御入力 u(t) は,次の方程式の解となる.(T は転置)
H(x,u,λ) ≡ L(x,u) + λTf(x,u) (ハミルトニアン) λ˙ = −
„∂ H
∂x
«T
= −
„∂ L
∂x
«T
−
„∂f
∂x
«T
λ (随伴方程式)
0 =
„∂ H
∂u
«T
=
„∂ L
∂u
«T +
„∂f
∂u
«T
λ (入力の条件)
˙ x =
„∂ H
∂x
«T
= f(x,u) (状態方程式) 終端自由の場合は,終端条件 x(t1) = x1 の代りに,λ(ti) = 0 を課す.
第 12 回 動的システム入門
最適レギュレータ
宇都宮大学 工学研究科 吉田 勝俊
学習目標
最適レギュレータとは?
最適レギュレータの必要条件 状態フィード バック表示
リカッチ方程式 ( 有限時間 )
リカッチ方程式 ( 無限時間 )
最適レギュレータとは?
— 別名: LQR —
状態方程式が,線形 (Linear) 評価関数が,2 次 (Quadratic)
である最適制御のこと!
境界条件が,終端自由
レギュレータ (Regulator) … 掛けっぱなしの定値制御 ∴終端自由 最適レギュレータ (LQR) 問題
min : J =
∫ t1 t0
{xTQx + uTRu} dτ sub.to : ˙x = Ax + Bu
with x(t0) = x0
x(t1) = 終端自由
必要条件
最適制御の解法 (n 次元)
n 次元の最適制御問題,
(min : J = R t1 t0 L`
x(τ),u(τ))dτ sub.to : x(t) = f`
x(t),u(t)´ with x(t0) = x0, x(t1) = x1 を達成する制御入力 u(t) は,次の方程式の解となる.(T は転置)
λ˙ = −
„∂ L
∂x
«T
−
„∂f
∂x
«T
λ (随伴方程式)
0 =
„∂ L
∂u
«T +
„∂f
∂u
«T
λ (入力の条件)
x˙ = f(x,u) (状態方程式) 終端自由の場合は,終端条件 x(t1) = x1 の代りに,λ(ti) = 0 を課す.
必要条件の導出
λ˙ = −
(∂L
∂x )T
−
(∂f
∂x )T
λ = −2Qx − ATλ ∵ QT = Q
0 =
(∂L
∂u )T
+
(∂f
∂u )T
λ = 2Ru + BTλ ∵ RT = R
˙
x = f(x,u) = Ax + B u @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
最適入力 u = −1
2R−1BTλ 整理された必要条件
x˙ = Ax + B
(−1R−1BTλ )
(状態方程式) x(t ) = x