第6回輪講資料 「ハイブリッドシステムの予測制御とそのプロセス制御へ

慶應義塾大学 理工学部
管理工学科4年 曹研究室
60803571
遠藤 健司
 混合論理動的(Mixed
Logical
Dynamical, MLD)システムの理解
論理式から不等式への置換
 MLDシステムの一例
 Receding horizon法を用いた、モデル予測
制御(プロセス制御)への適用

 ハイブリッドシステムの予測制御とその
プロセス制御への適用
Institute of System, Control and
Information Engineers
 Vol.46, No.3, pp.110~119 (2002)





浅野一哉 ー旧川崎製鉄(株) 技術研究所
津田和呂 ー旧NKK(株) 基盤技術研究所
Alberto BEMPORAD ーETH-Swiss federal
Institute of Technology
Manfred MORARI ー同上
1.
2.
3.
はじめに
プロセス制御におけるハイブリッドシステム的アプローチへの期待
MLDシステム
1.
2.
3.
4.
論理式の不等式群による置換
MLDシステムの一例
MLDシステムの一般形
表現可能なクラス例
1.
2.
4.
MLDシステムの制御方法
1.
2.
3.
5.
最適制御
Receding horizon 制御
分枝限定法
実プロセスへの適用シュミレーション
1.
2.
3.
6.
離散値入力
離散値(定性値)出力
ガス供給システム
問題の定式化
Receding horizon 制御の適用
おわりに



ルールに基づく制御
制御モードの切換を伴う制御
入出力が離散値をとる制御
ハイブリッドシ
ステム
• MLDシステ
ムとして定
式化
• 制御問題
モデル予測制御
• Receding
horizon
法
ハイブリッドシステム
(Hybrid System)
•連続的なダイナミクスと離散的な状態
が混在するシステム
混合整数計画法
• 混合整数2
次計画問題
• 分枝限定法

鉄鋼プロセスにおいて、各プロセスでは定常状態の操業
が長時間継続することは少ない。







高炉:化学反応→連続的、原料装入・熔銑の取り出し→離散的
熱風炉:熱風炉加熱と熱風排出の期間→複数炉順次切換
転炉:バッチプロセス(非連続工程)
連続鋳造:操業の切れ目→非定常状態
圧延:材料の先尾端→非定常部
プロセスをハイブリッドシステムとしてとらえれば、非
定常部を含めた全操業期間にわたる操業量の最適化がで
きる。
モデル制御

1.
2.
企業の現場から生まれた実用的な制御方法として、プロセス制
御の分野に広く浸透し、技術者にも馴染み深い。
有限区間の最適化問題を制御周期ごとに繰り返し解く
制御条件を陽な形で取り扱う。

MLD(Mixed Logical Dynamical)システム



論理記述を含んだ動的システムの表現方法
プロセスに含まれる離散的事象を論理変数で表わす。
定式化:論理式→線形不等式
X1
X2
F
F
T
T
F
T
F
T
真理値表
より
¬X1
NOT
T
T
F
F
X1∨X2
OR
F
T
T
T
真理値表
X1∧X2 X1→X2
AND
IMPLY
F
T
F
T
F
F
T
T
X2→X1
IMPLY
T
F
T
T
X1↔X2
IF AND ONLY IF
T
F
F
T
( X 1  X 2 )  (X 1  X 2 )
( X1  X 2 )  ( X1  X 2 )  ( X 2  X1 )
def
:論理命題
X  { f ( x)  0} m  f ( x)  M
 : 0-1変数
 : 微小正数
f : n  
以上のように定義すると、式変形のための準備として、以下3つの等価
関係式が導出できる。
[{ f ( x)  0}  {  1}]  f ( x)  M
[{ f ( x)  0}  {  1}]  m  f ( x)
{ f ( x)  0}  f ( x)  
 f ( x)  M (1   )
{ f ( x)  0}  {  1}  
 f ( x)    (m   )
