Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
システム制御最適化特論
担当:平田健太郎
前期後半月 5, 6限 14:00-16:10 5号館第16講義室
7/8 第4回 最適制御
2
6/17 第1回 最適化問題と線形計画法(LP)6/24 第2回 内点法7/1 第3回 最短経路問題と動的計画法(DP)7/8 第4回 最適制御7/18* 第5回 二次計画法(QP)とモデル予測制御(MPC)
7/22 第6回 凸解析と線形行列不等式7/29 第7回 線形行列不等式(LMI)による制御系解析・設計8/5 第8回 非線形最適化
* irregular
講義日程(予定)
3
1
2
3
4
5
50
80
20 10
30
15
15
Matlab計算例: shortest_path.m
実行可能基底解が退化(0解が7-5より多い)
⇒注意が必要
4
先の例では, 移動は右または上へ, という規則があったため,
周回路は存在せず, 最短経路が確定したノードの集合を逐次求めていることが容易であった. これをどう解決するか?
最短経路が確定したノードの集合を合理的に拡大していく方法
5
記号の準備
グラフ 𝐺は節点集合 𝑉 と枝集合 𝐸からなる.
𝑉 = 𝑠, 2,3,⋯ , 𝑡 , 𝐸 = 𝑖, 𝑗 |節点𝑖と𝑗の間に枝があるとき
6
ダイクストラ法/Dijkstra Method
多項式時間アルゴリズム 𝑂 𝑛2
cf. 内点法 𝑂 𝑛3
7
1
2
3
4
5
50
15
80
20 10
30
15
例題: 以下の例に Dijkstra 法を適用してみる
ダイクストラ法の大規模な実行例: java program
8
1
2
3
4
5
50
15
80
20 10
30
15
1
2
3
4
5
50
15
80
20 10
30
15
9
15
1
2
3
4
5
50
80
20 10
30
15
10
10
30
15
1
2
3
4
5
50
80
20 10
15
30
15
1
2
3
4
5
50
80
20
15
11
clear;E=zeros(5,5);E(1,2)=50;E(1,3)=80;E(2,3)=20;E(2,4)=15;E(3,4)=10;E(3,5)=15;
% initialize
S=[];bS=[1,2,3,4,5];d=9999*ones(1,5);d(1)=0;p=[];
while length(S)<5,SbSdnbs=length(bS);mind=d(bS(1));v=bS(1);
% Find v
for i=2:nbs,if d(bS(i))<mind,mind=d(bS(i));v=bS(i);endend
5ノードの toy problem に対する Dijkstra法の program code (Octave)
12
S=[S v];xbS=[];
for i=1:nbs,if bS(i)~=v,xbS=[xbS bS(i)];end
endbS=xbS;nbs=length(bS);
for k=1:nbs,j=bS(k);if E(v,j)>0,if d(j) > d(v)+E(v,j);
d(j)=d(v)+E(v,j);p(j)=v;
endend
endend
proute=5;prev=p(5);while prev~=1,
route=[route prev];prev=p(prev);
endroute=[route prev]
13
𝑆の要素を1つずつ増やす: 𝑛反復高々n個の 𝑑 𝑖 を比較
⇒ 𝑂 𝑛2オーダー(最高次の次数のみ係数は無視)
Dijkstra法の計算量
𝑆から外に出るエッジについて 𝑑 𝑖の更新 高々𝑚回の処理 ⇒ 𝑂 𝑚
(ループ内の処理に見えるが)
エッジの本数は最大でも𝑚 =𝑛 𝑛 − 1
2(𝑛個のノードをすべて相互につなぐとき)
ノード数: 𝑛,エッジ本数:𝑚
𝑚 < 𝑛2 より,全体では 𝑂 𝑛2
初期化
終了判定
ノード v を探す(n個の比較)
n 回のループ
𝑑 𝑗 の付け替え
14
𝑂 𝑛
𝑂 𝑚
𝑂 𝑚 > 𝑂 𝑛 だから全体では 𝑂 𝑚𝑛 ?
毎回処理するわけではないので,
𝑂 𝑚𝑛 の見積もりは正しくない.都合何回あるかを考える.
15
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
∴ 𝑑 𝑗 の付け替えは各ノードに入ってくる矢印の数だけ行われる.
(行われない場合もある.)
最大でも辺の総数だけ
23
→ 動的計画法(Dynamic Programming)
𝑙 𝑖, 𝑗 : 𝑖から 𝑗への最短距離, 𝑉𝑠: 𝑠から直接行ける節点の集合
𝑙(𝑠, 𝑡) = min𝑣∈𝑉𝑠
𝑙 𝑣, 𝑡 + 𝑎𝑠𝑣
𝑠
𝑡
𝑣
𝑎𝑠𝑣
𝑙 𝑣, 𝑡 , 𝑣 ≠ 𝑠を解くことが 𝑙 𝑠, 𝑡 を解くよりも小さな部分問題になっていれば, 再帰的に解くことができる(?).
24
最適性の原理: 𝑙(𝑠, 𝑡) = min𝑣∈𝑉𝑠
𝑎𝑠𝑣 + 𝑙 𝑣, 𝑡
𝑠
𝑡
𝑣
𝑎𝑠𝑣
今回の選択
𝑣までの移動コスト
行った先からゴールまでの最小コスト(最短経路長)
25
・ 最適制御
26
最適制御問題
時間関数 𝑢 𝑡 , 𝑡 ∈ [0,∞) を決定変数とする最適化問題
27
最適制御問題 (一般形, 非線形)
状態方程式
終端条件の重み関数 状態,制御入力の重み関数
システム(内部状態 𝑥 𝑡 )
制御入力 𝑢(𝑡) 出力
システムの動特性は(非線形な)常微分方程式で与えられるとする.
28
ሶ𝑥 𝑡 = 𝐴𝑥 𝑡 + 𝐵𝑢(𝑡)
線形系
𝐽 = 𝑥𝑇 𝑇 𝑄𝑓𝑥 𝑇
+න0
𝑇
𝑥𝑇 𝑡 𝑄𝑥 𝑡 + 𝑢𝑇 𝑡 𝑅𝑢 𝑡 𝑑𝑡
(2次評価関数)
一般形
状態方程式
評価関数
連続時間系
29
線形系
(2次評価関数)
一般形
状態方程式
評価関数
𝑥𝑘+1 = 𝑓 𝑥𝑘 , 𝑢𝑘 𝑥𝑘+1 = 𝐴𝑥𝑘 + 𝐵𝑢𝑘
離散時間系
𝐽 = 𝐿𝑓 𝑥𝑁+1 +
𝑘=0
𝑁
𝐿(𝑥𝑘 , 𝑢𝑘)
𝐽 = 𝑥𝑁+1𝑇 𝑃𝑁+1𝑥𝑁+1
+
𝑘=0
𝑁
𝑥𝑘𝑇𝑄𝑥𝑘 + 𝑢𝑘
𝑇𝑅𝑢𝑘
30
動的計画法(Dynamic Programming)
離散過程に対する多段階決定問題
状態 𝑥 に決定 𝑢 を与えたときの状態遷移: 𝑓(𝑥, 𝑢)
𝑥𝑘+1 = 𝑓 𝑥𝑘 , 𝑢𝑘 , 𝑘 = 1,⋯ ,𝑁
各段階におけるコストと終端コストの和
𝑘=1
𝑁
𝐿 𝑥𝑘 , 𝑢𝑘
を最小にするよう 𝑢𝑘 を選ぶ.
𝑥1 𝑥2
𝑥
𝑘⋯⋯⋯ 𝑥𝑁 𝑥𝑁+1
+𝐿𝑓 𝑥𝑁+1
𝑢
𝑘𝑢1 ⋯⋯⋯ 𝑢𝑁
31
初期値 𝑥1 から始めたとき 𝑁 段決定過程のコスト関数を
𝐽𝑁∗ 𝑥1 で表す. これは初期値の関数なので, 最適コスト関数とよぶ.
𝐽𝑁 𝑥1 =
𝑘=1
𝑁
𝐿 𝑥𝑘 , 𝑢𝑘 + 𝐿𝑓 𝑥𝑁+1
とし, 𝐽𝑁 𝑥1 を最小化する系列 𝑢𝑘 , 𝑘 = 1,⋯ , 𝑁を与えたときのコストを
終端時刻から逆向きに解いていくことを考えると次式が成り立つ.
32
𝐽𝑁∗ 𝑥1 = min
𝑢1𝐿 𝑥1, 𝑢1 + 𝐽𝑁−1
∗ 𝑥2
𝑥1 𝑥2
𝑥
𝑘
𝑢
𝑘𝑢1
⋯⋯⋯
⋯⋯⋯
𝑥𝑁+1
𝑢𝑁
𝑥1を初期値とする𝑁段決定過程
𝐽𝑁∗ 𝑥1 : その最適値
𝑥2を初期値とする𝑁 − 1段決定過程
𝐽𝑁−1∗ 𝑥2 : その最適値
𝑥1 𝑥2
𝑥
𝑘
𝑢
𝑘𝑢1
⋯⋯⋯
⋯⋯⋯
𝑥𝑁+1
𝑢𝑁
(最適性の原理)
33
𝐽𝑁−𝑘+1 𝑥𝑘 ≔
𝑖=𝑘
𝑁
𝑥𝑖𝑇𝑄𝑥𝑖 + 𝑢𝑖
𝑇𝑅𝑢𝑖 + 𝑥𝑁+1𝑇 𝑃𝑁+1𝑥𝑁+1
最適コスト関数の初期値 𝐽0∗ 𝑥𝑁+1 = 𝑥𝑁+1
𝑇 𝑃𝑁+1𝑥𝑁+1
𝐽𝑁−𝑘+1∗ 𝑥𝑘 = min
𝑢𝑘,𝑢𝑘+1,⋯,𝑢𝑁𝐽𝑁−𝑘+1 𝑥𝑘
= 𝑥𝑘𝑇𝑄𝑥𝑘 + 𝑢𝑘
𝑇𝑅𝑢𝑘 + 𝐽𝑁−𝑚 𝑥𝑚+1
= min𝑢𝑘,𝑢𝑘+1,⋯,𝑢𝑁
𝑥𝑘𝑇𝑄𝑥𝑘 + 𝑢𝑘
𝑇𝑅𝑢𝑘 + 𝐽𝑁−𝑘 𝑥𝑘+1
= min𝑢𝑘
𝑥𝑘𝑇𝑄𝑥𝑘 + 𝑢𝑘
𝑇𝑅𝑢𝑘 +min𝑢𝑘+1,⋯,𝑢𝑁
𝐽𝑁−𝑘 𝑥𝑘+1
= min𝑢𝑘
𝐿 𝑥𝑘 , 𝑢𝑘 + 𝐽𝑁−𝑘∗ 𝑥𝑘+1
34
始めに以下の1段の決定問題を考える.
𝐽1∗ 𝑥𝑁 = min
𝑢𝑁𝐿 𝑥𝑁, 𝑢𝑁 + 𝐽0
∗ 𝑥𝑁+1
= min𝑢𝑁
𝑥𝑁𝑇𝑄𝑥𝑁 + 𝑢𝑁
𝑇𝑅𝑢𝑁 + 𝑥𝑁+1𝑇 𝑃𝑁+1𝑥𝑁+1
𝑥𝑁+1 = 𝐴𝑥𝑁 + 𝐵𝑢𝑁 の制約のもとで上記の最小値を与える 𝑢𝑁は
𝑅 > 0, 𝑃𝑁+1 ≥ 0 ⇒ 𝑅 + 𝐵𝑇𝑃𝑁+1𝐵 > 0であるので
𝑥𝑁𝑇𝑄𝑥𝑁 + 𝑢𝑁
𝑇𝑅𝑢𝑁 + 𝑥𝑁+1𝑇 𝑃𝑁+1𝑥𝑁+1 = 𝑣𝑇 𝑅 + 𝐵𝑇𝑃𝑁+1𝐵 𝑣 + 𝑥𝑁
𝑇𝑃𝑁𝑥𝑁
𝑣 ≔ 𝑢𝑁 + 𝑅 + 𝐵𝑇𝑃𝑁+1𝐵−1𝐵𝑇𝑃𝑁+1𝐴𝑥𝑁
𝑃𝑁: = 𝐴𝑇𝑃𝑁+1𝐴 + 𝑄 − 𝐴𝑇𝑃𝑁+1𝐵 𝑅 + 𝐵𝑇𝑃𝑁+1𝐵−1𝐵𝑇𝑃𝑁+1𝐴
と平方完成でき,
35
𝑢𝑁 = − 𝑅 + 𝐵𝑇𝑃𝑁+1𝐵−1𝐵𝑇𝑃𝑁+1𝐴𝑥𝑁 が最小化入力であり
𝐽1∗ 𝑥𝑁 = 𝑥𝑁
𝑇𝑃𝑁𝑥𝑁 となる.
𝐽2∗ 𝑥𝑁−1 = min
𝑢𝑁−1𝐿 𝑥𝑁−1, 𝑢𝑁−1 + 𝐽1
∗ 𝑥𝑁
次のステップは
の最小化であるが, これは先の問題の添字 𝑁 を𝑁 − 1 にしたものになっているので, 𝑢⋅ , 𝑃⋅ を漸化的に更新することにより, 最適解の系列𝑢1, 𝑢2, ⋯ , 𝑢𝑁 が求められる.
36
𝑥𝑘+1 = 𝐴𝑥𝑘 + 𝐵𝑢𝑘 𝐽 =
𝑘=0
∞
𝑥𝑘𝑇𝑄𝑥𝑘 + 𝑢𝑘
𝑇𝑅𝑢𝑘
無限区間 (Infinite Horizon) の最適制御問題
𝑃 = 𝐴𝑇𝑃𝐴 + 𝑄 − 𝑃𝐵 𝑅 + 𝐵𝑇𝑃𝐵 −1𝐵𝑇𝑃𝐴
𝑢𝑘 = − 𝑅 + 𝑃𝐵 −1𝐵𝑇𝑃𝐴𝑥𝑘
Riccati方程式
最適フィードバック則
𝑁 → ∞のとき, 𝑃−𝑁 → 𝑃 なる定常解となり
上記の問題は有限区間 (Finite Horizon) を考慮
37
積分区間を分割
最適性の原理から
動的計画法に基づく連続時間系に対する最適条件の導出
最適コスト関数
38
𝐽𝑁 𝑥1 = min𝑢1
𝐽𝑁−1 𝑥2 + 𝐿 𝑥1, 𝑢1
最適コスト関数
(離散時間の場合の次式に相当)
𝑥1𝑥2
𝑥(𝜏) 𝑥(𝜏1)
39
𝜕𝐽∗
𝜕𝜏= − min
𝑢 𝜏 ∈𝑈
𝜕𝐽∗
𝜕𝑥
𝑇
𝑓 𝑥 𝜏 , 𝑢 𝜏 + 𝐿(𝑥 𝜏 , 𝑢 𝜏 )
とし, 右辺第1項をテーラー展開する. (2変数関数)
第2項については
中の を と近似し, の極限をとる.
40
最適であるための必要条件 (十分性もいえる)
右辺を最小化する 𝑢 は 𝑥(𝜏)と𝜕𝐽∗
𝜕𝑥に依存するので, これを
ത𝑢 𝑥 𝜏 ,𝜕𝐽∗
𝜕𝑥とおくと
𝜕𝐽∗
𝜕𝜏= − min
𝑢 𝜏 ∈𝑈
𝜕𝐽∗
𝜕𝑥
𝑇
𝑓 𝑥 𝜏 , 𝑢 𝜏 + 𝐿(𝑥 𝜏 , 𝑢 𝜏 )
41
一般に, 非線形偏微分方程式であるHJB方程式を解析的に解くことは困難⇒ 制御対象を線形システム, 評価関数を2次形式に限定
さらに最適コスト関数も 𝐽∗ 𝑥, 𝜏 = 𝑥𝑇𝑃 𝜏 𝑥 という2次形式に限定する
ሶ𝑥 𝑡 = 𝑓 𝑥, 𝑢 = 𝐴𝑥 + 𝐵𝑢
𝐽 = 𝑥𝑇 𝑇 𝑄𝑓𝑥 𝑇 + න0
𝑇
𝐿 𝑥, 𝑢 𝑑𝑡, 𝐿 𝑥, 𝑢 = 𝑥𝑇𝑄𝑥 + 𝑢𝑇𝑅𝑢
42
下線部のベクトルを 𝑝 とおくと, 括弧内は 𝑝𝑇 𝐴𝑥 + 𝐵𝑢 + 𝑥𝑇𝑄𝑥 + 𝑢𝑇𝑅𝑢
となるので, 平方完成すると
を得る. したがって最小化を達成する 𝑢 ( ത𝑢 𝑥, 𝑝 ) は
𝑝𝑇 𝐴𝑥 + 𝐵𝑢 + 𝑥𝑇𝑄𝑥 + 𝑢𝑇𝑅𝑢 = 𝑢 +1
2𝑅−1𝐵𝑇𝑝
𝑇
𝑅 𝑢 +1
2𝑅−1𝐵𝑇𝑝 +⋯
ത𝑢 𝑥, 𝑝 =−1
2𝑅−1𝐵𝑇𝑝
となる.
43
𝐽∗ 𝑥, 𝜏 = 𝑥𝑇𝑃 𝜏 𝑥𝜕𝐽∗
𝜕𝜏= 𝑥𝑇
𝑑
𝑑𝜏𝑃 𝜏 𝑥,
𝜕𝐽∗
𝜕𝑥= 𝑝 = 2𝑃𝑥
以上から, 最小化する 𝑢 を代入したあとのHJB方程式は
𝑥𝑇 ሶ𝑃𝑥 = −2𝑥𝑇𝑃 𝐴 − 𝐵𝑅−1𝐵𝑇𝑃 𝑥 − 𝑥𝑇𝑄𝑥 − −𝑅−1𝐵𝑇𝑃𝑥 𝑇𝑅(−𝑅−1𝐵𝑇𝑃𝑥)
となる. これが任意の 𝑥 に対して成立するとき
44
𝑥𝑇 ሶ𝑃𝑥 = −2𝑥𝑇𝑃 𝐴 − 𝐵𝑅−1𝐵𝑇𝑃 𝑥 − 𝑥𝑇𝑄𝑥 − −𝑅−1𝐵𝑇𝑃𝑥 𝑇𝑅(−𝑅−1𝐵𝑇𝑃𝑥)
− ሶ𝑃 = 𝑃𝐴 + 𝐴𝑇𝑃 − 2𝑃𝐵𝑅−1𝐵𝑇𝑃 + 𝑄 + 𝑃𝐵𝑅−1𝐵𝑇𝑃
= 𝑃𝐴 + 𝐴𝑇𝑃 − 𝐵𝑅−1𝐵𝑇𝑃 + 𝑄
ただし, 両辺はスカラー量なので 2𝑥𝑇𝑃 𝐴𝑥 = 𝑥𝑇𝑃𝐴𝑥 + 𝑥𝑇𝑃𝐴𝑥 𝑇
となることを用いた.
よって連続時間線形システムに対する最適制御問題の解は, Riccati微分方程式
− ሶ𝑃(𝑡) = 𝑃(𝑡)𝐴 + 𝐴𝑇𝑃(𝑡) − 𝑃 𝑡 𝐵𝑅−1𝐵𝑇𝑃(𝑡) + 𝑄
を境界条件 𝑃 𝑇 = 𝑄𝑓 のもとで, 逆の時間方向に解くことで求められる.
45
なる無限区間の最適制御問題となり, その解はRiccati微分方程式の平衡解
𝑃𝐴 + 𝐴𝑇𝑃 − 𝑃𝐵𝑅−1𝐵𝑇𝑃 + 𝑄 = 0, 𝑃 > 0
すなわち代数Riccati方程式の解によって
𝑇 → ∞ とすると, 考察の対象は
𝐽 = න0
∞
𝑥𝑇𝑄𝑥 + 𝑢𝑇𝑅𝑢 𝑑𝑡
なる定数状態フィードバックとして与えられる.
𝑢=− 𝐾𝑥,𝐾 = 𝑅−1𝐵𝑇𝑃