・証明(右辺←左辺)
・証明(右辺→左辺)
[{ f ( x)  0}  {  1}]
[{ f ( x)  0}  {  1}]
 [{ f ( x)  0}  {  1}]
 [{ f ( x)  0}  {(  0}]
 [{ f ( x)  0}  {  1}]
 [{ f ( x)   }  {  1}]
 [{ f ( x)  0}  {(1   )  1}]
 [{ f ( x)    0}  {  1}]
 { f ( x)  M (1   )}
 { f ( x)    (m   ) }
※ 真理値表より、
( X 1  X 2 )  (X 1  X 2 )
( X1  X 2 )  ( X1  X 2 )  ( X 2  X1 )
※※ 式変形のための準備より、
[{ f ( x)  0}  {  1}]  f ( x)  M
[{ f ( x)  0}  {  1}]  m  f ( x)
{ f ( x)  0}  f ( x)  
命題Xの真偽を0-1変数で関連付けたことにより、線形不等式群と等価にできる。
def
y  f ( x) :補助変数

 y  M ①


 {  0}  { y  0}
 y  m ②



{


1
}

{
y

f
(
x
)}

 y  f ( x)  m(1   ) ③

 y  f ( x)  M (1   ) ④

本来非線形な表現
である式も、線形
不等式群と等価に
できる。
・証明① [{  0}  { y  0}]
 [{  0}  { y  0}]
 [{  1}  { y  0}]
 y  M
・証明③ [{  1}  { y  f ( x)}]
 [{  1}  { y  f ( x)}]
 [{(1   )  1}  {( f ( x)  y )  0}]
 m(1   )  f ( x)  y
・証明② [{  0}  { y  0}]
 [{  0}  { y  0}]
 [{  1}  { y  0}]
 m  y
・証明④ [{  1}  { y  f ( x)}]
 [{  1}  { y  f ( x)}]
 [{(1   )  1}  {( f ( x)  y )  0}]
 f ( x)  y  M (1   )
内部状態x(t)の符号によって場合分けが行われるため、全空間を一括し
て制御系設計を行うことは困難。
 0.8 x(t )  u (t ) if x(t )  0
x(t  1)  
 0.8 x(t )  u (t ) if x(t )  0
(m )  10  x(t )  10( M )
 1  u (t )  1
まず第一に、2値補助変数を用いて状態の符号を関連付け、線形不等式群
に置換する。
 :  : 微小正数
2値補助変数(0-1変数)
[ (t )  1]  [ x(t )  0]
  m (t )  x(t )  m


[ (t )  0]  [ x(t )  0]  ( M   ) (t )   x(t )  
すると、場合分けを含んだ式を、以下の単一式で書き換えることができる。
x(t  1)  0.8 x(t )( 2 (t )  1)  u (t )
 1.6 x(t ) (t )  0.8 x(t )  u (t )
非線形項を含むので、連続値補助変数を導入し、線形不等式群に置換する。
z (t )   (t ) x(t ) :
連続値補助変数
z (t )  M (t )


z (t )  m (t )
  (t )  0  z (t )  0



 (t )  1  z (t )  x(t )
 z (t )  x(t )  m(1   (t ))
 z (t )  x(t )  M (1   (t ))
そして、線形項のみの単一式に書き換えることができる。
x(t  1)  1.6 z (t )  0.8 x(t )  u (t )
x(t  1)  1.6 z (t )  0.8 x(t )  u (t )
 10 (t )  x(t )  10

  10 (t )   x(t )
  10 (t )  z (t )  0

10 (t )  z (t )  0


 10 (t )  z (t )  x(t )  10
10 (t )  z (t )   x(t )  10
 x(t  1)  At x(t )  B1t u (t )  B2t (t )  B3t z (t )

 y (t )  Ct x(t )  D1t u (t )  D2t (t )  D3t z (t )
 E  (t )  E z (t )  E u (t )  E x(t )  E ←線形行列不等式
3t
1t
4t
5t
 2t
∴補助変数を一意に決める不等式群
x(t ) : 状態
u (t ) : 連続値入力
y (t ) : 出力
 (t ) : 離散値入力、離散値補助変数
補助変数を一意に決める
のに必要なだけの不等式
を集めなければならない。
z (t ) : 連続値補助変数
At , Bit , Ct , Dit , Eit (i  1,2,...,5) : 適当な次数の行列
できるだけ簡潔な表現にすることが大切

MLDシステムに対する最適制御問題

与えられた初期状態x0と有限時間Tに対して、状態x0を最終状態
xfまで移行させ、かつ次の評価関数Jを最小化するような次の制
def
T 1
御入力列 u0  {u (0), u (1),..., u (T  1)} を求めよ。
J (u0
T 1
def T 1
, x0 )   {|| u (t )  u1 ||Q2 1
t 0
 ||  (t , x0 , u0 )  1 ||Q2 2  || z (t , x0 , u0 )  z1 ||Q2 3
t
 || x(t , x0 , u0 )  x1 ||
t
但し、x(T , x0 , u0
T 1
t
2
Q4
 || y (t , x0 , u0 )  y1 ||Q2 5 }
t
)  x f である。
:時刻t=0における初期状態x0に対し、入力列u0T-1が入力された結果、
最終時刻t=Tにおいて実現される状態を表す。
def
|| x ||  x' Qx
Qi  Q'i  0 (i  1,2,...,5) : 与えられた重み行列
x1 , u1 , 1 , z1 , y1 : 与えられたオフセット、通常はそれぞれの最終値 x f , u f ,  f , z f , y f
2
Q
を採用する。
すると、最適制御問題□は最終的に混合整数2次計画問題(Mixed
Integer Quadratic Programming, MIQP)に帰着される。
t 1
x(t )  A x0   Ai [ B1u (t  1  i )  B2 (t  1  i )  B3 z (t  1  i )]
t
i 0
y(t )  Ct x(t )  D1t u (t )  D2t (t )  D3t z (t )
J (u0
T 1
def T 1
, x0 ) 
{|| u (t )  u
t 0
1
||
代入
2
Q1
 ||  (t , x0 , u0 )  1 ||Q2 2  || z (t , x0 , u0 )  z1 ||Q2 3
t
t
 || x(t , x0 , u0 )  x1 ||Q2 4  || y (t , x0 , u0 )  y1 ||Q2 5 }
t
t
E2t (t )  E3t z (t )  E1t u(t )  E4t x(t )  E5t
 ' S   2( S
min

1
2
 x'0 S3 )
s.t F1  F2  F3 x0
 
    
  
 u ( 0) 
  ( 0) 
 z ( 0) 
def
def
def
    ,     ,     
u (T  1)
 (T  1)
 z (T  1)
def
整数変数(0-1変数)であるため、混合2次計画問題となる。
解法については分枝限定法を用いる。(次回)

Receding horizon 制御



最適化問題を解く区間(horizon)をサンプリング周期ごとにシフ
トしながらオンラインごとに最適化を繰り返す制御法
各サンプリング時刻tからTステップ先までの有限区間で同様な最
適制御を考え、解として得られた最適入力のうち、現在時刻の最
適入力のみを実際に使い、次のサンプリング周時刻t+1に改めて
Tステップ先までの同様な最適計算を行うことで制御し続ける。
入力は、実際に適用する入力uと区別するために、vと記述する。
min
J (v0
T 1
{ v0
}
T 1
def T 1
, x(t ))   {|| v(t )  ve ||Q2 1  ||  (k | t )   e ||Q2 2
t 0
 || z (k | t )  ze ||Q2 3  || x(k | t )  xe ||Q2 4  || y (k | t )  ye ||Q2 5 }
 x(T | t )  xe  x(k  1 | t )  Ax(k | t )  B v(k )  B  (k | t )  B z (k | t )

1
2
3
s.t. 
 y (k | t )  Cx(k | t )  D1v(k )  D2 (k | t )  D3 z (k | t )
 E2 (k | t )  E3 z (k | t )  E1v(k )  E4 x(k | t )  E5
def
x(k | t )  x(t  k , x(t ), v0
k 1
)
:該当時刻tにおいて計算された最適化入力列v0k-1を入力した場合、
時刻t+kで到達する状態。  (k | t ), z (t | k ), y (k | t ) も同様に定義される。
Q1  Q1 '  0, Q2  Q2 '  0, Q3  Q3 '  0,
Q4  Q4 '  0, Q5  Q5 '  0
xe , ue ,  e , ze , ye :最終値
{vt* (k )}k 0,1,..., T 1 が存在する場合、Receding horizon法で実際に制御対
*
象に入力するのは u (t )  vt (0) と定める。
vt* (1), vt* (2),...., vt* (T  1) は捨てられて、次のサンプリング時刻において、再
び同様な最適計算がなされる。

分枝限定法

通常の2次計画法をベースにした、混合整数2次計画問題の代
表的な解法

解空間上の部分空間を一括チェックし、該当空間内に解候補が
存在し得るかどうかを事前に検証することで、不必要な探索手
続きを予め排除するという考え。
  [ i1 , i 2 , c3 ]'
0‐1変数
(補助変数)
連続補助変数
最も簡単には、図における二分木で示される探索区間全てについて、
残る連続補助変数に関する通常の2次計画問題を評価し、4ケース中
の最適値を選択すれば、最適解が得られたことになる。
しかし、これでは整数変数が増えた場合に、2の階乗でケース分け
(分枝)が増加してしまう…。
 混合整数計画問題を解くための手法であ
る分枝限定法の理解をする。
分枝限定法のアルゴリズム
 効率よく最適解を探索するための工夫
